Algoritmi di scheduling
ESEMPIO
SJF è uno scheduling a priorità dove la priorità è rappresentata dall’inverso del burst di CPU.
La priorità è un numero intero in un intervallo fissato
Es:
0 ≤ p ≤ 20
0 ≤ p ≤ 4096
Ogni sistema ha il proprio modo di misurare la priorità:
oppure
Processo -> Priorità -> Tempo di burst
P1 -> 1 -> 7
P2 -> 3 -> 4
P3 -> 2 -> 1
P4 -> 1 -> 4
P = 0 -> Massima priorità
Tempo medio di attesa = (0 + 12 + 11 +7)/4 = 7.5
Tempo medio di completamento = (7 + 16 + 12 +11)/4 = 11.5
Possibilità di starvation (posticipazione indefinita)
SJF:
Priorità:
Aging (invecchiamento):
Scheduling senza prelazione a priorità variabile
P = 1 -> Minima priorità
Processo -> Tempo attesa -> Tempo di burst
P1 -> 20 -> 5
P2 -> 9 -> 3
Processo -> Priorità HRRN
P1 -> (20+5)/5 = 5
P2 -> (9+3)/3 = 4
P = 1 -> Minima priorità
Tempi medi di completamento:
HRRN è stato introdotto per superare l’eccessiva disparità di trattamento tra processi corti e processi lunghi operata da SJF.
Come misurare questa qualita’ di HRRN?
La deviazione standard (o scarto quadratico medio) è una misura della dispersione di un insieme di numeri x1 , … , xn
La politica HRRN è più equa (i tempi di completamento sono più omogenei).
In genere si ha un tempo medio di attesa maggiore rispetto a SJF, tuttavia si ha un miglior tempo di completamento per i processi lunghi.
La grandezza del quanto di tempo determina il tempo di risposta delle richieste interattive:
Empiricamente: il quanto di tempo deve essere maggiore dell’80% dei CPU burst.
È necessario uno scheduling tra code.
Un processo può spostarsi fra le varie code; l’aging può essere implementato in questo modo.
Lo scheduler con code multiple con feedback è definito dai seguenti parametri:
Tre code: Q0 – quanto di tempo di 8 millisecondi; Q1 – quanto di tempo di 16 millisecondi; Q2 – FCFS.
Scheduling:
In generale i s.o. real time gestiscono mansioni specifiche di durata fissata:
Il rilassabilità (laxity) è una misura della non urgenza di un processo:
Ad es. se per un dato processo:
L = (D-T) – C = 1
E’ il tempo che tale processo può attendere prima di essere mandato in esecuzione e rispettare la deadline
La sincronizzazione dei processi
1. Storia ed evoluzione dei sistemi operativi
2. Struttura dei sistemi operativi
3. Interazione tra hardware e sistemi operativi
4. La rappresentazione dei processi
6. I Thread
7. Lo scheduling dei processi: introduzione e primi esempi
9. La sincronizzazione dei processi
10. I semafori
11. Allocazione contigua dei processi in memoria centrale
12. Allocazione non contigua dei processi in memoria centrale
14. Gli algoritmi di avvicendamento delle pagine
16. I sistemi RAID
17. L'organizzazione logica dei file system
18. L'organizzazione fisica dei file system
1. Storia ed evoluzione dei sistemi operativi
2. Struttura dei sistemi operativi
3. Interazione tra hardware e sistemi operativi
4. La rappresentazione dei processi
6. I Thread
7. Lo scheduling dei processi: introduzione e primi esempi
9. La sincronizzazione dei processi
10. I semafori
11. Allocazione contigua dei processi in memoria centrale
12. Allocazione non contigua dei processi in memoria centrale
16. I sistemi RAID
17. L'organizzazione logica dei file system
18. L'organizzazione fisica dei file system
I podcast del corso sono disponibili anche su iTunesU e tramite Feed RSS.