Scheduling A. Ferrari. Nuovo Pronto in esecuzione Terminato bloccato interruzione uscitaammissione...

34
Scheduling Scheduling A. Ferrari A. Ferrari

Transcript of Scheduling A. Ferrari. Nuovo Pronto in esecuzione Terminato bloccato interruzione uscitaammissione...

Page 1: Scheduling A. Ferrari. Nuovo Pronto in esecuzione Terminato bloccato interruzione uscitaammissione attesa evento (es. I/O)evento verificato assegnazione.

SchedulingSchedulingA. FerrariA. Ferrari

Page 2: Scheduling A. Ferrari. Nuovo Pronto in esecuzione Terminato bloccato interruzione uscitaammissione attesa evento (es. I/O)evento verificato assegnazione.

Nuovo

Prontoin

esecuzione

Terminato

bloccato

interruzioneuscitaammissione

attesa evento (es. I/O)evento verificato

assegnazione

Coda Pronti

Code di Attesa

Page 3: Scheduling A. Ferrari. Nuovo Pronto in esecuzione Terminato bloccato interruzione uscitaammissione attesa evento (es. I/O)evento verificato assegnazione.

Tipi di processiTipi di processiCPU BoundCPU Bound

Processi che sfruttano pesantemente le risorse Processi che sfruttano pesantemente le risorse computazionali del processore, ma non richiedono computazionali del processore, ma non richiedono servizi di ingresso/uscita dati al sistema operativo servizi di ingresso/uscita dati al sistema operativo in quantità rilevanti.in quantità rilevanti.Es. i programmi di calcolo matematico, i quali Es. i programmi di calcolo matematico, i quali necessitano spesso di un'enorme potenza di necessitano spesso di un'enorme potenza di calcolo, ma sfruttano l'I/O solo all'inizio della loro calcolo, ma sfruttano l'I/O solo all'inizio della loro vita (per caricare gli input) ed alla fine di essa vita (per caricare gli input) ed alla fine di essa (per produrre gli output).(per produrre gli output).

I/O Bound I/O Bound molti accessi alle periferiche, il processo è spesso molti accessi alle periferiche, il processo è spesso interrotto per attendere il completamento delle interrotto per attendere il completamento delle richieste di I/O.richieste di I/O.

Page 4: Scheduling A. Ferrari. Nuovo Pronto in esecuzione Terminato bloccato interruzione uscitaammissione attesa evento (es. I/O)evento verificato assegnazione.

P1 (CPU bound) P1 (CPU bound) P2 /I/O bound)P2 /I/O bound)

Lungo burst di CPU Attesa completamento I/OCorto burst di CPU

tempo

P1

P2

In esecuzione In attesa

Page 5: Scheduling A. Ferrari. Nuovo Pronto in esecuzione Terminato bloccato interruzione uscitaammissione attesa evento (es. I/O)evento verificato assegnazione.

Classi di Classi di schedulingscheduling

Nella gestione delle risorse di un Nella gestione delle risorse di un elaboratore, il fattore tempo porta a elaboratore, il fattore tempo porta a identificare tre tipi di scheduling:identificare tre tipi di scheduling:

Scheduling a breve termineScheduling a breve termine

Scheduling a medio termineScheduling a medio termine

Scheduling a lungo termineScheduling a lungo termine

Page 6: Scheduling A. Ferrari. Nuovo Pronto in esecuzione Terminato bloccato interruzione uscitaammissione attesa evento (es. I/O)evento verificato assegnazione.

Scheduling Scheduling a lungo terminea lungo termine

E’ impiegato nella scelta dei programmi, E’ impiegato nella scelta dei programmi, presenti in memoria secondaria, da presenti in memoria secondaria, da caricare in memoria centrale per la caricare in memoria centrale per la creazione dei corrispondenti processicreazione dei corrispondenti processi

individua i programmi da ammettere individua i programmi da ammettere all’esecuzioneall’esecuzione

regola la presenza in memoria centrale di regola la presenza in memoria centrale di processi I/O bound e CPU boundprocessi I/O bound e CPU bound

