La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Silberschatz, Galvin and Gagne 2002 6.1 Operating System Concepts Scheduling della CPU Concetti fondamentali Criteri di scheduling Algoritmi di scheduling.

Presentazioni simili


Presentazione sul tema: "Silberschatz, Galvin and Gagne 2002 6.1 Operating System Concepts Scheduling della CPU Concetti fondamentali Criteri di scheduling Algoritmi di scheduling."— Transcript della presentazione:

1 Silberschatz, Galvin and Gagne Operating System Concepts Scheduling della CPU Concetti fondamentali Criteri di scheduling Algoritmi di scheduling Valutazione degli algoritmi

2 Silberschatz, Galvin and Gagne Operating System Concepts Concetti fondamentali Il massimo impiego della CPU è ottenuto con la multiprogrammazione. Ciclo di CPU–I/O burst cicli Ciclo di CPU–I/O burst Lesecuzione di un processo consiste di cicli di esecuzione da parte della CPU ed attese di I/O. Distribuzione dei burst di CPU

3 Silberschatz, Galvin and Gagne Operating System Concepts Scheduler della CPU Sceglie, fra i processi in memoria pronti ad essere eseguiti, un processo cui allocare la CPU. Lo scheduler della CPU deve prendere una decisione quando un processo… 1. …passa da stato running a stato waiting ; 1. …passa da stato running a stato waiting (richiesta di I/O o attesa terminazione di un processo figlio); 2. …passa da stato running a stato ready 2. …passa da stato running a stato ready (interrupt); 2. …passa da stato waiting a stato ready ; 2. …passa da stato waiting a stato ready (completamento di un I/O); 3. …termina. Windows Se lo scheduling viene effettuato solo nei casi 1 e 4, si dice che lo schema di scheduling è non–preemptive (senza prelazione; es. Windows). preemptive Altrimenti si ha uno schema preemptive.

4 Silberschatz, Galvin and Gagne Operating System ConceptsDispatcher dispatcher Il modulo dispatcher passa il controllo della CPU al processo selezionato dallo scheduler a breve termine; il dispatcher effettua: Context switch Context switch Passaggio a modo utente Passaggio a modo utente Salto alla posizione corretta del programma utente per riavviarne lesecuzione Salto alla posizione corretta del programma utente per riavviarne lesecuzione Latenza di dispatch Latenza di dispatch è il tempo impiegato dal dispatcher per sospendere un processo e avviare una nuova esecuzione.

5 Silberschatz, Galvin and Gagne Operating System Concepts Criteri di scheduling Utilizzo di CPU Utilizzo di CPU la CPU deve essere più attiva possibile. Throughput Throughput numero di processi che completano la loro esecuzione nellunità di tempo. Tempo di turnaround Tempo di turnaround tempo impiegato per lesecuzione di un determinato processo. Tempo di attesa Tempo di attesa tempo speso dal processo in attesa nella ready queue. Tempo di risposta Tempo di risposta tempo che intercorre tra la sottomissione di una richiesta e la prima risposta prodotta. In un sistema time–sharing il tempo di turnaround può essere influenzato dalla velocità del dispositivo di output.

6 Silberschatz, Galvin and Gagne Operating System Concepts Criteri di ottimizzazione Massimo utilizzo di CPU Massimo throughput Minimo tempo di turnaround Minimo tempo di attesa Minimo tempo di risposta

7 Silberschatz, Galvin and Gagne Operating System Concepts Scheduling First–Come–First–Served (FCFS) ESEMPIO 1 ProcessoTempo di burst P 1 24 P 2 3 P 3 3 FCFS I processi arrivano al sistema nellordine: P 1, P 2, P 3. Il diagramma di Gantt per lo scheduling FCFS è: Tempi di attesa: P 1 = 0; P 2 = 24; P 3 = 27. Tempo medio di attesa = ( )/3 = 17. P1P1 P2P2 P3P

