La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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

Presentazioni simili


Presentazione sul tema: "Scheduling A. Ferrari. Nuovo Pronto in esecuzione Terminato bloccato interruzione uscitaammissione attesa evento (es. I/O)evento verificato assegnazione."— Transcript della presentazione:

1 Scheduling A. Ferrari

2 Nuovo Pronto in esecuzione Terminato bloccato interruzione uscitaammissione attesa evento (es. I/O)evento verificato assegnazione Coda Pronti Code di Attesa

3 Tipi di processi CPU Bound Processi che sfruttano pesantemente le risorse computazionali del processore, ma non richiedono servizi di ingresso/uscita dati al sistema operativo in quantità rilevanti. Es. i programmi di calcolo matematico, i quali necessitano spesso di un'enorme potenza di calcolo, ma sfruttano l'I/O solo all'inizio della loro vita (per caricare gli input) ed alla fine di essa (per produrre gli output). I/O Bound molti accessi alle periferiche, il processo è spesso interrotto per attendere il completamento delle richieste di I/O.

4 P1 (CPU bound) P2 /I/O bound) Lungo burst di CPU Attesa completamento I/O Corto burst di CPU tempo P1 P2 In esecuzione In attesa

5 Classi di scheduling Nella gestione delle risorse di un elaboratore, il fattore tempo porta a identificare tre tipi di scheduling: Scheduling a breve termine Scheduling a medio termine Scheduling a lungo termine

6 E impiegato nella scelta dei programmi, presenti in memoria secondaria, da caricare in memoria centrale per la creazione dei corrispondenti processi individua i programmi da ammettere allesecuzione regola la presenza in memoria centrale di processi I/O bound e CPU bound controlla il livello di multiprogrammazione

7 Scheduling a medio termine Gestisce la permanenza in memoria dei processi non in esecuzione coordina le operazioni di trasferimento temporaneo dei processi in memoria secondaria (swap out): interviene nella gestione dei processi in attesa di eventi da lungo tempo

8 Scheduling a breve termine Si occupa della selezione del nuovo processo da eseguire, quando il processo in esecuzione passa allo stato di attesa o ritorna allo stato di pronto oppure termina un processo passa dallo stato di attesa allo stato di pronto si verificano eventi particolari (interruput, chiamate al S. O.) 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.

9 Context switch Il context switch (commutazione di contesto) è la fase in cui luso della CPU passa da un processo p i al suo successivo p i+1 Nella fase di passaggio il SO realizza, in sequenza, le seguenti operazioni: Salvataggio dello stato del processo p i uscente Salvataggio dello stato del processo p i uscente Selezione del nuovo processo p i+1 Selezione del nuovo processo p i+1 Ripristino dello stato del processo p i+1 entrante Ripristino dello stato del processo p i+1 entrante Si modifica, in questo modo, il contesto in cui lavora il processore.

10 Durata del context switch Il tempo utilizzato dal SO per le operazioni di context switch, in rapporto al time-slice (quanto di tempo di CPU), non deve essere causa di riduzione dellefficienza 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)

11 Dispatcher Leffettiva assegnazione della CPU al processo prescelto per lesecuzione è 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)

12 Politiche di scheduling: obiettivi massimizzare il throughput (numero di processi utente completati nellunità di tempo) lutilizzo della CPU (percentuale media di utilizzo della CPU nellunità di tempo) minimizzare loverhead (numero di processi di sistema completati nellunità di tempo) il tempo di turnaround (tempo di permanenza di un processo nel sistema) il tempo di risposta (tempo trascorso tra limmissione di un comando e lemissione della prima risposta) il tempo di attesa (tempo totale trascorso da un processo nello stato di pronto) garantire fairness (equità) (imparzialità nellattribuzione dei time-slice ai processi)