controlla il livello di multiprogrammazionecontrolla il livello di multiprogrammazione

Page 7: Scheduling A. Ferrari. Nuovo Pronto in esecuzione Terminato bloccato interruzione uscitaammissione attesa evento (es. I/O)evento verificato assegnazione.

Scheduling Scheduling a medio terminea medio termineGestisce la permanenza in memoria dei Gestisce la permanenza in memoria dei processi non in esecuzioneprocessi non in esecuzione

coordina le operazioni di trasferimento coordina le operazioni di trasferimento temporaneo dei processi in memoria temporaneo dei processi in memoria secondaria (swap out):secondaria (swap out):

interviene nella gestione dei processi in interviene nella gestione dei processi in attesa di eventi da lungo tempoattesa di eventi da lungo tempo

Page 8: Scheduling A. Ferrari. Nuovo Pronto in esecuzione Terminato bloccato interruzione uscitaammissione attesa evento (es. I/O)evento verificato assegnazione.

Scheduling Scheduling a breve terminea breve termine

Si occupa della selezione del nuovo processo da Si occupa della selezione del nuovo processo da eseguire, quandoeseguire, quando

il processo in esecuzione passa allo stato di attesa o il processo in esecuzione passa allo stato di attesa o ritorna allo stato di pronto oppure terminaritorna allo stato di pronto oppure terminaun processo passa dallo stato di attesa allo stato di un processo passa dallo stato di attesa allo stato di prontoprontosi verificano eventi particolari (interruput, chiamate si verificano eventi particolari (interruput, chiamate al S. O.)al S. O.)

Quando la CPU rimane inattiva, il process Quando la CPU rimane inattiva, il process scheduler (modulo del kernel) seleziona dalla scheduler (modulo del kernel) seleziona dalla ready queue (coda dei processi pronti) il prossimo ready queue (coda dei processi pronti) il prossimo processo a cui assegnare la CPU e decide da quale processo a cui assegnare la CPU e decide da quale momento e per quanto tempo farlo eseguire.momento e per quanto tempo farlo eseguire.

Page 9: Scheduling A. Ferrari. Nuovo Pronto in esecuzione Terminato bloccato interruzione uscitaammissione attesa evento (es. I/O)evento verificato assegnazione.

Context switchContext switchIl context switch (commutazione di contesto) Il context switch (commutazione di contesto) è la fase in cui l’uso della CPU passa da un è la fase in cui l’uso della CPU passa da un processo pprocesso pii al suo successivo p al suo successivo pi+1 i+1

Nella fase di passaggio il SO realizza, in Nella fase di passaggio il SO realizza, in sequenza, le seguenti operazioni:sequenza, le seguenti operazioni:

Salvataggio dello stato del processo pSalvataggio dello stato del processo pii uscente uscente

Selezione del nuovo processo pSelezione del nuovo processo pi+1 i+1

Ripristino dello stato del processo pRipristino dello stato del processo pi+1 i+1 entranteentrante

Si modifica, in questo modo, il contesto in cui Si modifica, in questo modo, il contesto in cui lavora il processore.lavora il processore.

Page 10: Scheduling A. Ferrari. Nuovo Pronto in esecuzione Terminato bloccato interruzione uscitaammissione attesa evento (es. I/O)evento verificato assegnazione.

Durata del Durata del context switchcontext switch

Il tempo utilizzato dal SO per le Il tempo utilizzato dal SO per le operazioni di context switch, in operazioni di context switch, in rapporto al time-slice (quanto di tempo rapporto al time-slice (quanto di tempo di CPU), non deve essere causa didi CPU), non deve essere causa di

riduzione dell’efficienza della CPUriduzione dell’efficienza della CPU

lunghi tempi di rispostalunghi tempi di risposta

A tal fine, il tempo di context switch A tal fine, il tempo di context switch non deve superare il 25% del time-slice non deve superare il 25% del time-slice (solitamente di circa 100 ms)(solitamente di circa 100 ms)

Page 11: Scheduling A. Ferrari. Nuovo Pronto in esecuzione Terminato bloccato interruzione uscitaammissione attesa evento (es. I/O)evento verificato assegnazione.

