Sistemi Operativi

Avvisi

Informazioni generali del corso

Nome del corso: Sistemi Operativi [MN1-1144]
Docente: Mauro Andreolini
Corso di Studio: Laurea Triennale in Informatica
Tipologia: Caratterizzante
CFU: 9
Periodo Didattico: primo trimestre

Recapiti docente:

Edizioni precedenti del corso

Edizione 2017-18: disponibile qui.

Obiettivi formativi

Gli studenti acquisiranno una conoscenza di base sulle tecniche di progettazione e sviluppo dei moderni sistemi operativi multiprogrammati ed a condivisione di tempo, con particolare riferimento ai componenti principali quali ad esempio lo scheduler dei processi ed il file system. Nell'ambito delle esercitazioni gli studenti saranno messi in condizione di risolvere problemi tipici di amministrazione, di un sistema operativo popolare (GNU/Linux). L'approccio adottato nelle esercitazioni è del tipo "impara facendo"; le metodologie e gli strumenti di risoluzione dei problemi sono tempestivamente messe in pratica al calcolatore con esercizi di complessità crescente. Agli studenti più desiderosi di approfondire lo studio della materia viene messa a disposizione la possibilità di risolvere quesiti settimanali più complessi (gli "arzigogoli"), avvalendosi dei consigli e della guida tecnica del docente.

Programma del corso

  • Cenni storici
  • Linea di comando
  • Virtualizzazione
  • Gestore dei processi
  • Schedulazione della CPU
  • Utenti e gruppi
  • Modello di sicurezza UNIX
  • Distribuzioni GNU/Linux
  • Gestore del file system
  • Gestore della memoria
  • Esecuzione di immagini

Testi

Testi di riferimento

Testi di approfondimento

Orario delle lezioni

  • Lunedì: h. 11:00-14:00 (Aule L1.3 Fisica)
  • Giovedì: h. 14:00-17:00 (Aula L1.2 Fisica)

Lucidi delle lezioni e delle esercitazioni

Lezione 1: Introduzione al corso di Sistemi Operativi

Data: lunedì 24 settembre 2018 11:00 - 13:00
Slide:

Lezione 2: Cenni storici

Data: lunedì 24 settembre 2018 11:00 - 13:00
Data: martedì 25 settembre 2018 11:00 - 13:00
Slide: Riferimenti bibliografici: Approfondimenti:

Lezione 3: Linea di comando

Data: giovedì 27 settembre 2018 15:00 - 17:00
Slide: Riferimenti bibliografici:
  • Sistemi Operativi, Cap. 2.2: Le interfacce utente e di sistema
Approfondimenti:

Lezione 4: VirtualBox

Data: lunedì 1 ottobre 2018 11:00 - 14:00
Data: giovedì 4 ottobre 2018 14:00 - 17:00
Data: lunedì 8 ottobre 2018 11:00 - 14:00
Slide: Riferimenti bibliografici:
  • Sistemi Operativi, Cap. 16.1: Introduzione alla virtualizzazione
  • Sistemi Operativi, Cap. 16.2: Contesto storico
  • Sistemi Operativi, Cap. 16.3: Vantaggi e caratteristiche
Approfondimenti:

Lezione 5: Processi

Data: giovedì 11 ottobre 2018 14:00 - 17:00
Data: lunedì 15 ottobre 2018 11:00 - 14:00
Data: giovedì 18 ottobre 2018 14:00 - 17:00
Data: lunedì 19 ottobre 2018 11:00 - 14:00
Data: giovedì 22 ottobre 2018 14:00 - 17:00
Riferimenti bibliografici:
  • Sistemi Operativi, Cap. 3.1: Concetto di processo
  • Sistemi Operativi, Cap. 3.2: Scheduling dei processi
  • Sistemi Operativi, Cap. 3.3: Operazioni sui processi
  • Sistemi Operativi, Cap. 2.3: Chiamate di sistema
  • Sistemi Operativi, Cap. 2.4: Tipologie di chiamate di sistema
  • Sistemi Operativi, Cap. 2.5: Programmi di sistema
Approfondimenti:

Lezione 6: Schedulazione della CPU

Data: giovedì 25 ottobre 2017 14:00 - 17:00
Data: lunedì 29 ottobre 2017 11:00 - 14:00
Data: lunedì 5 novembre 2017 11:00 - 14:00
Slide: Approfondimenti:

Lezione 7: Autenticazione

