SISTEMI&OPERATIVI& AA&2012&/&2013& SCHEDULING+ DELLA+CPU+ Obie2vi+» Introduzione&allo&scheduling&della&CPU& AspeCo&fondamentale&dei&sistemi&operaFvi& mulfprogrammaf&» Algoritmi&di&scheduling&della&CPU&» Criteri&per&la&scelta°li&algoritmi&di&scheduling& della&cpu&per&parfcolari&sistemi& 2&
3& Alternanza+di+operazioni+della+ CPU+e+di+operazioni+di+I/O+ CPU burst I/O burst CPU burst I/O burst CPU burst I/O burst» L esecuzione&di&un& processo&è&una& alternanza&di&cpu$ burst&e&i/o$burst&» Durante&gli&I/O$burst& di&un&processo&la& CPU&è&inaLva& Possiamo& assegnare&alla&cpu& un&processo& pronto$ &scheduling+cpu& 4&
Durata+delle+sequenze+di+ operazioni+della+cpu+» Processi&CPU&bound& Pochi&CPU&burst&molto&lunghi&» Processi&I/O&bound& MolF&CPU&burst&di&breve&durata& 5& Scheduler+della+CPU+» Quando&la&CPU&è&inaLva&lo&scheduler&della&CPU& seleziona&un&processo&dalla&coda&dei&processi& pronf& La&coda&non&necessariamente&è&gesFta&con&poliFca& FIFO& Gli&elemenF&della&coda&sono&i&PCB&dei&processi& 6&
A2vazione+dello+ scheduling+» Lo&scheduling&si&aLva&quando& Un&processo&passa&dallo&stato&running&allo&stato& blocked&(i/o,&wait(),&ecc.)& Un&processo&passa&dallo&stato&running&allo&stato& ready$ Un&processo&passa&dallo&stato&blocked&allo&stato& ready&(completamento&i/o,&ecc.)& Terminazione&di&un&processo$ 7& Scheduling+con+o+senza+ prelazione+» Se&lo&scheduling&si$a9va$solo&al& passaggio&dallo&stato&running&allo&stato&blocked$ termine&di&un&processo& &allora&è&senza+prelazione&(nondpreempfve)&o& cooperafvo&» Se&lo&scheduling&si$a9va$anche&al& passaggio&dallo&stato&running&allo&stato&ready$ passaggio&dallo&stato&blocked&allo&stato&ready& &allora&è&con+prelazione&(preempfve)& 8&
Prelazione+» Il&sistema&operaFvo&può&far&rilasciare&la&CPU&ad& un&processo&per&consenfre&l avanzamento&di&un& altro&processo&» Cosa&succede&se&la&prelazione&avviene&& durante&una&chiamata&al&sistema& durante&l esecuzione&di&processi&cooperanf&che& elaborano&daf&condivisi& &Windows&3.x&e&Macintosh&fino&a&System&9&effeCuano& scheduling&senza&prelazione&& 9& Prelazione,+chiamate+di+ sistema+e+interruzioni+» Durante&l esecuzione&di&chiamate&al&sistema,&la& prelazione&può&essere&ritardata&» Durante&l esecuzione&di&interruzioni,&altre& interruzioni&potrebbero&essere&disabilitate& & &QuesF&meccanismi&non&sono&adaL&nel&caso&di& sistemi&real<=me&e&di&mul=elaborazione& 10&
Dispatcher+» Modulo&del&sistema&operaFvo&che&effeCua& Cambio&di&contesto& Passaggio&alla&modalità&utente& Salto&alla&istruzione&correCa&del&programma& 11& 12&
Criteri+relaFvi+alle+ prestazioni+del+sistema+» UFlizzo&del&processore& Percentuale&di&tempo&in&cui&il&processore&è&occupato&» Throughput& Numero&di&processi&completaF&per&unità&di&tempo& 13& Criteri+orientaF+all utente+++» Tempo&di&turnaround& Tempo&trascorso&fra&l avvio&di&un&processo&e&il&suo& completamento& Somma&di:&tempo$di$a@esa$ingresso$in$memoria,$ tempo$nella$coda$ready,$tempo$cpu$e$tempo$i/o&» Tempo&di&aCesa& Somma°li&intervalli&di&tempo&nella&coda&ready&» Tempo&di&risposta& Tempo&trascorso&fra&una&richiesta&e&la&relaFva& risposta&in&sistemi&interalvi& 14&
Altri+criteri+orientaF+ all utente+» Prevedibilità& I&tempi&di&risposta&medi&dovrebbero&essere&sempre& gli&stessi&& &Si&può&oCenere&cercando&di&ridurne&la&varianza$ & &Gli&algoritmi&di&scheduling&sviluppaF&non& tengono&conto&di&questo&aspeco& 15& 16&
Confronto+degli+algoritmi+» Esempi&con&insiemi&di&processi&nella&coda&ready& con&relafvi&cpu&burst&» Prestazioni&misurate&in&termini&di&tempo$medio$ di$a@esa& In&molF&tesF&si&misura&il&tempo&di&turnaround$ considerando&la&somma&di&cpu&burst&e&tempo&medio& di&acesa& 17& First+Come,+First+Served+ (FCFS)+» I&processi&vengono&eseguiF&nello&stesso&ordine& con&cui&entrano&nella&coda&dei&processi&pronf&» Algoritmo&di&semplice&implementazione&» Il&tempo&di&aCesa&di&un&processo&dipende&dalla& durata&dei&processi&che&lo&precedono&nella&coda& Analogia&con&la&coda&alla&cassa&di&un&supermercato,& di&una&banca,&di&un&ufficio,&ecc.& 18&
Esempio+tempi+di+aMesa+ FCFS+ Processo CPU burst P 1 24 P 2 3 P 3 3» Se&i&processi&arrivano&nella&sequenza&& P 1 &P 2 &P 3 & P 2 &acende&24&ms&e&p 3 &acende&27&ms& &Tempo&medio&di&aCesa&17&ms& 19& Esempio+tempi+di+aMesa+ FCFS+ Processo CPU burst P 1 24 P 2 3 P 3 3» Se&i&processi&arrivano&nella&sequenza&& P 2 &P 3 &P 1 & P 3 &acende&3&ms&e&p 1 &acende&6&ms& Tempo&medio&di&aCesa&3&ms& 20&
Prestazioni+FCFS+» I&processi& CPU/bound sono&favorif& I&processi& I/O&bound devono&acendere&il& completamento&dei&processi& CPU/bound &» Basso&overhead&per&l esecuzione&dell algoritmo&» Non&si&ha&prelazione& InadaCo&per&sistemi&=me$sharing& 21& Shortest+Job+First+(SJF)+» L algoritmo&seleziona&il&processo&nella&coda&con& il&tempo&di&esecuzione&minore& shortest$next$cpu$burst& Processo CPU burst P 1 6 P 2 8 P 3 7 P 4 3 Tempo medio di attesa SJF 7 ms FCFS 10.25 ms 22&
Prestazioni+SJF+» Alto&throughput&» OLmale&rispeCo&al&tempo&medio$di&risposta& Ma&variabilità&elevata!& I&processi&più&lunghi&sono&penalizzaF&» Difficoltà&e&costo&computazionale&della&sFma& del&cpu&burst&successivo$ SJF&è&uFlizzato&in&scheduling&a&lungo&termine&per& elaborazione&batch& + Gli&utenF&indicano&il&tempo&max&di&esecuzione& 23& Predizione+CPU+burst+ τ i = α t i + (1 - α) τ i-1 Nell esempio α = 1/2 τ 0 = 10 24&
SJF+con+prelazione+ shortest'remaining'-me'first+» Un&processo&in&esecuzione&viene&prelazionato& se&il&cpu&burst&rimanente&è&maggiore&di&quello& di&un&nuovo&processo&aggiunto&alla&coda&ready& Processo Istante di arrivo CPU burst P 1 0 8 P 2 1 4 P 3 2 9 P 4 3 5 Tempo medio di attesa SJF con prel 6.5 ms SJF 7.75 ms 25& Scheduling+per+priorità+ Processo CPU burst Priorità P 1 10 3 P 2 1 1 P 3 2 4 P 4 1 5 P 5 5 2» Priorità&più&alta:&valore&0& Può essere con o senza prelazione Tempo medio di attesa 8.2 ms 26&
Definizione+del+valore+di+ priorità+» Interno& CPU&burst,&I/O&burst,&tempo&di&aCesa,&risorse& richieste,&file&aperf,&ecc.&» Esterno& Dipende&da&chi&ha&avviato&il&processo&» Pericolo&di&starva=on& Se&la&priorità&non&Fene&conto&del&tempo&di&aCesa& 27& Round'Robin' &Scheduling&circolare&» Ogni&processo&viene&assegnato&al&processore& per&un&quanto+di+tempo+» Se&CPU&burst&>&quanto&di&tempo& il&processo&viene&prelazionato&e&inserito&nella&coda& ready$» Tempi&medi&di&completamento&(turnoaround)& variabili&rispeco&al&valore&del&quanto$di$tempo&» Ideato&per&sistemi&interaLvi&=me<sharing& 28&
Esempio+Round'Robin+ Processo CPU burst P 1 24 P 2 3 P 3 3» Quanto&di&tempo&q&=&4ms& &Tempo$medio$di$a@esa$5.66$ms$ 29& Durata+del+quanto+di+tempo+ e+cambi+di+contesto+ 30&
Durata+del+quanto+di+tempo+ e+tempo+di+completamento++ Empiricamente 80% dei processi deve avere CPU burst di durata inferiore al quanto di tempo 31& Scheduling+a+code+mulFple+ All interno di ciascuna coda si usa l algoritmo più appropriato. 32&
Code+mulFple+con+ retroazione+ Ingresso coda ready Fine CPU burst CPU burst residuo Fine CPU burst CPU burst residuo Fine CPU burst 33& 34&
Dispatch+di+Solaris++ per+i+thread+intera2vi++ 35& Scheduling+di+Solaris+ 36&
Priorità+di+Windows+XP+ 37& Priorità+e+lunghezza+del+ quanto+di+tempo+in+linux+ 38&
39& Scheduling+dei+thread+» Modello&molF/a/molF&e&modello&molF/a/uno& Process<conten=on$scope$PCS& La&libreria&dei&thread&pianifica&l esecuzione&di&uno& dei&thread&a&livello&utente&e&lo&associa&a&un&lwp& System<conten=on$scope$SCS& La&pianificazione&dell esecuzione&dei&thread&a&livello& kernel&avviene&a&livello&globale&di&sistema&» Modello&uno/a/uno& Solo&SCS& & 40&
41& Soluzioni+di+scheduling+» Due&configurazioni& MulFelaborazione&asimmetrica& + Un&processore&è&il&master&che&esegue&il&sistema& operafvo,&mentre&gli&altri&processori&eseguono&solo& codice&utente& SMP&/&symmetric$mul=processing$ + Ciascun&processore&ha&uno&scheduler&che&seleziona& dalla&coda&il&processo&da&eseguire& Unica&coda&per&tuL&i&processori& Code&disFnte&per&ciascun&processore&(soluzione&più& diffusa)& 42&
Processor'affinity+» È&l assegnazione&permanente&di&un&processo&al& processore& La&migrazione&di&un&processo&da&un&processore&a&un& altro&implica&il&trasferimento&dei&daf&della&cache&& $SoI$affinity$ Il&sistema&operaFvo&non&garanFsce&il&mantenimento& di&un&processo&su&un&processore& $Hard$affinity& Il&sistema&operaFvo&garanFsce&la&proprietà& 43& NUMA+e+processor'affinity+ 44&
Bilanciamento+del+carico+» Il&sistema&operaFvo&può&verificare&che&il&carico& sia&distribuito&fra&tul&i&processori& Push$migra=on$ un&processo&controlla&il&carico&e&forza&la&migrazione& dei&processi&per&riequilibrio& Pull$migra=on$ un&processore&inalvo&socrae&un&processo&a&un& processore&sovraccarico& 45& Processori+mulFcore+» Evoluzione&dei&sistemi&mulFprocessore&» Ostacolo&all efficienza:&acesa&di&daf&dalla& memoria&(stallo$della$memoria)& 46&
Sistema+mulFcore+e+ mulfthread+» Thread$hardware$ consentono&di&alternare&l esecuzione&di& sequenze&di&istruzioni&di&thread&diversi& Il&sistema&operaFvo&vede&un&thread&hardware&come& un&processore&logico& &ad&es.,&con&due&core&e&due&thread&hardware&per&core& il&s.o.&vede&quacro&processori&logici& 47& MulFthreading+» Coarse<grain$mul=threading$ Un&thread&è&in&esecuzione&nel&processore&fino&al& verificarsi&di&un&evento&a&lunga&latenza& Il&cambio&di&thread&richiede&lo&svuotamento&della& pipeline&» Fine<grain$mul=threading$ Il&cambio&fra&thread&può&avvenire&anche&al&termine&di& un&ciclo&di&istruzione& è&necessaria&una&logica&dedicata$ 48&
Scheduling+in+sistemi+ mulfthreading+» A&livello&di&sistema&operaFvo& Scheduling&dei&thread&soqware&e&dei&processi&» A&livello&di&processore& Scheduling&dei&thread&hardware& 49& Virtualizzazione+e+ scheduling+» Algoritmo&di&scheduling&nel&sistema&operaFvo& della&macchina&virtuale&» Algoritmo&di&scheduling&della&CPU&fisica&da& parte&del&sistema&operafvo&ospitante&o& dell hypervisor& & &L esito&della&combinazione&di&quesf&due&livelli& dipende&dalla&tecnica&di&virtualizzazione& 50&
51& Modello+determinisFco+» Dato&un&insieme&di&processi&in&coda,&determinare&il& tempo&medio&di&acesa&(o&il&tempo&medio&di&turnaround)& per&ciascuno&dei&seguenf&algoritmi&di&scheduling& FCFS,&SJF&e&RR&(q&=&10&ms)& Processo CPU burst P 1 10 P 2 29 P 3 3 P 4 7 P 5 12 52&
ReF+di+code+» Modello&matemaFco& Coda&dei&processi&pronF& Code&di&I/O& Distribuzione&sequenze&istruzioni&CPU& Distribuzione&istanF&di&arrivo&processi&nel&sistema& 53& Simulazione+ 54&
Realizzazione+» Si&realizzano&diverse&versioni&del&sistema& operafvo&con&diversi&algoritmi&di&scheduling& 55&