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 2021-22: 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

  • Mercoledì: h. 9:00-11:00 (Aula L1.3)
  • Giovedì: h. 9:00-11:00 (Aula L1.3)
  • Venerdì: h. 9:00-11:00 (Aula M1.7)
    Venerdì: 4 novembre 2022: h.9:00-11:00 (Aula L1.3)
    Venerdì: 2 dicembre 2022: h.9:00-11:00 (Aula L1.3)

Lucidi delle lezioni e delle esercitazioni

Parte 0: Introduzione

Lezione 1: Introduzione al corso di Sistemi Operativi

Data: mercoledì 28 settembre 2022 9:00 - 11:00
Slide:

Lezione 2: Cenni storici

Data: giovedì 29 settembre 2022 9:00 - 11:00
Data: venerdì 30 settembre 2022 9:00 - 11:00
Data: mercoledì 5 ottobre 2022 9:00 - 11:00
Slide: Riferimenti bibliografici: Approfondimenti:

Parte 1: Introduzione ai comandi UNIX

Lezione 3: Interfacce utente

Data: giovedì 6 ottobre 2022 9:00 - 11:00
Data: venerdì 7 ottobre 2022 9:00 - 11:00
Slide: Riferimenti bibliografici:
  • Sistemi Operativi, Cap. 2.2: Le interfacce utente e di sistema

Lezione 4: Interfacce di Debian

Data: venerdì 7 ottobre 2022 9:00 - 11:00
Data: mercoledì 12 ottobre 2022 9:00 - 11:00
Slide: Approfondimenti:

Lezione 5: BASH

Data: mercoledì 12 ottobre 2022 9:00 - 11:00
Data: giovedì 13 ottobre 2022 9:00 - 11:00
Data: venerdì 14 ottobre 2022 9:00 - 11:00
Data: mercoledì 19 ottobre 2022 9:00 - 11:00
Data: giovedì 20 ottobre 2022 9:00 - 11:00
Data: venerdì 21 ottobre 2022 9:00 - 11:00
Slide: Approfondimenti:

Lezione 6: Documentazione

Data: venerdì 21 ottobre 2022 9:00 - 11:00
Data: martedì 25 ottobre 2022 9:00 - 11:00
Slide:

Lezione 7: File

Data: martedì 25 ottobre 2022 9:00 - 11:00
Data: mercoledì 26 ottobre 2022 9:00 - 11:00
Data: venerdì 28 ottobre 2022 9:00 - 11:00
Data: mercoledì 2 novembre 2022 9:00 - 11:00
Data: giovedì 3 novembre 2022 9:00 - 11:00
Data: venerdì4 novembre 2022 9:00 - 11:00
Approfondimenti:

Lezione 8: Autenticazione

Data: mercoedì 9 novembre 2022 9:00 - 11:00
Data: giovedì 10 novembre 2023 9:00 - 11:00
Slide:

Lezione 9: Autorizzazione

Data: giovedì 10 novembre 2023 9:00 - 11:00
Data: venerdì 11 novembre 2023 9:00 - 11:00
Slide:

Lezione 10: File system

Data: mercoledì 16 novembre 2022 9:00 - 11:00
Data: giovedì 17 novembre 2022 9:00 - 11:00
Slide:

Lezione 11: Processi

Data: venerdì 18 novembre 2022 9:00 - 11:00
Data: mercoledì 23 novembre 2022 9:00 - 11:00
Data: giovedì 24 novembre 2022 9:00 - 11:00
Data: venerdì 25 novembre 2022 9:00 - 11:00
Data: martedì 29 novembre 2022 9:00 - 11:00
Data: mercoledì 30 novembre 2022 9:00 - 11:00
Slide:

Lezione 12: Elevazione dei privilegi

Data: venerdì 2 dicembre 2022 9:00 - 11:00
Data: mercoledì 7 dicembre 2022 9:00 - 11:00
Slide:

Lezione 13: Gestione del software in Debian

Data: mercoledì 14 dicembre 2022 9:00 - 11:00
Data: mercoledì 14 dicembre 2022 11:00 - 13:00
Slide:

Arzigogoli

FAQ arzigogoli (126KB)
Template soluzione arzigogolo (formato ODT) (1.8MB)

Arzigogolo 1

Data: venerdì 14 ottobre 2022
Testo: liberamente scaricabile qui (70KB)

Arzigogolo 2

Data: venerdì 21 ottobre 2022
Testo: liberamente scaricabile qui (71KB)

Arzigogolo 3

Data: venerdì 4 novembre 2022
Testo: liberamente scaricabile qui (79KB)

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

Lezione 7-file.pdf, slide 93: la descrizione del comando rmdir afferma che gli argomenti devono essere directory non esistenti. Questo è ovviamente sbagliato; le directory devono essere esistenti.

Le slide sono state aggiornate di conseguenza.

