Sistemi Operativi I
This presentation is the property of its rightful owner.
Sponsored Links
1 / 27

Scheduling della CPU : Tipi di scheduling Metriche Algoritmi di scheduling classici PowerPoint PPT Presentation


  • 65 Views
  • Uploaded on
  • Presentation posted in: General

Sistemi Operativi I Corso di Laurea in Ingegneria Informatica Docente: Francesco Quaglia. Scheduling della CPU : Tipi di scheduling Metriche Algoritmi di scheduling classici Scheduling multiprocessore Scheduling in sistemi operativi attuali (NT/UNIX). Tipi di scheduling.

Download Presentation

Scheduling della CPU : Tipi di scheduling Metriche Algoritmi di scheduling classici

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Scheduling della cpu tipi di scheduling metriche algoritmi di scheduling classici

Sistemi Operativi I

Corso di Laurea in Ingegneria Informatica

Docente: Francesco Quaglia

  • Scheduling della CPU:

  • Tipi di scheduling

  • Metriche

  • Algoritmi di scheduling classici

  • Scheduling multiprocessore

  • Scheduling in sistemi operativi attuali (NT/UNIX)


Scheduling della cpu tipi di scheduling metriche algoritmi di scheduling classici

Tipi di scheduling

A lungo termine

Decisioni sull’aggiunta di un nuovo processo all’insieme dei processi attivi

A medio termine

Decisioni sull’inserimento, totale o parziale di un processo attivo in memoria di lavoro

Decisioni su quale processo debba impegnare la CPU

A breve termine

(dispatching)

Di I/O

Decisioni sulla sequenzializzazione di richieste da servire sui dispositivi


Scheduling della cpu tipi di scheduling metriche algoritmi di scheduling classici

Tipi di scheduling e stati di processi

Lungo termine

Exit

New

Running

Ready

Blocked

Breve termine

Medio termine

Ready

Suspended

Blocked

Suspended


Scheduling della cpu tipi di scheduling metriche algoritmi di scheduling classici

Scheduling a lungo termine: alcuni dettagli

  • Decisione di attivazione di processo

  • raggiungimento di un dato livello di multiprogrammazione

  • mistura conveniente di processi I/O bound e CPU bound

  • Attivazione dello scheduler

  • alla terminazione di un processo

  • su richiesta

  • quando la percentuale di utilizzo della CPU scende sotto valori specifici

Attivazione di processo governata dalle condizioni di carico del sistema

Tipicamente non controlla

applicazioni interattive

Tipico di sistemi batch multiprogrammati


Scheduling della cpu tipi di scheduling metriche algoritmi di scheduling classici

Criteri per il dispatching

  • Orientamento all’utente

  • decisioni di dispatching funzione di come gli utenti percepiscono

  • il comportamento del sistema (es. tempo di risposta)

  • Orientamento al sistema

  • decisioni di dispatching tese a ottimizzare il comportamento del

  • sistema nella sua globalita’ (es. utilizzazione di risorse)

  • Orientamento a metriche prestazionali

  • approccio quantitativo

  • parametri facilmente misurabili (monitorabili), analizzabili

  • Orientamento a metriche non prestazionali

  • parametri tipicamente qualitativi o non facilmente misurabili


Scheduling della cpu tipi di scheduling metriche algoritmi di scheduling classici

Criteri orientati all’utente

Prestazionali

  • tempo di rispostaovvero il tempo necessario affinche’ un

  • processo inizi a produrre l'output

  • tempo di turnaroundovvero del tempo totale intercorrente tra l'istante di creazione e l'istante di completamento di un processo

  • scadenzeovvero una deadline di completamento

Altri

  • prevedibilita’possibilita’ di supportare esecuzioni conformi a

  • determinati parametri indipendentemente dal livello di carico del sistema


Scheduling della cpu tipi di scheduling metriche algoritmi di scheduling classici

Criteri orientati al sistema

Prestazionali

  • throughputprocessi completati per unita’ di tempo

  • utilizzazione del processorepercentuale del tempo in cui la CPU risulta impegnata