8 Silberschatz, Galvin and Gagne Operating System Concepts Scheduling FCFS Se lordine di arrivo è P 2, P 3, P 1, il diagramma di Gantt risulta… Tempi di attesa: P 1 = 6; P 2 = 0; P 3 = 3. Tempo medio di attesa = ( )/3 = 3. effetto convoglio Non si verifica leffetto convoglio, per cui processi di breve durata devono attendere che un processo molto lungo liberi la CPU. P1P1 P3P3 P2P

9 Silberschatz, Galvin and Gagne Operating System Concepts Scheduling Shortest–Job–First (SJF) Si associa a ciascun processo la lunghezza del suo burst di CPU successivo. Si opera lo scheduling in base alla brevità dei CPU burst. Due schemi: non–preemptive non–preemptive una volta che la CPU è stata allocata al processo, non gli può essere prelazionata fino al termine del CPU burst corrente; preemptive Shortest–Remaining–Time–FirstSRTF preemptive se arriva un nuovo processo con burst di CPU minore del tempo rimasto per il processo corrente, il nuovo processo prelaziona la CPU. Questo schema è noto come Shortest–Remaining–Time–First (SRTF). SJFottimale SJF è ottimale rende minimo il tempo medio di attesa per un dato insieme di processi.

10 Silberschatz, Galvin and Gagne Operating System Concepts ESEMPIO 2 ProcessoTempo di arrivoTempo di burst P P P P SJF (non–preemptive): Tempo medio di attesa = ( )/4 = 4. Scheduling SJF non–preemptive P1P1 P3P3 P2P P4P4 812

11 Silberschatz, Galvin and Gagne Operating System Concepts Scheduling SJF preemptive ESEMPIO 3 ProcessoTempo di arrivoTempo di burst P P P P SJF (preemptive): Tempo medio di attesa = ( )/4 = 3. P1P1 P3P3 P2P P4P4 57 P2P2 P1P1 16

12 Silberschatz, Galvin and Gagne Operating System Concepts Predizione della lunghezza del CPU burst successivo Può essere stimato utilizzando la lunghezza dei burst di CPU precedenti, impiegando una media esponenziale.

13 Silberschatz, Galvin and Gagne Operating System Concepts Esempi di media esponenziale =0 n+1 = n La storia recente non è presa in considerazione. =1 n+1 = t n Viene considerato soltanto lultimo CPU burst. Espandendo la formula si ottiene: n+1 = t n +(1- ) t n-1 + … + (1- ) j t n-j + … +(1- ) n+1 0 Poiché e (1- ) sono entrambi minori o uguali ad 1, ciascun termine ha minor peso del suo predecessore.

14 Silberschatz, Galvin and Gagne Operating System Concepts Scheduling a priorità Un valore di priorità (intero) è associato a ciascun processo. La CPU viene allocata al processo con la priorità più alta (intero più basso priorità più alta). preemptive preemptive non–preemptive non–preemptive SJF SJF è uno scheduling a priorità dove la priorità è rappresentata dal successivo tempo di burst. Starvation Problema Starvation (blocco indefinito) i processi a bassa priorità potrebbero non venir mai eseguiti. Aging Soluzione Aging (invecchiamento) aumento graduale della priorità dei processi che si trovano in attesa nel sistema da lungo tempo.

15 Silberschatz, Galvin and Gagne Operating System Concepts Scheduling Round Robin (RR) quanto di tempo A ciascun processo viene allocata una piccola unità di tempo di CPU (quanto di tempo), generalmente 10–100 millisecondi. Dopo un quanto di tempo, il processo è forzato a rilasciare la CPU e accodato alla ready queue. Se ci sono n processi nella ready queue ed il quanto di tempo è q, ciascun processo occupa 1/n del tempo di CPU in frazioni di, al più, q unità di tempo. Nessun processo attende per più di (n -1) q unità di tempo. Prestazioni: q grande FIFO q grande FIFO q piccolo q deve essere grande rispetto al tempo di context switch, altrimenti loverhead è troppo alto. q piccolo q deve essere grande rispetto al tempo di context switch, altrimenti loverhead è troppo alto.

