homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI...
-
Upload
dino-bernardini -
Category
Documents
-
view
218 -
download
0
Embed Size (px)
Transcript of homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI...


homepage
PROCESSI
STATI DI UN PROCESSO
DESCRITTORE DI PROCESSO
CONTEXT SWITCH
SCHEDULING
CLASSI DI SCHEDULING
SCHEDULING DELLA CPU
OBIETTIVI DELLO SCHEDULING
SWAPPING
CLASSIFICAZIONE DELLE POLITICHE DI SCHEDULING
POLITICHE DI SCHEDULING
RICHIAMI
PASSI DI SVILUPPO DELL’ARGOMENTO
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
LO SCHEDULING
DEI PROCESSI
FCFS
SJF {SRTF}
PRIORITÀ
ROUND ROBIN
RIEPILOGO
RISULTATI
ESERCIZI

PROCESSI
homepage
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Processi
Gli attuali calcolatori, diversamente da quanto avveniva una
volta, consentono la multiprogrammazione, ossia l’esecuzione
concorrente di più programmi.
Una tale caratteristica necessita di un efficiente sistema di
gestione e di ripartizione delle risorse nonché di efficaci
servizi di sistema e di controllo dei programmi.
Alla base di questa tecnica vi è la suddivisione dei programmi
in processi.
homepage
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Un processo è fondamentalmente un programma in fase di
esecuzione; più propriamente, è l’unità di lavoro elementare
che il S. O. esegue sequenzialmente, secondo l’ordine
specificato nel testo del programma.
Un programma (codice binario su disco) di per sé non è un
processo, ma un’entità statica; a seguito del suo lancio, viene
caricato in memoria centrale ed eseguito istruzione dopo
istruzione.
homepageProcessi
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Un processo è rappresentato da:
codice (text) del programma
dati: variabili globali del programma
program counter: indirizzo della successiva istruzione
alcuni registri di CPU
stack: parametri e variabili locali di funzioni o procedure
homepageProcessi
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

STATI DI UN PROCESSO
homepage
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Stati di un processo homepage
Di un processo si può individuare uno stato puntuale, cioè
una condizione in cui esso si viene a trovare in un dato
momento del suo ciclo di vita:
nuovo: il processo è stato creato
pronto: il processo è pronto per l’esecuzione
in esecuzione: il processo è in esecuzione
bloccato: il processo è in attesa di un evento
terminato: il processo rilascia la risorsa processore
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

homepage
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Stati di un processo
Nuovo
Prontoin
esecuzione
Terminato
bloccato
interruzioneuscita
ammissione
attesa evento (es. I/O)
evento verificato
assegnazione
Coda Pronti
Code di Attesa

DESCRITTORE DI PROCESSO
homepage
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Descrittore di processo homepage
In un sistema multiprogrammato è necessario mantenere
memorizzate le informazioni relative ai diversi stati in cui i
processi vengono a trovarsi durante il loro ciclo di vita.
Pertanto, ad ogni processo il S. O. associa una struttura dati,
detta descrittore di processo o Process Control Block
(PCB), nella quale vengono registrate una serie di
informazioni utili per la gestione dello stesso processo.
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Descrittore di processo homepage
Un PCB contiene:
il nome del processo (PID)
lo stato del processo
il contenuto del program counter
i valori di alcuni registri di CPU
informazioni di scheduling
informazioni per la gestione della memoria
informazioni sulle operazioni di I/O
informazioni di contabilizzazione
…………………
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Descrittore di processo homepage
Il S. O. gestisce i PCB di tutti i processi, disponendoli in
strutture dati chiamate code; ogni coda contiene PCB
caratterizzati dallo stesso stato: ready, waiting, …
NOME
STATO
PROGRAM COUNTER
REGISTRI DI CPU
LIMITI DI MEMORIA
FILE APERTI
……………
PCB
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

CONTEXT SWITCH
homepage
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Context switch homepage
Il context switch (commutazione di contesto) è la fase in cui
l’uso della CPU passa da un processo pi al suo successivo pi+1
In questo lasso di tempo il S. O. realizza, ordinatamente, le
seguenti operazioni:
Salvataggio dello stato del processo pi uscente
Selezione del nuovo processo pi+1
Ripristino dello stato del processo pi+1 entrante
Si modifica, in questo modo, il contesto in cui lavora il
processore.
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Context switch homepage
Il tempo utilizzato dal S. O. per le operazioni di context
switch, in rapporto al time-slice (quanto di tempo di CPU),
non deve essere causa di
riduzione dell’efficienza della CPU
lunghi tempi di risposta
A tal fine, il tempo di context switch non deve superare il
25% del time-slice (solitamente di circa 100 ms)
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