DispatcherDispatcherL’effettiva assegnazione della CPU al L’effettiva assegnazione della CPU al processo prescelto per l’esecuzione è processo prescelto per l’esecuzione è affidata al dispatcher, modulo del affidata al dispatcher, modulo del kernel che gestiscekernel che gestisce

il context switchil context switch

il passaggio al modo utenteil passaggio al modo utente

il salto alla giusta posizione del il salto alla giusta posizione del programma utente (impostazione del programma utente (impostazione del program counter)program counter)

Page 12: Scheduling A. Ferrari. Nuovo Pronto in esecuzione Terminato bloccato interruzione uscitaammissione attesa evento (es. I/O)evento verificato assegnazione.

Politiche di Politiche di scheduling: scheduling:

obiettiviobiettivimassimizzare massimizzare

il throughput (numero di processi utente completati nell’unità di tempo)il throughput (numero di processi utente completati nell’unità di tempo)

l’utilizzo della CPU (percentuale media di utilizzo della CPU nell’unità di l’utilizzo della CPU (percentuale media di utilizzo della CPU nell’unità di tempo)tempo)

minimizzareminimizzare

l’overhead (numero di processi di sistema completati nell’unità di tempo)l’overhead (numero di processi di sistema completati nell’unità di tempo)

il tempo di turnaround (tempo di permanenza di un processo nel sistema)il tempo di turnaround (tempo di permanenza di un processo nel sistema)

il tempo di risposta (tempo trascorso tra l’immissione di un comando e il tempo di risposta (tempo trascorso tra l’immissione di un comando e l’emissione della prima risposta)l’emissione della prima risposta)

il tempo di attesa (tempo totale trascorso da un processo nello stato di il tempo di attesa (tempo totale trascorso da un processo nello stato di pronto)pronto)

garantire garantire

fairness (equità) (imparzialità nell’attribuzione dei time-slice ai processi)fairness (equità) (imparzialità nell’attribuzione dei time-slice ai processi)

Page 13: Scheduling A. Ferrari. Nuovo Pronto in esecuzione Terminato bloccato interruzione uscitaammissione attesa evento (es. I/O)evento verificato assegnazione.

Tipi di sistemiTipi di sistemiOgni algoritmo di scheduling della CPU è Ogni algoritmo di scheduling della CPU è finalizzato al raggiungimento di alcuni finalizzato al raggiungimento di alcuni obiettivi. obiettivi.

Nei sistemi batch (elaborazione a lotti) si Nei sistemi batch (elaborazione a lotti) si cerca di massimizzare il throughput e di cerca di massimizzare il throughput e di minimizzare l’overhead.minimizzare l’overhead.

Nei sistemi interattivi (tempi di risposta Nei sistemi interattivi (tempi di risposta immediati) è essenziale minimizzare i immediati) è essenziale minimizzare i tempi di risposta e di attesa dei processi.tempi di risposta e di attesa dei processi.

Page 14: Scheduling A. Ferrari. Nuovo Pronto in esecuzione Terminato bloccato interruzione uscitaammissione attesa evento (es. I/O)evento verificato assegnazione.

Parentesi storicaParentesi storicaIBM 7094IBM 7094

Page 15: Scheduling A. Ferrari. Nuovo Pronto in esecuzione Terminato bloccato interruzione uscitaammissione attesa evento (es. I/O)evento verificato assegnazione.

IBM 7094IBM 7094The 7094 was IBM's most powerful scientific The 7094 was IBM's most powerful scientific computer in 1963. It could perform 500,000 computer in 1963. It could perform 500,000 logical decisions, 250,000 additions or logical decisions, 250,000 additions or subtractions, 100,000 multiplications, or 62,500 subtractions, 100,000 multiplications, or 62,500 divisions in one second. It had hardware to do divisions in one second. It had hardware to do double-precision floating-point arithmetic.double-precision floating-point arithmetic.

