1 Mattia Dip. di Informatica e Comunicazione Universita degli Studi di Milano, Italia batch real-time Lezione VII: Lo scheduling dei processi nei sistemi real time batch real-time mattia.monga@unimi.it a.a. 2008/09 1 c 2009 M.. Creative Commons Attribuzione-Condividi allo stesso modo 2.5 Italia License. http://creativecommons.org/licenses/by-sa/2.5/it/. Immagini tratte da [?] e da Wikipedia. 1 148 preemptive (Shortest Remaining Time) FCFS vs. Example Processo T. di arrivo Burst P 1 0 7 P 2 2 4 P 3 4 1 P 4 5 4 Tempo di attesa totale P 1 = 9; P 2 = 1; P 3 = 0; P 4 = 2 batch real-time Dati n processi con lo stesso tempo di arrivo e tempo di esecuzione a i, il primo processo non aspetta e il processo i-esimo (i = f2; : : : ; ng) dovra aspettare a 1 + a 2 + + a i 1 T = [a 1 + (a 1 + a 2 ) + (a 1 + a 2 + a 3 ) + + a n 1]=n = [(n 1)a 1 + (n 2)a 2 + + a n 1]=n batch real-time Average waiting time (9 + 1 + 0 + 2)=4 = 3:00 T risulta minimo quando a 1 < a 2 < < a n Average turnaround (16 + 5 + 1 + 6)=4 = 7:00 Average response time (0 + 0 + 0 + 2)=4 = 0:50 149 150
a priorita Problemi delle priorita e un caso speciale di scheduling con priorita in la priorita e l'inverso della lunghezza stimata invece si puo assegnare una priorita (statica o dinamica) ad ogni processo con altri criteri batch real-time Problema: la starvation dei processi a bassa priorita (rimangono aamati di CPU) Una soluzione e l'introduzione di politiche di aging (invecchiamento) La priorita assegnata ad un processo varia nel tempo in funzione della sua permanenza nel sistema e del tempo di CPU consumato batch real-time 151 152 Round robin Il quanto circolare (round ribbon erano le petizioni in cui le rme si mettono secondo uno schema circolare, per non avere primi rmatari) Preemptive Ad ogni processo in attesa di esecuzione viene assegnato un intervallo di tempo detto quanto Terminato il quanto, il processo, se non ha terminato la sua esecuzione, viene rimesso in coda batch real-time Problema: la dimensione del quanto di tempo Per ogni quanto c'e \tempo sprecato" per il context switch quanto di tempo troppo breve: scarsa ecienza della CPU lavoro utile vs. overhead Quanto di tempo troppo lungo: degenera in FCFS degenerano le prestazioni Quanto di tempo poco piu lungo del CPU burst la prelazione diventa piu rara, migliorando le prestazioni batch real-time Normalmente il quanto e di 20-50ms 153 154
Example Processo T. di arrivo Burst P 1 0 53 P 2 0 17 P 3 0 68 P 4 0 24 Tempo di attesa totale P 1 = 81; P 2 = 20; P 3 = 94; P 4 = 97 Average waiting time (81 + 20 + 94 + 97)=4 = 73:00 Average turnaround (134 + 37 + 162 + 121)=4 = 113:50 Average response time (0 + 20 + 37 + 57)=4 = 28:50 batch real-time batch real-time 155 156 a code multiple batch real-time Due code separate 1 foreground 2 background Due algoritmi separati 1 foreground: 2 background: FCFS fra le code fg-bg; time slice 80% fg, 20% bg batch real-time 157 158
con feedback real time batch real-time La correttezza del sistema non dipende solo dall'output dei singoli processi, ma anche dagli istanti di tempo in cui tali output sono prodotti Spesso i processi reagiscono ad eventi che si vericano nel mondo esterno Gli eventi si vericano nel \tempo reale" e i processi devono essere in grado di gestirli in tempi prestabiliti batch real-time 159 160 Esempi di sist. real time Proprieta dei ss.oo. real-time Controllo di esperimenti di laboratorio per il controllo di processo Robot Controllo traco aereo Telecomunicazioni di controllo militari Automotive batch real-time Determinismo Tutte le operazioni svolte nel sistema devono essere svolte in istanti di tempo ssati e predeterminati oppure entro intervalli di tempo predeterminati L'intervallo di tempo richiesto dal s.o. per rispondere ad un'interruzione deve essere superiormente limitato batch real-time 161 162
Feature dei ss.oo. real-time scheduling Context switch molto veloce Dimensioni del sistema contenute Capacita nel rispondere molto velocemente ad interrupt esterni Multitasking con primitive di interprocess communication come semafori, signals e eventi batch real-time Informazioni usate: Ready time Starting deadline Completion deadline Processing time Resource requirements batch real-time Files in grado di memorizzare grosse quantita di dati ad alta velocita Subtask scheduler 163 164 Processi periodici Quando e possibile? Due processi, A e B che si ripetono. A viene lanciato ogni 20s, esegue 10s, deve terminare entro 20s B viene lanciato ogni 50s, esegue 25s, deve terminare entro 50s batch real-time Non sempre la schedulazione real-time e possibile. P.es. m eventi periodici L'evento i si verica con periodo P i e richiede C i secondi di CPU mx Il carico puo essere gestito solo se: i=1 C i P i 1 batch real-time 165 166
Processi schedulabili Example Si consideri un sistema soft real-time caratterizzato da tre eventi periodici rispettivamente con periodo 100, 200, 500ms Ciascuno richiede l'intervento della CPU per 50, 30, 100ms, rispettivamente E possibile ottenere uno scheduling di tali processi? 50 100 + 30 200 + 100 500 = 0:85 1 Se aggiungiamo un processo con periodo 1s, quali caratteristiche deve possedere per poter essere a sua volta schedulato? 50 100 + 30 200 + 100 500 + x 1000 1 x 150:00 batch real-time 167