SCHEDULING
homepage
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Scheduling
Esempio sul significato del termine scheduling:
– Alcuni giovani mirano ad avere un colloquio col manager
di un’azienda per ottenere un lavoro; sanno di dover
contattare la sua segretaria e chiederle di stabilire un
incontro. Costei, in base agli impegni assunti, fisserà un
giorno, un luogo e un’ora per i colloqui di ogni aspirante; se,
tuttavia, emerge chiaramente che non c’è alcuna possibilità
di lavoro, perché l’azienda non ha la capacità o il bisogno di
assumere nuovo personale, la segretaria bloccherà sul
nascere ogni tentativo di incontro col manager.
homepage
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Scheduling
Le scelte della segretaria dipendono da vari fattori:
1. l’ordine delle richieste pervenute
2. la prevista durata dei colloqui
3. la priorità associata a ciascuna richiesta
4. il numero di candidati che il manager può esaminare in un giorno
…
homepage
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Manager
SegretariaAspiranti al lavoro

Ebbene, l’attività di selezione delle richieste degli
aspiranti al lavoro svolta dalla segretaria, la quale gestisce
l’attività del manager secondo un preciso insieme di regole e
priorità (politica), è proprio un’attività di scheduling.
Scheduling homepage
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Aspiranti al lavoro = processi
Manager = risorsa
Segretaria = scheduler

Scheduling
Lo scheduling è una tecnica di allocazione delle risorse
utilizzata dai sistemi operativi, in ambienti multiprogrammati,
per gestire le richieste derivanti da più processi che
concorrono per il loro utilizzo.
Esso mira a rendere il sistema
efficiente
produttivo
rapido nelle risposte
homepage
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

CLASSI DI SCHEDULING
homepage
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Classi di scheduling
Nella gestione delle risorse di un elaboratore, il fattore tempo
porta a definire una classificazione dello scheduling, ovvero
ad identificare tre tipi di scheduling:
Scheduling a breve termine
Scheduling a medio termine
Scheduling a lungo termine
homepage
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Classi di scheduling
Scheduling a breve termine: è adottato nella selezione del
nuovo processo da eseguire, quando
1. il p. in esecuzione passa allo stato di attesa o ritorna allo stato di pronto oppure termina
2. un processo passa dallo stato di attesa allo stato di pronto
3. si verificano eventi particolari (interruput, chiamate al S. O.)
homepage
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Coda dei p. prontiAmmiss. Assegn.
Coda dei p. bloccati
Nuovo in esecuzione
Pronto
PCBRilascio
Terminato
in attesa di evento
Disk
Posto su discoEvento verificato
Sospensione
Attivazione
Bloccato
Tempo scaduto
Processore Uscita

Classi di scheduling
Scheduling a medio termine: gestisce la permanenza
in memoria dei processi non in esecuzione; in particolare,
coordina le operazioni di trasferimento temporaneo dei
processi in memoria secondaria (swap out): modifica la
miscela dei processi in memoria centrale al fine di migliorare
le prestazioni del sistema
interviene nella gestione dei processi in attesa di eventi
da lungo tempo
homepage
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Classi di scheduling
Scheduling a medio termine:
homepage
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Coda dei p. prontiAmmiss. Assegn.
Coda dei p. bloccati
Nuovo in esecuzione
Pronto
PCBRilascio
Terminato
in attesa di evento
Disk
Posto su disco
Sospensione
AttivazioneBloccato
Tempo scaduto
Processore Uscita

Classi di scheduling
Scheduling a lungo termine: è impiegato nella scelta
dei programmi, presenti in memoria secondaria, da caricare
in memoria centrale per la creazione dei corrispondenti
processi; esso richiede tempi relativamente lunghi quando
individua i programmi da ammettere all’esecuzione
regola la presenza in memoria centrale dei processi I/O
bound e CPU bound
controlla il livello di multiprogrammazione
homepage
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Classi di scheduling - Schema homepage
SCHEDULING A MEDIO TERMINE
Suspend
Exit
SCHEDULING A LUNGO TERMINE
Created
Running Ready
SCHEDULING A BREVE TERMINE
Waiting
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