16 Silberschatz, Galvin and Gagne Operating System Concepts Scheduling RR con quanto = 20 ESEMPIO 4 ProcessoTempo di burst P 1 53 P 2 17 P 3 68 P 4 24 Il diagramma di Gantt è: SJF In genere si ha un tempo medio di turnaround maggiore rispetto a SJF, tuttavia si ha una miglior tempo di risposta. P1P1 P2P2 P3P3 P4P4 P1P1 P3P3 P4P4 P1P1 P3P3 P3P

17 Silberschatz, Galvin and Gagne Operating System Concepts Quanto di tempo VS context switch Un quanto di tempo minore incrementa il numero di context switch

18 Silberschatz, Galvin and Gagne Operating System Concepts Quanto di tempo e tempo di turnaround Variazione del tempo di turnaround in funzione della lunghezza del quanto di tempo Empiricamente: il quanto di tempo deve essere > o = dell80% dei CPU burst.

19 Silberschatz, Galvin and Gagne Operating System Concepts Scheduling con code multiple La ready queue è suddivisa in code separate: foreground (interattiva) foreground (interattiva) background (batch) background (batch) Ciascuna coda ha il suo proprio algoritmo di scheduling: foreground – RR foreground – RR background – FCFS background – FCFS È necessario uno scheduling tra code. Scheduling a priorità fissa ; es. serve Scheduling a priorità fissa ; es. serve tutti i processi in foreground poi in tutti i processi in foreground poi in background. Rischio di starvation. background. Rischio di starvation. Time slice : ciascuna coda occupa un Time slice : ciascuna coda occupa un certo tempo di CPU che suddivide fra certo tempo di CPU che suddivide fra i propri processi. Ad esempio: i propri processi. Ad esempio: 80% per foreground in RR 80% per foreground in RR 20% per background in FCFS 20% per background in FCFS

20 Silberschatz, Galvin and Gagne Operating System Concepts Code multiple con feedback Un processo può spostarsi fra le varie code; laging può essere implementato in questo modo. Lo scheduler con code multiple con feedback è definito dai seguenti parametri: Numero di code Numero di code Algoritmi di scheduling per ciascuna coda Algoritmi di scheduling per ciascuna coda Metodo impiegato per determinare quando spostare un processo in una coda a priorità maggiore Metodo impiegato per determinare quando spostare un processo in una coda a priorità maggiore Metodo impiegato per determinare quando spostare un processo in una coda a priorità minore Metodo impiegato per determinare quando spostare un processo in una coda a priorità minore Metodo impiegato per determinare in quale coda deve essere posto un processo quando richiede un servizio Metodo impiegato per determinare in quale coda deve essere posto un processo quando richiede un servizio

21 Silberschatz, Galvin and Gagne Operating System Concepts Esempio di code multiple con feedback FCFS Tre code: Q 0 – quanto di tempo di 8 millisecondi; Q 1 – quanto di tempo di 16 millisecondi; Q 2 – FCFS. Scheduling: Un nuovo job viene immeso nella coda Q 0 che è servita RR. Quando prende possesso della CPU il job riceve 8 millisecondi. Se non termina, viene spostato nella coda Q 1. Un nuovo job viene immeso nella coda Q 0 che è servita RR. Quando prende possesso della CPU il job riceve 8 millisecondi. Se non termina, viene spostato nella coda Q 1. Nella coda Q 1 il job è ancora servito RR e riceve ulteriori 16 millisecondi. Se ancora non ha terminato, viene mosso nella coda Q 2. Nella coda Q 1 il job è ancora servito RR e riceve ulteriori 16 millisecondi. Se ancora non ha terminato, viene mosso nella coda Q 2.

22 Silberschatz, Galvin and Gagne Operating System Concepts Valutazione degli algoritmi Modellazione deterministica Modellazione deterministica prende in considerazione un carico di lavoro predeterminato e definisce le prestazioni di ciascun algoritmo per tale carico di lavoro. Modelli di code Modelli di code modelli statistici del comportamento del sistema. Simulazioni Simulazioni. Valutazione di scheduler di CPU tramite simulazione


Scaricare ppt "Silberschatz, Galvin and Gagne 2002 6.1 Operating System Concepts Scheduling della CPU Concetti fondamentali Criteri di scheduling Algoritmi di scheduling."

Presentazioni simili


Annunci Google