Progettazione di Sistemi Operativi - LM: differenze tra le versioni
(19 versioni intermedie di uno stesso utente non sono mostrate) | |||
Riga 312: | Riga 312: | ||
La discussione della tesina deve avvenire prima della prova orale (ENTRO LA SCADENZA DELL'ISCRIZIONE ALLA PROVA ORALE): il voto preso dallo studente nella tesina influirà sul voto finale andando ad incrementare il voto della prova orale di un valore da 1 a 4 punti.<BR> | La discussione della tesina deve avvenire prima della prova orale (ENTRO LA SCADENZA DELL'ISCRIZIONE ALLA PROVA ORALE): il voto preso dallo studente nella tesina influirà sul voto finale andando ad incrementare il voto della prova orale di un valore da 1 a 4 punti.<BR> | ||
'''A.A. 2024-25'''<BR> | '''A.A. 2024-25'''<BR> | ||
Probabilmente il documento dello scorso anno verrà aggiornato!<BR> | Si faccia riferimento al [http://{{SERVERNAME}}/didattica/ProgettazioneSO/Laboratorio/TESINE24-25.pdf documento] (con la solita password) per avere dettagli sui possibili argomenti delle tesine (data di caricamento 27/10/2023).<BR> | ||
<!--Probabilmente il documento dello scorso anno verrà aggiornato!<BR>--> | |||
'''A.A. 2023-24'''<BR> | '''A.A. 2023-24'''<BR> | ||
Si faccia riferimento al [http://{{SERVERNAME}}/didattica/ProgettazioneSO/Laboratorio/TESINE23-24.pdf documento] (con la solita password) per avere dettagli sui possibili argomenti delle tesine (data di caricamento 27/10/2023).<BR> | Si faccia riferimento al [http://{{SERVERNAME}}/didattica/ProgettazioneSO/Laboratorio/TESINE23-24.pdf documento] (con la solita password) per avere dettagli sui possibili argomenti delle tesine (data di caricamento 27/10/2023).<BR> | ||
Riga 475: | Riga 476: | ||
[http://{{SERVERNAME}}/didattica/ProgettazioneSO/Lucidi/ProcessiCooperantiInAmbienteGlobale-3.pdf <font COLOR="#0000ff">Slide sui processi: processi cooperanti in ambiente globale </font>] (aggiornato il 26/09/2024) <!-- (aggiornato il 04/10/2022) (aggiornato il 04/10/2021) (aggiornato il 16/08/2020)--> | [http://{{SERVERNAME}}/didattica/ProgettazioneSO/Lucidi/ProcessiCooperantiInAmbienteGlobale-3.pdf <font COLOR="#0000ff">Slide sui processi: processi cooperanti in ambiente globale </font>] (aggiornato il 26/09/2024) <!-- (aggiornato il 04/10/2022) (aggiornato il 04/10/2021) (aggiornato il 16/08/2020)--> | ||
<li> | <li> | ||
[http://{{SERVERNAME}}/didattica/ProgettazioneSO/Lucidi/CostruttiDISincronizzazione-3bis.pdf <font COLOR="#0000ff">Slide sui processi: costrutti di sincronizzazione in ambiente globale </font>] (aggiornato il | [http://{{SERVERNAME}}/didattica/ProgettazioneSO/Lucidi/CostruttiDISincronizzazione-3bis.pdf <font COLOR="#0000ff">Slide sui processi: costrutti di sincronizzazione in ambiente globale </font>] (aggiornato il 02/10/2024)<!-- (aggiornato il 30/09/2024) (aggiornato il 29/09/2024) (aggiornato il 26/09/2024)(aggiornato 04/10/2022)(aggiornato 07/10/2021) (aggiornato 30/09/2019 ore 14,30)-->; se interessati, si veda anche [http://{{SERVERNAME}}/didattica/ProgettazioneSO/Lucidi/AppendiceAiCostruttiDiSincronizzazione.pdf <font COLOR="#0000ff">Slide su altri costrutti di sincronizzazione </font>] (aggiornato il 16/08/2020) | ||
<li> | <li> | ||
[http://{{SERVERNAME}}/didattica/ProgettazioneSO/Lucidi/AmbienteLocale-5.pdf <font COLOR="#0000ff">Slide su processi in ambiente Locale: processi comunicanti in ambiente locale</font>] | [http://{{SERVERNAME}}/didattica/ProgettazioneSO/Lucidi/AmbienteLocale-5.pdf <font COLOR="#0000ff">Slide su processi in ambiente Locale: processi comunicanti in ambiente locale</font>] (aggiornato lo 05/10/2024)<!--(aggiornato il 18/10/2022) (aggiornato il 11/10/2022) (aggiornato il 16/08/2020) (aggiornato 8/10/2018 ore 8,50) --> | ||
<li> | <li> | ||
[http://{{SERVERNAME}}/didattica/ProgettazioneSO/Lucidi/Nucleo-4.pdf <font COLOR="#0000ff">Slide sul Nucleo</font>] (aggiornato il | [http://{{SERVERNAME}}/didattica/ProgettazioneSO/Lucidi/Nucleo-4.pdf <font COLOR="#0000ff">Slide sul Nucleo</font>] (aggiornato il 11/10/2024) <!--(aggiornato il 15/10/2023) (aggiornato il 18/10/2022) (aggiornato il 19/10/2021)17/10/2021 aggiornato il 19/10/2020 (18/10/2020 16/08/2020 aggiornato 21/10/2019 ore 14,15) --> | ||
<li> | <li> | ||
[http://{{SERVERNAME}}/didattica/ProgettazioneSO/Lucidi/Scheduler-4bis.pdf <font COLOR="#0000ff">Slide sul Nucleo bis: Scheduler </font>] (aggiornato il | [http://{{SERVERNAME}}/didattica/ProgettazioneSO/Lucidi/Scheduler-4bis.pdf <font COLOR="#0000ff">Slide sul Nucleo bis: Scheduler </font>] (aggiornato il 21/10/2024) <!-- (aggiornato il 20/10/2024, CORRETTO DUE OCCORRENZE DELLA PAROLA 'COSA' IN 'CODA'!) (aggiornato il 16/10/2024) (aggiornato il 15/10/2024) (aggiornato il 25/10/2022) 23/10/2022 (aggiornato il 25/10/2021) 20/10/2021) aggiornato il 16/08/2020 (aggiornato 22/10/2018 ore 09,50) --> | ||
<li> | <li> | ||
[http://{{SERVERNAME}}/didattica/ProgettazioneSO/Lucidi/Deadlock-6.pdf <font COLOR="#0000ff">Slide sul deadlock</font>] (aggiornato il | [http://{{SERVERNAME}}/didattica/ProgettazioneSO/Lucidi/Deadlock-6.pdf <font COLOR="#0000ff">Slide sul deadlock</font>] (aggiornato il 28/10/2024) <!-- (aggiornato il 22/10/2024) (aggiornato il 21/10/2024)(aggiornato il 20/10/2024) (aggiornato il 8/11/2022) aggiornato il 6/11/2022 aggiornato il 27/10/2021 aggiornato il 26/10/2021 aggiornato il 16/08/2020 (aggiornato 28/10/2019 ore 15,00)--> | ||
<li> | <li> | ||
[http://{{SERVERNAME}}/didattica/ProgettazioneSO/Lucidi/MemoriaAllocazioneContigua-7.pdf <font COLOR="#0000ff">Slide sulla Gestione della Memoria: metodi di allocazione contigua</font>] (aggiornato | [http://{{SERVERNAME}}/didattica/ProgettazioneSO/Lucidi/MemoriaAllocazioneContigua-7.pdf <font COLOR="#0000ff">Slide sulla Gestione della Memoria: metodi di allocazione contigua</font>] (aggiornato l'11/11/2024)<!--; i disegni mostrati a lezione lun. 6/11/2023 sono visibili [http://{{SERVERNAME}}/didattica/ProgettazioneSO/Lucidi/FiguraMemoriaPuntoDiVistaEsterno.pdf qui] (aggiornato il 10/11/2024) (aggiornato il 29/10/2024) (aggiornato il 5/11/2023) (aggiornato il 15/11/2022) (aggiornato il 13/11/2022) (aggiornato il 16/11/2021) (aggiornato il 9/11/2021) (aggiornato il 10/11/2020: corretto figura nella slide 33) (aggiornato il 16/08/2020) (aggiornato 13/11/2019 ore 14,05)--> | ||
<li> | <li> | ||
[http://{{SERVERNAME}}/didattica/ProgettazioneSO/Lucidi/MemoriaAllocazioneNonContigua-8.pdf <font COLOR="#0000ff">Slide sulla Gestione della Memoria: metodi di allocazione non contigua</font>] (aggiornato | [http://{{SERVERNAME}}/didattica/ProgettazioneSO/Lucidi/MemoriaAllocazioneNonContigua-8.pdf <font COLOR="#0000ff">Slide sulla Gestione della Memoria: metodi di allocazione non contigua</font>] (aggiornato l'11/11/2024)<!--(aggiornato il 20/11/2022) (aggiornato il 17/11/2021)(aggiornato il 16/11/2021)(aggiornato il 17/08/2020)(aggiornato 13/11/2019 ore 14,05)-->; se interessati, si veda anche [http://{{SERVERNAME}}/didattica/ProgettazioneSO/Lucidi/AppendiceAllaMemoria.pdf <font COLOR="#0000ff">Slide su gestione memoria in architetture Intel a 32/64 bit e nell’architettura ARM</font>] (tratti da cap. 8- Operating System Concepts – 9th Edition, Silberschatz, Galvin and Gagne ©2013) | ||
<li> | <li> | ||
[http://{{SERVERNAME}}/didattica/ProgettazioneSO/Lucidi/MemoriaVirtuale-8bis.pdf <font COLOR="#0000ff">Slide sulla Gestione della Memoria Virtuale</font>] (aggiornato il 26/11/2023: corretto un riferimento ad una slide in una nota) | [http://{{SERVERNAME}}/didattica/ProgettazioneSO/Lucidi/MemoriaVirtuale-8bis.pdf <font COLOR="#0000ff">Slide sulla Gestione della Memoria Virtuale</font>] (aggiornato il 19/11/2024) <!--(aggiornato il 17/11/2024)(aggiornato il 16/11/2024) (aggiornato il 26/11/2023: corretto un riferimento ad una slide in una nota)(aggiornato il 21/11/2023) (aggiornato il 29/11/2021)(aggiornato il 21/11/2021)(aggiornato il 23/11/2020)(aggiornato il 15/11/2020)(aggiornato il 17/08/2020) (aggiornato 25/11/2019 ore 17,35)--> | ||
<li> | <li> | ||
[http://{{SERVERNAME}}/didattica/ProgettazioneSO/Lucidi/FileSystem-9.pdf <font COLOR="#0000ff">Slide sulla Gestione dei file: livello logico</font>] (aggiornato il 28/11/2023)<!--(aggiornato il 17/12/2021) (aggiornato il 14/12/2021)(aggiornato il 12/12/2021)(aggiornato il 02/12/2021)(aggiornato il 30/11/2020)(aggiornato il 17/08/2020) (aggiornato 11/12/2019 ore 8,40-->; se interessati, si veda anche [http://{{SERVERNAME}}/didattica/ProgettazioneSO/Lucidi/AppendiceAlFileSystem.pdf <font COLOR="#0000ff">Slide su gestione dispositivi di memorizzazione </font>] (da Operating System Concepts – 9th Edition -cap.10, Silberschatz, Galvin and Gagne ©2013) | [http://{{SERVERNAME}}/didattica/ProgettazioneSO/Lucidi/FileSystem-9.pdf <font COLOR="#0000ff">Slide sulla Gestione dei file: livello logico</font>] (aggiornato il 28/11/2023)<!--(aggiornato il 17/12/2021) (aggiornato il 14/12/2021)(aggiornato il 12/12/2021)(aggiornato il 02/12/2021)(aggiornato il 30/11/2020)(aggiornato il 17/08/2020) (aggiornato 11/12/2019 ore 8,40-->; se interessati, si veda anche [http://{{SERVERNAME}}/didattica/ProgettazioneSO/Lucidi/AppendiceAlFileSystem.pdf <font COLOR="#0000ff">Slide su gestione dispositivi di memorizzazione </font>] (da Operating System Concepts – 9th Edition -cap.10, Silberschatz, Galvin and Gagne ©2013) |
Versione attuale delle 13:11, 19 nov 2024
Copyright lezioni: Su indicazione dell'Ateneo riporto questa comunicazione molto importante, che vale chiaramente anche per le video-registrazioni e altro materiale caricato sulla piattaforma Moodle/ex Dolly (link diretto): "È vietata la copia e la riproduzione dei contenuti e immagini in qualsiasi forma. È inoltre vietata la redistribuzione e la pubblicazione dei contenuti e immagini non autorizzata espressamente dall'autore o dall'Università di Modena e Reggio Emilia."
Questa pagina fornisce il materiale didattico e le informazioni relative all'insegnamento di Progettazione di Sistemi Operativi (9 CFU) per il Corso di Laurea Magistrale in Ingegneria Informatica, obbligatorio dall'A.A. 2022-23 per il curriculum Cloud And Cybersecurity-CC (precedentemente invece era obbligatorio dall'A.A. 2019-20 per il curriculum Cyber systems, invece negli A.A. 2017-18, anno di attivazione, e 2018-19, era obbligatorio per il curriculum Data Engineering and Analytics).
Questo materiale didattico per una buona parte deriva da quello dell'insegnamento di Principi di Sistemi Operativi che fino all'A.A. 2016-17 era attivo al I anno della Laurea Magistrale.
News
Per delibera del Consiglio dei Corsi di Studio di Ingegneria Informatica è stata stabilita una corrispondenza ore/CFU di 8 ore per CFU e non più 9 come in precedenza .
Docente
Prof. Letizia Leonardi, letizia.leonardi@unimore.it
Scheda ESSE3 dell'insegnamento
La scheda ESSE3 dell'insegnamento riporta molte informazioni utili come: Obiettivi formativi, Prerequisiti, Contenuti, Metodi didattici, Verifica dell'apprendimento, Testi e Risultati attesi
Ricevimento Studenti/Studentesse
Orario di ricevimento: Lunedì dalle 15 alle 17 (di norma, per eventuali modifiche consultare gli avvisi di Moodle) con prenotazione obbligatoria utilizzando il seguente link. Dal 27/09/2021, il ricevimento potrà essere sia in presenza che in remoto; nel caso venga richiesta la modalità remota usare il seguente link.
Stanza: MO-27-01-019, primo piano, Edificio 27 (vedi mappa), Dipartimento di Ingegneria "Enzo Ferrari" (Università di Modena e Reggio Emilia)
Via P. Vivarelli 10, 41125 MODENA; Telefono 0592056135
letizia.leonardi@unimore.it
Esercitatore (per la parte di Laboratorio)
A.A. 2024-25, A.A. 2023-24 e 2022-23: Dott.ssa Silvia Cascianelli, E-Mail: silvia.cascianelli@unimore.it
L'orario di ricevimento studenti/studentesse per la parte di laboratorio è su appuntamento mandando una e-mail alla Dott.ssa Silvia Cascianelli, per concordare l'orario preciso e il luogo. Si noti che è possibile fare ricevimento sia in remoto che in presenza; in questo ultimo caso, a seconda delle disponibilità che verranno comunicate in risposta alla e-mail di prenotazione, il ricevimento potrà avvenire presso l'ufficio della docente (MO-27-02-029 - secondo piano, Edificio 27, Dipartimento di Ingegneria "Enzo Ferrari") o presso la sala riunioni del Tecnopolo (MO-52-01-025 - primo piano, Edificio 52, Dipartimento di Ingegneria "Enzo Ferrari"). Ogni appuntamento ha una durata prevista di 20 minuti.
Moodle
Per l'A.A. 2024-25 la pagina Moodle è accessibile direttamente al link.
Orario delle Lezioni
Le lezioni di questo insegnamento sono collocate nel I semestre e per l'A.A. 2024-25 avranno inizio Lunedì 16 Settembre 2024, in presenza.
L'orario delle lezioni è disponibile sul sito di Ingegneria e in particolare quello di Progettazione di Sistemi Operativi si trova qui.
Qui di seguito si riporta, comunque, per comodità l'orario:
Lunedì |
ore 11-13 (lezione) |
Aula P2.1 (Fa-2a) |
Mercoledì |
ore 11-13 (lezione) |
Aula P2.1 (Fa-2a) |
Giovedì |
ore 11-13 (esercitazione) |
Lab. P2.5 (FA-2E) |
NOTE ALL'ORARIO:
- Le esercitazioni partiranno già nella seconda settimana di lezione; quindi nelle due ore di Giovedì (19/09/2024) verrà svolta una lezione.
- La lezione di Progettazione di Sistemi Operativi di Mer. 9/10 p.v. si terrà dalle 9 alle 11, invece che al normale orario e cioè dalle 11 alle 13, a causa della visita di Accreditamento che verrà svolta da Anvur presso il nostro Dipartimento e alla quale devo partecipare dalle 11.
- ATTENZIONE: L'esercitazione di Giovedì 17/10/2024, giorno delle Lauree, verrà probabilmente recuperata in una data e orario da stabilire!
Obiettivi dell'Insegnamento
L'obiettivo dell'insegnamento è di far raggiungere allo studente una buona conoscenza e capacità di comprensione di ogni livello/gestore di cui si compone un Sistema Operativo allo scopo di poter capire le problematiche di progettazione di un Sistema Operativo sia riguardo ai meccanismi di funzionamento che alle relative politiche. L'applicazione di queste conoscenze riguarda gli aspetti di progettazione di un Sistema Operativo ispirato a UNIX. Questo insegnamento rappresenta il completamento delle conoscenze rispetto all'insegnamento di Sistemi Operativi della Laurea triennale.
Programma dell'Insegnamento
Gli argomenti teorici che verranno affrontati saranno:
1) Generalità sui Sistemi Operativi Evoluzione storica: dai primi sistemi ai moderni sistemi operativi. Classificazione dei Sistemi Operativi: sistemi mono- e multi-utente, sistemi batch e interattivi, sistemi in time-sharing e real-time. Elementi di base di un Sistema Operativo: punto di vista esterno (utente o programmatore di sistema) e punto di vista interno.
2) Sistema Operativo come insieme di gestori delle risorse. In particolare:
a) Gestione della CPU Punto di vista esterno - tecniche di programmazione concorrente: modelli dei processi ad ambiente globale e ad ambiente locale; strumenti per la sincronizzazione di processi in ambiente globale (semafori, monitor, etc.) e locale (scambio di messaggi, RPC, etc.). Punto di vista interno - progettazione del nucleo: strutture dati e primitive; progettazione di algoritmi di scheduling; soluzioni al problema del blocco dei processi (deadlock).
b) Gestione della memoria Punto di vista esterno - programmi: assoluti, rilocabili staticamente, rilocabili dinamicamente. Punto di vista interno - progettazione dei metodi di allocazione: contigua (partizionamento statico e dinamico); swapping; segmentazione; non contigua (paginazione); gestione della memoria virtuale.
c) Gestione del File System Punto di vista esterno - organizzazione logica dei direttori e proprietà dei file; livello di programmazione. Punto di vista interno - progettazione dell'allocazione fisica in memoria secondaria: metodo contiguo; metodi non contigui (concatenamento e indicizzazione).
Quando necessario, questi argomenti saranno esemplificati rivedendone l'implementazione in UNIX/Linux.
Gli argomenti pratici che verranno affrontati in questo insegnamento saranno svolti utilizzando il linguaggio di programmazione di sistema C: in particolare, programmazione utilizzando fork/wait con pipe e programmazione utilizzando i Pthreads.
Registro delle lezioni
Dopo ogni lezione/esecitazione verrà compilato il registro con l'indicazione degli argomenti trattati.
Per l'A.A. corrente 2024-25 il registro si trova al link.
I registri relativi agli anni accademici precedenti sono accessibili ai seguenti link:
- Registro A.A. 2023-24
- Registro A.A. 2022-23
- Registro A.A. 2021-22
- Registro A.A. 2020-21
- Registro A.A. 2019-20
- Registro A.A. 2018-19
- Registro A.A. 2017-18
Modalità d'esame
L'esame si compone di una prova orale e da una tesina facoltativa che, nel caso, deve essere discussa prima della prova orale (ENTRO LA SCADENZA DELL'ISCRIZIONE ALLA PROVA ORALE). Per maggiori dettagli, vedere il seguito di questa pagina.
Prova orale
Nel caso uno studente abbia deciso di presentare una tesina, la prova orale può essere sostenuta solo dopo aver discusso tale tesina. Una volta sostenuta la prova orale, NON sarà possibile presentare alcuna tesina.
La prova orale spazia su tutto il programma che verrà svolto: come case-studies verrà fatto riferimento al Sistema Operativo UNIX/Linux.
Il voto della prova orale è espresso in trentesimi e può arrivare ad un massimo di 27/30: una volta concluso l'orale e comunicato il voto, non è possibile rifiutarlo. Nel documento possono essere trovati i riferimenti normativi UNIMORE a giustificazione di ciò.
Il voto dell'orale potrà essere incrementato di un valore da 1-4 punti nel caso di svolgimento e discussione della tesina facoltativa secondo quanto sotto illustrato.
Per l'iscrizione alla prova orale, di norma, viene inserito un appello su ESSE3, altrimenti inviare una email al docente per avere informazioni.
NOTA BENE: Sia nel caso di esami orali solo a distanza/misti (nel caso fosse necessario adottare questa modalità) o in presenza, gli studenti/studentesse interessati dovranno aggregarsi in gruppetti di almeno 3 per garantire il fatto che l'esame sia pubblico.
Tesina
La tesina è facoltativa. L'argomento della eventuale tesina va concordato e avrà come ambito principale quello della programmazione di sistema. Si ricorda a tutti gli studenti/studentesse che è fatto divieto utilizzare il logo dell'Ateneo, dato che per farlo sarebbe necessario chiedere un'autorizzazione!
La discussione della tesina deve avvenire prima della prova orale (ENTRO LA SCADENZA DELL'ISCRIZIONE ALLA PROVA ORALE): il voto preso dallo studente nella tesina influirà sul voto finale andando ad incrementare il voto della prova orale di un valore da 1 a 4 punti.
A.A. 2024-25
Si faccia riferimento al documento (con la solita password) per avere dettagli sui possibili argomenti delle tesine (data di caricamento 27/10/2023).
A.A. 2023-24
Si faccia riferimento al documento (con la solita password) per avere dettagli sui possibili argomenti delle tesine (data di caricamento 27/10/2023).
A.A. 2022-23
Si faccia riferimento al documento (con la solita password) per avere dettagli sui possibili argomenti delle tesine (ultimo aggiornamento 4/12/2022; data di caricamento 10/11/2022).
A.A. 2021-22
Si faccia riferimento al documento (con la solita password) per avere dettagli sui possibili argomenti delle tesine (data di caricamento 22/11/2021).
A.A. 2020-21
Si faccia riferimento al documento (con la solita password, modificato il 25/06/2021) per avere dettagli sui possibili argomenti delle tesine.
Note sugli esami
- Da un paio di A.A. vengono proposti agli studenti/studentesse dei quiz di autovalutazione (erogati su Moodle) al termine di ogni settimana di lezione; si consiglia vivamente di svolgerli in modo da verificare passo-passo la comprensione degli argomenti svolti a lezione.
- Si ricorda che l'eventuale tesina va discussa prima di poter sostenere la prova orale.
- Il voto della eventuale tesina ha, di norma, una validità di sei mesi.
- Per arrivare al massimo punteggio (30L/30) lo studente deve ottenere il punteggio massimo sia all'orale che nella tesina.
Appelli
Date
DA AGGIORNARE PER L'A.A. 2024-25!!!
Si segnala che d'accordo con gli studenti/studentesse frequentanti nell'A.A. 2023-24 è stato deciso di NON fissare delle date per tutto l'A.A. ma di concordarle volta per volta.
Per la sessione di esami di Gennaio-Febbraio 2024, sono state fissate 3 date derivanti da richieste degli studenti/studentesse: si comunica che gli appelli saranno resi visibili su ESSE3 solo dal 1/12/2023 dato che gli studenti/studentesse frequentanti sono bloccati nella iscrizione dal questionario OPIS che verrà aperto appunto in tale data:
1) Lun. 15/01/2024 (ore 09:00, aula P2.2), con iscrizioni fino a Ven. 12/01/2024;
2) Lun. 22/01/2024 (ore 09:00, aula P2.1), con iscrizioni fino a Ven. 19/01/2024;
3) Lun. 12/02/2024 (ore 09:00, aula P2.4), con iscrizioni a cura del docente.
A queste 3 date ne è stata aggiunta una quarta:
4) Lun. 19/02/2024 (ore 09:00, aula P2.4), con iscrizioni fino a Ven. 16/02/2024.
Si precisa che è stato fissato un limite in ESSE3, per tutte le date, di 6 studenti/studentesse, solo per capire se sia sufficiente la sola mattina oppure sia necessario anche il pomeriggio: l'aula è stata comunque prenotata per tutto il giorno; nel caso uno studente non si riesca ad iscrivere per raggiunta capienza, mandatemi una mail e creerò un appello per il pomeriggio della stessa data.
Per gli appelli delle sessioni successive (Giugno, Luglio e Settembre), di norma, viene inserito un appello su ESSE3 solo su richiesta e quindi inviare una email al docente per avere informazioni: ricordo che gli studenti/studentesse interessati a partecipare ad un appello dovranno aggregarsi in gruppetti di almeno 3 (di cui due potrebbero essere semplicemente uditori) per garantire il fatto che l'esame sia pubblico. Nel caso non riusciate ad organizzarvi in almeno 3 dovrò cercare la disponibilità di colleghi, che non facciano parte della commissione d'esame, ad essere presenti e quindi fissare gli appelli potrebbe essere un po' più complicato.
Consigli Utili
Per superare agevolmente la prova orale si consiglia agli studenti/studentesse di seguire con continuità le lezioni e le esercitazioni in laboratorio e non limitarsi a studiare pedissequamente le slide o i testi consigliati, ma di sforzarsi di creare i collegamenti mentali necessari per avere una visione di insieme di ogni argomento e fra i vari argomenti.
Testi Consigliati
Materiale come le slide utilizzate a lezione sono disponibili in questa pagina.
Comunque, testi di riferimento possono essere:
J. Peterson, A. Silberschatz: "Operating System Concepts", Addison Wesley, 1990 (anche versione italiana: SILBERSCHATZ A., GALVIN P., G. GAGNE: "Sistemi Operativi: concetti ed esempi - sesta edizione", Casa Editrice Addison-Wesley, 2002 e versioni seguenti). N.B. nelle slide che verranno utilizzate per le lezioni si sono utilizzate figure, in particolare, tratte da questo testo!
M. Milenkovic: "Sistemi Operativi", McGraw-Hill, 1990.
P. Ancilotti, M. Boari: "Principi e Tecniche di Programmazione Concorrente", UTET, 1988.
Il materiale usato durante le esecitazioni in laboratorio sarà disponibile a breve.
Slide dell'Insegnamento
Sono disponibili le slide in formato PDF usati durante le lezioni di teoria sui seguenti argomenti che necessitano tutti, a parte il primo file, di password di lettura (tale password sarà comunicata durante la prima lezione):
- Programma del corso e modalità di esame (aggiornato il 15/09/2024)
- Slide introduttive sui Sistemi Operativi: evoluzione e categorizzazione dei Sistemi Operativi (aggiornato il 17/09/2024)
- Slide sui processi: generalità (aggiornato il 19/09/2024)
- Slide sui processi: interazione fra processi (aggiornato il 25/09/2024, corretto una parola scritta errata)
- Slide sui processi: esempi di uso dei semafori (aggiornato il 25/09/2024, corretto una parola scritta errata)
- Slide sui processi: processi cooperanti in ambiente globale (aggiornato il 26/09/2024)
- Slide sui processi: costrutti di sincronizzazione in ambiente globale (aggiornato il 02/10/2024); se interessati, si veda anche Slide su altri costrutti di sincronizzazione (aggiornato il 16/08/2020)
- Slide su processi in ambiente Locale: processi comunicanti in ambiente locale (aggiornato lo 05/10/2024)
- Slide sul Nucleo (aggiornato il 11/10/2024)
- Slide sul Nucleo bis: Scheduler (aggiornato il 21/10/2024)
- Slide sul deadlock (aggiornato il 28/10/2024)
- Slide sulla Gestione della Memoria: metodi di allocazione contigua (aggiornato l'11/11/2024)
- Slide sulla Gestione della Memoria: metodi di allocazione non contigua (aggiornato l'11/11/2024); se interessati, si veda anche Slide su gestione memoria in architetture Intel a 32/64 bit e nell’architettura ARM (tratti da cap. 8- Operating System Concepts – 9th Edition, Silberschatz, Galvin and Gagne ©2013)
- Slide sulla Gestione della Memoria Virtuale (aggiornato il 19/11/2024)
- Slide sulla Gestione dei file: livello logico (aggiornato il 28/11/2023); se interessati, si veda anche Slide su gestione dispositivi di memorizzazione (da Operating System Concepts – 9th Edition -cap.10, Silberschatz, Galvin and Gagne ©2013)
- Slide sulla Gestione dei file: livello fisico (aggiornato il 13/12/2022); se interessati, si veda anche Slide su Network File System (NFS) (da Operating System Concepts – 9th Edition -cap.12, Silberschatz, Galvin and Gagne ©2013)
Inoltre sono disponibili le Slide sulla sicurezza degli studenti/studentesse.
Si avvisano inoltre gli studenti/studentesse che alla URL posso essere consultate alcuni elaborati triennali su tematiche relative in particolare a UNIX e/o Linux.
Laboratorio
A.A. 2024-25
Il materiale per le esercitazioni, che si terranno in presenza, verrà caricato mano a mano che procederanno le esercitazioni nella sezione Laboratorio di Moodle. Per quanto riguarda le possibili soluzioni, queste verranno caricate (sempre mano a mano) qui.
A.A. 2023-24
Il materiale per le esercitazioni, che si terranno in presenza, verrà caricato mano a mano che procederanno le esercitazioni nella sezione Laboratorio di Moodle. Per quanto riguarda le possibili soluzioni, queste verranno caricate (sempre mano a mano) qui.
A.A. 2022-23
Il materiale per le esercitazioni, che si terranno in presenza, verrà caricato mano a mano che procederanno le esercitazioni nella sezione Laboratorio di Moodle. Per quanto riguarda le possibili soluzioni, queste verranno caricate (sempre mano a mano) qui.
A.A. 2021-22
Il materiale per le esercitazioni, che si terranno in presenza, verrà caricato mano a mano che procederanno le esercitazioni (con la solita password). Per quanto riguarda le possibili soluzioni, queste verranno caricate (sempre mano a mano) qui.
Si segnalano, nel caso possano servire, i seguenti link a due video (realizzati nel secondo semestre dell'A.A. 2019-20 per il laboratorio di Sistemi Operativi e Lab. (della triennale):
- Installazione di Ubuntu su VirtualBox(a cura di Stefano Allegretti)
- Editor standard di UNIX/LINUX (vi)
Le esercitazioni, seguenti le prime tre, avranno come argomento i THREADS POSIX. In particolare:
- Per la esercitazione di Giovedì 16 Dicembre 2021 fare riferimento agli esercizi specificati nel documento.
- Per la esercitazione di Giovedì 9 Dicembre 2021 fare riferimento agli esercizi specificati nel documento: si veda il seguente documento per la descrizione del Problema dei Fumatori di sigarette e il seguente documento per la descrizione del Problema dei Cannibali a Cena.
- Per la esercitazione di Giovedì 25 Novembre 2021 fare riferimento agli esercizi specificati nel documento: si veda il seguente documento per la descrizione del Problema del Barbiere Addormentato.
- Per la esercitazione di Giovedì 18 Novembre 2021 fare riferimento agli esercizi specificati nel documento.
- Per la esercitazione di Giovedì 11 Novembre 2021 fare riferimento agli esercizi specificati nel documento.
- Per la esercitazione di Giovedì 28 Ottobre 2021 fare riferimento alle slide sui Thread (aggiornato il 27/10/2021), agli esercizi specificati nel documento e al file caricato nella cartella programmaBase in gitHub che contiene un programma da cui partire per svolgere gli esercizi proposti.
- Per la esercitazione di Mercoledì 20 Ottobre 2021 (in sostituzione di quella che si perde Giovedì 21/10/21 a causa delle lauree) fare riferimento alle slide sui Thread (aggiornato il 27/10/2021), ai file caricati nella cartella quartaEsercitazione in gitHub e al file di output di questi primi esempi sui thread.
Le prime tre esercitazioni (quella di Gio. 30/09, quella di Gio. 7/10/2021 e quella di Gio. 14/10/21) avranno come argomento un ripasso della programmazione di sistema utilizzando il C, per UNIX/Linux.
Per avere sottomano l'insieme delle primitive (invocabili come funzioni di libreris del C) che potrà essere necessario utilizzare, si fornisce una versione estratta e condensata delle slide utilizzate su questo argomento in Sistemi Operativi e Lab. della Laurea Triennale di Ingegneria Informatica (di Modena): Slide su file, processi e pipe in UNIX/Linux
- Per la esercitazione di Giovedì 14 Ottobre 2021 fare riferimento agli esercizi specificati nel documento.
- Per la esercitazione di Giovedì 7 Ottobre 2021 fare riferimento agli esercizi specificati nel documento.
- Per la esercitazione di Giovedì 30 Settembre 2021 fare riferimento agli esercizi specificati nel documento. Si forniscono anche alcune slide che risultano propedeutiche per la comprensione di alcuni degli esercizi della prima esercitazione: slide su cat e head (aggiornato il 30/09/2021)
A.A. 2020-21
Il materiale per le esercitazioni, che per l'A.A. 2020-21 si terranno in modalità remota, verrà caricato mano a mano che procederanno le esercitazioni (con la solita password). Le prime due esercitazioni (quella di Ven. 2/10 e quella di Ven. 9/10/2020) avranno come argomento un ripasso della programmazione di sistema utilizzando il C, per UNIX/Linux.
Per avere sottomano l'insieme delle primitive (invocabili come funzioni di libreris del C) che potrà essere necessario utilizzare, si fornisce una versione estratta e condensata delle slide utilizzate su questo argomento in Sistemi Operativi e Lab. della Laurea Triennale di Ingegneria Informatica (di Modena): Slide su file, processi e pipe in UNIX/Linux
- Per la esercitazione di Venerdì 2 Ottobre 2020 fare riferimento agli esercizi specificati nel documento, mentre nel documento si trovano le soluzioni (aggiornato il 15/10/2020). Si forniscono anche alcune slide che risultano propedeutiche per la comprensione di alcuni degli esercizi della prima esercitazione: slide su cat e head (aggiornato il 2/10/2020, ore 13,30)
- Per la esercitazione di Venerdì 9 Ottobre 2020 fare riferimento agli esercizi specificati nel documento, mentre nel documento si trovano le soluzioni.
- Per la esercitazione di Venerdì 16 Ottobre 2020 fare riferimento agli esercizi specificati nel documento, mentre nel documento si trovano le soluzioni.
- Per la esercitazione di Venerdì 23 Ottobre 2020 fare riferimento alle slide sui Thread (aggiornato il 27/11/2020-precisazione su 'spurious wake-up'), ai file caricati nella cartella primeProve in qui che contengono dei primi esempi e al file di output di questi primi esempi sui thread.
- Per la esercitazione di Venerdì 30 Ottobre 2020 fare riferimento agli esercizi specificati nel documento, al file caricato nella cartella programmaBase in qui che contiene un programma da cui partire per svolgere gli esercizi proposti; le soluzione sono state caricate nella cartella Esercitazione30Ottobre2020 sempre su GitHub.
- Per la esercitazione di Venerdì 6 Novembre 2020 fare riferimento agli esercizi specificati nel documento; le soluzione sono state caricate nella cartella Esercitazione6Novembre2020 sempre su GitHub.
- Per la esercitazione di Venerdì 13 Novembre 2020 fare riferimento agli esercizi specificati nel documento; le soluzione sono state caricate nella cartella Esercitazione13Novembre2020 sempre su GitHub.
- Per la esercitazione di Venerdì 20 Novembre 2020 fare riferimento agli esercizi specificati nel documento: si veda il seguente documento per la descrizione del Problema del Barbiere Addormentato (aggiornato 24/11/2020); le soluzione sono state caricate nella cartella Esercitazione20Novembre2020 sempre su GitHub.
- Per la esercitazione di Venerdì 27 Novembre 2020 fare riferimento agli esercizi specificati nel documento: si veda il seguente documento per la descrizione del Problema dei Fumatori di sigarette e il seguente documento per la descrizione del Problema dei Cannibali a Cena; le soluzione sono state caricate nella cartella Esercitazione27Novembre2020 sempre su GitHub.
- Per la esercitazione di Venerdì 4 Dicembre 2020 fare riferimento agli esercizi specificati nel documento; le soluzione sono state caricate nella cartella EsercitazioneDicembre2020 sempre su GitHub.
- Per la esercitazione di Venerdì 11 Dicembre 2020 fare riferimento al documento.
Per gli A.A. precedenti (all'A.A. 2020-21) in cui è stato usato il Sistema Operativo xv6 si può fare riferimento alla URL e al Prof. Bicocchi.
Tesi
Se interessate/i a svolgere una tesi di di Laurea Magistrale su argomenti collegati a questo insegnamento o ad altri argomenti di ricerca inviare una mail a letizia.leonardi@unimore.it e/o a silvia.cascianelli@unimore.it.