86

homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

Embed Size (px)

Citation preview

Page 1: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING
Page 2: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

homepage

PROCESSI

STATI DI UN PROCESSO

DESCRITTORE DI PROCESSO

CONTEXT SWITCH

SCHEDULING

CLASSI DI SCHEDULING

SCHEDULING DELLA CPU

OBIETTIVI DELLO SCHEDULING

SWAPPING

CLASSIFICAZIONE DELLE POLITICHE DI SCHEDULING

POLITICHE DI SCHEDULING

RICHIAMI

PASSI DI SVILUPPO DELL’ARGOMENTO

Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

LO SCHEDULING

DEI PROCESSI

FCFS

SJF {SRTF}

PRIORITÀ

ROUND ROBIN

RIEPILOGO

RISULTATI

ESERCIZI

Page 3: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

PROCESSI

homepage

Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Page 4: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

Processi

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.

homepage

Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Page 5: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

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.

homepageProcessi

Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Page 6: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

Un processo è rappresentato da:

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

homepageProcessi

Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Page 7: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

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

Page 8: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

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

Page 9: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

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

Nuovo

Prontoin

esecuzione

Terminato

bloccato

interruzioneuscita

ammissione

attesa evento (es. I/O)

evento verificato

assegnazione

Coda Pronti

Code di Attesa

Page 10: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

DESCRITTORE DI PROCESSO

homepage

Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Page 11: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

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

Page 12: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

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

Page 13: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

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, …

NOME

STATO

PROGRAM COUNTER

REGISTRI DI CPU

LIMITI DI MEMORIA

FILE APERTI

……………

PCB

Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Page 14: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

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

Page 15: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

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

Page 16: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

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

Page 17: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

SCHEDULING

homepage

Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Page 18: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

Scheduling

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.

homepage

Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Page 19: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

Scheduling

Le scelte della segretaria dipendono da vari fattori:

1. l’ordine delle richieste pervenute

2. la prevista durata dei colloqui

3. la priorità associata a ciascuna richiesta

4. il numero di candidati che il manager può esaminare in un giorno

homepage

Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Manager

SegretariaAspiranti al lavoro

Page 20: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

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.

Scheduling homepage

Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Aspiranti al lavoro = processi

Manager = risorsa

Segretaria = scheduler

Page 21: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

Scheduling

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

homepage

Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Page 22: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

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

Page 23: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

Classi di scheduling

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

homepage

Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Page 24: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

Classi di scheduling

Scheduling a breve termine: è adottato nella selezione del

nuovo processo da eseguire, quando

1. il p. in esecuzione passa allo stato di attesa o ritorna allo stato di pronto oppure termina

2. un processo passa dallo stato di attesa allo stato di pronto

3. si verificano eventi particolari (interruput, chiamate al S. O.)

homepage

Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Coda dei p. prontiAmmiss. Assegn.

Coda dei p. bloccati

Nuovo in esecuzione

Pronto

PCBRilascio

Terminato

in attesa di evento

Disk

Posto su discoEvento verificato

Sospensione

Attivazione

Bloccato

Tempo scaduto

Processore Uscita

Page 25: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

Classi di scheduling

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

homepage

Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Page 26: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

Classi di scheduling

Scheduling a medio termine:

homepage

Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Coda dei p. prontiAmmiss. Assegn.

Coda dei p. bloccati

Nuovo in esecuzione

Pronto

PCBRilascio

Terminato

in attesa di evento

Disk

Posto su disco

Sospensione

AttivazioneBloccato

Tempo scaduto

Processore Uscita

Page 27: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

Classi di scheduling

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

homepage

Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Page 28: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

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

Page 29: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

SCHEDULING DELLA CPU

homepage

Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

CPUP

3

P

3

P

2

P

2

P

1

P

1

P

1

P

1

P

2

P

2

P

3

P

3

P

3

P

3

P

2

P

2

P

3

P

3

Page 30: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

Scheduling della CPU

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

homepage

Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Page 31: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

Scheduling della CPU

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)

homepage

Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Page 32: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

OBIETTIVI DELLO SCHEDULING

homepage

Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Page 33: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

Obiettivi dello scheduling

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à)

homepage

Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Page 34: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

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)

homepageObiettivi dello scheduling

Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Page 35: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

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.

homepageObiettivi dello scheduling

Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Page 36: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

homepage

Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

ping

Page 37: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

Swapping

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

homepage

Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Page 38: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

Swapping

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

homepage

Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Page 39: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

Programma D D

Memoria centrale

0000x Programma A-1

Programma B-1

Programma Programma A-2

Programma A-3 A-3

Programma B-2Programma B-2

Disco: Area di Swap

Swapping homepage

Programma A-2

Programma Programma A-1

Swap out

Swap in

Page 40: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

CLASSIFICAZIONE DELLE POLITICHE 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

Page 41: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

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.

homepageClassificazione delle politiche

Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Page 42: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

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.

homepageClassificazione delle politiche

Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Page 43: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

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.