Altri

  • fairnesscapacita’ di evitare stairvation dei processi attivi

  • priorita’capacita’ di distinguere tra livelli di priorita’ multipli dei processi attivi

  • bilanciameno delle capacita’ di equilibrare l’utilizzo delle risorse

  • risorseal fine di a


Scheduling della cpu tipi di scheduling metriche algoritmi di scheduling classici

Priorita’, round-robin, prelazione e stairvation

processore

RQ0

RQ1

RQn-1

Prelazione (prerilascio)

Attesa evento


Scheduling della cpu tipi di scheduling metriche algoritmi di scheduling classici

Scheduling FCFS

Caratteristiche

  • - i processi nello stato Ready vengono mandati in esecuzione secondo

  • l'ordine di inserimento nella "Ready List"

  • non vi e' prelazione, quindi ogni processo rimane in esecuzione

  • fino al suo completamento, oppure fino a che esso non rilascia la CPU

  • spontaneamente

Svantaggi

  • non minimizza il tempo di attesa, e di conseguenza neanche il

  • tempo di turnaround

  • - inadeguato per la gestione di processi interattivi

  • puo' causare sottoutilizzo dei dispositivi di I/O a causa del fatto

  • che i processi interattivi non necessariamente vengono favoriti


Scheduling della cpu tipi di scheduling metriche algoritmi di scheduling classici

Scheduling Round-Robin (time-slicing)

Caratteristiche

  • i processi nello stato Ready vengono mandati in esecuzione a turno per

  • uno specifico quanto di tempo

  • vi e' prelazione, quindi un processo puo’ essere sospeso anche se non ha

  • completato la sua traccia o non vuole rilasciare la CPU spontaneamente

Svantaggi

  • sfavorisce processi I/O bound rispetto a processi CPU bound

  • - non propriamente adeguato per la gestione di processi interattivi

  • puo' causare sottoutilizzo dei dispositivi di I/O a causa del fatto

  • che i processi I/O bound vengono sfavoriti

Criticita’ della scelta

del time-slice

Impatto sul numero di quanti per attivare una richiesta di I/O


Scheduling della cpu tipi di scheduling metriche algoritmi di scheduling classici

Scheduling Round-Robin Virtuale

Separazione tra processi prelazionati e non

Quanto = time-slice

Priorita’ bassa

Prelazionati

processore

Quanto = time-slice – X

Priorita’ alta

Back from I/O

X = consumo di quanto

precedente


Scheduling della cpu tipi di scheduling metriche algoritmi di scheduling classici

Scheduling SPN

Caratteristiche

  • - i processi nello stato Ready vengono mandati in esecuzione in funzione

  • della lunghezza del loro prossimo "CPU Burst". In particolare, essi

  • vengono mandati in esecuzione secondo ordine crescente della lughezza

  • del prossimo CPU burst (priorita’ legata al CPU burst)

  • puo' esservi (SRTN) o non prelazione. In caso negativo ogni processo

  • rimane in esecuzione fino al suo completamento, oppure fino a che esso non

  • rilascia la CPU spontaneamente, ovvero al termine del CPU Burst

Vantaggi

  • - minimizza il tempo di attesa, e di conseguenza il tempo di turnaround

  • relativamente adeguato per la gestione di processi interattivi in caso di

  • prelazione

  • in generale non causa sottoutilizzo dei dispositivi in caso di prelazione

Problemi

  • - necessita di meccanismi di predizione della lunghezza dei CPU Burst

  • puo' causare stairvation a causa del particolare trattamento della priorita'


Scheduling della cpu tipi di scheduling metriche algoritmi di scheduling classici

Stima dei CPU burst

Media aritmetica

Media esponenziale

Alpha vicino all’unita’ determina maggior peso per

osservazioni recenti

Impatto sulla stabilita’ in presenza di alta

varianza


Scheduling della cpu tipi di scheduling metriche algoritmi di scheduling classici

