From Agentgroup
Jump to: navigation, search
(Orario delle Lezioni)
(Laboratorio)
Line 417: Line 417:
  
  
 
+
----
 
Per gli A.A. precedenti (all'A.A. 2020-21) in cui è stato usato il Sistema Operativo xv6 si può fare riferimento alla  [https://github.com/nbicocchi/operatingsystemsmsc URL] e al Prof. Bicocchi.
 
Per gli A.A. precedenti (all'A.A. 2020-21) in cui è stato usato il Sistema Operativo xv6 si può fare riferimento alla  [https://github.com/nbicocchi/operatingsystemsmsc URL] e al Prof. Bicocchi.
 
<!--aggiornata il 1/02/2019 dopo ricezione mail Nicola [https://bitbucket.org/agr_unimore/operatingsystemsmsc URL] -->
 
<!--aggiornata il 1/02/2019 dopo ricezione mail Nicola [https://bitbucket.org/agr_unimore/operatingsystemsmsc URL] -->

Revision as of 10:12, 23 October 2020

Copyright lezioni a distanza: Su indicazione dell'Ateneo riporto questa comunicazione molto importante, che vale chiaramente anche per le video-registrazioni e altro materiale caricato sulla piattaforma Dolly: "È 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."

IMPORTANTISSIMO (17/08/2020): Stante il perdurare della nota situazione di emergenza dovuta al COVID-19, le lezioni saranno erogate a distanza, probabilmente tramite la piattaforma Dolly!

NOTA DEL 17/09/2020: Le lezioni teoriche verranno svolte a distanza in modo sincrono(streaming con video-registrazione) (come riportato anche su Dolly2020), così come le esercitazioni di laboratorio (anche se per le esercitazioni si valuteranno quali o quali parti delle esercitazione sia opportuno video-registrare).


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. 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 che fino all'A.A. 2016-17 era attivo al I anno della Laurea Magistrale.

News

In data 19/12/2019 è stato predisposto un quiz di autovalutazione su Dolly: si prega di segnalare qualunque problema incontriate nel suo svolgimento.

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 .

Informazioni sul docente

Letizia-Nov2010.jpg

Prof. Letizia Leonardi

Stanza: MO-27-01-019, primo piano, Edificio 27, Dipartimento di Ingegneria "Enzo Ferrari" (Università di Modena e Reggio Emilia)

Via P. Vivarelli 10, 41125 MODENA

Telefono 0592056135 - Fax 0592056129

letizia.leonardi@unimore.it

Orario di ricevimento: Dal 21/09/2020, l'orario di ricevimento studenti sarà il Lunedì dalle 15 alle 17 (di norma, per eventuali modifiche consultare la pagina), ma poichè si svolgerà in modo remoto è necessario prenotarsi utilizzando il seguente link. Come indicato nella pagina di prenotazione, il ricevimento studenti utilizzerà il google meet indicato: per maggior chiarezza di quale meet si debba utilizzare si veda l'immagine

Orario delle Lezioni

Le lezioni di questo insegnamento sono collocate nel I semestre e per l'A.A. 2020-21 avranno inizio Lunedì 21 Settembre 2020 in modalità remota sincrona, utilizzando Collaborate tramite Dolly.

L'orario delle lezioni è disponibile sul sito di Ingegneria e in particolare quelle di Progettazione di Sistemi Operativi si trova qui.

Qui di seguito si riporta, comunque, per comodità l'orario:

Lunedì

ore 11-13 (lezione)

aula virtuale

Mercoledì

ore 11-13 (lezione)

aula virtuale

Venerdì

ore 11-13 (esercitazione)

aula/laboratorio virtuale


NOTE ALL'ORARIO:

Per la prima settimana di lezione, nelle due ore di Venerdì (25/09/2020) verrà svolta lezione invece che esercitazioni.

Obiettivi dell'Insegnamento

Faq.png

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.

Registro delle lezioni

Dopo ogni lezione/esecitazione verrà compilato il registro con l'indicazione degli argomenti trattati.

Per l'A.A. corrente 2020-21 il registro si trova al link.

I registri relativi agli anni accademici precedenti sono accessibili ai seguenti link:

Modalità d'esame

ModalitaEsame.png

ATTENZIONE (17/08/2020): Per l'A.A. 2020-21 le prove potrebbero essere svolte in presenza o a distanza a seconda dell'evoluzione della situazione COVID19.

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 (AGGIORNATE REGOLE DALL'A.A. 2019-20)

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. Tale voto 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: Durante la sessione estiva (Giugno-Luglio e Settembre 2020) potranno essere organizzati esami orali solo a distanza, come previsto dalle linee guida di Ateneo: gli studenti interessati dovranno aggregarsi in gruppetti di almeno 3 studenti per garantire il fatto che l'esame sia pubblico e dovranno contattarmi per email per fissare una data in Giugno, una data in Luglio e una in Settembre (come disponibilità di minimo). Nel caso non riusciate ad organizzarvi in almeno 3 studenti dovrò avere la disponibilità di colleghi, che non facciano parte della commissione d'esame, ad essere presenti e quindi fissare le date potrebbe essere un po' più complicato.

Tesina

Tesina.png

La tesina è facoltativa. L'argomento della eventuale tesina va concordato e avrà come ambito quello della programmazione di sistema. Nota bene: per gli studenti degli A.A. in cui le esercitazioni vertevano sul sistema operativo xv6, si deve fare riferimento a tale ambito per la tesina e di conseguenza bisogna contattare il Prof. Nicola Bicocchi esclusivamente fino ad APRILE 2021. 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.

Note sugli esami

Attenzione.png
  1. In data 19/12/2019 è stato predisposto un quiz di autovalutazione su Dolly: si prega di segnalare qualunque problema incontriate nel suo svolgimento.
  2. Si ricorda che l'eventuale tesina va discussa prima di poter sostenere la prova orale.
  3. Il voto della eventuale tesina ha, di norma, una validità di sei mesi.
  4. Per arrivare al massimo punteggio (30L/30) lo studente deve ottenere il punteggio massimo sia all'orale che nella tesina.

Appelli

Date

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: Durante la sessione estiva (Giugno-Luglio e Settembre 2020) potranno essere organizzati esami orali solo a distanza, come previsto dalle linee guida di Ateneo: gli studenti interessati dovranno aggregarsi in gruppetti di almeno 3 studenti per garantire il fatto che l'esame sia pubblico e dovranno contattarmi per email per fissare una data in Giugno, una data in Luglio e una in Settembre (come disponibilità di minimo). Nel caso non riusciate ad organizzarvi in almeno 3 studenti dovrò avere la disponibilità di colleghi, che non facciano parte della commissione d'esame, ad essere presenti e quindi fissare le date potrebbe essere un po' più complicato.

Consigli Utili

Attenzione.png

Per superare agevolmente la prova orale si consiglia agli studenti di seguire con continuità le lezioni e le esercitazioni in laboratorio e non limitarsi a studiare pedissequamente i lucidi o i testi consigliati, ma di sforzarsi di creare i collegamenti mentali necessari per avere una visione di insieme di ogni argomento.


Testi Consigliati

Textbook.png

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

Lucidi.png

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):

  1. Programma del corso e modalità di esame (aggiornato il 20/09/2020)
  2. Slide introduttive sui Sistemi Operativi: evoluzione e categorizzazione dei Sistemi Operativi (aggiornato il 24/09/2020)
  3. Slide sui processi: generalità (aggiornato il 24/09/2020)
  4. Slide sui processi: interazione fra processi (aggiornato il 16/08/2020)
  5. Slide sui processi: esempi di uso dei semafori (aggiornato il 1/10/2020, corretto il : in ;)
  6. Slide sui processi: processi cooperanti in ambiente globale (aggiornato il 16/08/2020)
  7. Slide sui processi: costrutti di sincronizzazione in ambiente globale ; se interessati, si veda anche Slide su altri costrutti di sincronizzazione (aggiornati il 16/08/2020)
  8. Slide su processi in ambiente Locale: processi comunicanti in ambiente locale (aggiornato il 16/08/2020)
  9. Slide sul Nucleo (aggiornato il 19/10/2020)
  10. Slide sul Nucleo bis: Scheduler (aggiornato il 16/08/2020)
  11. Slide sul deadlock (aggiornato il 16/08/2020)
  12. Slide sulla Gestione della Memoria: metodi di allocazione contigua (aggiornato il 16/08/2020)
  13. Slide sulla Gestione della Memoria: metodi di allocazione non contigua (aggiornato il 17/08/2020); se interessati, si veda anche Lucidi 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)
  14. Slide sulla Gestione della Memoria Virtuale (aggiornato il 17/08/2020)
  15. Slide sulla Gestione dei file: livello logico (aggiornato il 17/08/2020); se interessati, si veda anche Slide su gestione dispositivi di memorizzazione (da Operating System Concepts – 9th Edition -cap.10, Silberschatz, Galvin and Gagne ©2013)
  16. Slide sulla Gestione dei file: livello fisico (aggiornato il 17/08/2020); 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.

Si avvisano inoltre gli studenti che alla URL posso essere consultate alcuni elaborati triennali su tematiche relative in particolare a UNIX e/o Linux.

Laboratorio

Strumenti.png

Il materiale per le esecitazioni, 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).

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):

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 TO BE UPLOADED.
  • Per la esercitazione di Venerdì 23 Ottobre 2020 fare riferimento alle slide sui Thread, 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 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

Accedendo all'applicazione specifica si potranno trovare degli argomenti di tesi di Laurea Magistrale collegati a questo insegnamento.