homepageClassificazione delle politiche

Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Page 44: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

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.

homepageClassificazione delle politiche

Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Page 45: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

POLITICHE DI SCHEDULING

FCFS: First Come First Served

SJF: Shortest Job First (SRTF)

Per priorità

Round Robin

A code multiple

homepage

Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Page 46: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

Politiche di scheduling

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

homepage

Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Page 47: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

Politiche di scheduling

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à).

homepage

Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Page 48: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

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:

homepage

Calcolare i tempi medi di attesa e di completamento secondo

la politica di scheduling FCFS, trascurando i tempi relativi al

context switch.

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

Processi Tempo di arrivo Tempo di servizio

A 0 3

B 2 6

C 4 4

D 6 5

E 8 2

Page 49: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

homepage

Processi Tempo di attesa Tempo di completamento

A 0 3

B 1 7

C 5 9

D 7 12

E 10 12

Tempo medio di completamento:

(3+7+9+12+12)/5 = 43/5 =

8,6 u. t.

Tempo medio di attesa:

(0+1+5+7+10)/5 = 23/5 =

4,6 u. t.

• Esempio 1Politiche di scheduling

Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

3 2

B

A

E

D

C

4 9 13 18 20 6 T 0 8

Diagramma di Gantt

Tempo di attesa Tempo di servizio

• FCFS

Page 50: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

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:

homepage

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

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

Processi Tempo di arrivo Tempo di servizio

A 0 9

B 2 1

C 5 7

D 8 3

E 11 5

Page 51: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

homepage

Processi Tempo di attesa Tempo di completamento

A 1 10

B 9 10

C 8 15

D 13 16

E 14 19

Tempo medio di completamento:

(10+10+15+16+19)/5 = 70/5 =

14 u. t.

Tempo medio di attesa:

(1+9+8+13+14)/5 = 45/5 =

9 u. t.

• Esempio 2Politiche di scheduling

Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Tempo di context switch

Diagramma di Gantt 2

B

A

E

D

C

9 12 20 5

T

0 8 10 30

Tempo di attesa Tempo di servizio

• FCFS

24 11

Page 52: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

Politiche di scheduling

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.

homepage

Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Page 53: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

Politiche di scheduling

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).

homepage

Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Page 54: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

Esempio: in un sistema vengono generati cinque processi

(A, B, C, D, E) con tempi di arrivo e tempi di servizio riportati

in tabella:

homepage

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.

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

Processi Tempo di arrivo Tempo di servizio

A 0 3

B 2 6

C 4 4

D 6 5

E 8 2

Page 55: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

homepage

Processi Tempo di attesa Tempo di completamento

A 1 4

B 17 23

C 1 5

D 7 12

E 2 4

Tempo medio di completamento:

(4+23+5+12+4)/5 = 48/5 =

9,6 u. t.

Tempo medio di attesa:

(1+17+1+7+2)/5 = 28/5 =

5,6 u. t.

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

Diagramma di Gantt

• SJF senza prelazione

3 2

B

A

E

D

C

4 9 6 13 19 12 T 0 8

Tempo di context switch Tempo di attesa Tempo di servizio

5 7 10 18 25

Page 56: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

homepage

Processi Tempo di attesa Tempo di completamento

A 0 3

B 7 13

C 0 4

D 9 14

E 0 2

Tempo medio di completamento:

(3+13+4+14+2)/5 = 36/5 =

7,2 u. t.

Tempo medio di attesa:

(0+7+0+9+0)/5 = 16/5 =

3,2 u. t.

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

3 2

B

A

E

D

C

4 7 6 15 2010 T 0 8

Diagramma di Gantt

Tempo di attesa: Tempo di servizio:

• SJF con prelazione

Page 57: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

Politiche di scheduling

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

homepage

Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Page 58: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

Politiche di scheduling

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.

homepage

Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Page 59: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

Politiche di scheduling

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

………

homepage

Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Page 60: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

Politiche di scheduling

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

homepage

Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Page 61: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

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:

homepage

Calcolare i tempi medi di attesa e di completamento secondo

la politica di scheduling per priorità, trascurando i tempi

relativi al context switch.

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

Processi Tempo di arrivo Priorità Tempo di servizio

A 0 3 10

B 0 1 1

C 0 3 2

D 0 4 1

E 0 2 5

Page 62: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

homepage

Processi Tempo di attesa Tempo di completamento

A 6 16

B 0 1

C 16 18

D 18 19

E 1 6

Tempo medio di completamento:

(16+1+18+19+6)/5 = 60/5 =

12 u. t.

Tempo medio di attesa:

(6+0+16+18+1)/5 = 41/5 =

8,2 u. t.

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

• Priorità

1

B

A

E

D

C

6 19 16 T 0 18

Diagramma di Gantt

Tempo di attesa: Tempo di servizio:

Page 63: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

Politiche di scheduling

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.

homepage

Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Page 64: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

Politiche di scheduling

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.

