Sistemi Operativi





Cosa è un sistema operativo
Un po’ di storia
Il gestore dei Processi
Il gestore della Memoria
Il File System
Sistemi Operativi
1
Il sistema di Elaborazione ...
… E’ costituito da Hardware, Programmi di
Sistema e Programmi Applicativi
Programmi Applicativi
Utility di Sistema
Interprete dei Comandi
Sistema Operativo
Linguaggio Macchina
Microprogrammazione
Dispositivo Fisico
Sistemi Operativi
2
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
3
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
4
Il modello a Macchine Virtuali
M4
Weidernann 1971
M3
S3
M3
S2’
M2
S2
M1
S1
M0
S0
• Mi rappresenta la
macchina
• Si lo strato
software ad esso
sovrapposto
Sistemi Operativi
5
Il modello stratificato di un S.O.
Programmi Utente
Interprete Comandi
File system
Gestore di I/O
Gestore memoria
Nucleo
Sistemi Operativi
6
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
HD
ROM
FD
Monitor
RAM
Controllo
Memoria
Interfaccia
I/O
Interfaccia
I/O
CPU
BUS
Sistemi Operativi
7
Classificazione dei S.O.

MonoTask


Mono Utente



è collegato un solo utente alla volta
MonoTask -> Mono Utente
MultiTask


è presente un solo processo/programma alla volta
sono presenti più processi/programmi alla volta
Multi Utente

sono collegati più utenti alla volta
Sistemi Operativi
8
Classificazione dei S.O. (cont.)

MonoTask


MultiTask e Mono Utente


MS-DOS
Win98
MultiTask e Multi Utente

WinXP, Unix, Linux
Sistemi Operativi
9
Turn Around Time Tta
Output
Input
TI
tElaborazione
I
TO
t
Tta

Tta =TO-TI

è il tempo che passa tra l’ingresso dei
dati e la produzione dell’output
Sistemi Operativi
10
Throughput


E’ proporzionale al numero di lavori
eseguiti dal sistema nell’unità di tempo T
E’ detto anche CARICO del SISTEMA
Sistemi Operativi
11
Overhead di Gestione


Sovraccarico Gestionale
E’ proporzionale al tempo consumato dal
S.O. per eseguire il suo compito
Sistemi Operativi
12
Un sistema efficiente ...



Throughput Elevato
TurnAround Time Basso
Overhead Gestionale Basso

Ma …. Quando il Turnaround è basso?
Sistemi Operativi
13
Un po’ di storia

Per comprendere le funzionalità di un S.O. è
comodo seguirne l’evoluzione storica
anni 40
anni 50
anni 60
metà anni 60
a metà anni 70
metà anni 70
ad oggi
assenza di S.O.
gestione dei lavori a lotti
multiprogrammazione
Sistemi General Purpose
DB, Reti, S.Distribuiti
Sistemi Operativi
14
Un semplice schema
Memoria
CPU
Canale
OUTPUT
Sistemi Operativi
Canale
INPUT
15
Overlap delle attività
e1
CPU
Input
i1
e2
e3
i3
i2
….
eN
….
….
Output
o1
o2
overlap
THROUGHPUT proporzionale a:
i1 
 max( i
k 1, N 1
k 1
, ok )  oN 
Sistemi Operativi
oN
….
e
k 1, N
k
16
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
17
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
18
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
19
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
20
Sistemi Time Sharing (2)
fine op. I/O
Ready
Waiting
Fine Time Slice
attivazione
da parte della
CPU (scheduler)
Running
attesa di op. di I/O
È 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
21
Sistemi Real Time

Un sistema Real Time è al servizio di una
specifica applicazione




E ha severi limiti nei tempi di risposta


controllo centrale nucleare
controllo caldaia
controllo radar
ossia la risposta deve essere prodotta in
tempi utili per l’ambiente esterno
L’overhead deve essere ridotto all’osso
Sistemi Operativi
22
Sistemi Real Time(2)
fine evento
Ready
Waiting
pre-emption
attivazione
da parte della
CPU (scheduler)
Running
attesa di evento
Con la pre-emption si garantisce che il processo più
importante sia quello running
• aumenta overhead
•
ottimizza turnaorund
•il throughput non è significativo
Sistemi Operativi
23
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
24
Partizioni Fisse

La memoria è divisa
in n partizioni di
lunghezza diversa
Part. 4

Problema: qualsiasi
spazio non usato è
perso
P4 P3 21 P1
Coda di Input
Sistemi Operativi
Part. 3
Part. 2
Part. 1
Sistema
Operativo
25
Partizioni Variabili


C
C
C
B
B
B
B
A
A
A
S.O.
S.O.
S.O.
S.O.
D
S.O.
C
D
S.O.
L’allocazione cambia a mano a mano che i processi
entrano in memoria e poi la lasciano
Problema: compattazione e garbage collection
Sistemi Operativi
26
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
27
Memory Paging e Mapping
Sistemi Operativi
28
Sistemi Operativi
29
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
30
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
31
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
directory
Elemento
Elemento
Elemento
Elemento
Sistemi Operativi
Nome del file
tipo del file
dimensione del file
proprietario
protezione
tempo di creazione
ultima modifica
lista dei blocchi usati
32
Albero dei directory

E’ molto comune che un utente voglia raggruppare i suoi
file in modo logico, attraverso una struttura gerarchica
Radice
A
F1
F2
B
C
F3
D
F2
F1
Sistemi Operativi
33
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
34
La FAT
X
X
EOF
FREE
2
9
8
FREE
4
11
FREE
EOF
0
1
2
3
4
5
6
7
8
9
10
11
File A
6
8
4
File B
5
9
11
2
Directory
File A
File B
ext
ext
A Riserv. H
A Riserv. H
Sistemi Operativi
D
D
6
5
4
3
35
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
36
I tipi di FAT (cont.)


Dimensioni dei cluster in base alla
grandezza delle partizioni
FAT


fino a 128MB -> 2KB
128-256MB -> 4KB
256-512MB -> 8KB
512-1024MB -> 16KB
1024-2048MB -> 32KB
FAT32

512MB-8GB -> 4KB
8GB-16GB -> 8KB
16GB-32GB -> 16KB
32GB o + -> 32KB
Sistemi Operativi
37
Sistemi Operativi
38