SCHEDULING DELLA CPU
homepage
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
CPUP
3
P
3
P
2
P
2
P
1
P
1
P
1
P
1
P
2
P
2
P
3
P
3
P
3
P
3
P
2
P
2
P
3
P
3

Scheduling della CPU
Lo scheduling costituisce una funzione fondamentale dei S. O.,
alla quale sono sottoposte quasi tutte le risorse di un
elaboratore.
In particolare, lo scheduling della CPU consiste nella scelta,
da parte del S. O., del processo a cui assegnare la CPU e tiene
conto del fatto che l’esecuzione di un processo è una
sequenza alternata di
operazioni di CPU
operazioni di I/O o attese di eventi
homepage
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Scheduling della CPU
Quando la CPU rimane inattiva, il process scheduler
(modulo del kernel) seleziona dalla ready queue (coda dei
processi pronti) il prossimo processo a cui assegnare la CPU e
decide da quale momento e per quanto tempo farlo eseguire.
Tuttavia, l’effettiva assegnazione della CPU al processo
prescelto per l’esecuzione è affidata al dispatcher, modulo
del kernel che gestisce
il context switch
il passaggio al modo utente
il salto alla giusta posizione del programma utente (impostazione del program counter)
homepage
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

OBIETTIVI DELLO SCHEDULING
homepage
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Obiettivi dello scheduling
Gli algoritmi (o politiche) di scheduling della CPU basano le
proprie scelte sulle informazioni contenute nei descrittori
di processo (PCB) in riferimento ai seguenti obiettivi:
massimizzare - il throughput (produttività)
- l’utilizzo della CPU (efficienza)
minimizzare
- l’overhead (spreco di risorse)
- il tempo di turnaround (completamento)
- il tempo di risposta
- il tempo di attesa
garantire - fairness (equità)
homepage
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

massimizzare il throughput (numero di processi utente completati
nell’unità di tempo)
massimizzare l’attività della CPU (percentuale media di utilizzo della
CPU nell’unità di tempo)
minimizzare l’overhead (numero di processi di sistema completati
nell’unità di tempo)
minimizzare il tempo di turnaround (tempo di permanenza di un
processo nel sistema)
minimizzare il tempo di risposta (tempo trascorso tra l’immissione di un
comando e l’emissione della prima risposta)
minimizzare il tempo di attesa (tempo totale trascorso da un processo
nello stato di pronto)
garantire Fairness (imparzialità nell’attribuzione dei time-slice ai processi)
homepageObiettivi dello scheduling
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Non potendo realizzare tutti gli obiettivi nello stesso tempo,
ogni algoritmo di scheduling della CPU è finalizzato al
raggiungimento di alcuni di essi. Tipicamente,
nei sistemi batch (elaborazione a lotti) si cerca di
massimizzare il throughput e di minimizzare l’overhead.
nei sistemi interattivi (tempi di risposta immediati) è
essenziale minimizzare i tempi di risposta e di attesa dei
processi.
homepageObiettivi dello scheduling
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

homepage
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
ping

Swapping
Tutti i S. O., nel gestire le risorse di un elaboratore, sono
orientati alla massimizzazione del throughput (→1) e alla
minimizzazione dell’overhead (→0).
In questa ottica, il S. O. può decidere di porre alcuni processi
in uno stato particolare: lo stato di sospensione.
Può accadere, ad esempio, che
la presenza in memoria centrale di processi I/O bound
determini un forte calo della produttività del sistema
siano presenti in memoria centrale dati e parti di codice
non in esecuzione
homepage
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Swapping
Il S. O. può stabilire, allora, di scaricare temporaneamente
(swap out) in un’area del disco riservata (area di swap)
nel primo caso, alcuni dei processi I/O bound
nel secondo caso, dati e parti di codice non coinvolte
nell’esecuzione
homepage
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Programma D D
Memoria centrale
0000x Programma A-1
Programma B-1
Programma Programma A-2
Programma A-3 A-3
Programma B-2Programma B-2
Disco: Area di Swap
Swapping homepage
Programma A-2
Programma Programma A-1
Swap out
Swap in

CLASSIFICAZIONE DELLE POLITICHE DI SCHEDULING
homepage
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

