Microsoft Windows XP è un sistema operativo a 32/64-bit che funziona in multitasking ed è preemptive per processori AMD K6/K7, Intel IA32/IA64 e versioni successive. Windows XP, successore di Windows NT/2000, ha inoltre l’obiettivo di sostituire il sistema operativo Windows 95/98; i suoi obiettivi basilari sono: sicurezza, affidabilità, facilità d’uso, compatibilità delle applicazioni tra WINDOWS e POSIX, prestazione elevata, estensibilità, portabilità e supporto internazionale. In questo capitolo, esamineremo gli obiettivi basilari di Windows XP: l'architettura stratificata del sistema, che lo rende di facile uso, il file system, il supporto di rete e l'interfaccia di programmazione.
Compatibilità tra applicazioni Windows e Posix
Windows XP non è solo un aggiornamento di Windows 2000: è un rimpiazzo di Windows 95/98. Windows 2000 si è focalizzato principalmente sulla compatibilità delle applicazioni commerciali, mentre Windows XP include una compatibilità molto più elevata con le applicazioni di largo consumo (consumer application) che funzionano in Windows 95/98. La compatibilità delle applicazioni (application compatibility) è difficile da ottenere perché ogni applicazione controlla la versione di Windows e può dipendere dalla capacità di realizzazione delle API e può avere dei bachi latenti nelle applicazioni mascherati nel sistema precedente o in altre dipendenze simili.
Windows XP introduce uno strato di compatibilità che si trova fra le applicazioni e le API di Win32 e tale strato rende la visione di Windows XP (all’incirca) compatibile baco per baco con le precedenti versioni di Windows. Windows XP, come le precedenti versioni di NT, mantiene il supporto per molte applicazioni a 16 bit usando uno strato di interfaccia che traduce le chiamate delle API a 16 bit in chiamate equivalenti a 32 bit. Similmente, la versione a 64 bit di Windows XP fornisce uno strato di interfaccia che traduce le chiamate delle API a 32 bit in chiamate native a 64 bit. Il supporto Posix in Windows XP è stato molto migliorato, ed è disponibile un nuovo sottosistema di POSIX chiamato Interix; la maggior parte del software compatibile con UNIX si compila e funziona sotto Interix senza alcuna modifica.
Prestazioni elevate
Windows XP è progettato per fornire prestazioni elevate in sistemi desktop (che in gran parte sono vincolati dalle prestazioni I/O), in sistemi server (dove la CPU è spesso un collo di bottiglia) e in ambienti multithread e multiprocessore (dove la gestione dei blocchi e della cache sono punti chiave per la scalabilità). L’elevata prestazione è stata un obiettivo sempre più importante per Windows 4 XP. Windows 2000 con SQL 2000, montato su hardware Compaq, ha ottenuto valori elevati di TPC-C al momento della consegna.
Per soddisfare le richieste di prestazioni, NT usa parecchie tecniche quali I/O asincrono, protocolli ottimizzati per le reti (per esempio il blocco ottimista dei dati distribuiti, l’accodamento delle richieste), grafica nel kernel e tecniche sofisticate nell’uso della cache per il file system.
Gli algoritmi di gestione della memoria e di sincronizzazione sono progettati con uno sguardo alle prestazioni legate alla linee di cache ed ai multiprocessori.Windows XP ha ulteriormente migliorato le prestazioni riducendo la lunghezza del percorso del codice nelle funzioni critiche, usando algoritmi migliori e strutture dati dedicate al singolo processore, usando la coloratura della memoria per macchine NUMA (accesso non uniforme alla memoria) e implementando protocolli di blocco più scalabili, come le code di spinlock; i nuovi protocolli di lock contribuiscono a ridurre i cicli di bus del sistema, le liste senza lock e le code, l’uso di operazioni atomiche read-modify-write (come l'incremento interbloccato) ed altre tecniche avanzate di blocco.
I sottosistemi che costituiscono Windows XP comunicano tra loro in modo efficiente mediante una procedura locale di chiamata (LPC) che fornisce passaggio di messaggi ad alte prestazioni.
Se non si esegue il dispatcher nel kernel, i thread nei sottosistemi di Windows XP possono acquisire diritto di precedenza tramite thread ad alta priorità, e pertanto il sistema risponde velocemente ad eventi esterni. Inoltre, Windows XP è progettato per multiprocessi simmetrici; In un computer multiprocessore, parecchi thread possono essere eseguiti contemporaneamente.
Componenti di Sistema
L'architettura di Windows XP è un sistema stratificato di moduli, come si vede in Figura 1. Gli strati principali sono HAL, il kernel e il codice eseguibile che funzionano in modo protetto e una collezione di sottosistemi e di servizi che funzionano in modalità utente. I sottosistemi in modalità utente si dividono in due categorie: sottosistemi di ambiente che emulano differenti sistemi operativi ed i sottosistemi di protezione (protection subsystems) che forniscono funzioni di sicurezza.Uno dei principali vantaggi di questo tipo di architettura è che le interazioni fra moduli sono mantenute semplici. Il resto di questo paragrafo descrive questi strati e sottosistemi.

Nessun commento:
Posta un commento