Data: giovedì 8 novembre 2018 14:00 - 17:00
Slide:

Lezione 8: Autorizzazione

Data: lunedì 12 novembre 2018 11:00 - 14:00
Slide:

Lezione 9: Liste di controllo degli accessi

Data: giovedì 15 novembre 2018 14:00 - 17:00
Data: lunedì 19 novembre 2018 11:00 - 14:00
Slide:

Lezione 10: Elevazione dei privilegi

Data: lunedì 19 novembre 2018 11:00 - 14:00
Data: giovedì 22 novembre 2018 14:00 - 17:00

Lezione 11: Contrasto alle attività maliziose

Data: lunedì 26 novembre 2018 11:00 - 14:00
Data: giovedì 29 novembre 2018 14:00 - 17:00
Slide: Approfondimenti:

Lezione 12: Distribuzioni software

Data: giovedì 29 novembre 2018 14:00 - 17:00
Data: lunedì 3 dicembre 2018 11:00 - 14:00
Data: giovedì 6 dicembre 2018 14:00 - 17:00
Slide: Approfondimenti:

Lezione 13: Debian

Data: giovedì 6 dicembre 2018 14:00 - 17:00
Data: lunedì 10 dicembre 2018 11:00 - 14:00
Data: giovedì 13 dicembre 2018 14:00 - 17:00
Approfondimenti:

Lezione 14: Preparazione di un file system

Data: lunedì 17 dicembre 2018 11:00 - 14:00
Slide: Approfondimenti:

Lezione 15: Uso di base del file system

Data: giovedì 20 dicembre 2018 14:00 - 17:00
Slide:

Arzigogoli

Arzigogolo 1

Data: giovedì 27 settembre 2018
Testo: liberamente scaricabile qui (48KB)

Arzigogolo 2

Data: giovedì 4 ottobre 2018
Testo: liberamente scaricabile qui (65KB)

Arzigogolo 3

Data: giovedì 11 ottobre 2018
Testo: liberamente scaricabile qui (69KB)

Arzigogolo 4

Data: giovedì 18 ottobre 2018
Testo: liberamente scaricabile qui (75KB)

Arzigogolo 5

Data: giovedì 25 ottobre 2018
Testo: liberamente scaricabile qui (78KB)

Arzigogolo 6

Data: giovedì 8 novembre 2018
Testo: liberamente scaricabile qui (64KB)

Arzigogolo 7

Data: giovedì 15 novembre 2018
Testo: liberamente scaricabile qui (75KB)
Programma eseguibile pw64 (17KB)
Programma eseguibile pw32 (7.5KB)
Programma eseguibile pinger64 (17KB)
Programma eseguibile pinger32 (7.2KB)
Immagine landscape.jpg (6.3MB)

Arzigogolo 8

Data: giovedì 22 novembre 2018
Testo: liberamente scaricabile qui (66KB)
Programma eseguibile haxor (12KB)

Arzigogolo 9

Data: giovedì 29 novembre 2018
Testo: liberamente scaricabile qui (51KB)

Arzigogolo 10

Data: venerdì 7 dicembre 2018
Testo: liberamente scaricabile qui (64KB)
Allegato: immagine OVA compressa della macchina virtuale (3.1GB)

Arzigogolo 11

Data: giovedì 13 dicembre 2018
Testo: liberamente scaricabile qui (64KB)

Hall of Fame studenti (in ordine di data e alfabetico)

Nome studente Data Motivazione Punteggio parziale Punteggio totale
Lorenzo Carletti venerdì 28 settembre 2018, 13:16 Soluzione dell'Arzigogolo 1.
Testo: A1-testo.pdf (48KB)
Soluzione: A1-soluzione.pdf (74KB)
Archivio ZIP allegato: A1-dati.zip (194KB)
Data pubblicazione: giovedì 27 settembre 2018, 11:10:00
Data ricezione soluzione: venerdì 28 settembre 2018, 13:16:10
Tempo impiegato: 1 giorno, 2 ore, 6 minuti, 10 secondi
3 3
Lorenzo Carletti venerdì 12 ottobre 2018, 00:08 Soluzione dell'Arzigogolo 2.
Testo: A2-testo.pdf (65KB)
Soluzione: A2-soluzione.pdf (214KB)
Data pubblicazione: giovedì 4 ottobre 2018, 9:46:00
Data ricezione soluzione: venerdì 12 ottobre 2018, 00:08:28
Tempo impiegato: 7 giorni, 14 ore, 22 minuti, 28 secondi
1.5 4.5
Mirko Cangiano lunedì 15 ottobre 2018, 13:46