In generale, le politiche di scheduling della CPU si
differenziano in base a tre criteri di classificazione:
senza prelazione/con prelazione
senza priorità/con priorità
statiche/dinamiche
Gli algoritmi di scheduling, nell’assegnare la CPU ai processi
pronti, utilizzano opportune combinazioni di tali criteri, in
base a precise strategie di gestione delle risorse.
homepageClassificazione delle politiche
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Politiche senza prelazione (non pre-emptive): una volta
che la CPU è stata assegnata ad un processo, essa non può
più essergli tolta se non quando il processo ha esaurito il suo
tempo di servizio o necessita di un'operazione di I/O.
Politiche con prelazione (pre-emptive): la CPU può
essere forzatamente tolta al processo in corso di esecuzione
per essere assegnata ad un altro processo.
homepageClassificazione delle politiche
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Politiche senza priorità: pongono i processi sullo stesso
piano, dal punto di vista dell’urgenza di esecuzione.
Politiche con priorità: distinguono e suddividono in
classi i processi in stato di pronto, a secondala della loro
importanza o urgenza di esecuzione. Sono necessarie nei
sistemi real-time e interattivi.
homepageClassificazione delle politiche
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Politiche statiche: un processo conserva nel tempo i
suoi diritti di accesso all’unità centrale (priorità).
Politiche dinamiche: i processi modificano nel tempo i
propri diritti di accesso all’unità centrale.
homepageClassificazione delle politiche
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

POLITICHE DI SCHEDULING
FCFS: First Come First Served
SJF: Shortest Job First (SRTF)
Per priorità
Round Robin
A code multiple
homepage
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Politiche di scheduling
FCFS: First Come First Served
La CPU è assegnata ai singoli processi in base al loro ordine
nella coda dei processi pronti (ready queue), stabilito in base
al tempo di arrivo oppure dal numero identificativo (PID).
La ready queue è gestita in modalità FIFO (First In First Out)
al processo che giunge nella ready queue viene attribuito
l’ultimo posto della coda
la CPU è assegnata al processo situato alla testa alla ready
queue
homepage
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Politiche di scheduling
La politica FCFS
è senza prelazione: il processo in esecuzione trattiene la
CPU sino al termine del suo tempo di servizio o fino a quando
non necessita di un’operazione di I/O.
tende a penalizzare i processi I/O bound e quelli di breve
durata, poiché costretti a lunghe attese dietro processi CPU
bound (effetto convoglio).
prevede tempi di attesa molto variabili e generalmente
lunghi. La gestione dei dispositivi è poco efficiente ed è
adeguata per sistemi batch (mancanza di interattività).
homepage
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Esempio 1: in un sistema vengono generati cinque processi
(A, B, C, D, E) con tempi di arrivo e tempi di servizio riportati
in tabella:
homepage
Calcolare i tempi medi di attesa e di completamento secondo
la politica di scheduling FCFS, trascurando i tempi relativi al
context switch.
Politiche di scheduling
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Processi Tempo di arrivo Tempo di servizio
A 0 3
B 2 6
C 4 4
D 6 5
E 8 2

homepage
Processi Tempo di attesa Tempo di completamento
A 0 3
B 1 7
C 5 9
D 7 12
E 10 12
Tempo medio di completamento:
(3+7+9+12+12)/5 = 43/5 =
8,6 u. t.
Tempo medio di attesa:
(0+1+5+7+10)/5 = 23/5 =
4,6 u. t.
• Esempio 1Politiche di scheduling
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
3 2
B
A
E
D
C
4 9 13 18 20 6 T 0 8
Diagramma di Gantt
Tempo di attesa Tempo di servizio
• FCFS

Esempio 2: in un sistema vengono generati cinque processi
(A, B, C, D, E) con tempi di arrivo e tempi di servizio riportati
in tabella:
homepage
Calcolare i tempi medi di attesa e di completamento secondo
la politica di scheduling FCFS, considerando che il tempo di
context switch è pari a 1
Politiche di scheduling
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Processi Tempo di arrivo Tempo di servizio
A 0 9
B 2 1
C 5 7
D 8 3
E 11 5

homepage
Processi Tempo di attesa Tempo di completamento
A 1 10
B 9 10
C 8 15
D 13 16
E 14 19
Tempo medio di completamento:
(10+10+15+16+19)/5 = 70/5 =
14 u. t.
Tempo medio di attesa:
(1+9+8+13+14)/5 = 45/5 =
9 u. t.
• Esempio 2Politiche di scheduling
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Tempo di context switch
Diagramma di Gantt 2
B
A
E
D
C
9 12 20 5
T
0 8 10 30
Tempo di attesa Tempo di servizio
• FCFS
24 11

