Schedulatore

Download Report

Transcript Schedulatore

Lo schedulatore del kernel
Lo schedulatore


Lo schedulatore è un programma del
kernel che si occupa di scegliere un
processo/lavoro che ha richiesto una
risorsa.
Lo schedulatore a lungo termine LTS è
quello che sceglie i lavori (job
scheduler) nella coda degli hold sul
degli hold
disco fissoListaper
spostarli nella coda dei
jcb 01
ready in ram
jcb 21
HDD
jcb 05
jcb 14
jcb 97
Lo schedulatore

Lo schedulatore a breve termine STS è
quello che sceglie i processi nella coda
dei ready (process scheduler) per
inviarlo alla cpu per la fase running.
Lista dei ready
pcb 01
pcb 21
pcb 05
pcb 14
pcb 97
Lo schedulatore dei lavori (LTS)



Prima di scegliere un lavoro chiede un
controllo dello spazio in ram
Il controllo viene chiesto al memory
manager
Tra tutti i lavori l'ordine di scelta può
seguire 3 politiche principali
– FiFo,
– priorità statica,
– priorità dinamica
FIFO




Hdd
Viene scelto il lavoro arrivato in coda per
primo, poi il successivo ecc.
L'ordine di arrivo nella lista hold è anche
l'ordine di prelievo.
Vantaggi: semplicità
Svantaggi: poco efficiente, alcuni lavori
sono più urgenti di altri, anche se sono
più dietro in fila.
pcb 01
pcb 21
pcb 05
pcb 14
pcb 97
Priorità statica



Hdd
Viene assegnata una priorità ad ogni
lavoro (memorizzata nel PCB) sulla
base di:

Richieste di un tecnico sistemista

Necessità di risorse
Vantaggi: più efficiente
Svantaggi: informazioni aggiuntive nel
pcb
pcb 01
pcb 21
pcb 05
pcb 14
pcb 97
Priorità dinamica



Hdd
Più un lavoro aspetta in coda, più si
aumenta la sua priorità.
Vantaggi: ancora più efficiente, evita
stalli di processi con bassa priorità
originale.
Svantaggi: informazioni aggiuntive nel
pcb
pcb 01
pcb 21
pcb 05
pcb 14
pcb 97
Schedulatore dei processi (STS)
Quest'altro schedulatore preleva PCB
dalla coda dei ready in ram e assegna
loro la cpu.
Ci sono 6 regole da rispettare:
imparzialità,
efficienza,
realtime,
tournaround, throughput, fairness.
pcb 01
pcb 21
pcb 05
pcb 14
pcb 97
Schedulatore dei processi (LTS)
(1)Imparzialità: la cpu deve essere
concessa equamente ai processi
(2)Efficienza: la cpu
utilizzata al massimo
deve
essere
(3)Realtime: i processi interattivi devono
avere miglior uso di i/o
(4)Tournaround: i processi batch devono
avere miglior uso della cpu
(5)Throughput: il più alto numero di
processi serviti al secondo
Politiche STS
Senza pre-rilascio
(non preemptive)
Con pre-rilascio
(preemptive)
1. Round Robin
1. FCFS
2. SJF
3. PRIORITY
2. Round Robin a tempo
3. Round robin limitato
4. Priorità statica
5. Priorità dinamica.
Senza prerilascio: FCFS
First Come is First Served: è la coda
FIFO.
Svantaggi: il tempo medio di attesa è
elevato e sono svantaggiati i processi
veloci.
Vantaggi: semplicità
Senza prerilascio: SJF
Shortest job first: vengono serviti prima
i lavori più veloci.
Svantaggi: i lavori molto lenti
potrebbero attendere moltissimo.
Vantaggi: più efficiente, minimizza il
tempo medio di attesa
Senza prerilascio: priorità
Viene pre assegnata una priorità
(inserita nel descrittore del processo)
che aumenta al crescere dei tempi di
attesa e per processi veloci.
priorità=(T. Attesa + Velocità)
Svantaggi: oneroso gestirlo.
Vantaggi: si privilegiano:

processi brevi

Processi che sono in attesa da più tempo.
Con prerilascio: Round Robin
 Trattasi di una coda di tipo FIFO gestita con time
slice.
 Scaduto il timeslice la cpu deve essere rilasciata.
 I processi sono prelevati in testa alla coda
 I processi, da dovunque essi arrivino (lista di wait,
di hold o running) vengono inseriti in fondo alla
coda.
ready
hold
pcb 01
pcb 21
pcb 05
pcb 14
pcb 97
wait
run
Con prerilascio:
Round Robin a tempo
Se un processo fa molto i/o resta spesso in
attesa dello stesso (WAIT) e poi viene
inserito in fondo alla coda assieme a quelli
che non hanno aspettato affatto.
Hold
hdd
Ready
ram
Running
cpu
Waiting
I/O
Quindi viene discriminato.
Con prerilascio:
Round Robin a tempo
Con questa variante l'inserimento non
avviene in coda se il processo ha usato la
cpu per una percentuale di tempo bassa
(e molto i/o).
Hold
hdd
Ready
ram
Running
cpu
Waiting
I/O
Con prerilascio:
Round Robin limitato
Con questa variante ogni processo può usare al
massimo N timeslice.
Quei processi che hanno terminato gli N
timeslice vengono messi in una nuova coda
speciale (la coda dei time slice esauriti) da dove
si preleveranno solo quando la coda di ready è
esaurita.
Hold
hdd
Ready
ram
Running
cpu
Waiting
I/O
Con prerilascio: priorità
Statica: nel pcb viene indicata una
priorità che è maggiore per i processi
veloci.
Dinamica: nel pcb la priorità inserita è
maggiore per processi veloci o processi
in lunga attesa.
Hold
hdd
Ready
ram
Running
cpu
Waiting
I/O