Evoluzione dei sistemi operativi (4)
Evoluzione dei sistemi operativi (5)
• Sistemi multiprogrammati
• Personal computer, workstation, sistemi distribuiti
!
più programmi sono caricati in memoria
contemporaneamente, e l’elaborazione passa periodicamente
dall’uno all’altro
job 1
più elaboratori collegati in rete condividono risorse e
distribuiscono potenza di calcolo
disco
job 3
job 2
!
partizioni
di memoria
sistema
operativo
input
output
spooling system
© Augusto Celentano
Sistemi Operativi A - 45
© Augusto Celentano
Sistemi Operativi A - 46
Classificazione dei sistemi operativi
Sistemi dedicati (home computer, videogiochi)
• Sistemi dedicati (home computer, videogiochi)
• La macchina serve un solo “utente” e svolge un solo
“compito”
• Sistemi batch (sistemi EDP)
!
• Sistemi interattivi in time-sharing (Unix)
!
• Sistemi in tempo reale (sistemi dedicati, sistemi
industriali)
!
funzioni base per interpretare comandi e eseguire programmi
supervisori o monitor
semplicità, basso livello, scarso sfruttamento del tempo
macchina
• Sistemi transazionali
• Sistemi misti
• Sistemi personali
• Sistemi operativi virtuali
© Augusto Celentano
Sistemi Operativi A - 47
© Augusto Celentano
Sistemi Operativi A - 48
Sistemi batch (sistemi EDP)
Sistemi interattivi in time-sharing (Unix)
• La macchina serve un “lotto” di programmi in
sequenza, in modo non interattivo
• La macchina serve a turno più utenti ripartendo tra
essi l’utilizzo delle risorse (unità centrale, memoria,
periferiche)
!
!
!
!
serializzazione delle operazioni di ingresso / uscita
sovrapposizione dei lavori
elaborazione non assistita
sfruttamento del tempo macchina
!
!
!
© Augusto Celentano
Sistemi Operativi A - 49
ogni utente lavora indipendentemente dagli altri, avendo
l’impressione di utilizzare una macchina dedicata
protezione
sfruttamento delle risorse della macchina
© Augusto Celentano
Sistemi Operativi A - 50
Sistemi real-time
Sistemi transazionali
• La macchina esegue più attività sulla base di una scala
di priorità, sospendendo i lavori meno urgenti a
favore dei più urgenti
• Permettono l’uso di programmi applicativi e l’accesso
a archivi di dati salvaguardando la compiutezza delle
operazioni
!
!
!
protezione, tempi di risposta
gestione conflitti
sfruttamento delle risorse compatibilmente con le esigenze
dell’ambiente esterno
© Augusto Celentano
Sistemi Operativi A - 51
!
!
!
gestione del traffico verso sistemi remoti
gestione della concorrenza tra gli utenti
gestione degli errori e ripristino della coerenza dei dati
© Augusto Celentano
Sistemi Operativi A - 52
Altri tipi di sistemi operativi
Struttura a livelli di un sistema operativo
• Sistemi misti
• Un sistema operativo complesso definisce una serie
di macchine virtuali, realizzate per mezzo di astrazioni
sopra la macchina fisica.
!
!
presentano più caratteristiche contemporaneamente, in
funzione dell’utilizzo e della configurazione
sistemi multi-purpose, operano in time-sharing, con
meccanismi di priorità e possibilità di elaborazioni batch
interfaccia utente
• Sistemi personali
!
file system
offrono possibilità di esecuzioni multiple da parte di un unico
utente
gestore dell’I/O
HW
• Sistemi operativi virtuali
!
gestore della memoria
nucleo
offrono all’utente la scelta di più sistemi operativi sulla stessa
macchina
© Augusto Celentano
Sistemi Operativi A - 53
© Augusto Celentano
Sistemi Operativi A - 54
Nucleo di un sistema operativo (1)
Nucleo di un sistema operativo (2)
• In un sistema ideale dedicato alla esecuzione di un
solo programma le operazioni sono sequenziali e
sincrone
• La macchina è dotata di un solo processore e di una
sola memoria centrale. Il nucleo ripartisce l’uso della
unità centrale tra i diversi processi attraverso la
gestione delle interruzioni
!
!
!
tutte le operazioni (elaborazione, ingresso e uscita, controllo
dell’esecuzione) sono eseguite una dopo l’altra in modo
deterministico e ripetibile
ogni azione viene terminata prima di passare all’azione
successiva
l’esito dell’elaborazione non dipende dal tempo totale di
esecuzione, né dal tempo relativo di esecuzione delle singole
operazioni
!
!
si genera una macchina virtuale in cui ad ogni programma
attivo (processo) corrisponde una unità centrale virtuale
dedicata.
i programmi che vengono eseguiti in tale ambiente non
devono occuparsi della ripartizione dell’uso dell’unità
centrale, poiché ciascuno ne utilizza una diversa (virtuale)
• In un sistema reale multiprogrammato tale
comportamento può essere riferito al singolo
programma, ma non al sistema nel suo complesso
© Augusto Celentano
Sistemi Operativi A - 55
© Augusto Celentano
Sistemi Operativi A - 56
Nucleo di un sistema operativo (3)
memoria
centrale
CPU
•••
CPU
processo 1
•••
memoria
di massa
memoria
centrale
CPU
Gestore della memoria centrale (1)
• Il gestore della memoria di un sistema operativo
consente di programmare riferendosi ad uno spazio
di indirizzamento virtuale, indipendente dall’effettivo
spazio di indirizzamento della memoria fisica.
I/O
memoria
di massa
• Si genera una macchina virtuale in cui ogni
processore (virtuale) ha a disposizione una memoria
privata la cui corrispondenza con la memoria fisica
non è (in linea di principio) rilevante.
I/O
• I programmi possono essere sviluppati senza sapere
la configurazione reale della memoria in cui saranno
allocati
processo n
© Augusto Celentano
Sistemi Operativi A - 57
Gestore della memoria centrale (2)
CPU
•••
CPU
memoria
centrale
© Augusto Celentano
Gestore delle periferiche di I/O (1)
memoria
di massa
• Il gestore delle periferiche realizza due tipi di
virtualizzazione:
I/O
!
memoria
centrale
CPU
processo 1
© Augusto Celentano
•••
•••
memoria
centrale
CPU
memoria
di massa
Sistemi Operativi A - 58
come i due gestori precedenti, ripartisce l’utilizzo delle
risorse esterne in modo che ogni processo possa vedere una
periferia dedicata, in cui
– non ci sono conflitti di utilizzo con altri processi o utenti
– non è necessario gestire la sincronizzazione e i tempi di attesa
(operazioni sincrone)
I/O
!
fornisce un insieme di funzioni di gestione di alto livello che,
mascherando le differenze costruttive delle apparecchiature,
rendono omogeneo l’utilizzo della periferia anche se questa è
diversificata
processo n
Sistemi Operativi A - 59
© Augusto Celentano
Sistemi Operativi A - 60
Gestore delle periferiche di I/O (2)
memoria
centrale
CPU
•••
memoria
centrale
CPU
memoria
di massa
File system (1)
• Il file system assegna alle informazioni memorizzate
su una memoria di massa una organizzazione e una
strutturazione riferite all’utilizzo delle informazioni e
non al loro schema di memorizzazione
I/O
I/O
!
CPU
CPU
memoria
memoria
centrale
centrale
memoria
memoria
di massa
di massa
I/O
I/O
I/O
I/O
!
!
CPU
CPU
memoria
memoria
centrale
centrale
memoria
memoria
di massa
di massa
© Augusto Celentano
I/O
I/O
le informazioni sono raccolte in unità logiche (file) identificate
da un nome, di cui si ignora la struttura fisica e l’allocazione
sul supporto di memorizzazione
l’accesso avviene tramite funzioni che operano sul contenuto
in base alla sua organizzazione logica (stream, record)
sono gestite sia la privatezza dei dati, sia i conflitti di accesso
nel caso di utilizzo condiviso tra più utenti
I/O
I/O
Sistemi Operativi A - 61
File system (2)
© Augusto Celentano
Sistemi Operativi A - 62
Sistemi operativi virtuali
• Replicano macchine complete su cui possono girare
più sistemi operativi diversi
disco fisico
organizzazione
logica
(Tanenbaum, 2001)
© Augusto Celentano
Sistemi Operativi A - 63
© Augusto Celentano
Sistemi Operativi A - 64
Sistemi operativi a microkernel (client-server)
Sistemi distribuiti
• Dividono i servizi in più processi che comunicano
attraverso un nucleo semplificato
• Estendono il modello client-server su una architettura
distribuita attraverso lo scambio di messaggi lungo
una rete
(Tanenbaum, 2001)
(Tanenbaum, 2001)
© Augusto Celentano
Sistemi Operativi A - 65
Sistemi operativi moderni
© Augusto Celentano
Sistemi Operativi A - 66
Unix
Dimensione del nucleo di un sistema operativo
• Ha una struttura a livelli che maschera la visibilità
della macchina fisica
!
il livello più interno è il kernel, che racchiude le funzioni di
gestione dei processi,
della memoria e dell’I/O
• Alcuni programmi di
utilità esterni al sistema
operativo sono forniti
con il sistema
!
!
interpreti comandi (shell)
compilatore C
(Tanenbaum, 2001)
© Augusto Celentano
Sistemi Operativi A - 67
(Stallings, 2000)
© Augusto Celentano
Sistemi Operativi A - 68
I livelli di un sistema Unix
La struttura del kernel di Unix
(Tanenbaum, 2001)
(Tanenbaum, 2001)
© Augusto Celentano
Sistemi Operativi A - 69
© Augusto Celentano
Sistemi Operativi A - 70
Alcuni sistemi Unix
Windows NT/2000 (1)
• System V Release 4 (SVR4)
• E’ progettato per utilizzare al meglio le proprietà
delle architetture moderne a 32 bit
• Solaris 2.x
• Fornisce meccanismi di esecuzione multitask in un
ambiente mono-utente
• 4.4BSD
• Linux
© Augusto Celentano
• E’ basato sul paradigma client-server
Sistemi Operativi A - 71
© Augusto Celentano
Sistemi Operativi A - 72
Windows NT/2000 (2)
Struttura a livelli di Windows NT/2000
• Ha un’architettura modulare che consente un elevato
livello di flessibilità nella configurazione
• Hardware abstraction layer (HAL)
!
!
può adattarsi a macchine differenti sul piano hw (in modo
limitato)
supporta applicazioni scritte per altri sistemi operativi (in
modo limitato)
!
• Microkernel
!
• E’ un’architettura microkernel modificata
!
!
!
molte funzioni esterne al microkernel sono eseguite in modo
kernel
ogni modulo del sistema può essere rimosso, aggiornato o
sostituito senza modificare il resto del sistema
© Augusto Celentano
Sistemi Operativi A - 73
Hardware Abstraction Layer
è un livello che isola il sistema operativo dalle differenze
hardware specifiche della singola piattaforma
il kernel contiene solo i componenti essenziali del sistema
operativo o quelli più utilizzati
il resto è costituito da oggetti e processi esterni
• Device driver
!
traducono le richieste I/O dei processi utente in richieste ai
dispositivi di controllo dllo specifico hardware
© Augusto Celentano
Sistemi Operativi A - 74
Il nucleo di Windows NT/2000 (executive)
•
•
•
•
•
•
•
•
I/O manager
Object manager
Security reference monitor
Process/thread manager
Local procedure call (LPC) Facility
Virtual memory manager
Cache manager
Windows/graphics modules
(Tanenbaum, 2001)
© Augusto Celentano
Sistemi Operativi A - 75
© Augusto Celentano
Sistemi Operativi A - 76
I sottosistemi ambientali
L’architettura di Windows NT/2000
• I processi utente si appoggiano ai sottosistemi
ambientali (environment subsystems)
!
!
!
Win32
OS/2
Posix
• Applicazioni progettate per sistemi Windows 16-32
bit, per sistemi OS/2 o per sistemi Posix trovano in
WIndows NT/2000 un ambiente di esecuzione che
simula l’ambiente nativo
(Tanenbaum, 2001)
© Augusto Celentano
Sistemi Operativi A - 77
© Augusto Celentano
Sistemi Operativi A - 78
Il modello client - server
Thread e SMP (simmetric multiprocessing)
• Rende più semplice l’executive
• L’esecuzione dei processi si basa sui due concetti di
thread e di multiprocessing simmetrico
!
è possibile estendere o modificare le funzioni fornite
(API, Application Program Interface)
!
• Migliora l’affidabilità
ogni servizio è svolto da un processo separato
i processi client non hanno accesso diretto alla macchina hw
(protezione)
!
• Permette di remotizzare i servizi costituendo la base
per l’elaborazione distribuita
!
!
!
© Augusto Celentano
Sistemi Operativi A - 79
!
un processo può avere al suo interno più flussi di esecuzione
logicamente paralleli (thread)
un processo server può creare tanti thread quanti sono i
client che richiedono il servizio
in un hardware multiprocessor i thread possono essere
eseguiti da processori diversi
i processor fisici sono perfettamente equivalenti rispetto ad
ogni richiesta di esecuzione (simmetric multiprocessing)
© Augusto Celentano
Sistemi Operativi A - 80
L’implementazione dei sottosistemi ambiente
Esecuzione di programmi MS-DOS
(Tanenbaum, 2001)
(Tanenbaum, 2001)
© Augusto Celentano
Sistemi Operativi A - 81
© Augusto Celentano
Sistemi Operativi A - 82