Il docente ha dichiarato che, nelle versioni attuali di Debian, il campo WCHAN del descrittore dei processi è sempre omesso per motivi di sicurezza. Lo studente ha fornito un controesempio: ps -l -U andreoli mostra alcuni processi con il campo WCHAN non nullo.

1/3 1/3
Alessandro Caliò lunedì 15 ottobre 2018, 13:48

Il docente ha dichiarato che, nella versione attuale di Arch, il campo WCHAN del descrittore dei processi è sempre omesso per motivi di sicurezza. Lo studente ha fornito un controesempio: ps -l -U andreoli mostra alcuni processi con il campo WCHAN non nullo.

1/3 1/3
Andrea Artioli martedì 16 ottobre 2018, 9:01:47

Lo studente ha chiesto perché nell'output di pstree figurino anche le parentesi tonde (processo (sd-pam). Il docente non ha saputo dare una risposta a questa domanda. Il motivo è semplice: il programma eseguito ha nome (sd-pam) (incluse parentesi!). Pstree non ha nulla a che vedere con le parentesi tonde esibite dal processo.

1/3 1/3
Lorenzo Carletti venerdì 19 ottobre 2018, 18:14:21

Lezione 5-processi.pdf, slide 127: l'opzione x di ps non rimuove la restrizione sui processi collegati al terminale corrente. L'opzione x di ps rimuove la restrizione sui processi collegati ad un terminale qualunque. Le slide sono state corrette in tal senso.

1/2 5
Giovanni Buzzega mercoledì 24 ottobre 2018, 16:31:18 Soluzione dell'Arzigogolo 3.
Testo: A3-testo.pdf (69KB)
Soluzione: A3-soluzione.pdf (194KB)
Data pubblicazione: giovedì 11 ottobre 2018, 12:43:00
Data ricezione soluzione: mercoledì 24 ottobre 2018, 16:31:18
Tempo impiegato: 13 giorni, 3 ore, 48 minuti, 18 secondi
1.5 1.5
Giovanni Buzzega lunedì 29 ottobre 2018, 14:17

Lezione 6-schedulazione-cpu.pdf, slide 72: si afferma che "i valori di priorità mostrati da top variano nell'intervallo [0, 39]. In realtà sono i valori di priorità statica a variare in tale intervallo.

1/2 2
Sebastiano Manfredini lunedì 5 novembre 2018, 11:18:17 Soluzione dell'Arzigogolo 5.
Testo: A5-testo.pdf (78KB)
Soluzione: A5-soluzione.pdf (100KB)
Archivio TAR allegato: A5-soluzione.tar.bz2 (55KB)
Data pubblicazione: giovedì 25 ottobre 2018, 11:06:00
Data ricezione soluzione: mercoledì 5 novembre 2018, 11:18:17
Tempo impiegato: 11 giorni, 0 ore, 12 minuti, 17 secondi
1.5 1.5
Sebastiano Manfredini domenica 18 novembre 2018, 15:21.25 Soluzione dell'Arzigogolo 7.
Testo: A7-testo.pdf (75KB)
Soluzione: A7-soluzione.pdf (359KB)
Codice sorgente allegato: pw64.c (1.4KB)
Data pubblicazione: giovedì 15 novembre 2018, 12:57:00
Data ricezione soluzione: domenica 18 novembre 2018, 15:21:25
Tempo impiegato: 3 giorni, 2 ore, 24 minuti, 25 secondi
3 4.5
Giovanni Buzzega mercoledì 21 novembre 2018, 15:21

Lezione 6-schedulazione-cpu.pdf, slide 73: il docente cambia erroneamente la slide, affermando che la priorità statiche di ps variano in [-40, 99]. In realtà è l'intero intervallo di priorità a variare in [-40, 99].

Il nome del personaggio della frase del giorno è stato corretto.

1/2 2.5
Giovanni Buzzega giovedì 22 novembre 2018, 18:29:00

Lezione 10-elevazione-privilegi.pdf, slide 91: il docente afferma erroneamente che la direttiva includedir sia commentata. In realtà, il carattere # fa parte della direttiva.

1/2 3
Giovanni Buzzega giovedì 22 novembre 2018, 20:34:00