Politiche di scheduling
SJF: Shortest Job First
La CPU è assegnata al processo, tra quelli in stato di pronto,
il cui intervallo di tempo previsto per l’utilizzo della CPU è più
breve (tempo di servizio più piccolo).
Nel caso in cui più processi pronti presentino gli stessi tempi
di servizio, la scelta viene fatta secondo la politica FCFS.
homepage
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Politiche di scheduling
La politica SJF prevede due casi:
SJF senza prelazione: il processo in esecuzione trattiene
la CPU sino al termine del suo tempo di servizio o fino a
quando non necessita di un’operazione di I/O.
SJF con prelazione: se, ad un certo istante, nella coda dei
processi pronti giunge un processo con un tempo di servizio
più breve di quello che rimane (da completare) al processo in
esecuzione, la CPU viene rilasciata e ceduta al processo
appena arrivato (Shortest Remaining Time First = SRTF).
homepage
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Esempio: in un sistema vengono generati cinque processi
(A, B, C, D, E) con tempi di arrivo e tempi di servizio riportati
in tabella:
homepage
Calcolare i tempi medi di attesa e di completamento secondo
la politica di scheduling SJF nei casi senza prelazione e con
prelazione, includendo il tempo di context switch, pari a 1,
nel caso senza prelazione.
Politiche di scheduling
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Processi Tempo di arrivo Tempo di servizio
A 0 3
B 2 6
C 4 4
D 6 5
E 8 2

homepage
Processi Tempo di attesa Tempo di completamento
A 1 4
B 17 23
C 1 5
D 7 12
E 2 4
Tempo medio di completamento:
(4+23+5+12+4)/5 = 48/5 =
9,6 u. t.
Tempo medio di attesa:
(1+17+1+7+2)/5 = 28/5 =
5,6 u. t.
Politiche di scheduling
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Diagramma di Gantt
• SJF senza prelazione
3 2
B
A
E
D
C
4 9 6 13 19 12 T 0 8
Tempo di context switch Tempo di attesa Tempo di servizio
5 7 10 18 25

homepage
Processi Tempo di attesa Tempo di completamento
A 0 3
B 7 13
C 0 4
D 9 14
E 0 2
Tempo medio di completamento:
(3+13+4+14+2)/5 = 36/5 =
7,2 u. t.
Tempo medio di attesa:
(0+7+0+9+0)/5 = 16/5 =
3,2 u. t.
Politiche di scheduling
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
3 2
B
A
E
D
C
4 7 6 15 2010 T 0 8
Diagramma di Gantt
Tempo di attesa: Tempo di servizio:
• SJF con prelazione

Politiche di scheduling
Scheduling per priorità
A ciascun processo, in fase di generazione, viene attribuito
un livello di priorità, espresso da un numero intero;
convenzionalmente, all’intero più piccolo corrisponde la
priorità più elevata.
Ebbene, nella politica di scheduling per priorità, la CPU è
assegnata al processo, tra quelli in stato di pronto, che
presenta la massima priorità.
A parità di priorità, si ricorre alla politica FCFS
homepage
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Politiche di scheduling
La politica per priorità può essere:
senza prelazione: il processo in esecuzione trattiene la
CPU sino al termine del suo tempo di servizio o fino a quando
non necessita di un’operazione di I/O.
con prelazione: se nella coda dei processi pronti arriva un
processo con priorità maggiore di quella del processo in
esecuzione, questo rilascia la CPU, cedendola al processo
appena arrivato.
homepage
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Politiche di scheduling
Le priorità possono essere:
definite dal S. O. (p. interna), secondo uno o più criteri:
- limiti di tempo
- requisiti di memoria
- numero di file aperti
- tipi di processo (CPU bound o I/O bound)
………
definite dall’utente (p. esterna), secondo:
- l’importanza del processo
- il tempo di esecuzione previsto
………
homepage
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Politiche di scheduling
statiche: una volta stabilite, non variano nel tempo.
dinamiche: variano nel tempo, secondo criteri prefissati,
per evitare che alcuni processi possano essere bloccati per un
tempo indefinito (starvation), a causa della costante
presenza nella ready queue di processi a più elevata priorità.
Una possibile soluzione allo starvation dei processi è data
dalla procedura di aging (invecchiamento): la priorità di un
processo può
aumentare al crescere del suo tempo di attesa
diminuire al crescere del tempo di CPU già utilizzato
homepage
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Esempio: in un sistema vengono generati cinque processi
(A, B, C, D, E) con tempi di arrivo, priorità (statica) e tempi di
servizio riportati in tabella:
homepage
Calcolare i tempi medi di attesa e di completamento secondo
la politica di scheduling per priorità, trascurando i tempi
relativi al context switch.
Politiche di scheduling
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Processi Tempo di arrivo Priorità Tempo di servizio
A 0 3 10
B 0 1 1
C 0 3 2
D 0 4 1
E 0 2 5

