= Laboratorio di Sistemi Operativi =
Aggiungete pure (con [http://it.reddit.com/r/unimi_solab Reddit]) i link che vi sembrano interessanti per il corso e votate quelli già esistenti! 
(Quelli che riportano il //flair// 
{{{#!html 
consigliato
}}}
sono stati citati a lezione e sono **fortemente consigliati** per la preparazione all'esame) 
{{{
#!html
}}}
[[PageOutline]]
== Materiale 2015/2016 ==
 * [https://www.google.com/calendar/embed?src=h8vcei0cpi8qj7h36u394rbctk%40group.calendar.google.com&ctz=Europe/Rome Calendario delle lezioni]
 * [http://homes.di.unimi.it/sisop/blog/blosxom.cgi/index.html Avvisi]
 * [http://homes.di.unimi.it/sisop/ Il sito principale del corso]
 * [http://homes.di.unimi.it/re/solab2.html Il sito con il materiale delle lezioni di Matteo Re]
=== Esame
 * [wiki:TemaDEsame]
 * [http://homes.di.unimi.it/~sisop/lucidi1213/solab-esame.iso Sistema live usato durante l'esame (116MiB, SHA1 9d1aed82668b6c95fb25d5d7cd1255039d531af7)]  
 * [http://homes.di.unimi.it/~sisop/lucidi1213/persistence-esame.qcow Disco aggiuntivo per la persistenza con Qemu per l'esercizio JOS (992KiB)] 
La procedura per finalizzare l''''intero''' esame di ''Sistemi Operativi I e II'' è riassunta di seguito:
{{{ 
#!c
#include 
#include 
#include 
#include 
int solab(void) {
    return rand() % 31;
}
int teoria(void) {
    return rand() % 31;
}
int main() {
    int fds[2], rt, rl;
    printf("Iscrizione SIFA a (entrambi) Sistemi Operativi I e II\n");
    pipe(fds);
    srand(time(NULL));
    if (fork() == 0) {
        int r;
        do {
            sleep(rand() % 2);
            r = solab();
            printf("Voto laboratorio: %d\n", r);
        } while (r < 18);
        close(fds[0]);
        write(fds[1], &r, sizeof(r));
        return 0;
    } 
    do {
        sleep(rand() % 3);
        rt = teoria();
        printf("Voto teoria: %d\n", rt);
        srand(time(NULL));
    } while (rt < 18);
    close(fds[1]);
    read(fds[0], &rl, sizeof(rl));
    printf("Registrazione (occorre essere iscritti SIFA) di Sistemi Operativi I e II: %u \n", 
           (unsigned int)((3.*(float)rl + 9.*(float)rt)/12.));
    return 0;
}
}}}
== Materiale aa.aa. precedenti ==
 * [wiki:WikiStart@215 Materiale 2014/2015] 
 * [wiki:WikiStart@193 Materiale 2013/2014] 
 * [wiki:WikiStart@168 Materiale 2012/2013] 
 * [wiki:WikiStart@124 Materiale 2011/2012] 
 * [wiki:WikiStart@98 Materiale 2010/2011]
 * [wiki:WikiStart@66 Materiale 2009/2010] 
 * [wiki:WikiStart@49 Materiale 2008/2009]
{{{
#!html
}}}