Nome studente Data Motivazione Punteggio parziale Punteggio totale
Francesco Caligiuri martedì 18 ottobre 2022, 15:07:07 Soluzione dell'Arzigogolo 1.
Testo: A1-testo.pdf (70KB)
Soluzione: A1-soluzione.pdf (1.2MB)
Data pubblicazione: venerdì 14 ottobre 2022, 16:20:00
Data ricezione soluzione: martedì 18 ottobre 2022, 15:07:07
Tempo impiegato: 3 giorni, 22 ore, 47 minuti, 7 secondi.
9/3 9/3
Francesco Caligiuri mercoledì 26 ottobre 2022, 16:44:58 Soluzione dell'Arzigogolo 2.
Testo: A2-testo.pdf (71KB)
Soluzione: A2-soluzione.pdf (1.4MB)
Data pubblicazione: venerdì 21 ottobre 2022, 17:13:00
Data ricezione soluzione: mercoledì 26 ottobre 2022, 16:44:58
Tempo impiegato: 4 giorni, 23 ore, 31 minuti, 58 secondi.
9/3 18/3
Alessandro Franceschini mercoledì 26 ottobre 2022, 18:28:00 1/3 1/3
Raffaele Tranfaglia martedì 8 novembre 2022, 11:42:00

Lezione 7-soluzioni.pdf, slide 86: la soluzione proposta nell'esercizio effettua il match dell'espressione regolare ^[[:alnum:]]{8}-([[:alnum:]]{4}-){3}[[:alnum:]]{12}, che è palesemente sbagliata perché ad inizio riga è presente la stringa UUID e non il suo valore. L'espressione regolare corretta non deve effettuare il match ad inizio riga: [[:alnum:]]{8}-([[:alnum:]]{4}-){3}[[:alnum:]]{12}.

Le slide sono state aggiornate di conseguenza.

1/3 1/3
Alessandro Catenacci giovedì 10 novembre 2022, 20:42:34

Lezione 5-soluzioni.pdf, slide 45: nello script ciclo.sh la variabile c non è inizializzata, portando al fallimento lo statement while seguente. Bisogna inizializzare c al valore 1.

Le slide sono state aggiornate di conseguenza.

1/3 1/3
Matteo Venturi venerdì 11 novembre 2022, 16:19:09 Soluzione dell'Arzigogolo 3.
Testo: A3-testo.pdf (79KB)
Soluzione: A3-soluzione.pdf (950KB)
Data pubblicazione: venerdì 4 novembre 2022, 13:35:00
Data ricezione soluzione: venerdì 11 novembre 2022, 16:19:09
Tempo impiegato: 7 giorni, 2 ore, 44 minuti, 9 secondi.
9/6 9/6
Francesco Mecatti venerdì 25 novembre 2022, 10:10:11

Lezione 11-soluzioni.pdf, slide 31-36: nell'esercizio ci si continua a riferire al taglio della colonna contenente l'ID del gruppo primario degli utenti (cut -d1 -f4: /etc/passwd). In realtà l'esempio corretto taglia la colonna contenente l'ID dell'utente (cut -d1 -f3: /etc/passwd).

Le slide sono state aggiornate di conseguenza.

1/3 1/3
Francesco Mecatti venerdì 2 dicembre 2022, 21:43:57

Lezione 12-elevazione-privilegi.pdf, slide 26: si afferma che il comando passwd esegue con privilegi effettivi utente e di gruppo pari a root. Ciò รจ fattualmente errato, in quanto passwd è solo SETUID root e non SETGID root. Il processo che esegue il comando passwd è SETUID root.

Le slide sono state aggiornate di conseguenza.

1/3 2/3
Giulio Corradini venerdì 2 dicembre 2022, 18:03:24

lezione 11-processi.pdf, slide 72: si afferma che il segnalesigchld non pu` gestire un handler. Questa è una inesattezza; SIGCHLD è in grado di gestire eccome un handler (l'azione di default è IGNORE).

le slide sono state aggiornate di conseguenza.

1/3 1/3
Giulio Corradini venerdì 2 dicembre 2022, 18:03:24

lezione 11-processi.pdf, slide 150: si afferma che "Se si usa >(COMMAND), l'output del comando che invoca >() viene fatto vedere come file di input al comando COMMAND.". Questa è una inesattezza; la frase esatta è "Se si usa >(COMMAND), l'output scritto su un file di nome /dev/fd/N dal comando che usa >(), viene fatto vedere come input (STDIN) a COMMAND".

le slide sono state aggiornate di conseguenza.

1/3 2/3
Francesco Mecatti lunedì 5 dicembre 2022, 18:26:50

Lezione 7-soluzioni.pdf, slide 79-81: l'espressione regolare per la risoluzione dell'esercizio (^.*(.bak|~)$ è sbagliata. L'espressione regolare corretta è ^.*\(\.bak\|~\)$.

Le slide sono state aggiornate di conseguenza.

1/3 3/3
Luca Dall'Olio venerdì 25 novembre 2022, 10:10:11

Lezione 11-soluzioni.pdf, slide 36: il comando cut -f1,3 /etc/passwd | tail è errato. Il comando corretto è cut -f1,4 /etc/passwd | tail.

Le slide sono state aggiornate di conseguenza.

1/3 1/3

Ricevimento studenti

Il ricevimento studenti è fissato in presenza venerdì 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 a contenuto pratico e teorico. Lo studente ha a disposizione 10 minuti max. per rispondere correttamente a ciascuna domanda (che 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 30 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 10 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.