= Laboratorio di Sistemi Operativi = Turno cognomi con lettera iniziale **A-I** [[PageOutline]] == Materiale 2018/2019 == * [https://calendar.google.com/calendar/embed?src=unimi.it_n7gvn5ttgoqa17qn8blir6e1q4%40group.calendar.google.com&ctz=Europe%2FRome 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. 27 febbraio 2019 (Aula 303) * [http://homes.di.unimi.it/~sisop/lucidi1718/solab01.pdf Slide] -- [http://homes.di.unimi.it/~sisop/lucidi1718/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] * Hai studiato il materiale della prima lezione? [https://goo.gl/cgO5BY Prova a rispondere ad alcune domande] === 2. 6 marzo 2019 (Aula Gamma) * [http://homes.di.unimi.it/~sisop/lucidi1819/solab02.pdf Slide] -- [http://homes.di.unimi.it/~sisop/lucidi1819/solab02-handout.pdf Slide (Versione per la stampa)] * [http://homes.di.unimi.it/~sisop/lucidi1819/solab.iso ISO Debian Live] (credenziali user:live) * [http://www.qemu-project.org/ QEmu] [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] * [http://homes.di.unimi.it/~sisop/lucidi1819/esercizi-assembly.pdf Esercizi commentati] * [http://homes.di.unimi.it/~sisop/lucidi1819/protetti/Internazionale1297.pdf Un bell'articolo sul contributo femminile alle origini dell'informatica moderna (Clive Thompson, The New York Times Magazine, versione italiana da Internazionale 1297, trad. Bruna Tortorella)] (credenziali user:live) === 3. 13 marzo 2019 (Aula Gamma) * [http://homes.di.unimi.it/~sisop/lucidi1819/solab03.pdf Slide] -- [http://homes.di.unimi.it/~sisop/lucidi1819/solab03-handout.pdf Slide (Versione per la stampa)] * [http://ref.x86asm.net/coder32.html Riferimento istruzioni X86 (32bit)] * [http://homes.di.unimi.it/~sisop/lucidi1819/esercizi-assembly2.pdf Esercizi commentati] * 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] === 4. 20 marzo 2019 (Aula Gamma) * [http://homes.di.unimi.it/~sisop/lucidi1819/solab04.pdf Slide] -- [http://homes.di.unimi.it/~sisop/lucidi1819/solab04-handout.pdf Slide (Versione per la stampa)] * Riferimenti OSTEP: [http://pages.cs.wisc.edu/~remzi/OSTEP/cpu-api.pdf Process API] * UnaShellEssenziale === 5. 27 marzo 2019 (Aula Gamma) * [http://homes.di.unimi.it/~sisop/lucidi1819/solab05.pdf Slide] -- [http://homes.di.unimi.it/~sisop/lucidi1819/solab05-handout.pdf Slide (Versione per la stampa)] === 6. 3 aprile 2019 (Aula Gamma) * [http://homes.di.unimi.it/~sisop/lucidi1819/solab05.pdf Slide] -- [http://homes.di.unimi.it/~sisop/lucidi1819/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; per chi volesse cimentarsi in esercizi più orientati alla sicurezza: `ssh -p 2220 -l bandit0 -x bandit.labs.overthewire.org`, password bandit0) * [https://doi.org/10.1145/5948.315654 Knuth vs. McInroy] (accessibile gratuitamente da IP unimi o via [https://users.unimi.it/banchedati/istruzioni_proxy_unimi.html proxy]; TL;DR `tr -cs A-Za-z '\n' | tr A-Z a-z | sort | uniq -c | sort -rn | head`) * [http://www.linusakesson.net/programming/tty/index.php The TTY demystified] === 7. 10 aprile 2019 (Aula Gamma) * [http://homes.di.unimi.it/~sisop/lucidi1819/solab06.pdf Slide] -- [http://homes.di.unimi.it/~sisop/lucidi1819/solab06-handout.pdf Slide (Versione per la stampa)] * Riferimenti OSTEP: [http://pages.cs.wisc.edu/~remzi/OSTEP/file-disks.pdf Hard Disk Drives] === 8. 17 aprile 2019 (Aula Gamma) * [http://homes.di.unimi.it/~sisop/lucidi1718/lab01.pdf Esercizio i-node] * [http://homes.di.unimi.it/~sisop/lucidi1819/solab07.pdf Slide] -- [http://homes.di.unimi.it/~sisop/lucidi1819/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] === 9. 8 maggio 2019 (Aula Gamma) === 10. 22 maggio 2019 (Aula Gamma) * Aggiornate la vostra [http://homes.di.unimi.it/~sisop/lucidi1819/solab.iso ISO Debian Live]! (credenziali user:live) * Disco per la persistenza [http://homes.di.unimi.it/~sisop/lucidi1819/persistence-jos.qcow formato QEmu] [http://homes.di.unimi.it/~sisop/lucidi1819/persistence-jos.vdi formato VirtualBox] * [https://pdos.csail.mit.edu/6.828/2018/labs/lab1/ Esercitazione JOS (MIT) Lab1] * [http://homes.di.unimi.it/~sisop/lucidi1819/solab09.pdf Slide] -- [http://homes.di.unimi.it/~sisop/lucidi1819/solab09-handout.pdf Slide (Versione per la stampa)] === 11. 29 maggio 2019 (Aula Gamma) * [https://pdos.csail.mit.edu/6.828/2018/labs/lab2/ Esercitazione JOS (MIT) Lab2] * [http://homes.di.unimi.it/~sisop/lucidi1819/solab10.pdf Slide] -- [http://homes.di.unimi.it/~sisop/lucidi1819/solab10-handout.pdf Slide (Versione per la stampa)] * Disco per la persistenza corretto (nella versione precedente c'erano problemi cambiando ''branch'') [http://homes.di.unimi.it/~sisop/lucidi1819/persistence-jos.qcow formato QEmu] [http://homes.di.unimi.it/~sisop/lucidi1819/persistence-jos.vdi formato VirtualBox] Per lavorare sul lab2: {{{#!sh git checkout lab2 git cherry-pick image-corrections }}} === 12. 5 giugno 2019 (Aula Gamma) * [https://pdos.csail.mit.edu/6.828/2018/labs/lab2/ Esercitazione JOS (MIT) Lab2] * [http://homes.di.unimi.it/~sisop/lucidi1819/solab11.pdf Slide] -- [http://homes.di.unimi.it/~sisop/lucidi1819/solab11-handout.pdf Slide (Versione per la stampa)] === 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@305 Materiale 2017/2018] * [wiki:WikiStart@270 Materiale 2016/2017] * [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 }}}