homepage
Processi Tempo di attesa Tempo di completamento
A 6 16
B 0 1
C 16 18
D 18 19
E 1 6
Tempo medio di completamento:
(16+1+18+19+6)/5 = 60/5 =
12 u. t.
Tempo medio di attesa:
(6+0+16+18+1)/5 = 41/5 =
8,2 u. t.
Politiche di scheduling
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
• Priorità
1
B
A
E
D
C
6 19 16 T 0 18
Diagramma di Gantt
Tempo di attesa: Tempo di servizio:

Politiche di scheduling
Round Robin
La CPU viene assegnata, a turno, ad ogni processo, tra quelli
in stato di pronto, per un certo periodo q di tempo massimo
(time-slice o quanto di tempo).
Se, alla fine di tale periodo, il processo in esecuzione non è
terminato, esso viene ricondotto nella coda dei processi
pronti, all’ultima posizione.
homepage
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Politiche di scheduling
Round Robin
La gestione a quanti di tempo è una variante della politica
FCFS che introduce un limite superiore all’intervallo di tempo
nel quale un processo rimane in esecuzione;
il quanto di tempo q può essere comune a tutti i processi
oppure uno specifico parametro fissato nel PCB di ogni
processo.
Alla messa in esecuzione, il S. O. avvia un dispositivo timer
con scadenza pari a q: trascorso l’intervallo q, il timer genera
un’interruzione che provoca il prerilascio della CPU.
homepage
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Politiche di scheduling
La politica di scheduling Round Robin, progettata per i
sistemi time-sharing,
è con prelazione
gestisce la ready queue in modo circolare (prelazione
periodica)
garantisce tempi di risposta bassi senza penalizzare
l’avanzamento di processi I/O-bound
homepage
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Politiche di scheduling
Il rendimento della politica Round Robin dipende molto
dalla dimensione del time-slice:
un time-slice troppo grande rischia di far tendere la
politica Round Robin a quella FCFS.
un time-slice troppo piccolo consente tempi di risposta
brevi ma impegna eccessivamente la CPU per le operazioni
di context switch, con conseguente calo della produttività e
dell’efficienza del sistema.
Nei sistemi reali il valore del time-slice che garantisce buone
prestazioni è compreso tra 20 e 50 millisecondi.
homepage
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Esempio: in un sistema vengono generati cinque processi
(A, B, C, D, E) con tempi di arrivo e tempi di servizio riportati
in tabella:
homepage
Calcolare i tempi medi di attesa e di completamento secondo
la politica di scheduling Round Robin (q=1), trascurando i
tempi relativi al context switch.
Politiche di scheduling
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Processi Tempo di arrivo Tempo di servizio
A 0 3
B 2 6
C 4 4
D 6 5
E 8 2

Politiche di scheduling
Scheduling Round Robin (q=1)
homepage
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
READY QUEUE CPU UNITÁ TEMPO
A 0 – 1
B A 1 – 2
A B 2 – 3
C B A 3 – 4
C B 4 – 5
D B C 5 – 6
C D B 6 – 7
E B C D 7 – 8
D E B C 8 – 9
C D E B 9 – 10
B C D E 10 – 11
E B C D 11 – 12
D E B C 12 – 13
C D E B 13 – 14
B C D E 14 – 15
B C D 15 – 16
D B C 16 – 17
D B 17 – 18
D 18 – 19
D 19 – 20
Tempo medio di completamento:
(4+17+14+15+8)/5 = 58/5 =
11,6 u. t.
Tempo medio di attesa:
(1+11+10+10+6)/5 = 38/5 =
7,6 u. t.
Soluzione:
(Produttività = 5/20 = 25%)

Politiche di scheduling
Scheduling a code multiple
La coda dei processi pronti è suddivisa in code distinte,
ciascuna delle quali ha priorità più elevata rispetto alle
successive.
Ciascun processo viene posto permanentemente in una delle
differenti code, in base a qualche sua caratteristica (tipo di
processo, priorità, memoria richiesta, …), e potrà entrare in
esecuzione solo quando le code a priorità maggiore saranno
tutte vuote.
homepage
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Politiche di scheduling
Schema a tre code multiple
homepage
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
1PROCESSI DI SISTEMA
PROCESSI INTERATTIVI
PROCESSI BATCH
CPU
ALTA PRIORITÀ
BASSA PRIORITÀ
2
3
Ogni coda ha il suo algoritmo di scheduling; ad esempio,
Coda dei processi interattivi Round Robin
Coda dei processi batch FCFS