Scheduling highest response ratio next (HRRN)

Proccessi selezionati in base al

Rapporto di Risposta

Dove : w = tempo di attesa

s = tempo di servizio (di esecuzione)

  • favorisce gli I/O bound (caratterizzati da

  • piccoli valori di s)

  • affronta il problema della stairvation dovuto

  • alle priorita’


Scheduling della cpu tipi di scheduling metriche algoritmi di scheduling classici

Scheduling feedback

  • Non necessita di informazioni (predette o monitorate) come

  • SPN, SRTN e HRRN

  • Uso di code di priorita’ multiple

processore

RQ0

processore

RQ1

processore

RQn-1

Quanto di tempo fisso per tutte le priorita’: stairvation sui processi

molto lunghi

Soluzione parziale:

quanto di tempo pari a dove i e’ a priorita’


La realta caratteristiche del carico

La realta': caratteristiche del carico

Frequenza delle occorrenze

Comportamento

I/O Bound

Comportamento CPU bound

Durata di un CPU burst


Scheduling unix tradizionale svr3 4 3 bsd

Caratteristiche

Scheduling UNIX tradizionale (SVR3 – 4.3 BSD)

- code multiple con feedback

- un livello di priorita' distinto per ciacuna coda

- gestione di tipo Round-Robin nell'ambito di ciascuna coda

Passaggio da una coda all'altra (feedback)

- in caso di rientro nello stato Ready dopo un passaggio nello stato Blocked

- in caso di variazione della priorita' imposto dal sistema

(su base periodica)

Prior. M

Processi CPU bound

Prior. 0 (admit level)

Prior. –(N-1) (Back I/O)

Prior. -N (Back from swap out)


Scheduling della cpu tipi di scheduling metriche algoritmi di scheduling classici

Scheduling multiprocessore

  • Caratteristiche architetturali

  • processori (CPU) multiple che condividono una memoria principale

  • comune

  • i processori sono controllati da un unico sistema operativo

Tightly coupled system (sistema strettamente

accoppiato)

  • Problematiche

  • assegnazione dei processi ai processori

  • uso (o non) di politiche classiche di multiprogrammazione sui

  • singoli processori

  • selezione del’entita’ schedulabile da mandare in esecuzione


Scheduling della cpu tipi di scheduling metriche algoritmi di scheduling classici

Assegnazione dei processi ai processori

  • Statica

  • overhead ridotto poiche’ l’assegnazione e’ unica per tutta la durata del processo

  • possibilita’ di sottoutilizzo dei processori

  • Dinamica

  • overhead superiore dovuto a riassegnazioni multiple

  • migliore utilizzo dei processori

  • Approccio master/slave

  • il sistema operativo viene eseguito su uno specifico processore

  • richiesta esplicita di accesso a stutture del kernel da parte degli altri processori

  • semplicita’ di progetto (estensione di kernel classici per monoprocessori)

  • Approccio peer

  • il sistema operativo viene eseguito su tutti i processori

  • problemi di coerenza di informazione del kernel (sincronizzazione delle azioni)

  • complessita’ di progetto


Scheduling della cpu tipi di scheduling metriche algoritmi di scheduling classici

Multiprogrammazione sui singoli processori?

  • Non piu’ mandatorio

  • quando sono disponibili molti processori, il livello di utilizzo del processore

  • non e’ piu’ un fattore cosi’ critico (dato il costo proporzionalmente ridotto

  • del processore rispettoa quelli dell’intera architettura)

  • rientra in gioco la metrica del tempo di turnaround delle applicazioni

  • Monoprogrammazione su multiprocessori

  • un’unica coda di applicazioni in attesa di assegnazione di processore

  • 1) costo non minimale di sincronizzazione degli accessi alle strutture dati

  • del kernel in caso di modello di sistema peer

  • 2) buona distribuzione del carico

  • code multiple di distribuzione delle applicazioni sui processori

  • 1) costo di sincronizzazione di accesso a strutture dati del kernel limitato

  • 2) possibilita’ di sbilanciamento del carico


