= 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 2013/2014 == * [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] === 1. 5 marzo 2014 ^(Aula)^ * [http://homes.di.unimi.it/~sisop/lucidi1314/solab01.pdf Slide] -- [http://homes.di.unimi.it/~sisop/lucidi1314/solab01-handout.pdf Slide (Versione per la stampa)] * [http://www.nasm.us/ NASM] * [wiki:"Sperimentazione 1"] === 2. 12 marzo 2014 ^(Lab)^ * [http://homes.di.unimi.it/~sisop/lucidi1314/solab02.pdf Slide] -- [http://homes.di.unimi.it/~sisop/lucidi1314/solab02-handout.pdf Slide (Versione per la stampa)] * [http://homes.di.unimi.it/~sisop/lucidi1314/solab.iso ISO LiveCD Mon Dec 30 09:28:56 2013 +0100 fdf1cdd (119MiB SHA1 014fca5dd7651ef35beec0e1f318ae5d2b1fd591)] * [http://homes.di.unimi.it/~sisop/lucidi1314/Qemu-1.6.0-windows-ridotto.zip Qemu per Windows (11MiB)] [http://wiki.qemu.org/Links Altre versioni di Qemu] * [wiki:"Sperimentazione 2"] * [https://mameli.docenti.di.unimi.it/solab/export/25/trunk/vi-vim-cheat-sheet.pdf Tutto vi in una schermata (tastiera italiana)] === 3. 19 marzo 2014 ^(Lab)^ * [http://homes.di.unimi.it/~sisop/lucidi1314/solab03.pdf Slide] -- [http://homes.di.unimi.it/~sisop/lucidi1314/solab03-handout.pdf Slide (Versione per la stampa)] * [wiki:"Sperimentazione 3"] === 4. 26 marzo 2014 ^(Aula+Lab)^ * [http://homes.di.unimi.it/~sisop/lucidi1314/solab04.pdf Slide] -- [http://homes.di.unimi.it/~sisop/lucidi1314/solab04-handout.pdf Slide (Versione per la stampa)] * [http://homes.di.unimi.it/~sisop/lucidi1314/lab01.pdf Appunti esercizi su i-node] === 5. 2 aprile 2014 ^(Lab)^ * [http://homes.di.unimi.it/~sisop/lucidi1314/solab05.pdf Slide] -- [http://homes.di.unimi.it/~sisop/lucidi1314/solab05-handout.pdf Slide (Versione per la stampa)] * [source:trunk/threads-isolated.c@26 Thread isolati] * [source:trunk/threads-shared.c@26 Thread memoria condivisa] * [source:trunk/threads-peterson.c@26 Thread sincronizzati con Peterson] * [source:trunk/threads-tsl.c@26 Thread sincronizzati con "TSL"] [source:trunk/enter.asm@26 enter.asm] * [source:trunk/threads-sem.c@26 PThread sincronizzati con semafori] === 6. 16 aprile 2014 ^(Lab)^ * [http://homes.di.unimi.it/~sisop/lucidi1314/solab06.pdf Slide] -- [http://homes.di.unimi.it/~sisop/lucidi1314/solab06-handout.pdf Slide (Versione per la stampa)] * [source:trunk/pthreads-pc.c@26 PThread sincronizzati con monitor] * [http://en.wikipedia.org/wiki/Unix_philosophy Wikipedia on Unix philosophy] * Per familiarizzare con shell e comandi, può essere utile una fase di memorizzazione con [http://www.memrise.com/course/86904/solab-unimi/ Memrise] === 7. 23 aprile 2014 ^(Lab)^ * [http://homes.di.unimi.it/~sisop/lucidi1314/solab07.pdf Slide] -- [http://homes.di.unimi.it/~sisop/lucidi1314/solab07-handout.pdf Slide (Versione per la stampa)] === 8. 30 aprile 2014 ^(Lab)^ * [http://homes.di.unimi.it/~sisop/lucidi1314/solab08.pdf Slide] -- [http://homes.di.unimi.it/~sisop/lucidi1314/solab08-handout.pdf Slide (Versione per la stampa)] * [http://homes.di.unimi.it/~sisop/lucidi1314/sample.c Esempio per il debug (by Andreas Zeller)] === 9. 7 maggio 2014 ^(Lab)^ * [http://homes.di.unimi.it/~sisop/lucidi1314/solab09.pdf Slide] -- [http://homes.di.unimi.it/~sisop/lucidi1314/solab09-handout.pdf Slide (Versione per la stampa)] * [http://pdos.csail.mit.edu/6.828/2012/labs/lab1/ MIT Lab 1] * [http://homes.di.unimi.it/~sisop/lucidi1314/persistence-jos.qcow Disco aggiuntivo per la persistenza con Qemu con JOS (persistence-jos.qcow, 1.4MiB)] ==== 14 maggio 2014: lezione sospesa === 10. 21 maggio 2014 ^(Lab)^ * [http://homes.di.unimi.it/~sisop/lucidi1314/solab10.pdf Slide] -- [http://homes.di.unimi.it/~sisop/lucidi1314/solab10-handout.pdf Slide (Versione per la stampa)] * [http://pdos.csail.mit.edu/6.828/2012/labs/lab2/ MIT Lab 2] === 11. 28 maggio 2014 ^(Lab)^ * [http://homes.di.unimi.it/~sisop/lucidi1314/solab11.pdf Slide] -- [http://homes.di.unimi.it/~sisop/lucidi1314/solab11-handout.pdf Slide (Versione per la stampa)] * [http://pdos.csail.mit.edu/6.828/2012/lec/x86_translation_and_registers.pdf ​X86 Memory management (MIT reference)] ==== 4 giugno 2014: Lezione sospesa === 12. 11 giugno 2014 ^(Lab)^ * [http://homes.di.unimi.it/~sisop/lucidi1314/solab12.pdf Slide] -- [http://homes.di.unimi.it/~sisop/lucidi1314/solab12-handout.pdf Slide (Versione per la stampa)] * [http://pdos.csail.mit.edu/6.828/2012/labs/lab3/ MIT Lab 3] === 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(fd[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(fd[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@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 }}}