Parte IX Windows Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 IX - 1
La genealogia di Windows DOS: sistema operativo monoutente Windows 3.1 interfaccia a finestre che gira su DOS Windows 95/98 (linea personal): Ancora molto codice a 16 bit Parte del codice del SO non rientrante Windows NT 4 (linea server): Stessa interfaccia di Windows 95/98 Architettura profondamente diversa Windows 2000 (unifica le due linee) Architettura basata NT Windows XP Windows Vista Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 IX - 2
Windows NT e Windows 95/98 Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 IX - 3
Dimensioni del codice G Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 IX - 4
Win32 API Chiamate di sistema non documentate Accesso indiretto tramite API (Application Programming Interface) Chiamate API supportate (in avanti) da tutte le versioni di Windows: portabilità del software Funzioni numerosissime: molti modi di fare la stessa cosa Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 IX - 5
Il registry file È un database che contiene tutte le informazioni relative a: Configurazione del sistema, driver delle periferiche Utenti, sicurezza Applicazioni installate, librerie usata, etc. Boot Struttura gerarchica del registro: Keys: directory Subkeys: subdirectory Values: contengono le informazioni Root keys: sono quelle a livello più alto Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 IX - 6
Il registry file: root keys Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 IX - 7
Architettura di Windows 2000 Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 IX - 8
Hardware Abstraction Layer (HAL) HAL: il computer di 2001 Odissea nello spazio (èla traslitterazione di IBM, scalando di una lettera) Incapsula tutte le caratteristiche della piattaforma HW Differenze a livello di chip Differenze a livello di scheda madre Tutto il resto del sistema operativo è scritto in maniera indipendente dalla piattaforma Una grande varietà di HAL sono distribuiti con il software di installazione Quello che viene installato si trova in \winnt\system32 nel file hal.dll Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 IX - 9
Windows 2000 Executive Solo l Executive gira in modo kernel Hardware Abstaction Layer: strato di disaccoppiamento fra SO e piattaforma hardware Microkernel: scheduling dei threads, gestione delle interruzioni, gestione del multiprocessamento Executive Services: moduli relativi ai vari tipi di servizi offerti dall Executive I/O Manager: gestisce code di I/O sulla base delle richieste dei processi Windows Manager: gestisce l interfaccia grafica a finestre System Services: interfaccia verso i processi Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 IX - 10
Evironmental subsystems Windows supporta applicazioni scritte anche per altri SO Interfacce multiple verso le applicazioni Garantisce la portabilità del software Win32: API di Windows, usate anche dagli altri sottosistemi MTVDM: MS-DOS NT Virtual DOS Machine OS/2: (in memoria di.) Win16: Windows a 16 bit POSIX: interfaccia standard, basata su UNIX e supportata da vari sistemi operativi Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 IX - 11
Dynamic link libraries (DLL) Windows supporta il collegamento dinamico delle procedure Vantaggi Più processi condividono la stessa DLL Librerie allocate solo una volta in memoria centrale Chiamate indirette tramite un transfer vector Perdita trascurabile di efficienza Semplicità di aggiornamento delle librerie Non occorre ricollegare gli eseguibili L uso delle DLL è memorizzato nel registro La stessa API è costituita da un insieme di DLL Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 IX - 12
Principali librerie Viene riportato il numero di funzioni visibili dall esterno Le chiamate a win32k.sys non sono esportate Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 IX - 13
Organizzazione ad oggetti Tutte le risorse del sistema sono viste come oggetti: Processi, thread Dispositivi, file aperti Semafori, code etc. Tutta la gestione degli oggetti passa per l object manager Accesso uniforme, tramite gli handle Centralizzazione i controlli di sicurezza Gestione uniforme della condivisione di risorse Individuazione delle risorse non più utilizzate Gli oggetti sono strutture in RAM, nel kernel space Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 IX - 14
Struttura degli oggetti Gli oggetti fanno riferimento a tipi, ed ai relativi metodi Reference counts: conta quanti handle sono aperti Quando è 0 l oggetto può essere deallocato Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 IX - 15
Tipi di oggetti Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 IX - 16
Handle Ogni chiamata che crea un oggetto restituisce un handle Lo handle è inserito nella handle table del processo Es: per ogni file aperto viene creato un oggetto, ed il relativo handle inserito nella tavola del processo Lo handle consente di accedere all oggetto Processi diversi possono aver handle sullo stesso oggetto Esempio: due processi condividono un oggetto di tipo mutex (semaforo binario) per sincronizzarsi Quando entrambi hanno finito di usarlo, il reference count va a 0 e l oggetto viene deallocato Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 IX - 17
Oggetti, tipi e handle Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 IX - 18
Processi, thread e fiber I processi sono contenitori di risorse, ed hanno un address space di 2GB privato + 2GB OS I thread girano in user mode, ma passano in kernel mode (protetto) quando fanno una system call I thread hanno due stack (user e kernel) ed un contesto I processi nascono con un thread, e ne creano altri Quando l ultimo thread termina, il processo muore Fiber sono thread leggeri schedulati a livello user Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 IX - 19
Comunicazione tra processi Pipe (tubo): un processo scrive e l altro legge Mailslot : come pipe ma anche broadcast Sockets: come pipe ma anche su macchine diverse Tramite socket, in base agli indirizzi IP, comunicano due qualsiasi macchine su Internet Semafori CreateSemaphore DuplicateSemaphore ReleaseSemaphore (up) WaitForSingleObject (down) Critical Section: fra thread, all interno di un processo Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 IX - 20
Processi e thread Oggetti, e quindi handle, gestiti a livello di processo Ciascun thread ha due stack: user e kernel Fiber gestiti all interno del thread: non visibili al kernel Access token: informazione di sicurezza, diritti di accesso I thread possono avere ed acquisire loro access token Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 IX - 21
Scheduling: priorità 32 livelli di priorità 6 classi a livello di processo 7 classi per i thread all interno di un processo La tavola mostra la priorità base con cui il thread nasce Solo i processi di sistema possono essere realtime Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 IX - 22
Scheduling: gestione delle code Scheduling a livello di thread Ciascuna coda servita RR a partire dall alto Code inferiori servite solo se le superiori sono vuote Correzione dinamica delle priorità user (0-15) Non c è scheduler: il thread gira lo scheduler quando lascia la CPU Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 IX - 23
Memoria virtuale Spazio di indirizzamento virtuale in pagine da 4 KByte 2 GByte privati del processo, per il codice ed i dati 2 Gbyte mappano in modo protetto nella kernel memory (i thread possono anche girare in modo kernel) I 2G di sistema non sono scrivibili in modo user Stati di una pagina virtuale free: non (ancora) utilizzata committed: contiene codice o dati, accessibile reserved: riservata, es. per la crescita di uno stack Altri stati specificano la leggibilità e scrivibilità Anche pagine committed non hanno posizioni riservate nel paging file: mappe gestite dinamicamente Possibile avere file mappati in memoria virtuale Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 IX - 24
Spazio di indirizzamento virtuale I 64 K più alti e più bassi non sono usati (usato per trappare errori) Tutti i processi condividono la parte kernel (salvo le page table) In Advanced Server e Datacenter, la parte user e fino a 3 Gbyte Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 IX - 25
Memory management Spazio virtuale organizzato in regioni (alcune fisse in memoria) Non paged pool : parte vincolata in memoria fisica Virtual Address Descriptor e tavole delle pagine a livello di regioni Working Set, a livello di processo: l insieme delle pagine del processo attualmente in memoria centrale Minimo da 20 a 50 pagine Massimo da 45 a 345 WS mantenuto tra una dimensione minima ed una massima Le soglie sono variate dinamicamente in base al Page Frame Rate Balance set manager : controlla la situazione ogni secondo Working set manager : se necessario rimodula i WS dei processi Anche il SO è trattato come gli altri processi Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 IX - 26
La cache Una singola cache per tutti I file system Di ogni file vengono mappati 256 K Se il blocco è nella parte mappata: tutto ok Altrimenti la cosa viene gestita come page fault Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 IX - 27