La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

5.1 Sistemi operativi Scheduling della CPU Concetti di base Criteri di scheduling Algoritmi di scheduling Scheduling in sistemi con più processori Valutazione.

Presentazioni simili


Presentazione sul tema: "5.1 Sistemi operativi Scheduling della CPU Concetti di base Criteri di scheduling Algoritmi di scheduling Scheduling in sistemi con più processori Valutazione."— Transcript della presentazione:

1 5.1 Sistemi operativi Scheduling della CPU Concetti di base Criteri di scheduling Algoritmi di scheduling Scheduling in sistemi con più processori Valutazione degli algoritmi

2 5.2 Sistemi operativi Concetti di base Il massimo impiego della CPU è ottenuto con la multiprogrammazione. Ciclo di CPU–I/O burst – Lesecuzione di un processo consiste di cicli di esecuzione di CPU ed attese di I/O. Distribuzione dei burst di CPU Istogramma burst di CPU

3 5.3 Sistemi operativi Scheduler della CPU Seleziona uno dei processi in memoria che sono pronti ad essere eseguiti ed alloca la CPU a questo processo. Le decisioni dello scheduling di CPU hanno luogo quando un processo: 1.Passa da stato running a stato waiting. 2.Passa da stato running a stato ready. 3.Passa da stato waiting a stato ready. 4.Termina. Se lo scheduling è solo nelle condizioni 1 e 4, si dice che lo schema di scheduling è non–preemptive (senza prelazione). Altrimenti si ha uno schema preemptive.

4 5.4 Sistemi operativi Dispatcher Il modulo dispatcher da il controllo della CPU al processo selezionato dallo scheduler a breve termine; questo comporta: –Context switch –Passaggio a modo utente –Salto alla posizione corretta del programma utente per riavviarne lesecuzione Latenza di dispatch – è il tempo che impiega il dispatcher per fermare un processo e avviare lesecuzione di un altro.

5 5.5 Sistemi operativi Criteri di Scheduling Utilizzo di CPU – la CPU deve essere più attiva possibile Throughput – numero di processi che completano la loro esecuzione per unità di tempo Tempo di turnaround – tempo impiegato per lesecuzioned di un determinato processo Tempo di attesa – tempo durante il quale un processo si è trovato nella coda ready 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 limitato dalla velocità del dispositivo di output

6 5.6 Sistemi operativi Criteri di ottimizzazione Max utilizzo di CPU Max throughput Min tempo di turnaround Min tempo di attesa Min tempo di risposta

7 5.7 Sistemi operativi Scheduling First–Come, First–Served (FCFS) Esempio:ProcessoBurst Time P 1 24 P 2 3 P 3 3 Supponendo che i processi arrivino nel seguente ordine: P 1, P 2, P 3 l lo schema di Gantt è il seguente: Tempi di attesa P 1 = 0; P 2 = 24; P 3 = 27 Tempo di attesa medio: ( )/3 = 17 P1P1 P2P2 P3P

8 5.8 Sistemi operativi Scheduling FCFS Se lordine di arrivo è il seguente: P 2, P 3, P 1. Lo schema di Gantt è il seguente: Tempi di attesa: P 1 = 6; P 2 = 0 ; P 3 = 3 Tempo di attesa medio: ( )/3 = 3 Molto migliore del caso precedente, in cui si aveva un effetto convoglio: i processi piccoli attendono che un grande processo liberi la CPU P1P1 P3P3 P2P

9 5.9 Sistemi operativi Scheduling Shortest–Job–First (SJF) Si associa a ciascun processo la lunghezza del suo successivo burst di CPU. SI impiegano queste lunghezze per assegnare alla CPU il processo con il burst più breve. Due schemi: –nonpreemptive – una volta che la CPU viene assegnata al processo, non può essere assegnata ad un altro processo fino a che quello corrente non termina il burst di CPU. –preemptive – se arriva un nuovo processo con burst di CPU minore del tempo rimasto per il processo corrente, il nuovo processo viene sostituito allaltro. Questo schema è noto come Shortest–Remaining–Time–First (SRTF). SJF è ottimale – rende minimo il tempo medio di attesa per un dato insieme di processi.

10 5.10 Sistemi operativi ProcessoTempo di arrivoBurst Time P P P P SJF (non-preemptive) tempo medio di attesa = ( )/4 - 4 Esempio di SJF nonpreemptive P1P1 P3P3 P2P P4P4 812

