= Laboratorio di Sistemi Operativi = [[PageOutline]] == Materiale 2016/2017 == * [https://www.google.com/calendar/embed?src=h8vcei0cpi8qj7h36u394rbctk%40group.calendar.google.com&ctz=Europe/Rome Calendario delle lezioni e degli esami di laboratorio] * [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. 1 marzo 2017 (Aula 403) * [http://homes.di.unimi.it/~sisop/lucidi1617/solab01.pdf Slide] -- [http://homes.di.unimi.it/~sisop/lucidi1617/solab01-handout.pdf Slide (Versione per la stampa)] * [wiki:"Sperimentazione 1"] * Riferimenti OSTEP: [http://pages.cs.wisc.edu/~remzi/OSTEP/intro.pdf Introduction] [http://pages.cs.wisc.edu/~remzi/OSTEP/lab-tutorial.pdf Lab tutorial] * [https://gitlab.com/solab-unimi/remzi/tree/monga/Code-Intro Codice] OSTEP con [https://gitlab.com/solab-unimi/remzi/blob/monga/Code-Intro/NOTES.md alcune correzioni] * Hai studiato il materiale della prima lezione? [https://goo.gl/cgO5BY Prova a rispondere ad alcune domande] === 2. 8 marzo 2017 (Aula 307) * [http://homes.di.unimi.it/~sisop/lucidi1617/solab02.pdf Slide] -- [http://homes.di.unimi.it/~sisop/lucidi1617/solab02-handout.pdf Slide (Versione per la stampa)] * [http://www.qemu-project.org/ QEmu] [http://homes.di.unimi.it/~sisop/lucidi1617/solab.iso ISO Debian Live] (credenziali user:live) * [http://homes.di.unimi.it/~sisop/lucidi1516/unimilive-solab.bat File batch per windows (da adattare al proprio sistema)] * [http://homes.di.unimi.it/~sisop/lucidi1516/MobaXterm_v8.2.zip MobaXTerm (utile per gli utenti Windows)] * [https://www.cs.uaf.edu/2006/fall/cs301/support/x86/ Bigino NASM] [http://www.cs.mcgill.ca/~consult/info/gdb.html Bigino GDB] [http://openvim.com Tutorial vi] [http://www.viemu.com/vi-vim-cheat-sheet.gif Bigino vi] * [wiki:"Sperimentazione 2"] === 3. 15 marzo 2017 (Aula 307) * [http://homes.di.unimi.it/~sisop/lucidi1617/solab03.pdf Slide] -- [http://homes.di.unimi.it/~sisop/lucidi1617/solab03-handout.pdf Slide (Versione per la stampa)] * Riferimenti OSTEP: [http://pages.cs.wisc.edu/~remzi/OSTEP/vm-intro.pdf The Abstraction: Address Spaces] [http://pages.cs.wisc.edu/~remzi/OSTEP/vm-api.pdf Interlude: Memory API] * [http://x86.renejeschke.de/ Quick X86 Reference] * [http://homes.di.unimi.it/~sisop/lucidi1617/esercizi-assembly.pdf Soluzioni esercizi assembly] === 4. 22 marzo 2017 (Aula 307) * [http://homes.di.unimi.it/~sisop/lucidi1617/solab04.pdf Slide] -- [http://homes.di.unimi.it/~sisop/lucidi1617/solab04-handout.pdf Slide (Versione per la stampa)] === 5. 29 marzo 2017 (Aula 307) * [http://homes.di.unimi.it/~sisop/lucidi1617/solab05.pdf Slide] -- [http://homes.di.unimi.it/~sisop/lucidi1617/solab05-handout.pdf Slide (Versione per la stampa)] * [https://unglue.it/work/136224/ Shotts, The Linux Command Line] (un testo per approfondire la conoscenza della shell testuale) * [https://www.memrise.com/course/86904/solab-unimi/ Memrise] (utile per memorizzare i comandi principali) * [https://cmdchallenge.com CMD Challenge] (un po' di esercizi) * [https://goo.gl/KarL3r Video: AT&T Archives: The UNIX Operating System] === 6. 5 aprile 2017 (Aula 307) * [http://homes.di.unimi.it/~sisop/lucidi1617/solab06.pdf Slide] -- [http://homes.di.unimi.it/~sisop/lucidi1617/solab06-handout.pdf Slide (Versione per la stampa)] * Riferimenti OSTEP: [http://pages.cs.wisc.edu/~remzi/OSTEP/file-disks.pdf Hard Disk Drives] [http://pages.cs.wisc.edu/~remzi/OSTEP/file-intro.pdf Interlude: Files and Directories] [http://pages.cs.wisc.edu/~remzi/OSTEP/file-implementation.pdf File System Implementation] * [https://homes.di.unimi.it/sisop/lucidi1314/lab01.pdf Esercizio i-node] === 7. 12 aprile 2017 (Aula 307) * [http://homes.di.unimi.it/~sisop/lucidi1617/solab07.pdf Slide] -- [http://homes.di.unimi.it/~sisop/lucidi1617/solab07-handout.pdf Slide (Versione per la stampa)] * Riferimenti OSTEP: [http://pages.cs.wisc.edu/~remzi/OSTEP/threads-locks.pdf Locks] [http://pages.cs.wisc.edu/~remzi/OSTEP/threads-sema.pdf Semaphores] [http://pages.cs.wisc.edu/~remzi/OSTEP/threads-cv.pdf Condition Variables] === 19 aprile 2017 Lezione sospesa === 8. 26 aprile 2017 (Aula 307) * [http://homes.di.unimi.it/~sisop/lucidi1617/solab08.pdf Slide] -- [http://homes.di.unimi.it/~sisop/lucidi1617/solab08-handout.pdf Slide (Versione per la stampa)] * [http://homes.di.unimi.it/~sisop/lucidi1617/persistence-jos.qcow Disco aggiuntivo con il codice di JOS] * [https://pdos.csail.mit.edu/6.828/2016/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@241 Materiale 2015/2016] * [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 }}}