Sistemi operativi
per il corso di diploma universitario in
Ingegneria Elettronica
anno accademico 2000/01

Agenda delle lezioni dell'A.A. 2000/01

Posizione originaria: <URL:http://fly.cnuce.cnr.it/didattica/agenda00.html>.

Oltre che in HTML, l'agenda è disponibile anche in Postscript e PDF.

Ultima modifica: 2001/11/21.

Abbreviazioni usate nell'agenda:
:2L
2 ore di lezione (sviluppo di nuovi argomenti)
:1E
1 ora di esercitazioni (esercizi in classe)
:1S
1 ora di laboratorio (pratica in classe o in laboratorio)
S:7.6; P: 2.1-2.12
Argomenti trattati nel testo di riferimento Silberschatz, capitolo 7.6, e nel manuale pSOS, da pagina 2-1 a pagina 2-12.

Cos'è un sistema operativo

S: 1-3

Boot

S: 3.8, 13.3.2

Dal sorgente all'esecuzione: l'odissea di un programma

S: 8.1…

I processi

S: 4.1…, 4.3…; P: 2.1-2.8, 2.13-2.15

Scheduling

S: 4.2…, 21.5…, 22.4, 22.4.1…, 22.5.2; P: 2.9-2.12

Sincronizzazione: concetti, mutua esclusione, implementazioni

S: 6.1, 6.2, 6.3

Sincronizzazione: semafori e stallo (deadlock)

S: 6.4…, 6.5.1, 6.5.2, 6.7(l'inizio), 7.4.2, 7.4.4; P: 2.49-2.50

Sincronizzazione e comunicazione: messaggi

S: 4.6.1, 4.6.2, 4.6.3, 4.6.4; P: 2.44;2.46

Sincronizzazione: inversione di priorità

S: 5.5

Sincronizzazione: esercizi

Panoramica sulla gestione della memoria

S: 8.2, 8.3, 8.4…, 8.5.1, 8.5.2…, 9.1, 9.4, 9.5.3, 9.7, 9.7.1, 9.8.1

Memoria virtuale: paginazione

S: 8.5.5, 9.2, 9.3, 9.8.5, 9.8.6

Chiamate di sistema e di libreria per gestire la memoria

S: 8.6…, 8.7, 9.5.4…, 9.6, 9.6.1; P: 2.39, 2.42-2.43

Device

S: 12.3… P: 4.1-4.2, 4.5-4.8, 4.12

I file system

S: 10.1.1, 10.1.2, 11.2.2, 11.2.3, 10.4.2, 10.4.4, 13.5

Laboratorio: analisi di un device driver per il chip LANCE

Esercizio: qual è la sequenza di eventi che ha luogo quando si alloca memoria con una chiamata di realloc?

Esercizio: qual è la sequenza di eventi che ha luogo quando si apre un file in un sistema operativo di tipo Unix? E quando si fa una read?

  1. Si guarda se nel sistema quel file è stato già aperto.
    1. Se non è stato già aperto, il sottosistema che gestisce il file system nel S.O. cerca nella directory root, che è in una posizione fissa sul disco, la voce corrispondente alla prima directory del percorso. Individua la posizione del primo cluster e dei successivi, guardando nella FAT. Poi cerca nella prima directory la voce corrispondente alla seconda, e così via fino a trovare il file cercato.
    2. Crea una voce nella tabella di sistema dei file aperti, e vi memorizza le caratteristiche del file, in maniera da non doverle più guardare nelle directory e nella FAT.
  2. Crea una voce nella tabella dei file aperti del processo che punta alla voce corrispondente al file nella tabella globale, e inizializza il puntatore di lettura e scrittura a 0, cioè all'inizio del file.
  3. Restituisce al processo chiamante un identificatore della voce nella tabella del processo dei file aperti.
  4. Quando si fa una read, il sottosistema di file system guarda il puntatore di lettura e scrittura del file utilizzato, poi guarda i dati contenuti nella tabella globale dei file aperti, e usa queste informazioni per determinare quali settori del disco bisogna leggere.
  5. Poi chiede al sottosistema di i/o di iniziare la lettura dal disco. Se i settori necessari sono stati letti recentemente, potrebbero essere già nella cache del disco.
  6. Altrimenti si danno le istruzioni necessarie al controller e si aspetta un interrupt, bloccando il processo e cambiando contesto. Quando arriva l'interrupt, i dati letti vengono messi nella cache del disco.
  7. Il S.O. legge i dati dalla cache del disco e li copia nello spazio di memoria del processo.

Esercizio: apro un file in lettura e scrittura e ottengo un errore perché non ho diritti di scrittura. Cosa è successo esattamente?

[32:1E,1S] Compitino sul programma svolto e illustrazione di soluzione. Panoramica riassuntiva del corso e chiarimenti sui punti oscuri.