Sei sulla pagina 1di 7

La genealogia di Windows

Parte IX

Windows

Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009

IX - 1

Windows NT e Windows 95/98

Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009

IX - 2

Dimensioni del codice

Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009

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

IX - 3

Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009

IX - 4

Win32 API

Il registry file

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: root keys

Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009

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

Architettura di Windows 2000

IX - 7

Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009

IX - 8

Hardware Abstraction Layer (HAL)

Windows 2000 Executive

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

Solo lExecutive 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 dallExecutive
I/O Manager: gestisce code di I/O sulla base delle
richieste dei processi
Windows Manager: gestisce linterfaccia grafica a finestre
System Services: interfaccia verso i processi

Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009

Evironmental subsystems

Dynamic link libraries (DLL)

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

IX - 10

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
Luso 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

Organizzazione ad oggetti

Viene riportato il numero di funzioni visibili dallesterno


Le chiamate a win32k.sys non sono esportate

Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009

IX - 13

Struttura degli 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 lobject 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

Tipi di oggetti

Gli oggetti fanno riferimento a tipi, ed ai relativi metodi


Reference counts: conta quanti handle sono aperti
Quando 0 loggetto pu essere deallocato

Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009

IX - 15

Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009

IX - 16

Handle

Oggetti, tipi e 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 alloggetto
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 loggetto viene deallocato

Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009

IX - 17

Processi, thread e fiber

IX - 18

Comunicazione tra processi

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 lultimo thread termina, il processo muore
Fiber sono thread leggeri schedulati a livello user

Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009

Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009

IX - 19

Pipe (tubo): un processo scrive e laltro 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, allinterno di un processo

Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009

IX - 20

Processi e thread

Scheduling: priorit

Oggetti, e quindi handle, gestiti a livello di processo


Ciascun thread ha due stack: user e kernel
Fiber gestiti allinterno 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: gestione delle code

Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009

Scheduling a livello di thread


Ciascuna coda servita RR a partire dallalto
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 - 22

Memoria virtuale

32 livelli di priorit
6 classi a livello di processo
7 classi per i thread allinterno di un processo
La tavola mostra la priorit base con cui il thread nasce
Solo i processi di sistema possono essere realtime

IX - 23

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

Memory management

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

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

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: linsieme 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