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.
Architettura a microkernel ibrido:
Livelli software (dal basso):
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:
Gestore dei dispositivi:
↓
HAL, microkernel e gestore dei dispositivi permettono di
portare Windows XP senza modifiche su numerose architetture
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:
I processi utente accedono ai servizi executive mediante le API native, chiamate di sistema proprie degli executive.
Processi in modalità utente interposti tra gli executive e il resto dello spazo utente.
Esportano una API per uno specifico ambiente:
↓
Miglioramento della portabilità delle applicazioni
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:
Il gestore della configurazione è il componente executive responsabile della gestione del registro.
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:
Il tipo specifica gli attributi e le operazioni consentite:
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:
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).
3 strutture dati per ogni processo :
I thread possono creare le fibre.
Unità di elaborazione simili ai thread ma gestiti in modalità utente dal thread stesso.
Scheduling basato su priorità con prelazione.
32 livelli di priorità:
32 ready queue (una per ogni priorita’)
Ogni coda gestita round robin.
Due classi di thread:
Windows definisce numerosi strumenti per la sincronizzazione chiamati oggetti dispatcher.
Possono essere in uno stato:
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)
2. Lo stallo dei processi – parte prima
3. Lo stallo dei processi – parte seconda
4. Lo stallo dei processi – parte terza
6. Il S.O. Linux – parte prima
7. Il S.O. Linux – parte seconda
8. Il S.O. Windows – parte prima
9. Il S.O. Windows – parte seconda
10. Il S.O. Windows – parte terza
11. I S.O. multimediali – parte prima
12. I S.O. multimediali – parte seconda
13. I S.O. multimediali – parte terza
14. I Sistemi Operativi distribuiti - parte prima
15. I Sistemi Operativi distribuiti - parte seconda
16. I Sistemi Operativi distribuiti - parte terza
17. I Sistemi Operativi distribuiti - parte quarta
18. I Sistemi Operativi distribuiti - parte quinta
19. I Sistemi Operativi distribuiti - parte sesta
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
2. Lo stallo dei processi – parte prima
3. Lo stallo dei processi – parte seconda
4. Lo stallo dei processi – parte terza
6. Il S.O. Linux – parte prima
7. Il S.O. Linux – parte seconda
8. Il S.O. Windows – parte prima
9. Il S.O. Windows – parte seconda
10. Il S.O. Windows – parte terza
11. I S.O. multimediali – parte prima
12. I S.O. multimediali – parte seconda
13. I S.O. multimediali – parte terza
14. I Sistemi Operativi distribuiti - parte prima
17. I Sistemi Operativi distribuiti - parte quarta
18. I Sistemi Operativi distribuiti - parte quinta
19. I Sistemi Operativi distribuiti - parte sesta
I podcast del corso sono disponibili anche su iTunesU e tramite Feed RSS.