====== Sistemi Operativi (Modulo Laboratorio) ====== ---- ===== News ===== * **6 Marzo 2018**: Inizio delle lezioni! ---- ===== Informazioni Generali ===== **Docente**: * [[http://docenti.unicam.it/pdett.aspx?ids=N&tv=d&UteId=1103|Michele Loreti]] **Canale Telegram**: https://t.me/UniCamLSO **Orario delle Lezioni**: * Martedì, dalle 16.00 alle 18.00, Laboratorio LA1, Polo Lodovici. **Ricevimento studenti**: * Martedì, dalle 11.00 alle 12.00 * Giovedì, dalle 10.00 alle 11.00 ---- ===== Obiettivi del Corso ===== Il corso vuole introdurre i principi della programmazione di sistema. ---- ===== Contenuti del Corso ===== - Il linguaggio C - Gestione dell'Input/Output - Gestione dei processi - Threading - Gestione della Memoria - Gestione dei segnali e del tempo. ---- ===== Materiale ===== **Slide del Corso** * {{ :didattica:triennale:so:ay_1718:01slides.pdf | Introduzione al Corso, Il Linguaggio C.}} * {{ :didattica:triennale:so:ay_1718:02slides.pdf | Scope delle variabili e Puntatori.}} * {{ :didattica:triennale:so:ay_1718:03slides.pdf | Array e Stringhe.}} * {{ :didattica:triennale:so:ay_1718:04slides.pdf | Allocazione dinamica della Memoria. Strutture e Unioni.}} * {{ :didattica:triennale:so:ay_1718:05slides.pdf | Programmazione di Sistema. Primitive di I/O.}} * {{ :didattica:triennale:so:ay_1718:06slides.pdf | Primitive di I/O (Parte 2).}} * {{ :didattica:triennale:so:ay_1718:07slides.pdf | Gestione dei processi e Threads. }} * {{ :didattica:triennale:so:ay_1718:08slides.pdf | La libreria pthreads. }} * {{ :didattica:triennale:so:ay_1718:09slides.pdf | Inter-process Communication. }} **Codice Esempi:** {{ :didattica:triennale:so:ay_1718:code.zip |zip}} **Lezioni Registrate** * Lezione del 6/3/2018: [[https://unicam.webex.com/unicam/ldr.php?RCID=6802413316e642a99a98c5456c0d7306|Visualizza]] [[https://unicam.webex.com/unicam/lsr.php?RCID=8a6b437b279333f0641e4dea0d0bc408|Download]] (Per un errore di configurazione i primi 30 minuti della lezione non sono stati registrati). * Lezione del 13/3/2018: [[https://unicam.webex.com/unicam/ldr.php?RCID=0eebd82b3aff06ed94671946cd72dc2e| Visualizza]][[https://unicam.webex.com/unicam/lsr.php?RCID=57df92c5085e3c0f60498c68204c506b|Download]]. * Lezione del 20/3/2018: [[https://unicam.webex.com/unicam/ldr.php?RCID=2f2f719f8cd7914295a89fa4547feefc|Visualizza]] [[https://unicam.webex.com/unicam/lsr.php?RCID=b213ca99e270dfd7235c528a2332e91b|Download]]. * Lezione del 27/3/2018: [[https://unicam.webex.com/unicam/ldr.php?RCID=4a75aa1ce9027e0858f24e83aaea591d |Visualizza]] [[https://unicam.webex.com/unicam/lsr.php?RCID=acc80166478d24b8926155c33f879609|Download]]. * Lezione del 10/4/2018: [[https://unicam.webex.com/unicam/ldr.php?RCID=8ef30de72fe489708841d19102dc6713 |Visualizza]] [[https://unicam.webex.com/unicam/lsr.php?RCID=a2283aa768622982c662918c35f49d78|Download]]. * Lezione del 17/4/2018: [[https://unicam.webex.com/unicam/ldr.php?RCID=ebb7e22b0e19d94d0a39359048501310 |Visualizza]] [[https://unicam.webex.com/unicam/lsr.php?RCID=64f8be5736b270e4f29367b0dd597a5b |Download]]. * Lezione del 24/4/2018: [[https://unicam.webex.com/unicam/ldr.php?RCID=c9b584484e6ceda412a5348770c7d0c9 |Visualizza 1]] [[https://unicam.webex.com/unicam/ldr.php?RCID=6b293a4c0e44688adb3deb42211d0f3d |Visualizza 2]] [[https://unicam.webex.com/unicam/lsr.php?RCID=2bc9ff6e868663bc06a7405a322fa32c |Download 1]] [[https://unicam.webex.com/unicam/lsr.php?RCID=fd53007e327435cdf92b10102d8dc706 |Download 2]]. * Lezione del 08/5/2018: [[https://unicam.webex.com/unicam/ldr.php?RCID=ea2afad863a82e82f6c2829c3df6f3d4 |Visualizza]] [[https://unicam.webex.com/unicam/lsr.php?RCID=99414c4340759784ff15b0419be1aaaf |Download]]. * Lezione del 15/5/2018: [[https://unicam.webex.com/unicam/ldr.php?RCID=5e1b0cf311d4b9e3b6a318cd229928b4 |Visualizza]] [[https://unicam.webex.com/unicam/lsr.php?RCID=0ded06d67beee6908cd2f68c9d6cb7f4 |Download]] ([[https://drive.google.com/open?id=1cTjxRur6Fo70t88Ls2K5BRgV7kXGn0zK|Sorgenti]]). * Lezione del 22/5/2019: [[https://unicam.webex.com/unicam/ldr.php?RCID=1baf7a0480e0080b3581e2ebe20ea18c |Visualizza]] [[https://unicam.webex.com/unicam/lsr.php?RCID=6b85301e6ec463d1d12a4e61d17414a4 |Download]]. **Testi di Riferimento** * Linux System Programming, Robert Love, O'Really ---- ==== Progetti ==== - Il progetto dovrà essere consegnato in un archivio ''.tgz'' contenente, oltre al codice, una relazione descrittiva del lavoro svolto i test svolti per verificare la correttezza del codice; - La relazione dovrà contenere descrivere: - struttura e architettura del codice sviluppato (moduli, librerie utilizzate,...); - le strutture dati implementate e delle funzionalità sviluppate; - come le diverse funzionalità richieste sono state implementate; - come sono stati condotti i test per verificare il corretto funzionamento del codice. - Il progetto può essere svolto in gruppo composto da al più tre persone, i membri del gruppo devono essere comunicati al docente almeno 15 giorni prima della consegna; - La valutazione del progetto terrà conto di: * Corretto funzionamento; * Organizzazione del codice; * Conoscenza da parte di tutti i membri del gruppo. **Gli studenti che hanno nella propria carriera il corso di Sistemi Operativi da 12 CFU devono svolgere un progetto esteso come riportato nelle specifiche.** **Giugno/Luglio 2018** * [[didattica:triennale:so:ay_1718:progettogiugnoluglio| Specifica]] ([[didattica:triennale:so:ay_1718: progettogiugnoluglio_12CFU| (Addendum 12 CFU]]) * Date di Consegna: 21/06/2018, 12/07/2018, 25/07/2018. **Settembre/Ottobre 2018** * [[didattica:triennale:so:ay_1718:progettosettembreottobre| Specifica]] ([[didattica:triennale:so:ay_1718:progettosettembreottobre_12CFU| Addendum 12 CFU]]) * Date di Consegna: 07/09/2018, 28/09/2018. **Febbraio 2019** * [[didattica:triennale:so:ay_1718:progettofebbraio| Specifica]] ([[didattica:triennale:so:ay_1718:progettofebbraio_12CFU| Addendum 12 CFU]]) * Date di Consegna: 01/02/2019, 22/02/2019. ---- ===== Esami ===== L'esame consiste di due parti: - La realizzazione del progetto; - La discussione (in gruppo) con il docente. Il calendario delle discussioni verrà definito il giorno successivo a quello della consegna e terrà conto del numero degli iscritti. I progetti dovranno essere consegnati per email entro le 23.59 del giorno fissato come scadenza. Al fine di evitare problemi di consegna, si consiglia di non allegare il progetto alla mail ma di inserire nella mail un link ad un file condiviso su Google Drive. **Date Consegna Progetti A.A. 2017/2018** * 1a consegna 21/06/2018 (discussioni a partire dal 26/6/2018); * 2a consegna 12/07/2018 (discussioni a partire dal 16/7/2018); * 3a consegna 25/07/2018 (discussioni a partire dal 26/7/2018); * 4a consegna 07/09/2018 (discussioni a partire dal 11/8/2018); * 5a consegna 28/09/2018 (discussioni a partire dal 02/10/2018); * 6a consegna 01/02/2019 (discussioni a partire dal 05/02/2019); * 7a consegna 22/02/2019 (discussioni a partire dal 26/02/2019).