Lezione 6-soluzioni.pdf, slide 7: manca un carattere / nel comando cat /proc$(pgrep -n top)/stack.

1/3 10/3
Sebastiano Manfredini lunedì 26 novembre 2018, 15:30:52

Lezione 11-contrasto-attivita-maliziose.pdf, slide 55: il docente confronta erroneamente le modifiche imposte dal comando ulimit su due terminali distinti, laddove ulimit opera solo sul terminale corrente. Inoltre, il docente si impappina nel tentativo di spiegare l'impostazione dei limiti soft e hard con ulimit.

Le slide sono state arricchite con una ulteriore demo (slide 55-64) volta a spiegare in dettaglio l'impostazione dei limiti tramite ulimit.

1/2 5
Andrea Ianniciello lunedì 26 novembre 2018, 17:16:53 Soluzione dell'Arzigogolo 8.
Testo: A8-testo.pdf (66KB)
Soluzione: A8-soluzione.pdf (482KB)
Data pubblicazione: giovedì 22 novembre 2018, 12:58:00
Data ricezione soluzione: lunedì 26 novembre 2018, 17:16:53
Tempo impiegato: 4 giorni, 4 ore, 18 minuti, 53 secondi
3 3
Lorenzo Carletti martedì 27 novembre 2018, 13:56:02

Lezione 11-contrasto-attivita-maliziose.pdf: lo studente fà notare l'esistenza del comando usermod -L per il blocco temporaneo degli account. Le slide sono state aggiornate in tal senso.

1/3 16/3
Giovanni Buzzega giovedì 6 dicembre 2018, 01:16:15 Soluzione dell'Arzigogolo 9.
Testo: A9-testo.pdf (51KB)
Soluzione: A9-soluzione.pdf (116KB)
Archivio TAR allegato: A9-soluzione.tar.gz (56KB)
Data pubblicazione: giovedì 29 novembre 2018, 10:42:00
Data ricezione soluzione: giovedì 6 dicembre 2018, 01:16:15
Tempo impiegato: 6 giorni, 14 ore, 34 minuti, 15 secondi
3 19/3
Andrea Ianniciello domenica 9 dicembre 2018, 22:31:55 Soluzione dell'Arzigogolo 10.
Testo: A10-testo.pdf (64KB)
Soluzione: A10-soluzione.pdf (437KB)
Data pubblicazione: venerdì 7 dicembre 2018, 16:41:00
Data ricezione soluzione: domenica 9 dicembre 2018, 22:31:55
Tempo impiegato: 2 giorni, 5 ore, 50 minuti, 55 secondi
3 3

Ricevimento studenti

il ricevimento studenti è fissato mercoledì in orario 14:00 - 16:00 nello studio del docente (edificio di matematica, secondo piano, stanza mo-18-02-008). per richieste più semplici e puntuali è possibile contattare il docente anche per e-mail. Si faccia riferimento al seguente documento per capire come porre domande tecniche con profitto: how to ask questions the smart way.

Modalità d'esame

l'esame si compone di un colloquio orale di tre domande (la prima pratica, le ultime due teoriche e pratiche). lo studente ha a disposizione 20 minuti max. per rispondere correttamente alla domanda pratica e 15 minuti max. per rispondere correttamente ad una domanda teorica. ciascuna domanda contribuisce con un max. di 10 punti al voto finale. a tale punteggio saranno sommati i punti bonus acquisiti durante il corso. come si acquisiscono i punti bonus? risolvendo gli arzigogoli (attenzione: solo chi consegna per primo la soluzione valida ottiene il punto!) e/o correggendo gli errori non banali del docente (spiacente, i typo non valgono!). se il punteggio finale ottenuto al termine dell'esame supera i 30 punti, viene automaticamente assegnata la lode.

in caso di esito brillante (tutte e tre le domande risposte correttamente in un tempo complessivo strettamente minore di 45 minuti) e di mancanza di punti bonus, il docente può proporre una ulteriore domanda per ottenere la lode. tale domanda avrà un grado di difficoltà superiore a quello delle domande usuali, e dovrà essere risposta nel tempo limite di 15 minuti. in caso di risposta soddisfacente, lo studente prenderà 30 e lode. in caso di errore, il voto finale sarà abbassato in misura pari alle imprecisioni commesse durante l'esposizione.

Iscrizione agli esami

Per iscriversi ad uno degli appelli previsti, occorre prenotarsi tramite il sistema esse3.