Il 0% ha trovato utile questo documento (0 voti)
48 visualizzazioni8 pagine

Cap 2 Scheduling

Caricato da

teknoibm
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
48 visualizzazioni8 pagine

Cap 2 Scheduling

Caricato da

teknoibm
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF o leggi online su Scribd
Sei sulla pagina 1/ 8
Gestione dei processi_ 63 eet descrittore di p descrittore di P" i — - | a al ; pila del nucleo an ; ’ : [7 6 se 2 pila di P pila di P’ = - # SP. i‘ al’ R, ; + Rr an’ Rn Proceso in esecuzione n_ | PC c_|Ps 1. indirizzo dell'istruzione RTI (ritorno da interruzione) § parola di stato dell'ambiente nucleo Figura 2.10 Situazione dei registri di machina prima dell’esecuzione della iret. Al completamento della funzione richiesta, viene eseguita la procedura per il ripristi- no dello stato, che provvede a caricare nei registri di macchina dell’ambiente proces- si i corrispondenti valori contenuti nel descrittore del nuovo processo P’ e i valori +/ e 6 in cima alla pila dell’ambiente nucleo (Figura 2.10). I! nucleo provvede infine a rimettere in esecuzione il processo P’ eseguendo l'i- struzione iret. 2.9 Scheduling Abbiamo visto precedentemente che con il termine short term scheduler si intende quella funzione del nucleo che ha il compito di gestire l'allocazione della CPU ai troduttivo (vedi Paragrafi 1.2.3, 1.24 ¢1 25) é cess Sia itolo in processi pronti. Gia nel capil ti ; stato messo in evidenza come questa funzione assolva a un compito fondamentaleg 5 ie in base alle quali | ogni sistema multiprogrammato ¢ come eae raaiecs Baie ee aa ak loca la CPU siano determinanti per carn = (efaeeen BOCK, fi © dal pup. te di vista delle diverse tipologie di servi2) offerti ee atch, time-sharing, rey time), Compito di questo paragrafo € quello di passare eae im Tassegna |e principali strategie di schedulazione dei process Prima di esaminare tali strategie perd opportuno ricordare che in un sistema operativo esistono altri due livel ¢ Pr heduling: scheduling a lungo termine (ong fer™ scheduling) e scheduling a meg termine (medium term scheduling) Con scheduling a lungo termine si intende quella funzione del sistema operat. vo che, in un sistema di tipo batch, sceglie tra tutti i programmi caricati in memo. ria di massa per essere eseguiti, quelli da trasferire in memoria centrale ¢ da inser re nella coda dei processi pronti. La scelta viene fatta, in generale, in modo ds equilibrare la presenza in memoria principale di processi caratterizzati da prevalen- za di operazioni di elaborazione (CPU-bound) e di processi caratterizzati da prev Jenza di operazioni di ingresso e uscita (1/0 bound). E intuibile come uno sbilan- Gamento del carico verso uno qualunque dei due tipi di processi porterebbe @ us uso non efficiente dell’intero sistema. Se fossero prevalenti i processi del secondo tipo (VO bound) la coda dei processi pronti sarebbe quasi sempre vuots & cre hon sarebbe utilizzata in modo efficiente. Se fossero prevalenti i processi del primo tipo (CPU-bound) i dispositivi di VO sarebbero poco utilizzati € il sistema sarebbe nuovamente sbilanciato. Compito dello scheduling a lungo termine & anche quello di controllare il num ro dei processi gi creati e non ancora terminati (grado di multiprogrammazion Pid processi sono stati creati minore é il tempo a disposizione di ogni processo Pe Vesecuzione. Percié lo scheduler a lungo termine pud limitare il grado di multipt grammazione per fornire un servizio soddisfacente all’insieme di processi che dee gestire. Lo scheduling a medio termine (medium term scheduli resenta ime quella funzione del sistema operativo che ha il cori, ee emporte . te processi dalla memoria centrale alla memoria di massa (swap-out) € vice (swap-in). La funzione viene utilizzata per liberare parte della memon centrale cessaria ad i” processi gia presenti o per rendere possibile il caricamen' “! , Bonile dg) migliorare, per esempio, la combinazione dei processi prese™" o pea funzon i Jong erm scheduling e medium tem schedule ‘ Operativo con una frequenza nettamente inferior’ 2 age dello short term scheduling € quindi possono risultare pith costose in ter™™ ae po senza influire in maniera significativa sulle prestazioni del sistem. La Figura 2.11 riassume le funzioni svolte dai tre livelli di schedulin& yi Tomando allo short term scheduler, premesso chi viene MM Se quentemente in guanto | | che questo inte esi’ = qi legato, come si é visto, al cambio di contest che panto deve essere realizzato in modo molto efficiente, nel se" vo are te aleune tra le principali strategie utilizzate per gestire Fallacy , Fimandando alla bibliografia per una trattazione pit complet dell J Gestione dei processi_65 ‘medium term scheduling OCT parciainente le swap-in cuit swap-out Jong term scheduling coda dei processi pronti jobvbatch shorttem_y) cpt . scheduling terminazione utenti interattivi procesi |g sospes sospensione Figura 2.11 Livelli di scheduling. Una prima classificazione fra gli algoritmi di scheduling é relativa alla scelta di quali siano gli eventi in seguito ai quali lo scheduler deve intervenire: + si indicano come algoritmi di scheduling senza diritto di revoca (non preemptive) tutti quelli che prevedono lintervento dello scheduler esclusivamente quando il processo in esecuzione libera spontaneamente la CPU, o perché termina la pro- pria esecuzione 0, come indicato nel Paragrafo 2.2, perché si sospende in attesa del verificarsi di un dato evento; + viceversa, vengono indicati come algoritmi di scheduling con diritto di revoca (preemptive) quelli che prevedono V’intervento dello scheduler anche per decide- re di revocare la CPU al processo in esecuzione al fine di allocarla a un altro fra i processi pronti, per esempio a causa dell’arrivo di un’interruzione che indica lo scadere del quanto di tempo assegnato al processo, oppure perché entra in coda pronti un processo ritenuto piil urgente o “pit: importante” di quello in esecuzio- ne. In entrambi i casi il proceso in esecuzione viene forzato ad abbandonare l'u- so della CPU e inserito in coda pronti (vedi Figura 2.3). Gli algoritmi appartenenti alla prima classe sono sicuramente pid semplici e, poiché tiducono il numero delle volte che lo scheduler deve intervenire e quindi il numero dei cambi di contesto fra processi, sono anche quelli che richiedono un minore over- head di sistema. Per lo stesso motivo, pero, sono anche quelli che offrono minore flessibilita, intesa come possibilita di definire una piti ampia gamma di strategie di scheduling. Per questi motivi gli algoritmi non preemptive sono stati utilizzati preva- lentemente nell’ambito dei sistemi batch ma, come vedremo, non consentono di rag- giungere gli obiettivi tipici di sistemi time-sharing o di sistemi real-time. Anche le prime versioni dei pit noti sistemi operativi per personal computer han- no utilizzato algoritmi senza revoca. Per esempio, nel caso di Windows, solo con la versione Windows 95 @ stato introdotto uno scheduler con revoca. Analogamente, i calcolatori Macintosh hanno utilizzato algoritmi con revoca soltanto a partire dalla versione MacOS 8 realizzata su piattaforma PowerPC. Molti sono i criteri in base ai quali viene valutata la bonta di un algoritmo di sche- —_— we duling. La diversita fra tali criteri deriva dalla diversita dei parametri che vengono presi in considerazione i quali, di volta in volta, vengono scelti fra quelli pit a i tri i per la specifica tipologia del sistema operativo. Sono infatti diversi i parame oy ‘se ai quali viene giudicata la bonta di un algoritmo di scheduling per W" sistema bart rispetto a quelli relativi a un sistema time-sharing 0 a un sistema in tempo nai - esempio, per sistemi batch, frai parametri piil spesso utilizzati citiamo quellidis Pobiettive & quello di massimizzare ta percentuale di ‘uso della CPU nell’unita di tempo: . — tempo medio di Sr aramento(urnaround time); inteso come valor ee i li intervalli temporali che intercorrono = {quando i singoli procs aoa fa prima volta in coda pronti ¢ quando li stessi terminano 1e oro etal Tobiettivo, in questo caso, @ quello di erinimizzare tale valore> indNeet A tempo che un generico utente deve mediamente attendere per avere | ms reeks nali una volta che il suo programma sia stato sottomesso al sistema per di processi comple- Zione: Z vita come numero medio produttivita (throughput rate) espressa oe muinaronind ‘ati nell'unita di tempo (coincidente, praticamente, Con Vinve time e che, come tale, € da massimizzare). Nel caso di sistemi time-sharing, un processo hha in genere un comportamento di tipo imterattivo, Per esempio, nell'ambito di una session di lavoro, un utente invia un ‘comando al sistema ¢. prima di inviare il successivo, attende la risposta a quel co- ‘mando da parte del sistema. In questi casi si prendono in esame parametti diversi quali: — tempo di risposta: inteso come intervallo temporale intercorso tra Vistante in cui il processo entra in coda “>pronti” ¢ Vistante in cui fornisce la prima risposta. Queso parametro caratterizza un processo interattivo meglio del turnaround time ‘sto precedentemente. Anche in questo caso si tratta di minimizzare tale para- metro: tempo di attesa: inteso come il tempo totale che un 3 y processo passa nella coda det process pnt in atest di avere a propria disposizione la CPU. Anche questo poe ers Eee minimizzato in quanto a un maggiore tempo trascorso pronti corrisponde un pit alto valore del tempo di risposta. Per quanto riguarda i sistemi real-time, i criteri i un algoritmo di sable coe ee valutata la bontd tel Paraggafo }.2.5, ogni provesso applica diversi. In questi casi, come gid indica!? tale indcato come deadline, che applicativo é caratterizzato da un parametro tem?” forte prop isu n cepacia emp oto i quale prooe deve rocessi che non rispettano la api € quello di minimizzare il nume”? rantire che tutti i processi rispettino i Jeadline (sistemi “soft real-time") ° digs pate ota serapee 8 posal ee conan hard real-time”) caemngioy al feed cu een tat i precedent criteri conte?” no ii ‘aah limite i cambi di contesto fra prone Te lizazione della CPU & opr Gestione dei processi_67 sima utilizzazione della CPU dovremmo optare per strategie di scheduling senza re- voca. Ma, come vedremo, tali strategie non consentono di minimizzare il tempo di risposta o di garantire il rispetto delle deadline. Anche la struttura dei processi pud influenzare notevolmente le prestazioni dei vari algoritmi. Per esempio, in linea di massima possiamo caratterizzare un proceso come un’alternanza di intervalli durante i quali il proceso impegna risorse diverse del sistema (CPU e dispositivi di /)O). Tipicamente, dopo un intervallo durante il quale il processo esegue istruzioni (detto anche CPU burst) senza richiedere trasferi- menti di ingresso/uscita, segue un intervallo durante il quale il processo, dopo aver attivato un trasferimento di dati, si sospende rilasciando la CPU ma utilizzando di- spositivi d’ingresso/uscita (detto anche 1/O burst, vedi Capitolo 5); a questo segue di nuovo un CPU burst e cosi via. La frequenza con cui tali intervalli si alternano ¢ le dimensioni dei singoli intervalli sono caratteristiche peculiari di ciascun proceso € dipendono dal tipo di programma che viene eseguito. Per esempio, I’esecuzione di un programma di tipo scientifico puo essere caratterizzata da un primo intervallo du- rante il quale vengono letti dati da elaborare, seguito da un lungo intervallo di elabo- razione ¢ infine da un terzo intervallo relativo alla stampa dei risultati. Come gia an- ticipato, un tale tipo di processo viene anche indicato come CPU-bound. Viceversa, Tesecuzione di un programma interattivo é in genere caratterizzata da frequenti atti- vitd di ingresso/uscita di dati, intervallate da brevi periodi di esecuzione (processo // O-bound). Passeremo adesso in rassegna le caratteristiche di alcuni fra i pili noti algoritmi di scheduling. 2.9.1 Algoritmo First-Come-First-Served (FCFS) E sicuramente I’algoritmo di scheduling pit semplice. E di tipo senza revoca e pre- vede di assegnare la CPU al proceso che é nella coda dei processi pronti da pitt tempo. In pratica consiste nell’organizzare la coda secondo la modaliti First-In- First-Out. Come tutti gli algoritmi non preemptive pud essere adatto solo per sistemi batch. A fronte, perd, della sua semplicit offre prestazioni generalmente molto limi- tate. Cid & dovuto al fatto che la strategia con cui questo algoritmo opera ignora i tempi di servizio richiesti dai singoli processi e tutti gli altri aspetti che influenzano arametri quali il turnaround time o il tempo di attesa. Per chiarire con un esempio, supponiamo che al tempo zero sia pronto il solo processo Py che richiede 10 millise- condi di tempo di CPU e che, mentre questo é in esecuzione, entrino nella coda dei Processi pronti tre processi negli istanti indicati nella seconda colonna della Tabella 2.1 e che gli stessi richiedano un tempo di esecuzione come indicato nella terza co- Jonna della tabella dove, per esempio, tutti i tempi si suppongono indicati in millise- condi: SS _____ Processo Istante di arrive Durata del CPU burst fre —_Bunte ‘ . Py 2 100 P, 4 24 Ps 6 16 ——— as ‘Tabella 2.1 _Un esempio con 4 process con divers! tempi d: arnvo e diverse durate 110 2 Diagramma temporal relativo ai process! della Tabella 2.1 il diagramma temporale relativo alla schedulazione itmo FCFS, dove iJ simbolo “1” rappresenta l’arrivo » i] completamento del processo. und time per ciascun Proceso. Se T il turnaround time me- Figura 2.1 In Figura 2.12 viene riportato dei process! effettuata con algori dun processo in coda prontie il simbolo “| Da tale diagramma ¢ facile ricavare il turnaro' jndichiamo con 7; il tumaround time del process P;e con dio, abbiamo: = 10; T, =110- 108; 50 — 6 = 144 To = 10- 34-4=130, = acai amazon madi T = (10 +108 + 130+ 144)/4 = 98. ‘i rere indicando con A, il tempo di attesa di Pj e con 4 il tempo medio fo=0; Av=10-2=8; y= 110-4= 106, Ay = 134-6 = 128: da cui il tempo medio di attesa: A = Sea hetieeceoethee d @ +84 106 + 128)/4 = 60.5. Nesee ecsepiteeactas eehas ns tre processi P,, P2 e P3, ciascuno con I in coda pronti in ordine Meet Gan bouine colonna della Tabella 2.1 entrasse® avremmo 3 al temy una schedulazione come indicata dal tae temperate a temgo le di Figura 2.13. In questo caso i parametri assur ero un diverso valore cor ierebb« diverso val je indicando T) v= 10, Ty=%-2=24 =o 594 , T= (104244464 1aaja T= 150-6 =H lo =0; Ay = 10~ 4=56 b pans, Ar.26 wi a's Dae en (0484224 44)/4 ~ 19.5 A, = 50-6 = 4 sd esempio . in quanto nto che il tempo Possiamo facilmente q dipendenti medio di ledurre che sia il tempo medi ! e iol pranmpletamento di processi che & eo CPU-bound risultane forte” ) ne tende a produrre unt asst Es nig pponia i Gestione dei processi_ 69 100 Figura 2.13 Diagramma temporale con differenti tempi di arrivo. sospesi dopo aver attivato trasferimenti di I/O in attesa che tali trasferimenti siano completati. Quando cid avviene, i processi //O-bound vengono riattivati ed entrano nella coda dei processi pronti in attesa della CPU (e da questo momento tutti i dispo- sitivi di VO sono inutilizzati). Al termine del suo periodo di esecuzione, il proceso P» attiva, a sua volta, un trasferimento e si sospende. Quindi tutti i processi /O- bound possono riprendere, uno alla volta, la loro esecuzione attivando nuovi trasfe- rimenti e sospendendosi di nuovo. Inizia cosi un intervallo durante il quale é la CPU aessere inutilizzata. Alla fine di questo intervallo il fenomeno si ripete cosi via. In pratica I’algoritmo FCFS é adatto soltanto per sistemi batch. E del tutto inadat- to per sistemi time-sharing in quanto non garantisce buone prestazioni in presenza di processi interattivi, Ancora peggiore sarebbe il suo comportamento nel caso di si- stemi in tempo reale dove I’estrema aleatorieti, messa prima in evidenza, previene ‘qualunque tipo di garanzia sul rispetto dei vincoli temporali dei processi. 2.9.2 Shortest-Job-| st (SIF) ‘Anche questo algoritmo é di tipo senza revoca e funziona nell'ipotesi in cui sia co- nosciuto il tempo di CPU (CPU burst) richiesto da un processo quando lo stesso en- tra nella coda dei processi pronti. Disponendo di tali informazioni, l'algoritmo asse- gna la CPU al processo che richiede il minor tempo di esecuzione fra tutti quelli pre- senti nella coda dei processi pronti. Nel caso in cui due processi richiedano lo stesso tempo, fra questi viene adottato, in subordine, il criterio FCFS. ‘Seguendo questo criterio, e facendo ancora riferimento ai processi Po,... Ps con le caratteristiche temporali riportate in Tabella 2.1, alla fine dell’esecuzione del pro- e850 Po, e cioé al tempo 10, la schedulazione dei processi risulterebbe quella indica- ta in Figura 2.14. Questa & del tutto equivalente, a parte i tempi di artivo dei processi, a quella ri- portata in Figura 2.13 e, quindi, a quella che fornisce i migliori risultati sia per quan- to riguarda il tempo di completamento sia per il tempo di attesa e cid indipendente- mente dagli istanti in cui ciascun processo entra nella coda dei processi pronti Si puo facilmente dimostrare che questo algoritmo é ottimo nel senso che mini- mizza il tempo medio di attesa dei processi. Infatti, eseguendo per primi i processi che richiedono minor tempo di CPU si riduce il tempo di attesa di questi ultimi pit i quanto si allunghi il tempo di attesa dei processi CPU-bound. L'inconveniente di questo algoritmo é che la sua implementazione richiede la co- 70 Capitolo 2 150 0246 0 26 30 Figura 2.14 Esempio di schedulazione SJF. noscenza dei tempi di esecuzione dei processi, dati questi che non Sono noti a priori ¢ Per i quali si pud ricorrere a una stima. Per esempio, il CPU burst di un processo viene stimato come media esponenziale dei valori misurati nei precedenti intervalli di esecuzione e cioé in modo tale che il valore di un precedente intervallo pesi nella stima tanto meno quanto piii é veechio. Una regola che rispetta questo criterio é la Seguente: indicando con 1, la durata dell’intervallo Nesimos CON S,, la sua stima e con a un fattore compreso tra zero e uno: Sns1 =a ty +(1—a)s, Espandendo questa relazione si pud notare come i valori NO un peso tanto minore quanto pili sono vecchi: Sne1 =Gt +(1 dei singoli intervalli abbia- 4) tat Hot (La) ty tet (1 a)"*! Se il fattore a fosse uguale a zero si avrebbe sy.) = $0 Cio€ tutte le stime sarebbero uguali alla stima iniziale. Se, al contrario, il fattore a fosse uguale a uno si avrebbe Sut = tn cioé la stima coinciderebbe col valote dell'ultimo intervallo. In genere si assume un valore di a pari a 1/2. ee Passiamo adesso a esaminare alcuni fra i pid oti algoritmi di tipo con revoca So. 2.9.3 Shortest-Remaining-Time-First (SRTF) west algortmo rappresenta la versione con revoca del ae aeeevoeabilité della CPU implica la seyucen Variazione niet ae - se durante I'esecurion di un processo Penta nella coda dare oct m0 vo processoO che ichede un tenpo di eseuzione interne een Gren an mT corabisogno per trminae i suo intervalo di eccuzione aan ett rponato in coda ponte la CPU viene inmedatamene igo vpnire 1a differenca tra gli algorimi SIF e SRTo . Processo Q. Per fille due schedulazioni dei processi caratterizzati da TF esaminiamo i diagram relativ! ue 2 " Parametri temporali indicat in Tabella 2.2. _Durata del CPU burst 2 50 24 6 P, i 2 16 = 9! amvo e diverse durate Di ee

Potrebbero piacerti anche