Sistemi Operativi - Università Iuav di Venezia

Francesco Tisato
Roberto Zicari
Sistemi
Operativi
Architettura
e progetto
Terza edizione
I
..
\ lE
Università IUAV di Venezia
S.8.D.
A
2144
BIBLIOTECA CENTRALE
HJ L
DEF
A-
Francesco Tisato
Roberto Zicari
.n 1 4-il. t
.;L..r •
SISTEMI OPERATIVI
Architettura e progetto
3a edizione
ISTITUTO UN!VER2!Tr\Rl0 ARCHITETTURA
si~u~Si<t ~C'·n·:::·A~-~
I h: \ • • • • •
'?l.......... .
• ••• .C:I•••••
clupGCittàStudi
INDICE
Capitolo 1
Introduzione
Capitolo 2
Funzioni e caratteristiche di un sistema operativo
2.1
2.2
2.3
Interfaccia utente
Strutturazione del sistema in livelli di macchine virtuali
Una classificazione dei S.O. basata sulla terminologia corrente
Bibliografia
Capitolo 3
Interpretazione dei programmi
3 .1
3.2
3.3
3 .4
3.5
Introduzione
Interpreti e macchine astratte
La sincronizzazione con l'ambiente esterno: interruzioni
Accesso diretto a memoria e canali
Modi di funzionamento del processore
Esercizi
Bibliografia
Capitolo 4
Processi e cooperazione
4.1 Processi e processori
4.2 Processi sequenziali e non sequenziali
4.3 Come specificare una esecuzione concorrente
4.4 La definizione dei processi
4.5 Esecuzione dei processi in ambiente globale
4.6 Implementazione di un processo sequenziale
4. 7 Il nucleo di un sistema a processi
4.8 Gestione dei processi in Unix (TM)
Esercizi
Bibliografia
9
13
14
19
27
37
39
40
40
47
63
64
66
68
69
70
71
73
80
86
92
95
100
116
118
6
Capitolo 5
Costrutti linguistici per la programmazione di sistemi concorrenti
5 .1
5.2
5.3
5 .4
5 .5
5.6
5. 7
5.8
5.9
5.10
Richiami sul concetto di tipo di dato astratto
Il monitor
Esempi
Confronto tra primitive di monitor e primitive sui semafori
Implementazione di un monitor
Chiamate innestate a monitor e blocco critico
Primitive di sincronizzazione basate sullo scambio messaggio
CSP: Communicating Sequential Processes
Ada
Una classificazione dei linguaggi di programmazione concorrenti
Esercizi
Bibliografia
Capitolo 6
Blocco critico
6.1
6.2
6.3
6.4
Il problema del blocco critico
Tecniche per evitare il blocco critico
Riconoscimento del blocco critico
Il blocco individuale
Esercizi
Bibliografia
Capitolo 7
Esempi di programmi concorrenti
7 .1
7 .2
7 .3
7.4
7 .5
7 .6
Introduzione
Lettori e Scrittori
I cinque filosofi
Gestione buffer pool per grandi quantità di dati
Schedulatore dei movimenti della testina di un disco
Gestione del tempo
Esercizi
Bibliografia
119
120
123
130
134
136
140
142
148
151
163
165
168
171
172
173
178
184
184
187
189
190
190
195
201
206
212
213
228
Capitolo 8
Politiche di assegnazione dell'unità centrale
229
8.1
8.2
8.3
8.4
8.5
230
230
232
233
234
Livelli di scheduling
Indici di prestazione
First Come First Served (FCFS)
Round Robin (RR)
Priorità
7
8.6 Shortest Elapsed Time (SET)
8. 7 Politiche previsionali
8.8 Gestione della Unità Centrale in Unix
Esercizi
Bibliografia
235
236
237
237
238
Capitolo 9
Gestione dell'ingresso/uscita
239
9 .1 Introduzione
9.2 Architettura del sottosistema di ingresso/uscita
9.3 I driver di periferica
9.4 La gestione dell'ingresso/uscita Unix
Esercizi
Bibliografia
240
241
247
254
255
256
Capitolo 10
La gestione della memoria
257
10.1
10.2
10.3
10.4
Nomi, indirizzi e locazioni
Il ruolo del sistema di programmazione
Il ruolo dei meccanismi run-time
La memoria virtuale
Esercizi
Bibliografia
Capitolo 11
Politiche di gestione della memoria centrale
11.1
11.2
11. 3
11.4
11.5
Introduzione
Partizioni fisse
Segmentazione
Paginazione in sistemi uniprogrammati
Paginazione in sistemi multiprogrammati
Esercizi
Bibliografia
258
258
263
272
286
287
289
290
290
292
298
302
304
305
Capitolo 12
File System
307
12.1
12.2
12.3
12.4
12.5
12.6
308
308
317
325
331
336
Introduzione
Il File System come gestore di nomi
I metodi di accesso
Il mapping logico-fisico
I controlli di accesso
Il File System di Unix
8
12. 7 Comunicazione e sincronizzazione tra processi in Unix
12.8 Uso delle primitive Unix per la gestione file
Esercizi
Bibliografia
344
349
361
362
Capitolo 13
Interprete comandi
363
13 .1
13.2
13. 3
13 .4
13.5
Introduzione
Caratteristiche di un interprete comandi
Inizializzazione del sistema e file eseguibili
Struttura di un interprete comandi
L'interprete comandi di Unix
Bipliografia
Capitolo 14
Protezione
14.1
14.2
14.3
14.4
Introduzione
Meccanismi di protezione
Politiche
Strutture di protezione dinamiche
Esercizi
Bibliografia
Appendice
Temi d'esame di programmazione concorrente
364
364
365
368
373
377
379
380
381
385
386
388
389
391
Informatica
li sistema operativo è l'insieme dei componenti software che
forniscono il supporto per la gestione di un sistema di elaborazjone e
l'esecuzione dei programmi utenH. 11 volume sj propone di descrivere
le funzionalità e l'architettura di un sistema operativo, con il duplice
obiettivo di fornire le informazioni ili base sulle sue fuozjonalità e di
presentare le metodologie più diffuse che vengono utilizzate nel
progetto del sistema stesso.
Dopo un' introduzione sull'evoluzione storica dei sistemi operativi e
sulla terminologia corrente, viene utilizzato in modo sistematico il
concetto di gerarchia di macchine astratte, così da rappresentare in
modo orgaruco e modulare i componenti del sistema e le correlazioni
fra essi. Per ciascun componente si presentano le soluzioni
maggiormente diffuse nei moderni sistemi. Vengono discussi in
dettaglio i problemi di programmazione concorrente e i linguaggi
orientati a questa classe di problemi. 11 volume contiene inoltre
richiami a quei concetti base di architettura dei sistemi di
elaborazjone che sono essenziali per la comprensione delle
problematiche tipiche dei sistemi operativi, così da renderlo
accessibile aj lettori che possiedono conoscenze non particolarmente
avanzate nel settore informatico. Può qwndi essere utilizzato sia
come testo di base per la formazione specialistica, sia come testo
informativo per cbi debba accostarsi ai sistemi operativi dal punto di
vista dell'utente.
Questa terza edirione, approfondisce ulteriormente la descrizione del
sistema operativo Unix come caso di studio esemplificativo dei
concetti introdotti nel libro. Inoltre, il volume è arricchito da una
raccolta di Terni d'esame risolti di programmazione concorrente
svolti nel corso di Sistemi operarivi presso il Politecnico di Milano.
Francesco TI. .to è professore straordinario di Calcolatori
Elettronici presso l'Università degli Studi di Milano.
Roberto Zlcarl è professore associato di Sistemi Operativi presso il
Politecnico di Milano.
ISBN 88-251-0015-9
9 788825 100150