sistemi operativi1 cosa è un sistema operativo un po di storia il gestore dei processi il gestore...
TRANSCRIPT
Sistemi Operativi 1
Sistemi Operativi Cosa è un sistema operativo Un po’ di storia Il gestore dei Processi Il gestore della Memoria Il File System
Sistemi Operativi 2
Il sistema di Elaborazione ...
Dispositivo Fisico
Microprogrammazione
Linguaggio Macchina
Sistema Operativo
Utility di Sistema Interprete dei Comandi
Programmi Applicativi
… E’ costituito da Hardware, Programmi di Sistema e Programmi Applicativi
Sistemi Operativi 3
Cosa è un Sistema Operativo (S.O.)
Le due viste del S.O. Un S.O. ha due funzioni fondamentali,
apparentemente scorrelate S.O. come generatore di macchina
estesa o virtuale S.O. come gestore delle risorse
Sistemi Operativi 4
S.O. come macchina estesa
Punto di vista Top Down (Dall’alto verso il basso) ...
Sia il programmatore che l’utente preferiscono trattare con una ASTRAZIONE della macchina reale
Il S.O. nasconde al programmatore la “verità” sui livelli hardware sottostanti e presenta un sistema semplice di accesso alle funzionalità del sistema nonché un’interfaccia gradevole e amichevole all’utente, maggiori funzionalità, ecc.
Sistemi Operativi 5
Il modello a Macchine Virtuali
M0 S0
M1 S1
M2 S2S2’
M3 M3S3
M4
Weidernann 1971
• Mi rappresenta la macchina • Si lo strato software ad esso sovrapposto
Sistemi Operativi 6
Il modello stratificato di un S.O.
Nucleo
Gestore memoria
Gestore di I/O
File system
Interprete Comandi
Programmi Utente
Sistemi Operativi 7
S.O. come gestore delle risorse
Punto di vista Bottom Up (dal basso verso l’alto) Gestisce tutte le componenti di un sistema
complesso
ALU
Registri
Controllo
ROM
RAM
HD FD
Interfaccia I/O
Monitor
CPU
Memoria
BUS
Interfaccia I/O
Sistemi Operativi 8
Classificazione dei S.O.
MonoTask è presente un solo processo/programma alla volta
Mono Utente è collegato un solo utente alla volta
MonoTask -> Mono Utente MultiTask
sono presenti più processi/programmi alla volta Multi Utente
sono collegati più utenti alla volta
Sistemi Operativi 9
Classificazione dei S.O. (cont.)
MonoTask MS-DOS
MultiTask e Mono Utente Win98
MultiTask e Multi Utente WinXP, Unix, Linux
Sistemi Operativi 10
Turn Around Time Tta
Tta =TO-TI è il tempo che passa tra l’ingresso
dei dati e la produzione dell’output
Elaborazione
Tta
Input Output
TI TO
tI
t
Sistemi Operativi 11
Throughput
E’ proporzionale al numero di lavori eseguiti dal sistema nell’unità di tempo T
E’ detto anche CARICO del SISTEMA
Sistemi Operativi 12
Overhead di Gestione
Sovraccarico Gestionale E’ proporzionale al tempo consumato
dal S.O. per eseguire il suo compito
Sistemi Operativi 13
Un sistema efficiente ...
Throughput Elevato TurnAround Time Basso Overhead Gestionale Basso
Ma …. Quando il Turnaround è basso?
Sistemi Operativi 14
Un po’ di storia
Per comprendere le funzionalità di un S.O. è comodo seguirne l’evoluzione storica
anni 40 assenza di S.O.anni 50 gestione dei lavori a lottianni 60 multiprogrammazionemetà anni 60 Sistemi General Purposea metà anni 70metà anni 70 DB, Reti, S.Distribuitiad oggi
Sistemi Operativi 15
Un semplice schema
CPU
Memoria
Canale OUTPUT
Canale INPUT
Sistemi Operativi 16
Overlap delle attività
CPU
Input
Output
i1
e1
o1
i2
e2 eN
o2 oN
i3
e3 ….
….
….
….overlap
Nk
kNNk
kk eooii,11,1
11 ),max(THROUGHPUT proporzionale a:
Sistemi Operativi 17
Le interruzioni (1)
Con l’introduzione dei canali di dati si risolve il problema della sovrapposizione delle operazioni di I/O ma e’ necessario poter sovrapporre le operazioni di calcolo e quelle di I/O. Per far cio’ e’ necessario che l’attivita’ della
CPU sia interrompibile a seguito di un evento esterno come, ad es., la fine della stampa di un file. Per risolvere questo problema è stato introdotto il concetto delle interruzioni.
Sistemi Operativi 18
Le interruzioni (2)
Le interruzioni sono segnali che, arrivando alla CPU, possono interrompere, se abilitate, l’esecuzione del programma in corso ed eseguire un programma particolare detto Interrupt Service Routine (ISR)
Tramite l’uso dei canali e degli interrupts e’ possibile: sovrapporre le operazioni di input e di output sovrapporre le operazioni di calcolo e quelle di I/O
Per ottenere la sovrapposizione massima tra queste operazioni in memoria si caricano piu’ programmi in modo che, mentre uno e’ impegnato in operazioni di I/O, un altro possa utilizzare la CPU.
Sistemi Operativi 19
MultiTask o Multiprogrammazione
Possibilita’ di caricare piu’ programmi in memoria in grado di condividere l’uso della CPU e delle risorse dell’elaboratore E’ possibile che il S.O per realizzare la
multiprogrammazione non mantenga tutti i programmi in memoria ma li carichi di volta in volta quello piu’ idoneo da un supporto di massa
Tale tecnica, detta di “swapping” e’ meno efficiente ma risulta necessaria quando si hanno problemi di dimensione della memoria
Sistemi Operativi 20
Sistemi Time Sharing (1)
Un processo rimane in running solo per un intervallo fissato di tempo (Time Slice) Per evitare che resti padrone della CPU a
tempo indeterminato Il Supervisore riacquista il controllo
quando è terminata la time slice il programma termina la sua esecuzione il programma avanza una richiesta di I/O
Sistemi Operativi 21
Sistemi Time Sharing (2)
Running
WaitingReady
fine op. I/O
attesa di op. di I/Oattivazione
da parte della CPU (scheduler)
Fine Time Slice
È ovvio che un programma per terminare la sua esecuzione avrà bisogno di più time slice• aumenta il turnaorund time dei singoli processi• migliora il throughput complessivo
Sistemi Operativi 22
Sistemi Real Time
Un sistema Real Time è al servizio di una specifica applicazione controllo centrale nucleare controllo caldaia controllo radar
E ha severi limiti nei tempi di risposta ossia la risposta deve essere prodotta in
tempi utili per l’ambiente esterno L’overhead deve essere ridotto all’osso
Sistemi Operativi 23
Sistemi Real Time(2)
Running
WaitingReady
fine evento
attesa di eventoattivazione
da parte della CPU (scheduler)
pre-emption
Con la pre-emption si garantisce che il processo più importante sia quello running • aumenta overhead• ottimizza turnaorund•il throughput non è significativo
Sistemi Operativi 24
Il Gestore della Memoria
Il compito del Gestore della Memoria è ricordare quali parti della memoria sono
attualmente in uso e quali non lo sono di assegnare la memoria ai processi di deallocare la memoria assegnata di amministrare gli scambi tra memoria
centrale e disco quando la prima non è più in grado di contenere i processi (swapping)
Sistemi Operativi 25
Partizioni Fisse
La memoria è divisa in n partizioni di lunghezza diversa
Problema: qualsiasi spazio non usato è perso
Part. 4
Part. 3
Part. 2
Part. 1Sistema
Operativo
P121P3P4
Coda di Input
Sistemi Operativi 26
Partizioni Variabili
L’allocazione cambia a mano a mano che i processi entrano in memoria e poi la lasciano
Problema: compattazione e garbage collection
S.O.
A
S.O.
A
B
S.O.
A
B
C
S.O.
B
C
S.O.
B
C
D
S.O.
C
D
Sistemi Operativi 27
Paginazione
Lo spazio degli indirizzi viene suddiviso in unità logiche dette pagine alle pagine corrispondono unità di memoria
fisica detti frame Alcune pagine sono i memoria centrale,
altre su disco se si tenta di accedere ad una pagina non in
memoria centrale, viene provocata una eccezione detta page fault.
A questo punto il S.O. prende un frame poco usato, la scarica su disco e carica la pagina richiesta dal disco al frame liberato
Sistemi Operativi 28
Memory Paging e Mapping
Sistemi Operativi 29
Sistemi Operativi 30
File System
Crea una corrispondenza tra l’organizzazione logica dei file e la loro struttura fisica corrispondenza tra spazio logico e spazio fisico scambio dei dati tra memoria di massa e
memoria fisica gestione dei buffer di sistema allocazione dei blocchi sulla memoria di massa condivisione e protezione dei file pipes o canali virtuali di comunicazioni fra
processi.
Sistemi Operativi 31
Il File System
Dal punto di vista dell’utente il File System è caratterizzato dalle operazioni che ha a disposizione, cioè … come si definisce un file come il file vengono denominati e protetti che operazioni sono permesse sui file e così via
Tipizzazione dei file mediante un suffisso (“estensione”). Tipica di
Windows. altre tecniche
Sistemi Operativi 32
Directory
Per tenere traccia dei file, il File system mette a disposizione dell’utente dei directory
contenente un certo numero di elementi, uno per file
Elemento
Elemento
Elemento
Elemento
Nome del filetipo del file
dimensione del fileproprietarioprotezione
tempo di creazioneultima modifica
lista dei blocchi usati
directory
Sistemi Operativi 33
Albero dei directory
E’ molto comune che un utente voglia raggruppare i suoi file in modo logico, attraverso una struttura gerarchica
Radice
A B C
DF1 F2 F3 F2
F1
Sistemi Operativi 34
Memorizzazione dei File
Un file è di solito composto da una sequenza di blocchi
Il File System deve tenere traccia dei blocchi di ciascun file
Negli ambienti Microsoft ad ogni disco è associata una tabella d’allocazione dei file o FAT, contenente un elemento per ogni blocco del disco. Il directory contiene il numero di blocco del
primo blocco dei file
Sistemi Operativi 35
La FAT
XX
EOFFREE
298
FREE4
11FREEEOF
0123456789
1011
6 8 4 2
5 9 11
File A
File B
Directory
File A ext A Riserv. H D 6 4
File B ext A Riserv. H D 5 3
Sistemi Operativi 36
I tipi di FAT
FAT Ogni entry è di 16 bits, cioè 65.535 clusters
max Ogni cluster è max 32768 bytes, il filesystem ha un limite massimo superiore di
2 Gbytes per la dimensione della partizione. FAT32
Ogni entry è di 32 bits, cioè 4.294.836.225 clusters max
Ogni cluster è max 32768 bytes, il filesystem ha un limite massimo superiore di
32 Gbytes per la dimensione della partizione.
Sistemi Operativi 37
I tipi di FAT (cont.)
Dimensioni dei cluster in base alla grandezza delle partizioni
FAT fino a 128MB -> 2KB
128-256MB -> 4KB256-512MB -> 8KB512-1024MB -> 16KB1024-2048MB -> 32KB
FAT32 512MB-8GB -> 4KB
8GB-16GB -> 8KB16GB-32GB -> 16KB32GB o + -> 32KB
Sistemi Operativi 38