Silberschatz, Galvin and Gagne 2002 21.1
Operating System Concepts
Windows 2000
■ Breve storia
■ Principi di progettazione ■ Componenti del sistema ■ Sottosistemi ■ File system ■ Networking
■ Interfaccia per il programmatore
Silberschatz, Galvin and Gagne 2002 21.2
Operating System Concepts
Windows 2000
■ Sistema operativo a 32-bit, multitasking, per processori Intel.
■ Aspetti principali del sistema: ✦portabilità
✦sicurezza
✦conformità allo standard POSIX ✦supporto per multiprocessori ✦estendibilità
✦supporto internazionale
✦compatibilità con applicazioni MS-DOS e MS-Windows. ■ Utilizza una acrhitettura a micro-kernel.
■ Disponibile in 4 versioni, Professional, Server, Advanced Server, National Server.
■ Nel 1996, sono state vendute più licenze di NT server che licenze UNIX
Breve storia
■ Nel 1988, Microsoft decise di sviluppare un sistema operativo portabile basato su una “nuova tecnologia” (NT) che supportasse sia OS/2 che POSIX. ■ Originariamente, NT doveva usare l’interfaccia OS/2
come ambiente nativo, ma durante lo sviluppo questa decisione è stat cambiata per usare l’interfaccia Win32, che rifletteva meglio la popolarità di Windows 3.0.
Silberschatz, Galvin and Gagne 2002 21.4
Operating System Concepts
Principi di progettazione
■ Estendibilità —architettura a livelli.
✦Executive, che esegue in modalità protetta (privilegiata), fornisce i servizi di base del sistema.
✦Sopra l’executive, diversi sottosistemi operano in modalità utente.
✦La struttura modulare permette di aggiungere sottosistemi senza influenzare il modulo executive.
■ Portabilità — 2000 può essere trasferito da una architettura ad un’altra con relativamente poche modifiche.
✦Scritto in C e C++.
✦Il codice dipendente dal processore è isolato in una dynamic link library (DLL) chiamata “hardware abstraction layer” (HAL).
Silberschatz, Galvin and Gagne 2002 21.5
Operating System Concepts
Principi di progettazione (Cont.)
■ Affidabilità — 2000 usa la protezione hardware per la memoria virtuale, e meccanismi di protezione software per le risorse del sistema operativo.
■ Compatibilità — Le applicazioni che seguono lo standard IEEE 1003.1 (POSIX) possono essere eseguite su Windows 2000 senza modifiche al codice sorgente. ■ Prestazioni — I sottosistemi di 2000 possono comunicare
l’un l’altro attraverso un meccanismo a scambio di messaggi ad elevate prestazioni.
✦La politica di scheduling preemptive permette al sistema di rispondere velocemente agli eventi esterni.
✦Progettato per il multiprocessing simmetrico ■ Supporto Internazionale — supporta differenti
localizzazioni per mezzo del national language support (NLS).
Architettura di Windows 2000
■ Sistemi di moduli distribuiti a livelli.
■ Modalità Protetta (privilegiata) — HAL, kernel, executive. ■ Modalità Utente — collezione di sottosistemi
✦Sottosistemi d’ambiente emulano diversi sistemi operativi. ✦Sottosistemi di protezione forniscono funzionalità di
Silberschatz, Galvin and Gagne 2002 21.7
Operating System Concepts
Schema dell’Architettura di 2000
Silberschatz, Galvin and Gagne 2002 21.8
Operating System Concepts
■ La base del modulo executive e dei sottosistemi. ■ Sempre residente in memoria principale. ■ Quattro mansioni principali:
✦assegnazione del processore ai procesi (thread scheduling) ✦gestione d interrupt e eventi
✦sincronizzazione a basso livello dei processori ✦ripristino dopo un crash (per mancanza di corrente) ■ Il Kernel è strutturato ad oggetti, raggruppati in due
insiemi.
✦Oggetti dispatcher che controllano la sincronizzazione degli eventi (events, mutants, mutexes, semaphores, threads and timers).
✦Oggetti di controllo (asynchronous procedure calls, interrupts, power notify, power status, process and profile objects.)
Componenti del Sistema — il Kernel
Sottosistemi d’ambiente
■ Processi utente sfruttano i servizi forniti dal modulo
executive per permettere a Windows 2000 di eseguire programmi sviluppati per altri sistemi operativi. ■ Windows 2000 usa il sottosistema Win32 come ambiente
operativo principale; Win32 è usato per attivare tutti i processi. Esso fornisce anche tutte le funzionalità dela tastiera, del mouse e del display grafico.
■ L’ambiente MS-DOS è fornito tramite una applicazione Win32 chiamata la macchina virtuale dos (VDM), un processo utente che viene trattato come ogni altro processo nel sistema.
Silberschatz, Galvin and Gagne 2002 21.10
Operating System Concepts
Sottosistemi d’ambiente (Cont.)
■Ambiente Windows 16-Bit Windows:
✦Realizzatp tramite una macchina virtuale dos (VDM) che incorpora Windows on Windows.
✦Fornisce le procedure del kernel di Windows 3.1 e le procedure per la gestione delle finestre e del display. ■Il sottosistema POSIX è progettato per eseguire
applicazioni POSIX che seguono lo standard POSIX.1 che è basato sul modello UNIX.
Silberschatz, Galvin and Gagne 2002 21.11
Operating System Concepts
Sottosistemi d’ambiente (Cont.)
■ I sottosistemi OS/2 eseguono applicazioni OS/2.
■ I sottosistemi Logon e Sicurezza controllano l’accesso al sistema autenticando gli utenti. Gli utenti devono avere un accountname (login) e una password.
- L’autenticazione degli utenti è eseguita ogni qual volta essi tentano di accedere a un oggetto del sistema. Windows 2000 usa Kerberos come sistema di autenticazione principale.
File System
■ La struttura fondamentale del file system di Windows 2000 (NTFS) è il volume.
✦Creato dal programma di utilità disk administrator. ✦Si basa su una partizione logica del disco.
✦Può occupare una porzione di un disco, un intero disco, o spaziare su più dischi.
■ Tutti i metadata, cioè le informazioni sul volume, sono memorizzate in un normale file.
■ NTFS usa clusters (gruppi) come unità di allocazione del disco.
✦Un cluster è un numero di settori del disco che è una potenza di 2.
Silberschatz, Galvin and Gagne 2002 21.13
Operating System Concepts
File System — Struttura interna
■ NTFS usa logical clusternumbers (LCNs) come indirizzi di disco.
■ Un file in NTFS non è una semplice sequenza di byte, come in MS-DOS o UNIX, ma è un oggetto strutturato che consiste di attributi.
■ Ogni file in NTFS è descritto da uno o più record in un vettore memorizzato in un file speciale chiamato Master File Table (MFT).
■ Ogni file in un volume NTFS ha un ID univoco chiamato
file reference.
✦Valore a 64-bit suddiviso in 48-bit per numero file e 16-bit per numero di sequenza.
✦Può essere usato per eseguire controlli di consistenza. ■ Lo spazio dei nomi in NTFS è organizzato come una
gerarchia di directory.
Silberschatz, Galvin and Gagne 2002 21.14
Operating System Concepts
File System — Ripristino
■ Tutte le modifiche alle strutture del file system sono eseguite come transazioni che vengono tracciate.
✦Prima di alterare una struttura dati, la transazione scrive un record di log che contiene informazioni sull’operazione da fare.
✦Dopo che la struttura dati è stata modificata, viene scritto un record di commit per dire che la transazione ha avuto successo.
✦Dopo un crash del sistema, le strutture dati del file system possono essere ripristinate ad uno stato consistente ripetendo le transazioni nel log.
File System — Ripristino (Cont.)
■ Questo schema non garantisce che tutti i dati dell’utente siano ripristinati dopo un crash, ma solo le strutture del file system sono riportate ad uno stato consistente che riflette una situazione stabile prima del crash. ■ Il file di log è memorizato nel terzo file di metadati
all’inizio del volume.
■ La funzionalità di log è fornita dal servizio di Windows 2000 log file service.
Silberschatz, Galvin and Gagne 2002 21.16
Operating System Concepts
File System — Sicurezza
■ La sicurezza su un volume NTFS è derivata dal modello ad oggetti di Windows 2000.
■ Ogni oggetto di tipo file ha un attributo di sicurezza memorizzato nella Master File Table.
■ Questo attributo contiene le informazioni di accesso del proprietario del fule, e una lista di accesso che elenca i privilegi di accessi che sono permessi a ciascun utente che accede al file.
Silberschatz, Galvin and Gagne 2002 21.17
Operating System Concepts
Networking — Domini
■ NT usa il concetto di dominio per gestire i diritti di accesso globali all’interno di un gruppo.
■ Un dominio è un gruppo di macchine con sistema NT server che condividono una politica di sicurezza e un database di utenti.
■ Windows 2000 fornisce 3 modelli per impostare relazioni di confidenza tra domini.
✦One way, A si fida di (trusts) B (tutti gli utenti di B sono autorizzati anche nel dominio A)
✦Two way, transitive, A si fida di B, B si fida di C allora A, B, C si fidano l’un l’altro (tutti gli utenti dei tre domini sono riconosciuti e autorizzati in ogni dominio)
✦Crosslink – nessuna relazione di fiducia (o meglio, tutti si fidano di tutti). Permette di ridurre il traffico sulla rete per autenticare un utente.
Gestione degli utenti
■ Tramite Pannello di controllo - Utenti e Password ■ Aggiungere, Eliminare un utente o modificarne le
prorpietà
■ Ogni utente deve appartenere ad un gruppo ✦gruppi predefiniti: Administrators, Power Users, Users,
Guests, Backup Operators, ecc.
✦le operazioni permesse ad un utente sono quelle associate al gruppo
Silberschatz, Galvin and Gagne 2002 21.19
Operating System Concepts
Gestione dei Volumi e Tolleranza ai guasti
FtDisk, è il driver di disco tollerante ai guasti di 2000, e fornisce diversi modi per combinare i dischi in un unico volume logico.
■ Un volume set è una concatenzaione logica di più dischi a formare un grande volume logico.
■ Uno stripe set organizza più partizioni fisiche in maniera circolare (anche chiamato RAID di livello 0, o “disk striping”).
✦Variazione: stripe set with parity, o RAID livello 5. ■ Disk mirroring, o RAID livello 1, è uno schema robusto
che usa un mirror set : due partizioni di egual misura si due dischi diversi con identici contenuti.
■ Per gestire malfunzionamenti, FtDisk, usa una tecnica hardware chiamata sector sparing e NTFS usa una ttecnica software chiamata cluster remapping.
Silberschatz, Galvin and Gagne 2002 21.20
Operating System Concepts
Volume Set On Two Drives
Silberschatz, Galvin and Gagne 2002 21.22
Operating System Concepts
Stripe Set With Parity on Three Drives
Silberschatz, Galvin and Gagne 2002 21.23
Operating System Concepts
Mirror Set on Two Drives
File System — Compression
■ To compress a file, NTFS divides the file’s data into
compression units, which are blocks of 16 contiguous clusters.
■ For sparse files, NTFS uses another technique to save space.
✦Clusters that contain all zeros are not actually allocated or stored on disk.
✦Instead, gaps are left in the sequence of virtual cluster numbers stored in the MFT entry for the file.
✦When reading a file, if a gap in the virtual cluster numbers is found, NTFS just zero-fills that portion of the caller’s buffer.
Silberschatz, Galvin and Gagne 2002 21.25
Operating System Concepts
File System — Reparse Points
■ A reparse point returns an error code when accessed. The reparse data tells the I/O manager what to do next. ■ Reparse points can be used to provide the functionality of
UNIX mounts
■ Reparse points can also be used to access files that have been moved to offline storage.