The computer gained considerable I/O The computer gained considerable I/O bandwidth from its separate data channels with bandwidth from its separate data channels with direct memory access, and so it was also used to direct memory access, and so it was also used to run business and general-purpose applications. run business and general-purpose applications. The 7094 had an operating system called IBSYS, The 7094 had an operating system called IBSYS, and FORTRAN and COBOL compilers.and FORTRAN and COBOL compilers.

A typical system cost $3,134,500. IBM stopped A typical system cost $3,134,500. IBM stopped selling them in 1969.selling them in 1969.

Page 16: Scheduling A. Ferrari. Nuovo Pronto in esecuzione Terminato bloccato interruzione uscitaammissione attesa evento (es. I/O)evento verificato assegnazione.

Dati tecniciDati tecniciManufacturer:Manufacturer:

IBMIBM

Memory technology:Memory technology:magnetic coremagnetic core

First introduced:First introduced:19631963

Memory size:Memory size:32K 36-bit words32K 36-bit words

CPU technology:CPU technology:transistortransistor

Cycle time:Cycle time:2 microseconds (0.5 MHz)2 microseconds (0.5 MHz)

Page 17: Scheduling A. Ferrari. Nuovo Pronto in esecuzione Terminato bloccato interruzione uscitaammissione attesa evento (es. I/O)evento verificato assegnazione.

Sfruttare al Sfruttare al massimo la massimo la

potenza di calcolopotenza di calcolo

Page 18: Scheduling A. Ferrari. Nuovo Pronto in esecuzione Terminato bloccato interruzione uscitaammissione attesa evento (es. I/O)evento verificato assegnazione.

Sistemi batchSistemi batchNon interattività dei programmiNon interattività dei programmi

Esecuzione non immediata ma rimandata nel tempo Esecuzione non immediata ma rimandata nel tempo dei programmidei programmi