11 5.11 Sistemi operativi Esempio di SJF Preemptive ProcessoTempo di arrivoBurst Time P P P P SJF (preemptive) tempo medio di attesa = ( )/4 - 3 P1P1 P3P3 P2P P4P4 57 P2P2 P1P1 16

12 5.12 Sistemi operativi Predizione della lunghezza del busrt di CPU successivo Può soltanto stimare la lunghezza. Può essere stimato utilizzando la lunghezza dei burst di CPU precedenti, impiegando una media esponenziale. 1) t n lunghezza delln-mo burst di CPU 2) n+1 valore stimato per il CPU–burst successivo 3), 0 1 4) n+1 = t n + (1- ) n

13 5.13 Sistemi operativi Esempi di media esponenziale =0 – n+1 = n –La storia recente non è presa in considerazione. =1 – n+1 = t n –Viene preso in considerazione solo lultimo burst di CPU. Espandendo la formula si ottiene: n+1 = t n +(1 - ) t n -1 + … +(1 - ) j t n -1 + … +(1 - ) n=1 t n 0 Dato che sia che (1 - ) sono minori o uguali a 1, ciascun termine successivo ha minor peso del suo predecessore.

14 5.14 Sistemi operativi Scheduling a priorità Un valore di priorità (intero) è associato con ciascun processo. La CPU è allocata al processo con la più grande priorità (intero più basso priorità più alta). –preemptive –nonpreemptive SJF è uno scheduling a priorità dove la priorità è il successivo tempo di burst stimato. Problema Starvation (blocco indefinito) – i processi a bassa priorità potrebbero non venir mai eseguiti. Soluzione Aging (invecchiamento) – aumento graduale della priorità dei processi che si trovano in attesa nel sistema da lungo tempo.

15 5.15 Sistemi operativi Round Robin (RR) Ciascun processo prende una piccola unità di tempo di CPU (quanto di tempo), generalmente millisecondi. Dopo che questo tempo è trascorso, il processo è forzato a rilasciare la CPU e aggiunto alla fine della coda dei processi pronti (ready queue). Se ci sono n processi nella ready queue e il quanto di tempo è q, ciascun processo prende 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. Performance –q grande FIFO –q piccolo q deve essere grande rispetto al tempo di context switch, altrimenti loverhead è troppo alto.

16 5.16 Sistemi operativi Esempio: RR con quanto di tempo = 20 ProcessoBurst Time P 1 53 P 2 17 P 3 68 P 4 24 Lo schema di Gantt è: In genere si ha un tempo medio di turnaround maggiore rispetto a SJF, tuttavia si ha una migliore risposta. P1P1 P2P2 P3P3 P4P4 P1P1 P3P3 P4P4 P1P1 P3P3 P3P

17 5.17 Sistemi operativi Un quanto di tempo minore incrementa i context switch

18 5.18 Sistemi operativi Tempo di turnaround varia con il quanto di tempo

19 5.19 Sistemi operativi Scheduling con code multiple La ready queue è suddivisa in code separate: foreground (interattiva) background (batch) Ciascuna coda ha il proprio algoritmo di scheduling, foreground – RR background – FCFS Inoltre è necessario uno scheduling tra code. –Scheduling a priorità fissa; es. serve tutti i processi in foreground poi in background. Rischio di starvation. –Time slice – ciascuna coda prende un certo tempo di CPU che può suddividere fra i propri processi. Ad esempio 80% per foreground in RR 20% per background in FCFS

20 5.20 Sistemi operativi 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 –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à minore –metodo impiegato per determinare in quale coda deve essere posto un processo quando richiede un servizio

21 5.21 Sistemi operativi Esempio di code multiple con feedback 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 FCFS. Quando prende possesso della CPU il job riceve 8 millisecondi. Se non termina in 8 millisecondi il job è spostato alla coda Q 1. –Nella coda Q 1 il job è ancora servito FCFS e riceve ancora 16 millisecondi. Se ancora non ha terminato, viene mosso nella coda Q 2.

22 5.22 Sistemi operativi Valutazione degli algoritmi 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. Simulazioni Realizzazione


Scaricare ppt "5.1 Sistemi operativi Scheduling della CPU Concetti di base Criteri di scheduling Algoritmi di scheduling Scheduling in sistemi con più processori Valutazione."

Presentazioni simili


Annunci Google