Politiche di scheduling
Dato che l’applicazione di questa politica di scheduling
potrebbe bloccare indefinitamente un processo a bassa
priorità, per il continuo arrivo di processi a più elevata
priorità, è stato ideato un meccanismo correttivo, detto
scheduling a code multiple con retroazione.
Tale meccanismo consente ai processi lo spostamento
dinamico fra le code, a più bassa o a più alta priorità, a
seconda delle condizioni di retroazione prestabilite.
homepage
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

homepage
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Esercizio 1: in un sistema vengono generati cinque processi
(A, B, C, D, E) con tempi di arrivo e tempi di servizio riportati
in tabella:
Calcolare i tempi medi di attesa e di completamento secondo
la politica di scheduling FCFS, trascurando il tempo di context
switch.
Processi Tempo di arrivo Tempo di servizio
A 1 3
B 3 6
C 5 4
D 7 5
E 9 2
Esercizi – FCFS

homepage
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Esercizio 2: in un sistema vengono generati cinque processi
(A, B, C, D, E) con tempi di arrivo e tempi di servizio riportati
in tabella:
Calcolare i tempi medi di attesa e di completamento secondo
la politica di scheduling FCFS, prima trascurando il tempo di
context switch e poi includendolo nel computo con valore 1.
Processi Tempo di arrivo Tempo di servizio
A 1 9
B 3 1
C 5 7
D 7 3
E 9 5
Esercizi – FCFS

Esercizio 1: in un sistema vengono generati cinque processi
(A, B, C, D, E) con tempi di arrivo e tempi di servizio riportati
in tabella:
homepage
Calcolare i tempi medi di attesa e di completamento secondo
la politica di scheduling SJF nei casi senza prelazione e con
prelazione, trascurando il tempo di context switch.
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Esercizi – SJF
Processi Tempo di arrivo Tempo di servizio
A 1 3
B 3 6
C 5 4
D 7 5
E 9 2

Esercizio 2: in un sistema vengono generati cinque processi
(A, B, C, D, E) con tempi di arrivo e tempi di servizio riportati
in tabella:
homepage
Calcolare i tempi medi di attesa e di completamento secondo
la politica di scheduling SJF nel caso senza prelazione,
considerando il tempo di context switch pari a 1
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Esercizi – SJF
Processi Tempo di arrivo Tempo di servizio
A 1 3
B 3 6
C 5 4
D 7 5
E 9 2

Esercizio 1: in un sistema vengono generati cinque processi
(A, B, C, D, E) con tempi di arrivo, priorità (statica) e tempi di
servizio riportati in tabella:
homepage
Calcolare i tempi medi di attesa e di completamento secondo
la politica di scheduling per priorità, trascurando il tempo di
context switch.
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Processi Tempo di arrivo Priorità Tempo di servizio
A 0 3 3
B 0 1 6
C 0 3 4
D 0 4 5
E 0 2 2
Esercizi – Priorità

Esercizio 2: in un sistema vengono generati cinque processi
(A, B, C, D, E) con tempi di arrivo, priorità (statica) e tempi di
servizio riportati in tabella:
homepage
Calcolare i tempi medi di attesa e di completamento secondo
la politica di scheduling per priorità senza prelazione,
trascurando il tempo di context switch.
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Processi Tempo di arrivo Priorità Tempo di servizio
A 1 3 3
B 3 1 6
C 5 3 4
D 7 4 5
E 9 2 2
Esercizi – Priorità

Esercizio 1: in un sistema vengono generati cinque processi
(A, B, C, D, E) con tempi di arrivo e tempi di servizio riportati
in tabella:
homepage
Calcolare i tempi medi di attesa e di completamento secondo
la politica di scheduling Round Robin (q=2), trascurando il
tempo di context switch.
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Esercizi – Round Robin
Processi Tempo di arrivo Tempo di servizio
A 1 3
B 3 6
C 5 4
D 7 5
E 9 2