homepage

Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Page 65: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

Politiche di scheduling

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

homepage

Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Page 66: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

Politiche di scheduling

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.

homepage

Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Page 67: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

Esempio: in un sistema vengono generati cinque processi

(A, B, C, D, E) con tempi di arrivo e tempi di servizio riportati

in tabella:

homepage

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.

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

Processi Tempo di arrivo Tempo di servizio

A 0 3

B 2 6

C 4 4

D 6 5

E 8 2

Page 68: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

Politiche di scheduling

Scheduling Round Robin (q=1)

homepage

Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

READY QUEUE CPU UNITÁ TEMPO

A 0 – 1

B A 1 – 2

A B 2 – 3

C B A 3 – 4

C B 4 – 5

D B C 5 – 6

C D B 6 – 7

E B C D 7 – 8

D E B C 8 – 9

C D E B 9 – 10

B C D E 10 – 11

E B C D 11 – 12

D E B C 12 – 13

C D E B 13 – 14

B C D E 14 – 15

B C D 15 – 16

D B C 16 – 17

D B 17 – 18

D 18 – 19

D 19 – 20

Tempo medio di completamento:

(4+17+14+15+8)/5 = 58/5 =

11,6 u. t.

Tempo medio di attesa:

(1+11+10+10+6)/5 = 38/5 =

7,6 u. t.

Soluzione:

(Produttività = 5/20 = 25%)

Page 69: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

Politiche di scheduling

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.

homepage

Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Page 70: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

Politiche di scheduling

Schema a tre code multiple

homepage

Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

1PROCESSI 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

Page 71: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

Politiche di scheduling

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.

homepage

Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

Page 72: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

homepage

Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

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:

Calcolare i tempi medi di attesa e di completamento secondo

la politica di scheduling FCFS, trascurando il tempo di context

switch.

Processi Tempo di arrivo Tempo di servizio

A 1 3

B 3 6

C 5 4

D 7 5

E 9 2

Esercizi – FCFS

Page 73: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

homepage

Corso di abilitazione in Informatica – Tesina di S. O. di G. Costa e M. Colella – Prof. A. Petrosino – a.a. 2006/07

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:

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.

Processi Tempo di arrivo Tempo di servizio

A 1 9

B 3 1

C 5 7

D 7 3

E 9 5

Esercizi – FCFS

Page 74: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

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:

homepage

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

Processi Tempo di arrivo Tempo di servizio

A 1 3

B 3 6

C 5 4

D 7 5

E 9 2

Page 75: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

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:

homepage

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 – SJF

Processi Tempo di arrivo Tempo di servizio

A 1 3

B 3 6

C 5 4

D 7 5

E 9 2

Page 76: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

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:

homepage

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

Processi Tempo di arrivo Priorità Tempo di servizio

A 0 3 3

B 0 1 6

C 0 3 4

D 0 4 5

E 0 2 2

Esercizi – Priorità

Page 77: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

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:

homepage

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

Processi Tempo di arrivo Priorità Tempo di servizio

A 1 3 3

B 3 1 6

C 5 3 4

D 7 4 5

E 9 2 2

Esercizi – Priorità

Page 78: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

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:

homepage

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

Processi Tempo di arrivo Tempo di servizio

A 1 3

B 3 6

C 5 4

D 7 5

E 9 2

Page 79: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

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:

homepage

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 – Round Robin

Processi Tempo di arrivo Tempo di servizio

A 1 9

B 3 1

C 5 7

D 7 3

E 9 5

Page 80: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

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:

homepage

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

Processi Tempo di arrivo Priorità Tempo di servizio

A 0 4 8

B 0 2 10

C 0 1 2

D 0 5 4

E 0 3 8

Esercizi di riepilogo

Page 81: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

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:

homepage

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

Processi Tempo di arrivo Priorità Tempo di servizio

A 0 3 9

B 2 4 1

C 5 2 7

D 8 1 3

E 11 5 5

Esercizi di riepilogo

Page 82: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

GRIGLIA DI VALUTAZIONE ESERCIZI

Risposta ai quesiti propostiminima parziale totale

0,5 1 2

Accuratezza/meticolosità risolutiva

scarsa media elevata

0,5 1 2

Costruzione

del diagramma

di Gantt

accennata 0,5

parziale 1

completa ma con errori 2

completa e senza errori 3

Correttezza di calcoloscarsa parziale buona

0,5 1 2

Originalità/creatività

(colori/animazioni/…)

nessuna buona pregevole

0 0,5 1

Page 83: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

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.

homepage

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

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.

Page 84: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

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.

homepage

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

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.

Page 85: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

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.

homepage

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

Page 86: homepage PROCESSI STATI DI UN PROCESSO DESCRITTORE DI PROCESSO CONTEXT SWITCH SCHEDULING CLASSI DI SCHEDULING SCHEDULING DELLA CPU OBIETTIVI DELLO SCHEDULING

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.

homepage

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