= Laboratorio di Sistemi Operativi = [[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] * [http://ostep.org Remzi H. Arpaci-Dusseau, Andrea C. Arpaci-Dusseau "Operating Systems: Three Easy Pieces", 2015 (Testo di riferimento)] === 1. 2 marzo 2016 * [http://homes.di.unimi.it/~sisop/lucidi1516/solab01.pdf Slide] -- [http://homes.di.unimi.it/~sisop/lucidi1516/solab01-handout.pdf Slide (Versione per la stampa)] * [http://www.nasm.us/ NASM] * [wiki:"Sperimentazione 1"] === 2. 9 marzo 2016 * [http://homes.di.unimi.it/~sisop/lucidi1516/solab02.pdf Slide] -- [http://homes.di.unimi.it/~sisop/lucidi1516/solab02-handout.pdf Slide (Versione per la stampa)] * [http://homes.di.unimi.it/~sisop/lucidi1516/qemu-win.zip Qemu per Windows] * [http://homes.di.unimi.it/~sisop/lucidi1516/MobaXterm_v8.2.zip MobaXterm] * [http://homes.di.unimi.it/~sisop/lucidi1516/solab.iso Live CD versione 1d9eca8 del 4/3/2016 (182MB MD5 7d9b8c59a1495505b47a20a66e62e07c)] * [https://www.cs.uaf.edu/2006/fall/cs301/support/x86/ NASM Cheatsheet] * [http://users.ece.utexas.edu/~adnan/gdb-refcard.pdf GDB Cheatsheet] * [http://www.viemu.com/vi-vim-cheat-sheet.gif vi Cheatsheet] * [wiki:"Sperimentazione 2"] === 3. 16 marzo 2016 * [http://homes.di.unimi.it/~sisop/lucidi1516/solab03.pdf Slide] -- [http://homes.di.unimi.it/~sisop/lucidi1516/solab03-handout.pdf Slide (Versione per la stampa)] === 4. 23 marzo 2016 * [http://homes.di.unimi.it/~sisop/lucidi1516/solab04.pdf Slide] -- [http://homes.di.unimi.it/~sisop/lucidi1516/solab04-handout.pdf Slide (Versione per la stampa)] * [wiki:"Sperimentazione 3"] === 5. 6 aprile 2016 * [http://homes.di.unimi.it/~sisop/lucidi1516/solab05.pdf Slide] -- [http://homes.di.unimi.it/~sisop/lucidi1516/solab05-handout.pdf Slide (Versione per la stampa)] * [http://www.memrise.com/course/86904/solab-unimi/ Memrise] === 6. 13 aprile 2016 * [http://homes.di.unimi.it/~sisop/lucidi1516/solab06.pdf Slide] -- [http://homes.di.unimi.it/~sisop/lucidi1516/solab06-handout.pdf Slide (Versione per la stampa)] === 7. 20 aprile 2016 * [http://homes.di.unimi.it/~sisop/lucidi1516/solab07.pdf Slide] -- [http://homes.di.unimi.it/~sisop/lucidi1516/solab07-handout.pdf Slide (Versione per la stampa)] * [http://homes.di.unimi.it/~sisop/lucidi1314/lab01.pdf Esercizio i-node] * [wiki:"Sperimentazione 4"] === 8. 27 aprile 2016 * [http://homes.di.unimi.it/~sisop/lucidi1516/solab08.pdf Slide] -- [http://homes.di.unimi.it/~sisop/lucidi1516/solab08-handout.pdf Slide (Versione per la stampa)] * [wiki:Makefile] === 9. 4 maggio 2016 * [http://homes.di.unimi.it/~sisop/lucidi1516/solab09.pdf Slide] -- [http://homes.di.unimi.it/~sisop/lucidi1516/solab09-handout.pdf Slide (Versione per la stampa)] * [http://homes.di.unimi.it/~sisop/lucidi1516/persistence-jos.qcow Disco in formato QEMU per la persistenza] -- [http://homes.di.unimi.it/~sisop/lucidi1516/persistence-jos.vdi Disco in formato VirtualBox per la persistenza] * [http://pdos.csail.mit.edu/6.828/2014/labs/lab1/ Esercitazione MIT di riferimento] === 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 }}}