Scheduling dei processi
homepage LO SCHEDULING DEI PROCESSI RICHIAMI ESERCIZI PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH FCFS SJF {SRTF} PRIORITÀ ROUND ROBIN RIEPILOGO RISULTATI PASSI DI SVILUPPO DELL’ARGOMENTO SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING SWAPPING CLASSIFICAZIONE DELLE POLITICHE DI SCHEDULING POLITICHE DI SCHEDULING Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
homepage PROCESSI Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Processi homepage Gli attuali calcolatori, diversamente da quanto avveniva una volta, consentono la multiprogrammazione, ossia l’esecuzione concorrente di più programmi. Una tale caratteristica necessita di un efficiente sistema di gestione e di ripartizione delle risorse nonché di efficaci servizi di sistema e di controllo dei programmi. Alla base di questa tecnica vi è la suddivisione dei programmi in processi. Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Processi homepage Un processo è fondamentalmente un programma in fase di esecuzione; più propriamente, è l’unità di lavoro elementare che il S. O. esegue sequenzialmente, secondo l’ordine specificato nel testo del programma. Un programma (codice binario su disco) di per sé non è un processo, ma un’entità statica; a seguito del suo lancio, viene caricato in memoria centrale ed eseguito istruzione dopo istruzione. Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Processi Un processo è rappresentato da: homepage codice (text) del programma dati: variabili globali del programma program counter: indirizzo della successiva istruzione alcuni registri di CPU stack: parametri e variabili locali di funzioni o procedure Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
STATI DI UN PROCESSO homepage Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Stati di un processo homepage Di un processo si può individuare uno stato puntuale, cioè una condizione in cui esso si viene a trovare in un dato momento del suo ciclo di vita: nuovo: il processo è stato creato pronto: il processo è pronto per l’esecuzione in esecuzione: il processo è in esecuzione bloccato: il processo è in attesa di un evento terminato: il processo rilascia la risorsa processore Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Stati di un processo Terminato Nuovo in Pronto esecuzione Coda Pronti homepage Nuovo Pronto in esecuzione Terminato bloccato interruzione uscita ammissione attesa evento (es. I/O) evento verificato assegnazione Coda Pronti Code di Attesa Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
DESCRITTORE DI PROCESSO homepage DESCRITTORE DI PROCESSO Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Descrittore di processo homepage In un sistema multiprogrammato è necessario mantenere memorizzate le informazioni relative ai diversi stati in cui i processi vengono a trovarsi durante il loro ciclo di vita. Pertanto, ad ogni processo il S. O. associa una struttura dati, detta descrittore di processo o Process Control Block (PCB), nella quale vengono registrate una serie di informazioni utili per la gestione dello stesso processo. Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Descrittore di processo homepage Un PCB contiene: il nome del processo (PID) lo stato del processo il contenuto del program counter i valori di alcuni registri di CPU informazioni di scheduling informazioni per la gestione della memoria informazioni sulle operazioni di I/O informazioni di contabilizzazione ………………… Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Descrittore di processo homepage Il S. O. gestisce i PCB di tutti i processi, disponendoli in strutture dati chiamate code; ogni coda contiene PCB caratterizzati dallo stesso stato: ready, waiting, … PCB NOME STATO PROGRAM COUNTER REGISTRI DI CPU LIMITI DI MEMORIA FILE APERTI …………… Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
CONTEXT SWITCH homepage Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Context switch homepage Il context switch (commutazione di contesto) è la fase in cui l’uso della CPU passa da un processo pi al suo successivo pi+1 In questo lasso di tempo il S. O. realizza, ordinatamente, le seguenti operazioni: Salvataggio dello stato del processo pi uscente Selezione del nuovo processo pi+1 Ripristino dello stato del processo pi+1 entrante Si modifica, in questo modo, il contesto in cui lavora il processore. Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Context switch homepage Il tempo utilizzato dal S. O. per le operazioni di context switch, in rapporto al time-slice (quanto di tempo di CPU), non deve essere causa di riduzione dell’efficienza della CPU lunghi tempi di risposta A tal fine, il tempo di context switch non deve superare il 25% del time-slice (solitamente di circa 100 ms) Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
homepage SCHEDULING Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Scheduling Esempio sul significato del termine scheduling: homepage Esempio sul significato del termine scheduling: – Alcuni giovani mirano ad avere un colloquio col manager di un’azienda per ottenere un lavoro; sanno di dover contattare la sua segretaria e chiederle di stabilire un incontro. Costei, in base agli impegni assunti, fisserà un giorno, un luogo e un’ora per i colloqui di ogni aspirante; se, tuttavia, emerge chiaramente che non c’è alcuna possibilità di lavoro, perché l’azienda non ha la capacità o il bisogno di assumere nuovo personale, la segretaria bloccherà sul nascere ogni tentativo di incontro col manager. Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Scheduling Le scelte della segretaria dipendono da vari fattori: homepage Le scelte della segretaria dipendono da vari fattori: l’ordine delle richieste pervenute la prevista durata dei colloqui la priorità associata a ciascuna richiesta il numero di candidati che il manager può esaminare in un giorno … Manager Aspiranti al lavoro Segretaria Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Scheduling homepage Ebbene, l’attività di selezione delle richieste degli aspiranti al lavoro svolta dalla segretaria, la quale gestisce l’attività del manager secondo un preciso insieme di regole e priorità (politica), è proprio un’attività di scheduling. Manager = risorsa Aspiranti al lavoro = processi Segretaria = scheduler Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Scheduling homepage Lo scheduling è una tecnica di allocazione delle risorse utilizzata dai sistemi operativi, in ambienti multiprogrammati, per gestire le richieste derivanti da più processi che concorrono per il loro utilizzo. Esso mira a rendere il sistema efficiente produttivo rapido nelle risposte Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
CLASSI DI SCHEDULING homepage Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Classi di scheduling homepage Nella gestione delle risorse di un elaboratore, il fattore tempo porta a definire una classificazione dello scheduling, ovvero ad identificare tre tipi di scheduling: Scheduling a breve termine Scheduling a medio termine Scheduling a lungo termine Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Classi di scheduling homepage Scheduling a breve termine: è adottato nella selezione del nuovo processo da eseguire, quando il p. in esecuzione passa allo stato di attesa o ritorna allo stato di pronto oppure termina un processo passa dallo stato di attesa allo stato di pronto si verificano eventi particolari (interruput, chiamate al S. O.) Nuovo Pronto Terminato in esecuzione Ammiss. Coda dei p. pronti Assegn. Rilascio PCB Processore Uscita Attivazione Tempo scaduto Evento verificato Bloccato Posto su disco in attesa di evento Coda dei p. bloccati Disk Sospensione Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Classi di scheduling homepage Scheduling a medio termine: gestisce la permanenza in memoria dei processi non in esecuzione; in particolare, coordina le operazioni di trasferimento temporaneo dei processi in memoria secondaria (swap out): modifica la miscela dei processi in memoria centrale al fine di migliorare le prestazioni del sistema interviene nella gestione dei processi in attesa di eventi da lungo tempo Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Classi di scheduling Scheduling a medio termine: homepage Ammiss. Nuovo Pronto Terminato in esecuzione Ammiss. Coda dei p. pronti Assegn. Rilascio PCB Processore Uscita Tempo scaduto Attivazione Bloccato Posto su disco in attesa di evento Coda dei p. bloccati Disk Sospensione Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Classi di scheduling individua i programmi da ammettere all’esecuzione homepage Scheduling a lungo termine: è impiegato nella scelta dei programmi, presenti in memoria secondaria, da caricare in memoria centrale per la creazione dei corrispondenti processi; esso richiede tempi relativamente lunghi quando individua i programmi da ammettere all’esecuzione regola la presenza in memoria centrale dei processi I/O bound e CPU bound controlla il livello di multiprogrammazione Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Classi di scheduling - Schema homepage SCHEDULING A MEDIO TERMINE Suspend Exit SCHEDULING A LUNGO TERMINE Created Running Ready SCHEDULING A BREVE TERMINE Waiting Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
SCHEDULING DELLA CPU homepage CPU P2 P3 P2 P3 P2 P3 P1 P1 P3 Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Scheduling della CPU homepage Lo scheduling costituisce una funzione fondamentale dei S. O., alla quale sono sottoposte quasi tutte le risorse di un elaboratore. In particolare, lo scheduling della CPU consiste nella scelta, da parte del S. O., del processo a cui assegnare la CPU e tiene conto del fatto che l’esecuzione di un processo è una sequenza alternata di operazioni di CPU operazioni di I/O o attese di eventi Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Scheduling della CPU homepage Quando la CPU rimane inattiva, il process scheduler (modulo del kernel) seleziona dalla ready queue (coda dei processi pronti) il prossimo processo a cui assegnare la CPU e decide da quale momento e per quanto tempo farlo eseguire. Tuttavia, l’effettiva assegnazione della CPU al processo prescelto per l’esecuzione è affidata al dispatcher, modulo del kernel che gestisce il context switch il passaggio al modo utente il salto alla giusta posizione del programma utente (impostazione del program counter) Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
OBIETTIVI DELLO SCHEDULING homepage OBIETTIVI DELLO SCHEDULING Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Obiettivi dello scheduling homepage Gli algoritmi (o politiche) di scheduling della CPU basano le proprie scelte sulle informazioni contenute nei descrittori di processo (PCB) in riferimento ai seguenti obiettivi: massimizzare - il throughput (produttività) - l’utilizzo della CPU (efficienza) minimizzare - l’overhead (spreco di risorse) - il tempo di turnaround (completamento) - il tempo di risposta - il tempo di attesa garantire - fairness (equità) Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Obiettivi dello scheduling homepage massimizzare il throughput (numero di processi utente completati nell’unità di tempo) massimizzare l’attività della CPU (percentuale media di utilizzo della CPU nell’unità di tempo) minimizzare l’overhead (numero di processi di sistema completati nell’unità di tempo) minimizzare il tempo di turnaround (tempo di permanenza di un processo nel sistema) minimizzare il tempo di risposta (tempo trascorso tra l’immissione di un comando e l’emissione della prima risposta) minimizzare il tempo di attesa (tempo totale trascorso da un processo nello stato di pronto) garantire Fairness (imparzialità nell’attribuzione dei time-slice ai processi) Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Obiettivi dello scheduling homepage Non potendo realizzare tutti gli obiettivi nello stesso tempo, ogni algoritmo di scheduling della CPU è finalizzato al raggiungimento di alcuni di essi. Tipicamente, nei sistemi batch (elaborazione a lotti) si cerca di massimizzare il throughput e di minimizzare l’overhead. nei sistemi interattivi (tempi di risposta immediati) è essenziale minimizzare i tempi di risposta e di attesa dei processi. Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
homepage ping Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Swapping homepage Tutti i S. O., nel gestire le risorse di un elaboratore, sono orientati alla massimizzazione del throughput (→1) e alla minimizzazione dell’overhead (→0). In questa ottica, il S. O. può decidere di porre alcuni processi in uno stato particolare: lo stato di sospensione. Può accadere, ad esempio, che la presenza in memoria centrale di processi I/O bound determini un forte calo della produttività del sistema siano presenti in memoria centrale dati e parti di codice non in esecuzione Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Swapping homepage Il S. O. può stabilire, allora, di scaricare temporaneamente (swap out) in un’area del disco riservata (area di swap) nel primo caso, alcuni dei processi I/O bound nel secondo caso, dati e parti di codice non coinvolte nell’esecuzione Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Swapping Programma A-2 Programma A-1 Programma B-1 Programma D homepage Memoria centrale Swap out 0000x Programma A-1 Programma A-2 Programma B-1 Disco: Area di Swap Swap in Programma D Programma A-1 Programma A-2 Programma A-3 Programma B-2
CLASSIFICAZIONE DELLE POLITICHE DI SCHEDULING homepage CLASSIFICAZIONE DELLE POLITICHE DI SCHEDULING Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Classificazione delle politiche homepage In generale, le politiche di scheduling della CPU si differenziano in base a tre criteri di classificazione: senza prelazione/con prelazione senza priorità/con priorità statiche/dinamiche Gli algoritmi di scheduling, nell’assegnare la CPU ai processi pronti, utilizzano opportune combinazioni di tali criteri, in base a precise strategie di gestione delle risorse. Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Classificazione delle politiche homepage Politiche senza prelazione (non pre-emptive): una volta che la CPU è stata assegnata ad un processo, essa non può più essergli tolta se non quando il processo ha esaurito il suo tempo di servizio o necessita di un'operazione di I/O. Politiche con prelazione (pre-emptive): la CPU può essere forzatamente tolta al processo in corso di esecuzione per essere assegnata ad un altro processo. Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Classificazione delle politiche homepage Politiche senza priorità: pongono i processi sullo stesso piano, dal punto di vista dell’urgenza di esecuzione. Politiche con priorità: distinguono e suddividono in classi i processi in stato di pronto, a secondala della loro importanza o urgenza di esecuzione. Sono necessarie nei sistemi real-time e interattivi. Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Classificazione delle politiche homepage Politiche statiche: un processo conserva nel tempo i suoi diritti di accesso all’unità centrale (priorità). Politiche dinamiche: i processi modificano nel tempo i propri diritti di accesso all’unità centrale. Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
FCFS: First Come First Served SJF: Shortest Job First (SRTF) homepage POLITICHE DI SCHEDULING FCFS: First Come First Served SJF: Shortest Job First (SRTF) Per priorità Round Robin A code multiple Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
FCFS: First Come First Served Politiche di scheduling homepage FCFS: First Come First Served La CPU è assegnata ai singoli processi in base al loro ordine nella coda dei processi pronti (ready queue), stabilito in base al tempo di arrivo oppure dal numero identificativo (PID). La ready queue è gestita in modalità FIFO (First In First Out) al processo che giunge nella ready queue viene attribuito l’ultimo posto della coda la CPU è assegnata al processo situato alla testa alla ready queue Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Politiche di scheduling homepage La politica FCFS è senza prelazione: il processo in esecuzione trattiene la CPU sino al termine del suo tempo di servizio o fino a quando non necessita di un’operazione di I/O. tende a penalizzare i processi I/O bound e quelli di breve durata, poiché costretti a lunghe attese dietro processi CPU bound (effetto convoglio). prevede tempi di attesa molto variabili e generalmente lunghi. La gestione dei dispositivi è poco efficiente ed è adeguata per sistemi batch (mancanza di interattività). Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Politiche di scheduling homepage Esempio 1: in un sistema vengono generati cinque processi (A, B, C, D, E) con tempi di arrivo e tempi di servizio riportati in tabella: Processi Tempo di arrivo Tempo di servizio A 3 B 2 6 C 4 D 5 E 8 Calcolare i tempi medi di attesa e di completamento secondo la politica di scheduling FCFS, trascurando i tempi relativi al context switch. Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Tempo di completamento Politiche di scheduling Esempio 1 homepage 3 2 B A E D C 4 9 13 18 20 6 T 8 Diagramma di Gantt Tempo di attesa Tempo di servizio FCFS Tempo medio di attesa: (0+1+5+7+10)/5 = 23/5 = 4,6 u. t. Processi Tempo di attesa Tempo di completamento A 3 B 1 7 C 5 9 D 12 E 10 Tempo medio di completamento: (3+7+9+12+12)/5 = 43/5 = 8,6 u. t. Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Politiche di scheduling homepage Esempio 2: in un sistema vengono generati cinque processi (A, B, C, D, E) con tempi di arrivo e tempi di servizio riportati in tabella: Processi Tempo di arrivo Tempo di servizio A 9 B 2 1 C 5 7 D 8 3 E 11 Calcolare i tempi medi di attesa e di completamento secondo la politica di scheduling FCFS, considerando che il tempo di context switch è pari a 1 Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Tempo di completamento Politiche di scheduling Esempio 2 homepage Tempo di context switch Diagramma di Gantt 2 B A E D C 9 12 20 5 T 8 10 30 Tempo di attesa Tempo di servizio FCFS 24 11 Tempo medio di attesa: (1+9+8+13+14)/5 = 45/5 = 9 u. t. Processi Tempo di attesa Tempo di completamento A 1 10 B 9 C 8 15 D 13 16 E 14 19 Tempo medio di completamento: (10+10+15+16+19)/5 = 70/5 = 14 u. t. Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
SJF: Shortest Job First Politiche di scheduling homepage SJF: Shortest Job First La CPU è assegnata al processo, tra quelli in stato di pronto, il cui intervallo di tempo previsto per l’utilizzo della CPU è più breve (tempo di servizio più piccolo). Nel caso in cui più processi pronti presentino gli stessi tempi di servizio, la scelta viene fatta secondo la politica FCFS. Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Politiche di scheduling homepage La politica SJF prevede due casi: SJF senza prelazione: il processo in esecuzione trattiene la CPU sino al termine del suo tempo di servizio o fino a quando non necessita di un’operazione di I/O. SJF con prelazione: se, ad un certo istante, nella coda dei processi pronti giunge un processo con un tempo di servizio più breve di quello che rimane (da completare) al processo in esecuzione, la CPU viene rilasciata e ceduta al processo appena arrivato (Shortest Remaining Time First = SRTF). Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Politiche di scheduling homepage Esempio: in un sistema vengono generati cinque processi (A, B, C, D, E) con tempi di arrivo e tempi di servizio riportati in tabella: Processi Tempo di arrivo Tempo di servizio A 3 B 2 6 C 4 D 5 E 8 Calcolare i tempi medi di attesa e di completamento secondo la politica di scheduling SJF nei casi senza prelazione e con prelazione, includendo il tempo di context switch, pari a 1, nel caso senza prelazione. Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Tempo di completamento Politiche di scheduling homepage Diagramma di Gantt SJF senza prelazione 3 2 B A E D C 4 9 6 13 19 12 T 8 Tempo di context switch Tempo di attesa Tempo di servizio 5 7 10 18 25 Tempo medio di attesa: (1+17+1+7+2)/5 = 28/5 = 5,6 u. t. Processi Tempo di attesa Tempo di completamento A 1 4 B 17 23 C 5 D 7 12 E 2 Tempo medio di completamento: (4+23+5+12+4)/5 = 48/5 = 9,6 u. t. Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Tempo di completamento Politiche di scheduling homepage 3 2 B A E D C 4 7 6 15 20 10 T 8 Diagramma di Gantt Tempo di attesa: Tempo di servizio: SJF con prelazione Tempo medio di attesa: (0+7+0+9+0)/5 = 16/5 = 3,2 u. t. Processi Tempo di attesa Tempo di completamento A 3 B 7 13 C 4 D 9 14 E 2 Tempo medio di completamento: (3+13+4+14+2)/5 = 36/5 = 7,2 u. t. Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Scheduling per priorità Politiche di scheduling homepage Scheduling per priorità A ciascun processo, in fase di generazione, viene attribuito un livello di priorità, espresso da un numero intero; convenzionalmente, all’intero più piccolo corrisponde la priorità più elevata. Ebbene, nella politica di scheduling per priorità, la CPU è assegnata al processo, tra quelli in stato di pronto, che presenta la massima priorità. A parità di priorità, si ricorre alla politica FCFS Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Politiche di scheduling homepage La politica per priorità può essere: senza prelazione: il processo in esecuzione trattiene la CPU sino al termine del suo tempo di servizio o fino a quando non necessita di un’operazione di I/O. con prelazione: se nella coda dei processi pronti arriva un processo con priorità maggiore di quella del processo in esecuzione, questo rilascia la CPU, cedendola al processo appena arrivato. Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Politiche di scheduling homepage Le priorità possono essere: definite dal S. O. (p. interna), secondo uno o più criteri: - limiti di tempo - requisiti di memoria - numero di file aperti - tipi di processo (CPU bound o I/O bound) ……… definite dall’utente (p. esterna), secondo: - l’importanza del processo - il tempo di esecuzione previsto Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Politiche di scheduling homepage statiche: una volta stabilite, non variano nel tempo. dinamiche: variano nel tempo, secondo criteri prefissati, per evitare che alcuni processi possano essere bloccati per un tempo indefinito (starvation), a causa della costante presenza nella ready queue di processi a più elevata priorità. Una possibile soluzione allo starvation dei processi è data dalla procedura di aging (invecchiamento): la priorità di un processo può aumentare al crescere del suo tempo di attesa diminuire al crescere del tempo di CPU già utilizzato Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Politiche di scheduling homepage Esempio: in un sistema vengono generati cinque processi (A, B, C, D, E) con tempi di arrivo, priorità (statica) e tempi di servizio riportati in tabella: Processi Tempo di arrivo Priorità Tempo di servizio A 3 10 B 1 C 2 D 4 E 5 Calcolare i tempi medi di attesa e di completamento secondo la politica di scheduling per priorità, trascurando i tempi relativi al context switch. Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Tempo di completamento Politiche di scheduling homepage Priorità 1 B A E D C 6 19 16 T 18 Diagramma di Gantt Tempo di attesa: Tempo di servizio: Tempo medio di attesa: (6+0+16+18+1)/5 = 41/5 = 8,2 u. t. Processi Tempo di attesa Tempo di completamento A 6 16 B 1 C 18 D 19 E Tempo medio di completamento: (16+1+18+19+6)/5 = 60/5 = 12 u. t. Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Politiche di scheduling homepage Round Robin La CPU viene assegnata, a turno, ad ogni processo, tra quelli in stato di pronto, per un certo periodo q di tempo massimo (time-slice o quanto di tempo). Se, alla fine di tale periodo, il processo in esecuzione non è terminato, esso viene ricondotto nella coda dei processi pronti, all’ultima posizione. Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Politiche di scheduling homepage Round Robin La gestione a quanti di tempo è una variante della politica FCFS che introduce un limite superiore all’intervallo di tempo nel quale un processo rimane in esecuzione; il quanto di tempo q può essere comune a tutti i processi oppure uno specifico parametro fissato nel PCB di ogni processo. Alla messa in esecuzione, il S. O. avvia un dispositivo timer con scadenza pari a q: trascorso l’intervallo q, il timer genera un’interruzione che provoca il prerilascio della CPU. Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Politiche di scheduling homepage La politica di scheduling Round Robin, progettata per i sistemi time-sharing, è con prelazione gestisce la ready queue in modo circolare (prelazione periodica) garantisce tempi di risposta bassi senza penalizzare l’avanzamento di processi I/O-bound Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Politiche di scheduling homepage Il rendimento della politica Round Robin dipende molto dalla dimensione del time-slice: un time-slice troppo grande rischia di far tendere la politica Round Robin a quella FCFS. un time-slice troppo piccolo consente tempi di risposta brevi ma impegna eccessivamente la CPU per le operazioni di context switch, con conseguente calo della produttività e dell’efficienza del sistema. Nei sistemi reali il valore del time-slice che garantisce buone prestazioni è compreso tra 20 e 50 millisecondi. Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Politiche di scheduling homepage Esempio: in un sistema vengono generati cinque processi (A, B, C, D, E) con tempi di arrivo e tempi di servizio riportati in tabella: Processi Tempo di arrivo Tempo di servizio A 3 B 2 6 C 4 D 5 E 8 Calcolare i tempi medi di attesa e di completamento secondo la politica di scheduling Round Robin (q=1), trascurando i tempi relativi al context switch. Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Politiche di scheduling homepage Scheduling Round Robin (q=1) READY QUEUE CPU UNITÁ TEMPO A 0 – 1 B 1 – 2 2 – 3 C 3 – 4 4 – 5 D 5 – 6 6 – 7 E 7 – 8 8 – 9 9 – 10 10 – 11 11 – 12 12 – 13 13 – 14 14 – 15 15 – 16 16 – 17 17 – 18 18 – 19 19 – 20 Soluzione: Tempo medio di attesa: (1+11+10+10+6)/5 = 38/5 = 7,6 u. t. Tempo medio di completamento: (4+17+14+15+8)/5 = 58/5 = 11,6 u. t. (Produttività = 5/20 = 25%) Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Scheduling a code multiple Politiche di scheduling homepage Scheduling a code multiple La coda dei processi pronti è suddivisa in code distinte, ciascuna delle quali ha priorità più elevata rispetto alle successive. Ciascun processo viene posto permanentemente in una delle differenti code, in base a qualche sua caratteristica (tipo di processo, priorità, memoria richiesta, …), e potrà entrare in esecuzione solo quando le code a priorità maggiore saranno tutte vuote. Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Schema a tre code multiple Politiche di scheduling homepage Schema a tre code multiple 1 PROCESSI DI SISTEMA PROCESSI INTERATTIVI PROCESSI BATCH CPU ALTA PRIORITÀ BASSA PRIORITÀ 2 3 Ogni coda ha il suo algoritmo di scheduling; ad esempio, Coda dei processi interattivi Round Robin Coda dei processi batch FCFS Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Politiche di scheduling homepage Dato che l’applicazione di questa politica di scheduling potrebbe bloccare indefinitamente un processo a bassa priorità, per il continuo arrivo di processi a più elevata priorità, è stato ideato un meccanismo correttivo, detto scheduling a code multiple con retroazione. Tale meccanismo consente ai processi lo spostamento dinamico fra le code, a più bassa o a più alta priorità, a seconda delle condizioni di retroazione prestabilite. Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Esercizi – FCFS homepage Esercizio 1: in un sistema vengono generati cinque processi (A, B, C, D, E) con tempi di arrivo e tempi di servizio riportati in tabella: Processi Tempo di arrivo Tempo di servizio A 1 3 B 6 C 5 4 D 7 E 9 2 Calcolare i tempi medi di attesa e di completamento secondo la politica di scheduling FCFS, trascurando il tempo di context switch. Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Esercizi – FCFS homepage Esercizio 2: in un sistema vengono generati cinque processi (A, B, C, D, E) con tempi di arrivo e tempi di servizio riportati in tabella: Processi Tempo di arrivo Tempo di servizio A 1 9 B 3 C 5 7 D E Calcolare i tempi medi di attesa e di completamento secondo la politica di scheduling FCFS, prima trascurando il tempo di context switch e poi includendolo nel computo con valore 1. Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Esercizi – SJF homepage Esercizio 1: in un sistema vengono generati cinque processi (A, B, C, D, E) con tempi di arrivo e tempi di servizio riportati in tabella: Processi Tempo di arrivo Tempo di servizio A 1 3 B 6 C 5 4 D 7 E 9 2 Calcolare i tempi medi di attesa e di completamento secondo la politica di scheduling SJF nei casi senza prelazione e con prelazione, trascurando il tempo di context switch. Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Esercizi – SJF homepage Esercizio 2: in un sistema vengono generati cinque processi (A, B, C, D, E) con tempi di arrivo e tempi di servizio riportati in tabella: Processi Tempo di arrivo Tempo di servizio A 1 3 B 6 C 5 4 D 7 E 9 2 Calcolare i tempi medi di attesa e di completamento secondo la politica di scheduling SJF nel caso senza prelazione, considerando il tempo di context switch pari a 1 Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Esercizi – Priorità homepage Esercizio 1: in un sistema vengono generati cinque processi (A, B, C, D, E) con tempi di arrivo, priorità (statica) e tempi di servizio riportati in tabella: Processi Tempo di arrivo Priorità Tempo di servizio A 3 B 1 6 C 4 D 5 E 2 Calcolare i tempi medi di attesa e di completamento secondo la politica di scheduling per priorità, trascurando il tempo di context switch. Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Esercizi – Priorità homepage Esercizio 2: in un sistema vengono generati cinque processi (A, B, C, D, E) con tempi di arrivo, priorità (statica) e tempi di servizio riportati in tabella: Processi Tempo di arrivo Priorità Tempo di servizio A 1 3 B 6 C 5 4 D 7 E 9 2 Calcolare i tempi medi di attesa e di completamento secondo la politica di scheduling per priorità senza prelazione, trascurando il tempo di context switch. Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Esercizi – Round Robin homepage Esercizio 1: in un sistema vengono generati cinque processi (A, B, C, D, E) con tempi di arrivo e tempi di servizio riportati in tabella: Processi Tempo di arrivo Tempo di servizio A 1 3 B 6 C 5 4 D 7 E 9 2 Calcolare i tempi medi di attesa e di completamento secondo la politica di scheduling Round Robin (q=2), trascurando il tempo di context switch. Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Esercizi – Round Robin homepage Esercizio 2: in un sistema vengono generati cinque processi (A, B, C, D, E) con tempi di arrivo e tempi di servizio riportati in tabella: Processi Tempo di arrivo Tempo di servizio A 1 9 B 3 C 5 7 D E Calcolare i tempi medi di attesa e di completamento secondo la politica di scheduling Round Robin (q=3), trascurando il tempo di context switch. Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Esercizi di riepilogo homepage Esercizio 1: in un sistema vengono generati cinque processi (A, B, C, D, E) con tempi di arrivo, priorità (statica) e tempi di servizio riportati in tabella: Processi Tempo di arrivo Priorità Tempo di servizio A 4 8 B 2 10 C 1 D 5 E 3 Trascurando il tempo di context switch, calcolare i tempi medi di attesa e di completamento secondo le politiche FCFS, SJF senza prelazione, per priorità e RR (q=2) senza priorità. Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Esercizi di riepilogo homepage Esercizio 2: in un sistema vengono generati cinque processi (A, B, C, D, E) con tempi di arrivo, priorità (statica) e tempi di servizio riportati in tabella: Processi Tempo di arrivo Priorità Tempo di servizio A 3 9 B 2 4 1 C 5 7 D 8 E 11 Trascurando il tempo di context switch, calcolare i tempi medi di attesa e di completamento secondo le politiche FCFS, SJF con e senza prelazione, RR (q=3) con e senza priorità prelazionata. Si dia precedenza ai processi usciti per time-out rispetto ai nuovi in arrivo Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
GRIGLIA DI VALUTAZIONE ESERCIZI Risposta ai quesiti proposti minima parziale totale 0,5 1 2 Accuratezza/meticolosità risolutiva scarsa media elevata Costruzione del diagramma di Gantt accennata 0,5 parziale 1 completa ma con errori 2 completa e senza errori 3 Correttezza di calcolo scarsa parziale buona 0,5 1 2 Originalità/creatività (colori/animazioni/…) nessuna buona pregevole 0 0,5 1
Risultati degli esercizi homepage FCFS: Esercizio 1: tM(att.) = 4,6 u.t. – tM(compl.) = 8,6 u.t. Esercizio 2: tM(att.) = 7,2 u.t. – tM(compl.) = 12,2 u.t. Esercizio 2 (CS): tM(att.) = 10,2 u.t. – tM(compl.) = 15,2 u.t. SJF: Senza prelazione: tM(att.) = 3,6 u.t. – tM(compl.) = 7,6 u.t. Con prelazione: tM(att.) = 3,2 u.t. – tM(compl.) = 7,2 u.t. Senza prelaz. (CS): tM(att.) = 5,6 u.t. – tM(compl.) = 9,6 u.t. Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Risultati degli esercizi homepage Priorità: Esercizio 1: tM(att.) = 8 u.t. – tM(compl.) = 12 u.t. Esercizio 2: tM(att.) = 3,6 u.t. – tM(compl.) = 7,6 u.t. Round Robin: Time-slice=2 : tM(att.) = 5,6 u.t. – tM(compl.) = 9,6 u.t. Time-slice=3 : tM(att.) = 7,4 u.t. – tM(compl.) = 12,4 u.t. Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Risultati degli esercizi homepage Riepilogo Esercizio 1: FCFS: tM(att.) = 14 u.t. – tM(compl.) = 20,4 u.t. SJF senza prel. : tM(att.) = 8,8 u.t. – tM(compl.) = 15,2 u.t. Priorità: tM(att.) = 12,4 u.t. – tM(compl.) = 18,8 u.t. RR senza priorità: tM(att.) = 15,6 u.t. – tM(compl.) = 22 u.t. Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07
Risultati degli esercizi homepage Riepilogo Esercizio 2: FCFS: tM(att.) = 6 u.t. – tM(compl.) = 11 u.t. SJF senza prel. : tM(att.) = 4,8 u.t. – tM(compl.) = 9,8 u.t. SJF con prel. : tM(att.) = 3,6 u.t. – tM(compl.) = 8,6 u.t. RR con priorità non prelazionata: tM(att.) = 8,2 u.t. – tM(compl.) = 13,2 u.t. RR con priorità prelazionata: tM(att.) = 7,8 u.t. – tM(compl.) = 12,8 u.t. Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07