Esercizio 2: in un sistema vengono generati cinque processi
(A, B, C, D, E) con tempi di arrivo e tempi di servizio riportati
in tabella:
homepage
Calcolare i tempi medi di attesa e di completamento secondo
la politica di scheduling Round Robin (q=3), trascurando il
tempo di context switch.
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Esercizi – Round Robin
Processi Tempo di arrivo Tempo di servizio
A 1 9
B 3 1
C 5 7
D 7 3
E 9 5

Esercizio 1: in un sistema vengono generati cinque processi
(A, B, C, D, E) con tempi di arrivo, priorità (statica) e tempi di
servizio riportati in tabella:
homepage
Trascurando il tempo di context switch, calcolare i tempi medi
di attesa e di completamento secondo le politiche FCFS, SJF
senza prelazione, per priorità e RR (q=2) senza priorità.
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Processi Tempo di arrivo Priorità Tempo di servizio
A 0 4 8
B 0 2 10
C 0 1 2
D 0 5 4
E 0 3 8
Esercizi di riepilogo

Esercizio 2: in un sistema vengono generati cinque processi
(A, B, C, D, E) con tempi di arrivo, priorità (statica) e tempi di
servizio riportati in tabella:
homepage
Trascurando il tempo di context switch, calcolare i tempi medi di
attesa e di completamento secondo le politiche FCFS, SJF con e
senza prelazione, RR (q=3) con e senza priorità prelazionata.
Si dia precedenza ai processi usciti per time-out rispetto ai nuovi in arrivo
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Processi Tempo di arrivo Priorità Tempo di servizio
A 0 3 9
B 2 4 1
C 5 2 7
D 8 1 3
E 11 5 5
Esercizi di riepilogo

GRIGLIA DI VALUTAZIONE ESERCIZI
Risposta ai quesiti propostiminima parziale totale
0,5 1 2
Accuratezza/meticolosità risolutiva
scarsa media elevata
0,5 1 2
Costruzione
del diagramma
di Gantt
accennata 0,5
parziale 1
completa ma con errori 2
completa e senza errori 3
Correttezza di calcoloscarsa parziale buona
0,5 1 2
Originalità/creatività
(colori/animazioni/…)
nessuna buona pregevole
0 0,5 1

FCFS:
• Esercizio 1: tM(att.) = 4,6 u.t. – tM(compl.) = 8,6 u.t.
• Esercizio 2: tM(att.) = 7,2 u.t. – tM(compl.) = 12,2 u.t.
• Esercizio 2 (CS): tM(att.) = 10,2 u.t. – tM(compl.) = 15,2 u.t.
homepage
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Risultati degli esercizi
SJF:
• Senza prelazione: tM(att.) = 3,6 u.t. – tM(compl.) = 7,6 u.t.
• Con prelazione: tM(att.) = 3,2 u.t. – tM(compl.) = 7,2 u.t.
• Senza prelaz. (CS): tM(att.) = 5,6 u.t. – tM(compl.) = 9,6 u.t.

Priorità:
• Esercizio 1: tM(att.) = 8 u.t. – tM(compl.) = 12 u.t.
• Esercizio 2: tM(att.) = 3,6 u.t. – tM(compl.) = 7,6 u.t.
homepage
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Risultati degli esercizi
Round Robin:
• Time-slice=2 : tM(att.) = 5,6 u.t. – tM(compl.) = 9,6 u.t.
• Time-slice=3 : tM(att.) = 7,4 u.t. – tM(compl.) = 12,4 u.t.

Riepilogo
Esercizio 1:
• FCFS: tM(att.) = 14 u.t. – tM(compl.) = 20,4 u.t.
• SJF senza prel. : tM(att.) = 8,8 u.t. – tM(compl.) = 15,2 u.t.
• Priorità: tM(att.) = 12,4 u.t. – tM(compl.) = 18,8 u.t.
• RR senza priorità: tM(att.) = 15,6 u.t. – tM(compl.) = 22 u.t.
homepage
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Risultati degli esercizi

Riepilogo
Esercizio 2:
• FCFS: tM(att.) = 6 u.t. – tM(compl.) = 11 u.t.
• SJF senza prel. : tM(att.) = 4,8 u.t. – tM(compl.) = 9,8 u.t.
• SJF con prel. : tM(att.) = 3,6 u.t. – tM(compl.) = 8,6 u.t.
• RR con priorità non prelazionata: tM(att.) = 8,2 u.t. –
tM(compl.) = 13,2 u.t.
• RR con priorità prelazionata: tM(att.) = 7,8 u.t. – tM(compl.) =
12,8 u.t.
homepage
Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Risultati degli esercizi