13 Tipi di sistemi Ogni algoritmo di scheduling della CPU è finalizzato al raggiungimento di alcuni obiettivi. Nei sistemi batch (elaborazione a lotti) si cerca di massimizzare il throughput e di minimizzare loverhead. Nei sistemi interattivi (tempi di risposta immediati) è essenziale minimizzare i tempi di risposta e di attesa dei processi.

14 Parentesi storica IBM 7094

15 The 7094 was IBM's most powerful scientific computer in It could perform 500,000 logical decisions, 250,000 additions or subtractions, 100,000 multiplications, or 62,500 divisions in one second. It had hardware to do double-precision floating-point arithmetic. The computer gained considerable I/O bandwidth from its separate data channels with direct memory access, and so it was also used to run business and general-purpose applications. The 7094 had an operating system called IBSYS, and FORTRAN and COBOL compilers. A typical system cost $3,134,500. IBM stopped selling them in 1969.

16 Dati tecnici Manufacturer:IBM Memory technology: magnetic core First introduced: 1963 Memory size: 32K 36-bit words CPU technology: transistor Cycle time: 2 microseconds (0.5 MHz)

17 Sfruttare al massimo la potenza di calcolo

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

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

20 Classificazione delle politiche di scheduling 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

21 Prelazione (pre-rilascio) 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.

22 Priorità Politiche senza priorità pongono i processi sullo stesso piano, dal punto di vista dellurgenza 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.

23 Statiche/dinamiche Politiche statiche un processo conserva nel tempo i suoi diritti di accesso allunità centrale (priorità) Politiche dinamiche i processi modificano nel tempo i propri diritti di accesso allunità centrale.

24 Politiche di schedulazione FCFS: First Come First Served SJF: Shortest Job First -> (SRTF) SJF: Shortest Job First -> (SRTF) Per priorità Per priorità Round Robin Round Robin

25 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 lultimo posto della coda la CPU è assegnata al processo situato alla testa alla ready queue

26 FCFS: caratteristiche E senza prelazione: il processo in esecuzione trattiene la CPU sino al termine del suo tempo di servizio o fino a quando non necessita di unoperazione di I/O E senza prelazione: il processo in esecuzione trattiene la CPU sino al termine del suo tempo di servizio o fino a quando non necessita di unoperazione 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 Tempi di attesa molto variabili e generalmente lunghi. La gestione dei dispositivi è poco efficiente ed è adeguata per sistemi batch (mancanza di interattività).

27 SJF: Shortest Job First La CPU è assegnata al processo il cui intervallo di tempo previsto per lutilizzo della CPU è più breve Nel caso in cui più processi pronti presentino gli stessi tempi di servizio, la scelta viene fatta secondo la politica FCFS

28 SJF: 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 unoperazione 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)

29 Scheduling per priorità A ciascun processo, in fase di generazione, viene attribuito un livello di priorità, espresso da un numero intero La CPU è assegnata al processo che presenta la massima priorità. A parità di priorità, si ricorre alla politica FCFS

30 Per priorità: due casi Senza prelazione il processo in esecuzione trattiene la CPU sino al termine del suo tempo di servizio o fino a quando non necessita di unoperazione 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.

31 Determinare la priorità Priorità definite dal S. O. (p. interna) Priorità definite dallutente (p. esterna) Priorità statica una volta stabilita, non varia nel tempo Priorità dinamica varia nel tempo 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à

32 Starvation (attesa indefinita) Una possibile soluzione allo starvation è 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

33 Round Robin La CPU viene assegnata, a turno, ad ogni processo 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, allultima posizione Alla messa in esecuzione, il S. O. avvia un dispositivo timer, trascorso lintervallo q, il timer genera uninterruzione che provoca il prerilascio della CPU

34 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 dellefficienza del sistema. Nei sistemi reali il valore del time-slice che garantisce buone prestazioni è compreso tra 20 e 50 millisecondi.


Scaricare ppt "Scheduling A. Ferrari. Nuovo Pronto in esecuzione Terminato bloccato interruzione uscitaammissione attesa evento (es. I/O)evento verificato assegnazione."

Presentazioni simili


Annunci Google