Il termine batch risale all'epoca della Il termine batch risale all'epoca della programmazione per schede perforate. In quel programmazione per schede perforate. In quel contesto, i programmatori solitamente non avevano contesto, i programmatori solitamente non avevano accesso diretto al computer, bensì preparavano i accesso diretto al computer, bensì preparavano i propri programmi "off-line" e li passavano a un propri programmi "off-line" e li passavano a un amministratore di sistema, il quale aveva il compito amministratore di sistema, il quale aveva il compito di mandarli in esecuzione quando possibile di mandarli in esecuzione quando possibile (accodandoli rispetto ad altri programmi in (accodandoli rispetto ad altri programmi in esecuzione e spesso accorpando più programmi in esecuzione e spesso accorpando più programmi in un'unica unità di esecuzione), restituendo poi in un'unica unità di esecuzione), restituendo poi in seguito i risultati dell'elaborazione agli interessati.seguito i risultati dell'elaborazione agli interessati.

Page 19: Scheduling A. Ferrari. Nuovo Pronto in esecuzione Terminato bloccato interruzione uscitaammissione attesa evento (es. I/O)evento verificato assegnazione.

Sistemi interattiviSistemi interattiviNei sistemi interattivi il tempo di Nei sistemi interattivi il tempo di risposta deve essere il minimo possibile risposta deve essere il minimo possibile per dare l'idea di continuità all'utente e per dare l'idea di continuità all'utente e la proporzionalità deve essere la proporzionalità deve essere rispettata, ossia il tempo di risposta rispettata, ossia il tempo di risposta deve essere proporzionale alla deve essere proporzionale alla complessità dell'azione.complessità dell'azione.

Page 20: Scheduling A. Ferrari. Nuovo Pronto in esecuzione Terminato bloccato interruzione uscitaammissione attesa evento (es. I/O)evento verificato assegnazione.

Classificazione Classificazione delle politiche di delle politiche di

schedulingschedulingLe politiche di scheduling della Le politiche di scheduling della CPU si differenziano in base a tre CPU si differenziano in base a tre criteri di classificazione:criteri di classificazione:

senza prelazione/con prelazionesenza prelazione/con prelazione

senza priorità/con prioritàsenza priorità/con priorità

statiche/dinamichestatiche/dinamiche

Page 21: Scheduling A. Ferrari. Nuovo Pronto in esecuzione Terminato bloccato interruzione uscitaammissione attesa evento (es. I/O)evento verificato assegnazione.

Prelazione (pre-Prelazione (pre-rilascio)rilascio)

Politiche senza prelazione Politiche senza prelazione (non pre-emptive)(non pre-emptive)

una volta che la CPU una volta che la CPU è stata assegnata ad è stata assegnata ad un processo, essa un processo, essa non può più essergli non può più essergli tolta se non quando tolta se non quando il processo ha il processo ha esaurito il suo tempo esaurito il suo tempo di servizio o di servizio o necessita di necessita di un'operazione di I/O.un'operazione di I/O.

Politiche con prelazione Politiche con prelazione (pre-emptive)(pre-emptive)

la CPU può essere la CPU può essere forzatamente tolta al forzatamente tolta al processo in corso di processo in corso di esecuzione per esecuzione per essere assegnata ad essere assegnata ad un altro processo. un altro processo.

Page 22: Scheduling A. Ferrari. Nuovo Pronto in esecuzione Terminato bloccato interruzione uscitaammissione attesa evento (es. I/O)evento verificato assegnazione.

PrioritàPrioritàPolitiche senza prioritàPolitiche senza priorità

pongono i pongono i processi sullo processi sullo stesso piano, dal stesso piano, dal punto di vista punto di vista dell’urgenza di dell’urgenza di esecuzione.esecuzione.

Politiche con prioritàPolitiche con priorità

distinguono e distinguono e suddividono in classi suddividono in classi i processi in stato di i processi in stato di pronto, a secondala pronto, a secondala della loro importanza della loro importanza o urgenza di o urgenza di esecuzione. Sono esecuzione. Sono necessarie nei necessarie nei sistemi real-time e sistemi real-time e interattivi.interattivi.

Page 23: Scheduling A. Ferrari. Nuovo Pronto in esecuzione Terminato bloccato interruzione uscitaammissione attesa evento (es. I/O)evento verificato assegnazione.

Statiche/Statiche/dinamichedinamiche

Politiche statichePolitiche statiche

un processo un processo conserva nel tempo i conserva nel tempo i suoi diritti di accesso suoi diritti di accesso all’unità centrale all’unità centrale (priorità)(priorità)

Politiche dinamichePolitiche dinamiche

i processi modificano i processi modificano nel tempo i propri nel tempo i propri diritti di accesso diritti di accesso all’unità centrale.all’unità centrale.

Page 24: Scheduling A. Ferrari. Nuovo Pronto in esecuzione Terminato bloccato interruzione uscitaammissione attesa evento (es. I/O)evento verificato assegnazione.

Politiche di Politiche di schedulazioneschedulazione

FCFS: First Come First FCFS: First Come First ServedServed

SJF: Shortest Job First -> SJF: Shortest Job First -> (SRTF)(SRTF)

Per priorità Per priorità

Round Robin Round Robin

Page 25: Scheduling A. Ferrari. Nuovo Pronto in esecuzione Terminato bloccato interruzione uscitaammissione attesa evento (es. I/O)evento verificato assegnazione.

FCFS: First Come FCFS: First Come First ServedFirst Served

La CPU è assegnata ai singoli processi La CPU è assegnata ai singoli processi in base al loro ordine nella coda dei in base al loro ordine nella coda dei processi pronti (ready queue), stabilito processi pronti (ready queue), stabilito in base al tempo di arrivo oppure dal in base al tempo di arrivo oppure dal numero identificativo (PID)numero identificativo (PID)

La ready queue è gestita in modalità La ready queue è gestita in modalità FIFO (First In First Out)FIFO (First In First Out)

al processo che giunge nella ready queue al processo che giunge nella ready queue viene attribuito l’ultimo posto della codaviene attribuito l’ultimo posto della codala CPU è assegnata al processo situato la CPU è assegnata al processo situato alla testa alla ready queuealla testa alla ready queue

Page 26: Scheduling A. Ferrari. Nuovo Pronto in esecuzione Terminato bloccato interruzione uscitaammissione attesa evento (es. I/O)evento verificato assegnazione.

FCFS: FCFS: caratteristichecaratteristiche

E’ senza prelazione: il processo in esecuzione E’ senza prelazione: il processo in esecuzione trattiene la CPU sino al termine del suo tempo trattiene la CPU sino al termine del suo tempo di servizio o fino a quando non necessita di di servizio o fino a quando non necessita di un’operazione di I/Oun’operazione di I/O

Tende a penalizzare i processi I/O bound e Tende a penalizzare i processi I/O bound e quelli di breve durata, poiché costretti a lunghe quelli di breve durata, poiché costretti a lunghe attese dietro processi CPU boundattese dietro processi CPU bound

Tempi di attesa molto variabili e generalmente Tempi di attesa molto variabili e generalmente lunghi. La gestione dei dispositivi è poco lunghi. La gestione dei dispositivi è poco efficiente ed è adeguata per sistemi batch efficiente ed è adeguata per sistemi batch (mancanza di interattività).(mancanza di interattività).

Page 27: Scheduling A. Ferrari. Nuovo Pronto in esecuzione Terminato bloccato interruzione uscitaammissione attesa evento (es. I/O)evento verificato assegnazione.

SJF: Shortest Job SJF: Shortest Job FirstFirst

La CPU è assegnata al processo il cui La CPU è assegnata al processo il cui intervallo di tempo previsto per intervallo di tempo previsto per l’utilizzo della CPU è più brevel’utilizzo della CPU è più breve

Nel caso in cui più processi pronti Nel caso in cui più processi pronti presentino gli stessi tempi di servizio, presentino gli stessi tempi di servizio, la scelta viene fatta secondo la politica la scelta viene fatta secondo la politica FCFSFCFS

Page 28: Scheduling A. Ferrari. Nuovo Pronto in esecuzione Terminato bloccato interruzione uscitaammissione attesa evento (es. I/O)evento verificato assegnazione.

SJF: due casiSJF: due casiSJF senza prelazioneSJF senza prelazione

il processo in esecuzione trattiene la CPU sino il processo in esecuzione trattiene la CPU sino al termine del suo tempo di servizio o fino a al termine del suo tempo di servizio o fino a quando non necessita di un’operazione di I/O.quando non necessita di un’operazione di I/O.

SJF con prelazioneSJF con prelazionese, ad un certo istante, nella coda dei processi se, ad un certo istante, nella coda dei processi pronti giunge un processo con un tempo di pronti giunge un processo con un tempo di servizio più breve di quello che rimane (da servizio più breve di quello che rimane (da completare) al processo in esecuzione, la CPU completare) al processo in esecuzione, la CPU viene rilasciata e ceduta al processo appena viene rilasciata e ceduta al processo appena arrivato (Shortest Remaining Time First - arrivato (Shortest Remaining Time First - SRTF)SRTF)

Page 29: Scheduling A. Ferrari. Nuovo Pronto in esecuzione Terminato bloccato interruzione uscitaammissione attesa evento (es. I/O)evento verificato assegnazione.

Scheduling per Scheduling per prioritàpriorità

A ciascun processo, in fase di A ciascun processo, in fase di generazione, viene attribuito un livello generazione, viene attribuito un livello di priorità, espresso da un numero di priorità, espresso da un numero interointero

La CPU è assegnata al processo che La CPU è assegnata al processo che presenta la massima priorità.presenta la massima priorità.

A parità di priorità, si ricorre alla A parità di priorità, si ricorre alla politica FCFSpolitica FCFS

Page 30: Scheduling A. Ferrari. Nuovo Pronto in esecuzione Terminato bloccato interruzione uscitaammissione attesa evento (es. I/O)evento verificato assegnazione.

Per priorità: due Per priorità: due casicasi

Senza prelazioneSenza prelazioneil processo in esecuzione trattiene la CPU il processo in esecuzione trattiene la CPU sino al termine del suo tempo di servizio o sino al termine del suo tempo di servizio o fino a quando non necessita di fino a quando non necessita di un’operazione di I/O.un’operazione di I/O.

Con prelazioneCon prelazionese nella coda dei processi pronti arriva un se nella coda dei processi pronti arriva un processo con priorità maggiore di quella processo con priorità maggiore di quella del processo in esecuzione, questo rilascia del processo in esecuzione, questo rilascia la CPU, cedendola al processo appena la CPU, cedendola al processo appena arrivato.arrivato.

Page 31: Scheduling A. Ferrari. Nuovo Pronto in esecuzione Terminato bloccato interruzione uscitaammissione attesa evento (es. I/O)evento verificato assegnazione.

Determinare la Determinare la prioritàpriorità

Priorità definite dal S. O. (p. interna)Priorità definite dal S. O. (p. interna)

Priorità definite dall’utente (p. esterna)Priorità definite dall’utente (p. esterna)

Priorità statica Priorità statica una volta stabilita, non varia nel tempouna volta stabilita, non varia nel tempo

Priorità dinamicaPriorità dinamicavaria nel tempo per evitare che alcuni varia nel tempo per evitare che alcuni processi possano essere bloccati per un processi possano essere bloccati per un tempo indefinito (starvation), a causa tempo indefinito (starvation), a causa della costante presenza nella ready queue della costante presenza nella ready queue di processi a più elevata prioritàdi processi a più elevata priorità

Page 32: Scheduling A. Ferrari. Nuovo Pronto in esecuzione Terminato bloccato interruzione uscitaammissione attesa evento (es. I/O)evento verificato assegnazione.

Starvation Starvation (attesa indefinita)(attesa indefinita)• Una possibile soluzione allo starvation è Una possibile soluzione allo starvation è

data dalla procedura di aging data dalla procedura di aging (invecchiamento): la priorità di un (invecchiamento): la priorità di un processo puòprocesso può– aumentare al crescere del suo tempo di aumentare al crescere del suo tempo di

attesaattesa– diminuire al crescere del tempo di CPU diminuire al crescere del tempo di CPU

già utilizzato già utilizzato

Page 33: Scheduling A. Ferrari. Nuovo Pronto in esecuzione Terminato bloccato interruzione uscitaammissione attesa evento (es. I/O)evento verificato assegnazione.

Round RobinRound Robin• La CPU viene assegnata, a turno, ad ogni La CPU viene assegnata, a turno, ad ogni

processo per un certo periodo processo per un certo periodo qq di tempo di tempo massimo (time-slice o quanto di tempo)massimo (time-slice o quanto di tempo)

• Se, alla fine di tale periodo, il processo in Se, alla fine di tale periodo, il processo in esecuzione non è terminato, esso viene esecuzione non è terminato, esso viene ricondotto nella coda dei processi pronti, ricondotto nella coda dei processi pronti, all’ultima posizioneall’ultima posizione

• Alla messa in esecuzione, il S. O. avvia un Alla messa in esecuzione, il S. O. avvia un dispositivo timer, trascorso l’intervallo dispositivo timer, trascorso l’intervallo qq, il , il timer genera un’interruzione che provoca il timer genera un’interruzione che provoca il prerilascio della CPUprerilascio della CPU

Page 34: Scheduling A. Ferrari. Nuovo Pronto in esecuzione Terminato bloccato interruzione uscitaammissione attesa evento (es. I/O)evento verificato assegnazione.

time-slicetime-slice• Un time-slice troppo grande rischia di far Un time-slice troppo grande rischia di far

tendere la politica Round Robin a quella FCFS.tendere la politica Round Robin a quella FCFS.

• Un time-slice troppo piccolo consente tempi di Un time-slice troppo piccolo consente tempi di risposta brevi ma impegna eccessivamente la risposta brevi ma impegna eccessivamente la CPU per le operazioni di context switch, con CPU per le operazioni di context switch, con conseguente calo della produttività e conseguente calo della produttività e dell’efficienza del sistema.dell’efficienza del sistema.

• Nei sistemi reali il valore del time-slice che Nei sistemi reali il valore del time-slice che garantisce buone prestazioni è compreso tra garantisce buone prestazioni è compreso tra 20 e 50 millisecondi.20 e 50 millisecondi.