Vai alla Home Page About me Courseware Federica Living Library Federica Virtual Campus 3D Le Miniguide all'orientamento Gli eBook di Federica
 
 
Il Corso Le lezioni del Corso La Cattedra
 
Materiali di approfondimento Risorse Web Il Podcast di questa lezione

Marco Lapegna » 8.Il S.O. Windows – parte prima


Evoluzione

1981 – MS-DOS 1.0. s.o. a 16 bit. Solo 1MB di memoria centrale;
1983 – MS-DOS V.2.0 con driver per hard disk e gestione del file system;
1984 – MS-DOS V.3.0 con supporto di rete;
1985 – Windows 1.0 prima interfaccia grafica;
1987 – Windows 2.0 con funzionalità di multitasking;
1988 – DOS V.4.0 con shell e gestione della memoria > 640KB;
1991 – DOS V.5.0 gestione più efficiente della memoria;
1992 – Windows 3.1. oltre 3 milioni di copie in due mesi: supporto di rete;
1993-94 – Windows NT 3 e NT4. S.O. object oriented per server di alto livello. Stessa interfaccia grafica di Windows 3.1 ma kernel completamente riscritto;
1995 – Windows 95: S.O. per applicazioni a 32 bit. Non più una interfaccia grafica come Windows 3.1 ma un completo S.O.;
1996-1998 – Windows CE 3.0. S.O. per computer palmari;
1998 – Windows 98. browser integrato, supporti Java e HTML e vari supporti hardware (USB, firewire, DVD,… );
2000 – Windows 2000 con supporto molto efficiente per le connessioni di rete;
2001 – Windows XP: supporto a 64 bit;
2003 – windows server 2003 – evoluzione di XP per le aziende;
2007 – Windows Vista.

Linee di sviluppo


Architettura del sistema

Architettura a microkernel ibrido:

  • Kernel compatto che fornisce pochi servizi di base;
  • Sottosistemi eseguiti in modalità kernel;
  • Organizzazione stratificata.

Livelli software (dal basso):

  • Hardware Abstraction Layer (HAL);
  • Microkernel e driver dei dispositivi;
  • Executive (servizi generali del s.o.);
  • Interfaccia nativa;
  • Sottosistemi di ambiente;
  • Processi utente.

Hardware Abstraction Layer (HAL)

Molti sistemi, anche basati sullo stesso processore
hanno dettagli architetturali differenti
(caratteristiche della scheda madre,
cache, dispositivi proprietari,…)

utilita’ di uno strato software per
nascodere l’hardware al resto del sistema
(Strato di Astrazione dell’Hardware)

E’ sufficiente adattare solo l’HAL da un sistema all’altro
e i moduli del kernel possono essere sviluppati
senza tenere conto dei dettagli hardware

Microkernel e gestore dei dispositivi

Microkernel:

  • Fornisce i meccanismi base del sistema (scheduling e sincronizzazione dei threads, gestione delle interruzioni ).

Gestore dei dispositivi:

  • Contiene la parte del software di I/O dipendente dall’hardware.

HAL, microkernel e gestore dei dispositivi permettono di
portare Windows XP senza modifiche su numerose architetture

Executive e interfaccia nativa

L’insieme dei moduli che costituiscono il s.o. vero e proprio sono eseguiti in modalità kernel e possono accedere a tutta la memoria

Fornisce i principali servizi:

  • Gestore della memoria,
  • File system
  • I/O di alto livello

I processi utente accedono ai servizi executive mediante le API native, chiamate di sistema proprie degli executive.

Sottosistemi di ambiente

Processi in modalità utente interposti tra gli executive e il resto dello spazo utente.

Esportano una API per uno specifico ambiente:

  • Win32 (installato di default);
  • POSIX;
  • Service for Unix (SFU);
  • Windows over Windows64 (WOW64, disponibile per Windows XP 64 bit) per l’esecuzione di applicazioni a 32 bit.

Miglioramento della portabilità delle applicazioni

Registro

Database centralizzato strutturato ad albero che mantiene tutte le informazioni di configurazione degli utenti, delle applicazioni del sistema e dell’hardware.