Scheduling della cpu tipi di scheduling metriche algoritmi di scheduling classici

Scheduling di processi

Limitato impatto della politica di selezione

1 processore

2 processori

Throughput RR/throughput FCFS

1

Coefficiente di variazione

Deviazione standard tempo di servizio

Tempo di servizio medio


Scheduling della cpu tipi di scheduling metriche algoritmi di scheduling classici

Scheduling di threads

  • Fattori nuovi

  • la decomposizione di applicazioni in threads introduce criteri di selezione

  • innovativi rispetto alle priorita’ classiche (interattivita’)

  • un processo puo’ essere sia CPU che I/O bound dipendendo dal

  • comportamento dei singoli thread che lo compongono

Ritardo

addizionale

Synchronization

I/O

Thread A

Thread B

Thread A

Synchronization

I/O

Thread B

Thread A

Thread A


Scheduling della cpu tipi di scheduling metriche algoritmi di scheduling classici

Politiche di scheduling di threads (I)

  • Load sharing

  • coda globale di threads pronti ad eseguire

  • possibilita’ di gestire priorita’

  • distribuzione uniforme del carico

  • non necessita scheduler centralizzato (problemi

  • di efficienza in caso di larga taglia dell’architettura)

  • ridotta efficienza del caching in caso di cambio di

  • processore da parte dei thread

FCFS

SNTF (smallest number of

threads first), con e senza

preemption

  • Processore dedicato

  • ogni thread di un processo viene eseguito si di uno specifico processore

  • (valido per architettue con elevato numero di processori)

  • opposto alla politica load sharing

  • criticita’ del numero di processori dedicati ad un dato processo (legato all’

  • activity working set) – possibilita’ di thrashing del processore


Scheduling della cpu tipi di scheduling metriche algoritmi di scheduling classici

Politiche di scheduling di threads (II)

  • Gang scheduling

  • si seleziona un insieme di thread correlati da eseguire su un insieme di

  • processori

  • riduzione del costo di sincronizzazione e del costo di cambio di processi

  • riduzione dell’overhead di scheduling (decisioni singole per assegnazioni

  • multiple)

|gang|

Time slicing uniforme

Time slicing pesato

#processori

Gang A

Gang B

Gang A

Gang B

Processori occupati

Processori liberi


Scheduling della cpu tipi di scheduling metriche algoritmi di scheduling classici

Scheduling UNIX SVR4

Caratteristiche

  • 160 livelli di priorita’

  • 3 classi di priorita’: Tempo Reale (159-100), Kernel (99-60),

  • Time-Sharing (59-0)

  • kernel preemptabile(identificazione di safe places)

  • bitmap per determinare i livelli non vuoti

  • quanto di tempo variabile in funzione della classe e, in alcune

  • classi, del livello

Sequenza di scheduling

Tempo reale (159-100)

Kernel (99-60)

Time sharing (99-60)


Scheduling in nt

Caratteristiche

Scheduling in NT

  • code multiple distinte in due fasce: Real-Time e Varible

  • un livello di priorita' distinto per ciacuna coda (0-15 nella fascia Variable

  • e 16-31 nella fascia Real-Time)

  • gestione di tipo Round-Robin nell'ambito di ciascuna coda

  • priorita’ base per i processi

  • priorita’ dinamica entro vincoli per i threads (base –2 come limite inferiore)

  • prerilascio basato su piorita’

Passaggio da una coda all'altra (feedback)

  • non ammesso nella fascia Real-Time

  • ammesso nella fascia Variable (rilascio della CPU allo scadere del quanto

  • provoca diminuzione della priorita', rilascio anticipato provoca incremento)

Real-Time (16-31)

Variable (0-15)


Scheduling della cpu tipi di scheduling metriche algoritmi di scheduling classici

Priorita’ dei threads in NT

Livello 15

Classe variable (0-15)

Priorita’ base

di processo

Livello 0

Priorita’ base

di thread


  • Login