Sei sulla pagina 1di 591
William Stallings NACI WIT STRUTTURA INTERNA PRINCIPI DI PROGETTAZIONE LL UNIVERSITA S@MMARIO PARTE PRIMA ELEMENTI DI BASE CAPITOLO 1 INTRODUZIONE AI SISTEMI DI ELABORAZIONE ........ 1.1 Blementi di base 1.2 Registri del processore .... 1,3. Esecuzione delle istruzioni 14 Interruzioni ... 1.5 La gerarchia della memoria 16 Memoria cache 17 Teeniche di comunicazione di UO . 18 Letture raccomandate .. 19 Problemi Appendice 1A Caratteristiche delle prestazioni delle Appendice 1B Gestione delle procedure ..... CAPITOLO 2 INTRODUZIONE AI SISTEMI OPERATIVI .... 2.1 Obiettivi ¢ funzioni dei sistem operativi 0 2.2 Evoluzione dei sistemi operativi. 23° Aspetti principal. eon ; 24 Caratteristiche dei sistemi operativi modern 25 Panoramica su Windows NT 2.6 — Sistemi UNIX tradizionali 2.7 Sistemi UNIX moderni - 28 — Iprossimi capitoli: Sommario 29 Letture raccomandate... 2.10 Problemi.......... Appendice 2A Internet ¢ risorse Web | “104 IV Sommano. PARTE SECONDA FRKUCESS! CAPITOLO 3 DESCRIZIONE E CONTROLLO DEI PROCE! 3.1 Stati dei processi . 3.2 Descricioni det provessi 3.3 Controllo dei processi 3.4 Gestione dei processi in UNIX SVR4 3.5 Sommario........ : 36 Letture raccomandate... 3.7 Problemi vs ‘CAPITOLO 4 THREAD, SMP E MICROKERNEL ... 4] 42 43 44 45 46 a7 48 Processi e thread .... Muitiprocessing simmetrico. Microkernet .. 7 ‘Thread e SMP in Windows NT Letture raccomandate Problemi CAPITOLO5 CONCORRENZA: MUTUA ESCLUSIONE E SINCRONIZZAZION! S.1 Principi della concorrenza.. 5.2. Mutua esclusione: approcei software 5.3. Mutua esclusione: supporto hardware 5.4 Semafori. - 5.5. Monitor ... : 5.6 Scambio di messaggi .. 3.7 Il problema dei lettori/serittor 5.8 Sommario .. 5.9 Letture raccomandate 5.10 Problemi...... CAPITOLO 6 CONCORRENZA: STALLO E STARVATIO! 6.1 Principi dello stallo 2 275 6.2 Prevenzione dello stallo - 283 63 Esclusione dello stallo.. 284, 6.4 Rilevamento dello stallo .. 6.5 Una strategia integrata per lo stallo .. 6.6 Il problema dei filesofi a tavola 6.7 | meccanismi di UNIX per fa concorrenza 6.8 Primitive per la sincronizzazione dei thread in Solari 6.9 Imeccanismi di Windows NT per la concorrenza ... 6.10 Sommario 6.11 Lettre raccomandate.... 6.12 Problemi.. = PARTE TERZA LA MEMORIA CAPITOLOT LA GESTIONE DELLA MEMORIA csesscssssssesoeesenen savsesnenennarrnenane 7.1 Requisiti della gestione della memoria 7.2. Upartizionamento della memoria . 7.3 Paginazione .... 7A Segmentazione .. 7.5 Sommario ... 7.6 Letture raccomandat 77 Problemi Appendice 7A. Caricamento e Link ‘CAPITOLO & LA MEMORIA VIRTUALE sssssesscererrseserer M7 8.1 Strutture hardware e di controllo . 347 8.2 ILsoftware del sistema operativo .. 369 83 Gestione della memoria di UNIX e Solaris. 390 8.4 Gestione della memoria in WindowsNT .. 3.5 Sommaric ... 8.6 — Letture raccomandate ... 8.7 Problemi... Appendice 8A Le tavole hash PARTE QUARTA LO SCHEDULING CAPITOLO 9 SCHEDULING MONOPROCESSORE sensssnnsonannenne ALL 9.1. Tipi di scheduling 412 9.2 Algoritmi di scheduling . 416 VI Sommario 9.3. Lo scheduling tradizionale di UNIX... 9.4 Sommario 9.5 Letture raccomandate 96 Probe Appendice 9A ‘Tempo di risposta CAPITOLO 10 SCHEDULING MULTIPROCESSORE E IN TEMPO REALE ... 10.1 Scheduling multiprocessore .. 10.2 Scheduling in tempo reale .. 10.3 Scheduling in UNIX SVR4 10.4 Scheduling in Windows NT 10.5 Sommario 10.6 Letture raccomandate 10.7 Problemi........... PARTE QUINTA INPUT/OUTPUT E FILE. CAPITOLO IL GESTIONE DELL'V/O E SCHEDULAZIONE DEL DISCO wsse. ILI Dispositivi di VO... 11,2 Organizzazione delle funzioni di 11.3 Progettazione di sistemé operativi. 11.4 Gestione di buffer di 1/0 .. ILS Schedulazione del disco M6 RAID. cece 11.7 La cache del disco 11.8 VO di UNIX SVR4 11.9 UO di Windows NT... N10 SomIMatio nnn 11.11 Letture raccomandate 11.12 Problemi senna Appendice 11A Dispositivi di memurizeazione a disco CAPITOLO 12 GESTIONE DEL FILE see. 12.1 Introduzione . : 12.2 Organizzazione ed accesso a file 12.3 Le directory di file 12.4 Condivisione di file oo. ccc nen 12.5 Organizzazione di record a blocchi 12.6 Gestione della memoria secondaria 12.7 Gestione dei file in UNIX . 128 ILfile system di Windows NT .. 12.9 Sommatio iu. . 12.10 Letture raccomandate 12.11 Problemi......... PARTE SESTA ‘SISTEMI DISTRIBUITI CAPITOLO 13 ELABORAZIONE DISTRIBUITA, CLIENT/SERVER E CLUSTER ... ‘CAPITOLO 14 GESTIONE DEI PROCESSI DISTRIBUITI 13.1 ILbisogno di un’architettura di protocollo 13.2 Llarchitettura del protocollo TCP/IP... 13.3. Llarchitettura di protocollo OST 13.4 Elaborazione client/server... 13.5. Scambio di messaggi distribuito ... 13.6 Chiamate di procedura remote ..... 13.7 Cluster... 13.8 Wolfpack di Windows NT 13.9. Solaris MC 13.10 Sommario ... 13.11 Letture raccomandate 13.12 Problemi 14.1 Migrazione dei processi ... 14.2. Stati globali distribuit 14.3 Mutua eselusione distribuits 14,4 Stallo distribuito .. 14.5 Sommario......... 14.6. Letture raccomandate 14.7. Problemi PARTE SETTIMA SICUREZZA CAPITOLO 15 SICUREZZA... 15.1 Minacee alla sicurezza 15,2. Protezione ..... Vill Sonmaria 15.3. Intrusi ... rar 15.4 Virus e relative minacce. 15.5 Sistemi fidati .. 15.6 Sicurezza di rete .. 15.7 La sicurezza in Windows NT... 158 Sommario....... 15.9 Letture raccomandate 15.10 Problemi 7 Appendice ISA. Cifratuia APPENDICE A ANALISE DELLE CODE .sescenen Al Perehé I’analisi delle code? A2~ Modelli dicode ..... A3 Code per singolo server A4 Code multiserver. AS Retidi code .... AG Esempi......... AT Altri modelli di coda. AS Lotture raccunmandate .. = Allegato A Quel tanto che basta di probabilita e statistica APPENDICE B PROGETTAZIONE ORIENTATA AGLI OGGETTI BI Motivazione .. B2 Concetti object-oriented. B.3 Benefici della progettazione orientata agli oggeti B4 CORBA 7 BS Letture raccomandate 776 APPENDICE C PROGRAMMAZIONE E PROGETTAZIONE DI SISTEM] OPERATIVI .. C.l_ Progetti per insegnare sistemi perativi .... C2 Nachos . C3 Progetti di programmazione C4 Assegnazione di letture e relazion: serrsmvee 777 m7 718 779 ss. 780 APPENDICE D OSP: UN AMBIENTE PER LA PROGETTAZIONE DI SISTEM OPERATIVI....... 781 D.i Panoramica D2 Aspetti i D3 Confronto con altri software des inati alla D4 La distribuzione del software di OSsP didattica di sistemi operativi D.S Mailing list di OSP.... D6 Progetti futuri APPENDICE E BACI: IL SISTEMA DI BEN ARI PER LA PROGRAMMAZIONE, CONCORRENTE..... EL Introduzione E,2 BACI 3 Esempi di programmi BACT E.4 — Progetti in BACT ......... E5 Miglioramenti del sistema BACI GLOSSARTO secsserseee BIBLIOGRAFIA INDICE ANALITICO.. sasssssecesarstnsanesesamemennnvanee BOD PREFAZIONE Oblettivi Questo libro tratta concetti, struttura e meccanismi dei sistemni operativi, ¢ si propone di presentare nel modo piit chiaro e completo possibile la natura ¢ le caratteristiche dei sistemi pit recent, ‘Tale obiettive rappresenta una sfida per diverse ragioni. In primo luogo, i sisterni di elabora- zione per i quali si progettano sistem operativi sono moltissimi e assai diversi tra loro: workstation asingolo utente e personal compuier, sistemi condivisi di medie dimensioni, grandi mainframe, supercomputer ¢ machine specializzate, come i sistemi in tempo reale, La dive! 2 non @ in relazione soltanto con la capacita e la velocita delle mavchiue, ma risiede nelle applicazioni ¢ nei requisiti di supporto del sistema, In secondo luogo, il rapido evolversi caratteristico dei sistemi di elaborazione non accenna a fermarsi, gran parte dei problemi chiave nella progetta- 7ione di un sistema operativo hanno una storia recente, e la ricerca in queste ed in nuove aree continua. Malgrado questa varieti e ritmo di cambiamento, determinati concetti fondamentali si applicano consistentemente ovunque, anche se in relazione allo sviluppo tecnologico del mo- mento e alle particolari esigenze applicative. Questo testo intende fomire una trattazione com- pleta dei fondamenti dell’ architettura dei sistem operativi, correlandoli alle attuali problematiche di progettazione e agli attuali sviluppi dei sistemi operativi. Ilettore potra acquisire una solida conoscenza dei meccanismi chiave dei sistemi operativi moderni, delle diverse alternative ¢ decisioni inerenti la progettazione dei sistemi operativi e del contesto entry cui funziona il sistema (hardware, altri programmi tema, programmi appli- cativi, utenti interatti vi). lL slstemi scelti come esemplo Questo testo si tipromette di fornire al lettore la conoscenza dell" architettura di base ¢ dei problemi d'implementazione dei sistem operativi contemporanei,e quindi una trattazione pura mente concettuale o teorica sarebbe fuori Luogo. Per illustrare i concetti ed esemplificare i pri