Accessibile da parte di tutti i processi per conoscere le risorse e le impostazioni del sistema.

Esempio:

  • Configurazione utente: impostazioni desktop;
  • Configurazione di sistema: software installato;
  • Configurazione hardware: informazioni sui dispositivi installati;
  • Configurazione applicazioni: valori di default per una applicazione.

Il gestore della configurazione è il componente executive responsabile della gestione del registro.

Oggetti

Tutte le risorse hardware (es. dispositivi) o logiche (es. processi) sono rappresentati mediante oggetti.

Oggetti = strutture dati con informazioni sulle caratteristiche e operazioni consentite sull’oggetto

Ogni oggetto è definito da un tipo e sono creati dagli executive:

  • Es. Il gestore dell’I/O crea l’oggetto di tipo file.

Il tipo specifica gli attributi e le operazioni consentite:

  • Es. attributi: nome, proprietario,…
  • Es. operazioni: open, close, read, …

Handle (maniglia)

Struttura dati che permette ai processi di manipolare gli oggetti.

Attraverso un handle un processo può invocare una delle procedure dell’oggetto e modificarne le caratteristiche

Per creare un oggetto un processo:

  1. Invoca il gestore degli oggetti;
  2. Il gestore degli oggetti crea la struttura dati corrispondente;
  3. Passa un handle al processo.

Gli handle possono essere comunicati tra processi.
Per ogni oggetto, il gestore degli oggetti tiene il conto degli handle che vi fanno riferimento (necessario per la cancellazione).

Interruzioni


Processi

3 strutture dati per ogni processo :

  • Blocco EPROCESS (usato dai componenti executive). Contiene:
    • Process ID, tabella degli handle, dimensione del working set;
    • Puntatore al PEB;
    • Organizzati secondo una lista nello spazio kernel.
  • Blocco KPROCESS (usato dal microkernel). Contiene
    • Parte del blocco EPROCESS;
    • Informazioni per lo scheduling (priorità, quanto);
    • Informazioni sulla sincronizzazione (semafori ).
  • Process environment block (PEB):
    • Residente nello spazio utente;
    • Informazioni utili al processo stesso;
    • Es. Librerie dinamiche collegate, sezioni critiche acquisite.

Thread


Fibre

I thread possono creare le fibre.
Unità di elaborazione simili ai thread ma gestiti in modalità utente dal thread stesso.


Scheduling dei thread

Scheduling basato su priorità con prelazione.
32 livelli di priorità:

  • 0 = priorità minore;
  • 31 = priorità maggiore.

32 ready queue (una per ogni priorita’)

Ogni coda gestita round robin.

Due classi di thread:

  • Thread real time (priorità statiche 16 → 31)
  • Thread normali (priorità dinamiche 0 → 15)

Scheduling dei thread


Sincronizzazione dei thread

Windows definisce numerosi strumenti per la sincronizzazione chiamati oggetti dispatcher.

Possono essere in uno stato:

  • signaled (consentono la continuazione dell’elaborazione)
  • unsignaled (non consentono la continuazione dell’elaborazione)

Oggetti mutex (sem. binari)
Oggetti semafori (sem. contatori)
Oggetti evento (usato per le operazioni di I/O)
Oggetti waitable timer (usato per le sincr. periodiche)
Oggetti per sezioni critiche (piu’ efficienti dei mutex)

I materiali di supporto della lezione

Silberschatz , Galvin, Gagne – Sistemi Operativi 8a ed. Capitolo 22

Tanenbaum – Moderni sistemi operativi 3a ed. Cap. 11

Deitel, Deitel, Choffnes - Sistemi operativi 3a ed. Capitolo 16

  • Contenuti protetti da Creative Commons
  • Feed RSS
  • Condividi su FriendFeed
  • Condividi su Facebook
  • Segnala su Twitter
  • Condividi su LinkedIn
Progetto "Campus Virtuale" dell'Università degli Studi di Napoli Federico II, realizzato con il cofinanziamento dell'Unione europea. Asse V - Società dell'informazione - Obiettivo Operativo 5.1 e-Government ed e-Inclusion