Upload
others
View
5
Download
0
Embed Size (px)
Citation preview
Sistemi Operativi
Lezione 5
Lo scheduling
AA 2002/03©Bruschi, Rosti
Sistemi OperativiCorso di laurea in Informatica
2
Introduzione
• In ogni processo i burst di CPU si alternanocon i tempi di I/O
AA 2002/03©Bruschi, Rosti
Sistemi OperativiCorso di laurea in Informatica
3
Introduzione
• Processi CPU-bound• Alternano lunghe computazioni ad attività di I/O
relativamente poco frequenti
• Processi I/O-bound• Alternano brevi computazioni a frequenti attività di
I/O
• Migliorando le prestazioni delle CPU, i CPUburst diventano sempre più brevi
• I processi I/O-bound devono essere eseguitiogni volta che lo richiedono per poter tenereoccupati i dischi
AA 2002/03©Bruschi, Rosti
Sistemi OperativiCorso di laurea in Informatica
4
Introduzione
• Quando un processo esegue un I/O, vienemesso in wait (blocked) per non sprecaretempo di CPU
• Viene selezionato tra i processi ready unnuovo processo da eseguire• processi pronti per l’esecuzione
• Queste attività vengono svolte da unparticolare processo di sistema: lo scheduler
AA 2002/03©Bruschi, Rosti
Sistemi OperativiCorso di laurea in Informatica
5
Lo Scheduler
• Decisioni di schedulazione in occasionedi• Creazione di un processo
• Eseguire il padre o il figlio
• Terminazione di un processo• Chi eseguire se non sono rimasti processi
• Blocco in attesa di un I/O o di un evento• Processo collegato o un altro
• Interrupt di I/O• Processo interrotto o destinatario dell’interrupt
AA 2002/03©Bruschi, Rosti
Sistemi OperativiCorso di laurea in Informatica
6
Tipi di scheduling
• A lungo termine• Aggiunta di un nuovo processo
• A medio termine• Aggiunta di un processo a quelli in memoria (da
blocked a ready)
• A breve termine• Scelta del processo da eseguire (da ready a running)
• Di I/O• Scelta della richiesta di I/O da far servire da un
device
Stati di un processo e scheduling
AA 2002/03©Bruschi, Rosti
Sistemi OperativiCorso di laurea in Informatica
8
Scheduling a Lungo Termine
• Determina i processi che possonoaccedere all’uso del sistema
• Controlla il livello di multiprogrammazione
• Più processi vengono ammessi nelsistema e minore sarà il tempo di CPU adisposizione di ciascun processo
AA 2002/03©Bruschi, Rosti
Sistemi OperativiCorso di laurea in Informatica
9
Scheduling a Medio Termine
• Componente della funzione di swapping
• Usato per controllare il livello dimultiprogrammazione
AA 2002/03©Bruschi, Rosti
Sistemi OperativiCorso di laurea in Informatica
10
Scheduling a Breve Termine
• Noto anche come dispatcher o CPUscheduler
• È lo scheduler eseguito più frequentemene• Invocato quando si verifica uno dei seguenti
eventi• Interrupt del Clock (50-60Hz)• Interrupt di I/O• Chiamate di sistema• Segnali
AA 2002/03©Bruschi, Rosti
Sistemi OperativiCorso di laurea in Informatica
11
Scheduling a breve termine
• Lo scheduler della CPU decide• quando eseguire un processo
• creazione di un nuovo processo• terminazione di un processo esistente• sospensione di un processo attivo• interruzione di un processo attivo• esaurimento del tempo assegnato
• quale processo eseguire• processo e/o thread
• per quanto tempo lasciarlo eseguire• prelazionabile o no
AA 2002/03©Bruschi, Rosti
Sistemi OperativiCorso di laurea in Informatica
12
Criteri per lo Scheduling a BreveTermine
• User-oriented• Tempo di Risposta
• Tempo che intercorre tra la generazione di unprocesso ed il primo output
• System-oriented• Throughput/Utilizzo
• Uso efficiente delle risorse del sistema
AA 2002/03©Bruschi, Rosti
Sistemi OperativiCorso di laurea in Informatica
13
Diagramma a code
AA 2002/03©Bruschi, Rosti
Sistemi OperativiCorso di laurea in Informatica
14
Criteri di scheduling
Per tutti: ottimizzare il tempo di attesa (waiting time)
AA 2002/03©Bruschi, Rosti
Sistemi OperativiCorso di laurea in Informatica
15
Categorie di Scheduling
• Preemptive• E` possibile sospendere momentaneamente il
processo in esecuzione per eseguire altri processi• Un processo esegue al piu` per un tempo massimo
prefissato• E` necessario l’interrupt di clock
• Non preemptive o run to completion• Il processo in esecuzione mantiene l’uso della
CPU sino alla naturale terminazione del burst• Terminazione del processo o richiesta di I/O• Non ci sono decisioni in corrispondenza degli interrupt di
clock
AA 2002/03©Bruschi, Rosti
Sistemi OperativiCorso di laurea in Informatica
16
First Come First Served
• Algoritmo non-preemptive
• Implementazione molto facile
• Average wait time molto variabile egeneralmente lontano dall’ottimo• Dipende dai tempi di esecuzione di chi è in
coda davanti a noi
• Da non usare in sistemi interattivi
AA 2002/03©Bruschi, Rosti
Sistemi OperativiCorso di laurea in Informatica
17
FCFS
0 5 10 15 20
1
2
3
4
5
AA 2002/03©Bruschi, Rosti
Sistemi OperativiCorso di laurea in Informatica
18
Shortest Job First
• Presuppone la conoscenza del tempo diesecuzione di ciascun processo
• Tutti i processi hanno uguale importanza• La CPU viene assegnata al processo col
tempo di esecuzione minore• Versione preemptive: shortest remaining time
next• All’arrivo di un nuovo job si rivaluta l’ordine e la
scelta corrente
• Garantisce il minimo tempo di risposta
AA 2002/03©Bruschi, Rosti
Sistemi OperativiCorso di laurea in Informatica
19
SJF
0 5 10 15 20
1
2
3
4
5
AA 2002/03©Bruschi, Rosti
Sistemi OperativiCorso di laurea in Informatica
20
Shortest Remaining Time
0 5 10 15 20
1
2
3
4
5
AA 2002/03©Bruschi, Rosti
Sistemi OperativiCorso di laurea in Informatica
21
SJF vs FCFS
sequenza di arrivocon FCFS:t_medio di turnaround è 14m
sequenza riordinatacon SJF:t_medio di turnaround è 11m
In generale, dati n programmi con t_exe = ai,T_medio = [na1 + (n-1)a2 + …+ an]/n
che risulta minimizzato se a1 < a2 < …< an
AA 2002/03©Bruschi, Rosti
Sistemi OperativiCorso di laurea in Informatica
22
SJF
• Problema: conoscere a priori i CPU burst deijob in esecuzione• Si usano statistiche sulle precedenti esecuzioni
• sia tn il tempo di esecuzione stimato• sia tn il tempo di esecuzione misurato
• sia tn+1 il nuovo valore aggiornato della stima• sia a un parametro per pesare la stima
• con a = _ in 3 esecuzioni il peso della stima iniziale è 1/8
nnn t taa )1(t 1 -+⋅=+
AA 2002/03©Bruschi, Rosti
Sistemi OperativiCorso di laurea in Informatica
23
Round Robin
• Preemptive• Ad ogni processo in attesa di esecuzione viene
assegnato un intervallo di tempo detto quanto• Terminato il quanto, il processo, se non ha
terminato la sua esecuzione, viene rimesso incoda
AA 2002/03©Bruschi, Rosti
Sistemi OperativiCorso di laurea in Informatica
24
RR
0 5 10 15 20
1
2
3
4
5
AA 2002/03©Bruschi, Rosti
Sistemi OperativiCorso di laurea in Informatica
25
Round Robin
• Problema: la dimensione del quanto di tempo
• Il quanto di tempo è “tempo sprecato” per ilcontext switch• Quanto di tempo troppo breve: scarsa efficienza
della CPU• lavoro utile vs amministrazione
• Quanto di tempo troppo lungo: RR degenera inFCFS
• degenerano le prestazioni
• Quanto di tempo poco più lungo del CPU burst• la prelazione si riduce, migliorando le prestazioni
AA 2002/03©Bruschi, Rosti
Sistemi OperativiCorso di laurea in Informatica
26
Scheduling con priorità
• RR non consente di effettuare distinzioni tra i processi
• Il modello è stato raffinato con l’introduzione delleclassi di priorità• SJF è un esempio di algoritmo con priorita`
AA 2002/03©Bruschi, Rosti
Sistemi OperativiCorso di laurea in Informatica
27
Scheduling con priorità
• Uno scheduler basa spesso le propriedecisioni in base alla priorità di unprocesso
• In un sistema esistono quindi più codedi processi suddivise per priorità
• I processi con bassa priorità possonosoffrire starvation
AA 2002/03©Bruschi, Rosti
Sistemi OperativiCorso di laurea in Informatica
28
Code con priorita`
AA 2002/03©Bruschi, Rosti
Sistemi OperativiCorso di laurea in Informatica
29
Scheduling con priorità
• Problema: la starvation dei processi abassa priorità
• Una soluzione a questo problema èdata dalla procedura di aging• La priorità assegnata ad un processo varia
nel tempo in funzione della suapermanenza nel sistema e del tempo diCPU consumato
AA 2002/03©Bruschi, Rosti
Sistemi OperativiCorso di laurea in Informatica
30
Scheduling dei thread
• Scheduling possibile per user-level thread• Quanto per processo 50 msec• Un thread esegue fino a che non cede volontariamente la CPU
perché il run-time non può interromperlo
AA 2002/03©Bruschi, Rosti
Sistemi OperativiCorso di laurea in Informatica
31
Scheduling dei thread
• Scheduling possibile per kernel-level threads• Quanto di tempo per processo 50 msec
• I thread vengono eseguiti in burst di CPU di 5 msec
AA 2002/03©Bruschi, Rosti
Sistemi OperativiCorso di laurea in Informatica
32
Scheduling dei thread
• Thread switch• A livello utente costa poche istruzioni• A livello kernel richiede un cambio della memoria e della
cache
• Blocco su I/O• A livello utente blocca l’intero processo• A livello kernel blocca il solo thread
• Decisioni di scheduling• A livello utente, ad hoc per l’applicazione• A livello kernel, al più sequenze di thread dello stesso
processo
AA 2002/03©Bruschi, Rosti
Sistemi OperativiCorso di laurea in Informatica
33
Scheduling in Unix
• Round-robin con multi-level feedback• Priorita` positiva per processi usente,
negativa per processi kernel• Sospensione dei processi
• Fine del quanto, attesa di un evento, presenza diproc. con priorita` "maggiore"
• S.O. mantiene info su processi perscheduling• Tempo nel sistema e in ready
AA 2002/03©Bruschi, Rosti
Sistemi OperativiCorso di laurea in Informatica
34
Lo scheduler in UNIX e` basato su una coda multilivello
Scheduling in Unix
AA 2002/03©Bruschi, Rosti
Sistemi OperativiCorso di laurea in Informatica
35
Scheduling in W2K
• Si schedulano i thread• Non i processi
• Non esiste un thread di sistema cheesegue lo scheduler
• Un thread entra in modalita` kernel edesegue lo scheduler quando• Si blocca su un evento• Segnala un oggetto• Il suo quanto e` finito
AA 2002/03©Bruschi, Rosti
Sistemi OperativiCorso di laurea in Informatica
36
Scheduling in W2K
Corrispondenza tra le priorita`di Win32 e quelle diW2K
thread utente
AA 2002/03©Bruschi, Rosti
Sistemi OperativiCorso di laurea in Informatica
37
Scheduling in W2K
32 livelli di priorita` per i thread
Scheduling nei sistemi real-time
AA 2002/03©Bruschi, Rosti
Sistemi OperativiCorso di laurea in Informatica
39
Sistemi Real-Time
• La correttezza del sistema non dipende solodai risultati dei singoli processi ma anchedagli istanti di tempo in cui i risultati sonoprodotti
• I processi reagiscono ad eventi che siverificano nel mondo esterno
• Questi eventi si verificano in “tempo reale” e iprocessi devono essere in grado di gestirli intempo debito
AA 2002/03©Bruschi, Rosti
Sistemi OperativiCorso di laurea in Informatica
40
Sistemi Real-Time
• Controllo di esperimenti di laboratorio
• Sistemi per il controllo di processo
• Robot
• Controllo traffico aereo
• Telecomunicazioni
• Sistemi di controllo militari
• Sistemi multimediali
AA 2002/03©Bruschi, Rosti
Sistemi OperativiCorso di laurea in Informatica
41
Requisiti di un SO Real-Time
• Determinismo
• Prontezza
• User control
• Affidabilita`
AA 2002/03©Bruschi, Rosti
Sistemi OperativiCorso di laurea in Informatica
42
Requisiti: determinismo
• Tutte le operazioni svolte nel sistemadevono essere svolte in istanti di tempofissati e predeterminati oppure entrointervalli di tempo predeterminati
• L’intervallo di tempo richiesto dal SOper riconoscere un interrupt deveessere superiormente limitato• Max 1ms
AA 2002/03©Bruschi, Rosti
Sistemi OperativiCorso di laurea in Informatica
43
Requisiti: prontezza
• Deve essere possibile stabilire a prioridei limiti superiori a• Tempo speso dal SO per gestire
inizialmente un interrupt e iniziarel’esecuzione dell’handler
• Tempo speso dal SO per eseguirel’handler
• Effetto dell’annidamento degli interrupt
AA 2002/03©Bruschi, Rosti
Sistemi OperativiCorso di laurea in Informatica
44
Requisiti: controllo utente
• L’utente deve poter definire• Priorità dei processi
• Paging
• Quali processi devono risiederecostantemente in memoria
• Algoritmi di gestione del disco da utilizzare
• Diritti dei processi
AA 2002/03©Bruschi, Rosti
Sistemi OperativiCorso di laurea in Informatica
45
Requisiti: affidabilità
• Capacità di correggere un problema ominimizzare i suoi effetti mentre ilsistema continua la propria esecuzione
• Il degrado delle prestazioni può avereeffetti devastanti
AA 2002/03©Bruschi, Rosti
Sistemi OperativiCorso di laurea in Informatica
46
Proprietà caratteristiche
• Context switch molto veloce• Dimensioni del sistema contenute• Risposta molto veloce ad interrupt
esterni• Multitasking con primitive di IPC come
semafori, signals e eventi• File in grado di memorizzare grosse
quantità di dati ad alta velocità• Preemptive scheduling basato su
priorità
AA 2002/03©Bruschi, Rosti
Sistemi OperativiCorso di laurea in Informatica
47
Proprietà caratteristiche
• Minimizzazione degli intervalli di tempodurante i quali gli interrupt sonodisabilitati
• Possibilità di posticipare l’esecuzione diprocessi per quantità di tempodeterminate
• Allarmi e timeout speciali
AA 2002/03©Bruschi, Rosti
Sistemi OperativiCorso di laurea in Informatica
48
Scheduling di processi Real-Time
Solitamente inaccettabile
AA 2002/03©Bruschi, Rosti
Sistemi OperativiCorso di laurea in Informatica
49
Scheduling di processi Real-Time
Inaccettabile in caso di task non RT lenti
AA 2002/03©Bruschi, Rosti
Sistemi OperativiCorso di laurea in Informatica
50
Scheduling di processi Real-Time
Accettabile per sistemi poco esigenti
AA 2002/03©Bruschi, Rosti
Sistemi OperativiCorso di laurea in Informatica
51
Scheduling di processi Real-Time
Ritardi contenuti entro 100msec
AA 2002/03©Bruschi, Rosti
Sistemi OperativiCorso di laurea in Informatica
52
Scheduling basato su Deadline
• Le applicazioni real-time non devonoessere eseguite velocemente ma nelrispetto dei tempi imposti
• Un algoritmo di scheduling che dàpriorità ai processi con deadline piùvicina minimizza il numero di processi lacui deadline non viene rispettata
AA 2002/03©Bruschi, Rosti
Sistemi OperativiCorso di laurea in Informatica
53
Scheduling basato su Deadline
• Esempio• Si consideri un sistema soft real-time caratterizzato
da tre eventi periodici rispettivamente con periodo100, 200, 500 ms
• Ciascuno richiede l’intervento della CPU per 50, 30,100 ms, rispettivamente
• È possibile ottenere uno scheduling di taliprocessi?
• Se aggiungiamo un processo con periodo 1s, qualicaratteristiche deve possedere per poter essere asua volta schedulato?
AA 2002/03©Bruschi, Rosti
Sistemi OperativiCorso di laurea in Informatica
54
Scheduling basato su Deadline
• Sistemi real-time in cui la schedulazioneè possibile• Dati
• m eventi periodici
• L’evento i si verifica con periodo Pi e richiede Ci
tempo di CPU
• Il carico può essere gestito solo se
1m
i
i = 1i
CP
£Â
AA 2002/03©Bruschi, Rosti
Sistemi OperativiCorso di laurea in Informatica
55
Erlieast Deadline First Scheduling
• Algoritmo dinamico e con prelazione• Adatto a processi non periodici• I CPU burst di un processo possono essere
diversi tra loro• Lo scheduler tiene una coda ordinata in base
alle deadline ed esegue il processo con ladeadline più prossima• Dati due processi con uguale deadline, uno in
esecuzione e l’altro ready, si lascia proseguirequello in esecuzione per minimizzare l’overhead
AA 2002/03©Bruschi, Rosti
Sistemi OperativiCorso di laurea in Informatica
56
Deadline Scheduling
• Informazioni usate• Ready time• Starting deadline• Completion deadline• Processing time• Resource requirements• Priority• Subtask scheduler
AA 2002/03©Bruschi, Rosti
Sistemi OperativiCorso di laurea in Informatica
57
Rate Monotonic Scheduling
• Assegna priorità ai processi sulla basedella loro periodicità
• I processi con maggiore priorità sonoquelli con frequenza di esecuzionemaggiore• Periodo minore
AA 2002/03©Bruschi, Rosti
Sistemi OperativiCorso di laurea in Informatica
58
Scheduling in sistemi real-timeRMS
A: t_exe = 10ms, periodo = 30ms, priorità = 33B: t_exe = 15ms, periodo = 40ms, priorità = 25C: t_exe = 5ms, periodo = 50ms, priorità = 2010/30 + 15/40 + 5/50 = 0.808 < 1 -> processi schedulabili
AA 2002/03©Bruschi, Rosti
Sistemi OperativiCorso di laurea in Informatica
59
Scheduling in sistemi real-timeRMS
Sequenza generata da RMS
AA 2002/03©Bruschi, Rosti
Sistemi OperativiCorso di laurea in Informatica
60
Scheduling in sistemi real-timeEDF vs RMS
AA 2002/03©Bruschi, Rosti
Sistemi OperativiCorso di laurea in Informatica
61
Scheduling in sistemi real-timeEDF vs RMS
T_exeA = 15mssistema schedulabile (1/2 + 3/8 + 1/10 = 0.975 < 1)
AA 2002/03©Bruschi, Rosti
Sistemi OperativiCorso di laurea in Informatica
62
Scheduling in sistemi real-time
• RMS fallisce perché considera solo il periodo,non il tempo di esecuzione
• L’uso di priorità statiche funziona solo sel’utilizzo della CPU non è troppo alto
• EDF funziona sempre per qualunque insiemedi processi schedulabili e può raggiungere unutilizzo di CPU pari a 1
1
m(21/m – 1)
m
i
i i
CP=
£Â
AA 2002/03©Bruschi, Rosti
Sistemi OperativiCorso di laurea in Informatica
63
Scheduling in sistemi real-time
• Tutte le considerazioni sinora svolte hannoassunto un tempo di context switch pari a 0
• Il tempo di context switch dei sistemi generalpurpose è molto lontano da tale valore
• Rispetto a questi, i sistemi real-timenecessitano di:• Gestione di interrupt veloci• Context switch rapidi• Intervalli molto brevi di disabilitazione degli
interrupt