| Indice
Prefazione
Parte I - Generalità
Capitolo 1 Introduzione
1.1 Cos’è un sistema operativo?
1.2 Sistemi batch semplici
1.3 Sistemi batch multiprogrammati
1.4 Sistemi time-sharing
1.5 Personal computer
1.6 Sistemi paralleli
1.7 Sistemi distribuiti
1.8 Sistemi real-time
1.9 Sommario
1.10 Esercizi
1.11 Note bibliografiche
Capitolo 2 Strutture dei sistemi di calcolo
2.1 Funzionamento di un sistema di calcolo
2.2 Struttura di I/O
2.3 Struttura della memoria
2.4 Gerarchia delle memorie
2.5 Protezione di hardware
2.6 Architettura di un generico sistema
2.7 Sommario
2.8 Esercizi
2.9 Note bibliografiche
Capitolo 3 Strutture dei sistemi operativi
3.1 Componenti del sistema
3.2 Servizi di un sistema operativo
3.3 System call
3.4 Programmi di sistema
3.5 Struttura del sistema
3.6 Macchine virtuali
3.7 Progettazione e realizzazione di un sistema
3.8 Generazione di sistemi
3.9 Sommario
3.10 Esercizi
3.11 Note bibliografiche
Parte II - Gestione dei processi
Capitolo 4 Processi
4.1 Concetto di processo
4.2 Schedudling dei processi
4.3 Operazioni sui processi
4.4 Processi cooperanti
4.5 Thread
4.6 Comunicazione tra processi
4.7 Sommario
4.8 Esercizi
4.9 Note bibliografiche
Capitolo 5 Scheduling della CPU
5.1 Concetti di base
5.2 Criteri di scheduling
5.3 Algoritmi di scheduling
5.4 Scheduling in sistemi con più processori
5.5 Scheduling real-time
5.6 Valutazione degli algoritmi
5.7 Sommario
5.8 Esercizi
5.9 Note bibliografiche
Capitolo 6 Sincronizazione dei processi
6.1 Introduzione
6.2 Problema della sezione critica
6.3 Hardware di sincronizzazione
6.4 Semafori
6.5 Problemi tipici di sincronizzazione
6.6 Regioni critiche
6.7 Monitor
6.8 Sincronizzazione in Solaris 2
6.9 Transazioni atomiche
6.10 Sommario
6.11 Esercizi
6.12 Note bibliografiche
Capitolo 7 Deadlock
7.1 Modello del sistema
7.2 Caratterizzazione dei deadlock
7.3 Metodi per la gestione dei deadlock
7.4 Prevenire i deadlock
7.5 Evitare i deadlock
7.6 Rilevamento dei deadlock
7.7 Ripristino da situazioni di deadlock
7.8 Approccio combinato alla gestione dei deadlock
7.9 Sommario
7.10 Esercizi
7.11 Note bibliografiche
Parte III - Gestione della memoria
Capitolo 8 Gestione della memoria
8.1 Introduzione
8.2 Spazi di indirizzi logici e fisici
8.3 Swapping
8.4 Allocazione contigua
8.5 Impaginazione
8.6 Segmentazione
8.7 Segmentazione con paginazione
8.8 Sommario
8.9 Esercizi
8.10 Note bibliografiche
Capitolo 9 Memoria virtuale
9.1 Introduzione
9.2 Paginazione su richiesta
9.3 Prestazioni della paginazione a richiesta
9.4 Sostituzione delle pagine
9.5 Algoritmi di sostituzione delle pagine
9.6 Allocazione dei frame
9.7 Thrashing
9.8 Altre considerazioni
9.9 Segmentazione su richiesta
9.10 Sommario
9.11 Esercizi
9.12 Note bibliografiche
Capitolo 10 Interfaccia del file system
10.1 Concetto di file
10.2 Metodi di accesso
10.3 Struttura di directory
10.4 Protezione
10.5 Semantica della consistenza
10.6 Sommario
10.7 Esercizi
10.8 Note bibliografiche
Capitolo 11 Realizzazione del file system
11.1 Struttura del file system
11.2 Metodi di allocazione
11.3 Gestione dello spazio libero
11.4 Realizzazione delle directory
11.5 Efficienza e prestazioni
11.6 Ripristino
11.7 Sommario
11.8 Esercizi
11.9 Note bibliografiche
Parte IV - Sistemi di I/O
Capitolo 12 Sistemi di I/O
12.1 Introduzione
12.2 Hardware di I/O
12.3 Interfaccia di I7O per le applicazioni
12.4 Sottosistema per l’I/O del kernel
12.5 Trasformazione delle richieste di I/O
12.6 Prestazioni
12.7 Sommario
12.8 Esercizi
12.9 Note bibliografiche
Capitolo 13 Memoria secondaria
13.1 Struttura del disco
13.2 Scheduling del disco
13.3 Gestione dell’unità a disco
13.4 Gestione dello spazio di swap
13.5 Affidabilità dei dischi
13.6 Realizzazione della memoria stabile
13.7 Sommario
13.8 Esercizi
13.9 Note bibliografiche
Capitolo 14 Memoria terziaria
14.1 Dispositivi per la memorizzazione terziaria
14.2 Compiti del sistema operativo
14.3 Prestazioni
14.4 Sommario
14.5 Esercizi
Note bibliografiche
Parte V - Sistemi distributivi
Capitolo 15 Strutture delle reti di comunicazione
15.1 Introduzione
15.2 Motivazione
15.3 Topologia
15.4 Tipi di rete
15.5 Comunicazione
15.6 Strategie di progetto
15.7 Un esempio di comunicazione di rete
15.8 Sommario
15.9 Esercizi
15.10 Note bibliografiche
Capitolo 16 Strutture dei sistemi distributivi
16.1 Sistemi operativi in rete
16.2 Sistemi operativi distribuiti
16.3 Servizi remoti
16.4 Robustezza
16.5 Problemi di progetto
16.6 Sommario
16.7 Esercizi
16.8 Note bibliografiche
Capitolo 17 File system distribuiti
17.1 Introduzione
17.2 Nominazione e trasparenza
17.3 Accesso ai file remoti
17.4 Servizio con informazione di stato
17.5 Replicazione dei file
17.6 Esempi di sistemi
17.7 Sommario
17.8 Esercizi
17.9 Note bibliografiche
Capitolo 18 Coordinazizone distribuita
18.1 Ordinamento degli eventi
181.2 Mutua esclusione
18.3 Atomicità
18.4 Controllo della concorrenza
18.5 Gestione dei deadlock
18.6 Algoritmi di elezione
18.7 Raggiungimento di un accordo
18.8 Sommario
18.9 Esercizi
18.10 Note
Parte VI - Protezione e sicurezza
Capitolo 19 Protezione
19.1 Scopi della protezione
19.2 Dominio di protezione
19.3 Matrice d'accesso
19.4 Realizzazione della matrice d'accesso
19.5 Revoca dei diritti d'accesso
19.6 Sistemi basati su abilitazioni
19.7 Protezione basata sul linguaggio
19.8 Sommario
19.9 Esercizi
19.10 Note bibliografiche
Capitolo 20 Sicurezza
20.1 Problema della sicurezza
20.2 Convalida
20.3 Password monouso
20.4 Pericoli per i programmi
20.5 Pericoli per il sistema
20.6 Monitoraggio dei pericoli
20.7 Cifratura
20.8 Classificazione della sicurezza dei sistemi di calcolo
20.9 Un esempio di protocollo di sicurezza: Windows NT
20.10 Sommario
20.11 Esercizi
20.12 Note bibliografiche
Parte VII - Casi di studio
Capitolo 21 Sistema operativo UNIX
21.1 Storia
21.2 Principi di progetto
21.3 Interfaccia del programmatore
21.4 Interfaccia dell'utente
21.5 Gestione dei processi
21.6 Gestione della memoria
21.7 File system
21.8 Sistema di I/O
21.9 Comunicazione tra processi
21.10 Sommario
21.11 Esercizi
21.12 Note bibliografiche
Capitolo 22 Sistema operativo Mach
22.1 Storia
22.2 Principi di progetto
22.3 Componenti del sistema
22.4 Gestione dei processi
22.5 Comunicazione tra processi
22.6 Gestione della memoria
22.7 Interfaccia del programmatore
22.8 Sommario
22.9 Esercizi
22.10 Note bibliografiche
Capitolo 23 Sistema operativo Linux
23.1 Storia
23.2 Principi di progettazione
23.3 Moduli del kernel
23.4 Gestione dei processi
23.5 Scheduling
23.6 Gestione della memoria
23.7 File system
23.8 Input e output
23.9 Comunicazione fra processi
23.10 Strutture di rete
23.11 Sicurezza
23.12 Sommario
23.13 Esercizi
23.14 Note bibliografiche
Capitolo 24 Windows NT
24.1 Storia
24.2 Principi di progettazione
24.3 Componenti del sistema
24.4 Sottosistemi d'ambiente
24.5 File system
24.6 Servizi di rete
24.7 Interfaccia del programmatore
24.8 Sommario
24.9 Esercizi
24.10 Note bibliografiche
Capitolo 25 - Prospettiva storica
25.1 Primi sistemi
25.2 Atlas
25.3 XDS-940
25.4 THE
25.5 RC 4000
25.6 CTSS
25.7 MULTICS
25.8 OS/360
25.9 Altri sistemi
Appendice - Sistema Nachos
A.1 Generalità
A.2 Struttura del software di Nachos
A.3 Esercitazioni
A.4 Informazioni per ottenere una copia di Nachos
A.5 Conclusioni
A.6 Note bibliografiche
Bibliografia
Indice analitico |