Sistemi Operativi
Un sistema operativo è l’insieme di quei
pacchetti software che coordinano le
attività interne di un computer e gestiscono
il suo modo di comunicare con l’esterno.
Sistemi operativi
È grazie al sistema operativo che l’hardware
di un computer diventa uno strumento
utile.
Cercheremo di capire cosa fanno i sistemi
operativi e come.
1
2
Sistemi Operativi
Funzioni del Sistema Operativo
Definizione intuitiva: insieme di programmi che rendono
facilmente disponibile all’utente le potenzialità offerto dalla
Macchina
• Gestione lavori
Sistema operativo = nucleo (kernel) + software di base
• Ausili per la gestione dei dati
• Gestione delle risorse
• Ausili per la messa a punto dei programmi
• Funzioni di:
Il sistema operativo è fornito dal costruttore della
macchina (generalmente non gratuitamente)
3
4
○–
contabilità
○–
sicurezza
○–
recupero
Funzioni del kernel
Funzioni del software di base
Il kernel del sistema operativo è un programma che va in
esecuzione all’accensione della macchina (bootstrapping)
e svolge le funzioni:
Il software di base è un insieme di programmi che
servono a facilitare la creazione di programmi da
parte degli utenti della macchina
– controllo
dell’esecuzione dei programmi dell’utente
– amministrazione delle risorse hardware nei sistemi
multiutente
L’utente si serve del software di base per:
––
––
––
Il kernel impiega del tempo di CPU che viene sottratto
All’esecuzione dei programmi utente: sovraccarico
(overhead)
5
––
––
––
editare un file (insieme ordinato di dati)
compilare
duplicare un file
cancellare un file
visualizzare un file
trasferire un file
6
Funzioni del software di base
––
utilizzare le periferiche (nastri, stampanti, !)
––
colloquiare con altri utenti
––
utilizzare la rete locale
––
inviare e ricevere posta
––
giocare
––
……
Il software
SW Applicativo
Sistema Operativo
SW
HW
HW
SW= Sistema Operativo + SW applicativo
Il Sitema Operativo come necessario intermediario
7
Classificazione del software
Elementi di un SO
Utente
Interprete
comandi
Sistema
Operativo
Gestione
memoria
Gestione
periferiche
Software
applicativo
File
system
Nucleo (o kernel)
[gestione processore]
Interfaccia
con la rete
Hardware
9
Classificazione dei Sistemi Operativi
Sistemi Operativi dedicati
• I primi sistemi operativi (tornati in uso con i PC)
• Dedicati
• La macchina viene utilizzata da un utente per volta che
può eseguire un solo programma per volta (applicativo o
di base)
• A lotti (batch)
• Multiprogrammazione
• Nucleo molto semplice
• Interattivi (time-sharing)
11
• Real-time
• Funzioni base per interpretare comandi e eseguire
programmi
• Per macchine multiprocessori (sistemi
concorrenti)
• Scarso sfruttamento del tempo macchina
12
Sistemi Operativi per la gestione a lotti
(batch)
• Nati per meglio sfruttare la velocità crescente delle macchine:
eliminano i tempi morti tra programmi successivi di utenti diversi
Evoluzione della macchina di Von
Neumann
• In conclusione, il limite intrinseco della struttura di
Von Neumann è la totale mancanza di parallelismo,
che comporta un tempo globale di elaborazione pari
alla somma dei tempi richiesti da ogni singola
attività
• Operazioni I/O offline
• Un insieme di lavori (job) viene accorpato in un lotto (batch) e
trasferito suuna unità di ingresso veloce (nastro/disco)
• Ogni lavoro viene caricato ed eseguito in sequenza senza
interruzioni fino al termine
• La CPU viene comunque sottoutilizzata perché, durante le
operazione di I/O, deve adeguarsi alla bassa velocità delle periferiche
13
Multiprogrammazione
• Più di un programma è caricato in memoria
contemporaneamente
• Le evoluzioni architetturali della macchina di Von
Neumann tendono a consentire diversi livelli di
parallelismo
14
Multiprogrammazione
elaborazione
attesa per operazioni di I/O
• Le operazione di I/O di un programma sono sovrapposte
temporalmente all’esecuzione delle istruzioni di un altro
programma
Tempo
Progr. 1
Progr. 2
Progr. 3
Tempo
elaborazione
15
attesa per operazioni di
I/O
Multiprogrammazione
Multiprogrammazione
• Quando un processo in esecuzione (running) chiede un
servizio di I/O al sistema operativo si blocca (blocked)
in attesa del risultato
Termine
elaborazione
Selezione primo processo
pronto e sua esecuzione
Inizio
esecuzione
(accodamento ai
processi pronti)
• Il sistema operativo avvia l’operazione di I/O e manda in
esecuzione un altro processo che si trova in stato di
pronto (ready)
• Il sistema operativo mantiene una o più code di processi
gestite secondo la priorità assegnata a ciascuno di essi
(scheduling)
Processi
pronti
(ready)
Completamento operazione
di I/O (evento esterno
atteso)
Processo in
esecuzione
(running)
Processi
in attesa
(blocked)
Richiesta
operazione di I/O
• CPU ben sfruttata
17
Multiprogrammazione
Sistemi Operativi interattivi (time sharing)
Svantaggi:
• Il tempo di utilizzo della CPU viene suddiviso dal sistema
• Multiprogrammazione incapace di differenziare fra
programmi che
operativo in fette (quanto di tempo=time slice con durata di
100-800 ms)
• Ogni processo in memoria riceve a turno l’uso della CPU per
richiedono un uso frequente delle periferiche, da quelli che
una fetta di tempo
richiedono l’utilizzo per lunghi tempi della CPU (es.
programmi di
• Usati soprattutto in ambiente multiutente
elaborazione matematica su dati ricevuti inizialmente).
• Quando uno di questi programmi conquista la CPU non la
rilascia, bloccando gli altri programmi
19
20
Sistemi Operativi interattivi (time
sharing)
Sistemi Operativi interattivi (time
sharing)
• L’utente ha l’impressione di avere la
macchina a sua completa disposizione
Termine
elaborazione
Selezione primo processo
pronto e sua esecuzione
Inizio
esecuzione
(accodamento ai
processi pronti)
• Ogni processo ottiene ciclicamente l’utilizzo
della CPU
Processi
pronti
(ready)
Termine quanto
di tempo
Processo in
esecuzione
(running)
• Svantaggi: Overhead per la gestione della
CPU principalmente con molti processi attivi
Completamento operazione
di I/O (evento esterno
atteso)
21
Processi
in attesa
(blocked)
Richiesta
operazione di
I/O
22
Condivisione del tempo macchina tra il
processo A e il processo B.
Sistemi Operativi real time
• Sistemi operativi al servizio di una specifica applicazione
che ha dei vincoli precisi nei tempi di risposta
• Il sistema operativo deve garantire un tempo massimo
entro il quale mandare in esecuzione un programma a
seguito di una richiesta in tal senso
–
––
––
––
–
gestione di strumentazione
controllo di processo
gestione di allarme
sistemi transazionali (banche, prenotazione)
• In generale si ha un sistema real time quando il tempo
che passa dalla richiesta di esecuzione di un processo al
completamento della stessa è minore del tempo fissato
23
24
Sistemi Operativi per sistemi
concorrenti
• Il sistema operativo si prende carico di assegnare le
diverse CPU a processori diversi nonché di gestire le
risorse in comune tra le varie CPU (memoria condivisa,
bus, periferiche)
La gestione dei processi:
Algoritmi di scheduling
• A sua volta il sistema operativo può essere eseguito
contemporaneamente da più CPU oppure da una sola
(master)
• Nell’ultimo caso, le CPU hanno compiti differenti
25
Lo scheduler della CPU
o
o
Il SO sceglie tra i processi in memoria che sono
pronti per l’esecuzione ed assegna la CPU ad uno di
essi.
Lo scheduling può essere:
o Non
preemptive (senza prelazione): un processo mantiene
il possesso della CPU fino a che termina o passa in attesa
o Preemptive
(con prelazione): un processo può essere
interrotto da un altro processo
Lo scheduler della CPU
Parametri:
• Utilizzo
della CPU – mantenere la CPU il più impegnata
possibile.
• Frequenza di completamento (throughput) – numero di
processi completati per unità di tempo.
• Tempo di completamento (turnaround time) – intervallo
che va dal momento dell’immissione del processo nel
sistema al momento del completamento.
• Tempo di attesa (waiting time)– somma dei tempi spesi in
attesa nella coda dei processi pronti.
First-Come, First-Served (FCFS)
Process
CPU Burst
P1
24
P2
3
P3
3
FCFS (Cont.)
Se I processi arrivano nell’ordine
P2 , P3 , P1
Il diagramma di Gantt è:
P2
Se i processi arrivano nell’ordine: P1 , P2 , P3
si ottiene il risultato mostrato nel seguente diagramma di
Gantt:
P3
0
3
P1
6
30
Tempo di attesa per P1 = 6; P2 = 0; P3 = 3
P1
0
P2
24
P3
27
Tempo di attesa medio: (6 + 0 + 3)/3 = 3
30
Tempo di attesa per P1 = 0; P2 = 24; P3 = 27
Tempo medio di attesa: (0 + 24 + 27)/3 = 17
Shortest-Job-First (SJF)
Molto meglio del caso precedente.
C’è un effetto di ritardo a catena (convoy effect) mentre tutti
i processi attendono che quello grosso rilasci la CPU.
Example of Non-Preemptive SJF
Schedula il processo con il prossimo CPU burst più
breve.
Process Arrival Time Burst Time
P1
0.0
7
P2
2.0
4
P3
4.0
1
P4
5.0
SJF (non-preemptive)
4
L’algoritmo SJF può essere:
nonpreemptive – quando un processo ha ottenuto la
CPU, non può essere prelazionato fino al completamento
del suo cpu-burst.
– preemptive – quando un nuovo processo è pronto, ed il
suo CPU-burst è minore del tempo di cui necessita ancora
il processo in esecuzione, c’è prelazione. Questa
schedulazione è anche detta shortest-remaining-timefirst.
–
SJF è ottimale – fornisce il minor tempo di attesa
medio per un dato gruppo di processi.
P1
0
P3
7
P2
8
P4
12
16
Average waiting time = (0 + 3 + 6 + 7)/4 = 4
7-4
8-2 12-5
Example of Preemptive SJF
Scheduling a priorità
Process Arrival Time Burst Time
P1
0.0
7
P2
2.0
4
P3
4.0
1
P4
5.0
SJF (preemptive)
4
P1
0
P2
2
P3
4
SJF è un algoritmo a priorità dove la priorità è l’inverso
della lunghezza del prossimo CPU burst (previsto).
P4
P2
5
Si associa una priorità numerica a ciascun processo.
La CPU viene allocata al processo con priorità più alta.
• Preemptive
• nonpreemptive
7
P1
11
16
Problema ≡ Blocco indefinito (starvation) – processi a
bassa priorità potrebbero non essere mai eseguiti.
Soluzione ≡ Invecchiamento (aging) – accrescere
gradualmente le priorità dei processi nel sistema.
Average waiting time = (9 + 1 + 0 +2)/4 = 3
11-2 …
Round Robin
I/O
Ogni processo riceve la CPU per una piccola unità di
tempo (time quantum), generalmente 10-100
millisecondi. Se entro questo arco di tempo il
processo non lascia la CPU, viene interrotto e
rimesso nella coda dei processi pronti.
Fine I/O
Round Robin (RR)
Processo 1
E
P
P
E
A
A
A
P
P
E
Processo 2
P
E
P
P
E
P
E
E
P
P
Processo 3
P
P
E
P
P
E
P
P
E
P
P3
P2
P1
P
E
A
Cambio di contesto
Esempio di RR con quanto di tempo
pari a 20 millisecondi
Process
Burst Time
P1
53
P2
17
P3
68
P4
24
La gestione del file system:
Il diagramma di Gantt è:
P1
0
P2
20
P3
37
P4
57
P1
77
Ovvero il sistema di gestione della memoria
di massa.
P3
97
P4
117
P1
121
P3
134
P3
154
162
Gestione memoria di massa
File system
FILE:
Obiettivo:
presentare all’utente l’organizzazione logica dei dati e le
operazioni che è possibile compiere su di essi.
Operazioni di base di un file system:
○ recupero
di dati precedentemente memorizzati;
○ eliminazione
(cancellazione) di dati obsoleti;
○ modifica/aggiornamento
○ copia
di dati preesistenti;
di dati (e.g. da HD a FD) per backup o per il
trasferimento;
○…
• contenitore
logico di informazioni (dati o istruzioni);
• oggetto a “lunga vita”, per conservare le informazioni anche
dopo la terminazione del processo che lo ha generato.
Per ogni file:
• Identificatore
(nome.estensione)
• Periferica (drive) e percorso sulla periferica
• Data creazione
• Dimensione
• Posizione effettiva dei dati nella memoria di massa
Un esempio di struttura
/
Interfaccia grafica
(radice)
UTENTI
DOS
DIDATT
ROSSI
NERI
LEZIONI
command.com
ESAMI
edit.com
xcopy.com
filea.txt
BIANCHI
filec.jpg
filea.txt
intro.txt
iscrfeb.doc
iscrgen.doc
fileb.wav
iscrmar.doc
Metodi di allocazione su disco
Un metodo di allocazione specifica il modo in cui
i blocchi di un file vengono allocati nel disco:
○ Allocazione
contigua.
○ Allocazione
linkata.
Allocazione contigua
Ogni file occupa un certo numero di blocchi contigui
su disco.
Facile – è definita dall’indirizzo del primo blocco del
file su disco e dalla lunghezza (numero di blocchi).
File costituito da 4 blocchi
Allocazione contigua dello spazio del disco
Allocazione contigua
Svantaggi:
• Frammentazione esterna: assegnando e liberando
lo spazio per i file, lo spazio libero del disco viene
frammentato in tanti buchi.
• La taglia dei file non può crescere.
Allocazione linkata
Ogni file è una lista linkata di blocchi del disco: i
blocchi possono essere sparpagliati ovunque nel
disco.
Un blocco =
Puntatore al
prossimo blocco
File costituito da 4 blocchi
Allocazione Linkata
Allocazione linkata
Svantaggi
• Inefficiente
l’accesso diretto.
• Spreco di parte di un blocco per il puntatore.
• Poca affidabilità.
Scheduling del disco
Struttura della memoria secondaria
Disco magnetico
Un disco è composto da piatti
Un testina di lettura/scrittura sfiora
ogni piatto
• Ogni piatto è diviso in tracce.
• Ogni traccia in settori.
• L’insieme delle tracce che si trova
sotto un braccio forma un cilindro.
•
•
FCFS (First Come First Served)
Richiesta di I/O
○ Lettura/scrittura
○ Indirizzo
del disco rispetto al quale trasferire
○ Indirizzo di memoria rispetto al quale trasferire
○ Numero di byte da trasferire
Diversi algoritmi esistono per schedulare le richieste di
I/O per il disco.
Li presentiamo usando la seguente coda di richieste (0199)
98, 183, 37, 122, 14, 124, 65, 67
La testina è posizionata sul cilindro 53
Il movimento totale della testina è di 640 cilindri
SSTF (Shortest Seek Time First)
Seleziona la richiesta con il minimo tempo di ricerca dalla
posizione corrente della testina.
La schedulazione SSTF può causare attesa indefinita di
alcune richieste (starvation).
Il movimento totale della testina è di 263 cilindri; Non è ottimale
(servire prima le richieste per 37 e 14 riduce il movimento totale)
C-SCAN
Fornisce un tempo di attesa più uniforme di SCAN.
Il braccio si muove da un capo all’altro del disco,
servendo le richieste lungo il percorso. Quando
raggiunge l’altro capo ritorna direttamente all’inizio del
disco, senza servire alcuna richiesta durante il ritorno.
Tratta i cilindri come una lista circolare che si riavvolge
dal cilindro finale al primo.
SCAN
Il braccio del disco si muove da un estremo all’altro estremo,
servendo le richieste che incontra. All’altro estremo il
movimento viene invertito e il servizio continua.
il movimento totale della testina è 208 cilindri.
C-SCAN
C- LOOK
Versione pratica di SCAN e C-SCAN.
Il braccio arriva fin dove è presente la richiesta finale, per
ciascuna delle due direzioni. Lì inverte immediatamente
direzione, senza giungere all’estremità del disco.