prof. Nunzio Brugaletta

atapSO

EnneBi – Computer Science
AvantiIndietroInizio




Politiche di scheduling

Con questo termine si intende la strategia usata dal kernel per assegnare la risorsa CPU ai vari processi.

Un sistema di tipo time sharing deve gestire le risorse in modo tale da dare l'impressione che i processi di tutti gli utenti procedano simultaneamente. I processi si devono alternare in modo rapido, ma deve essere considerato anche che la sospensione di un processo e l'avvio di un altro richiede, da parte del sistema, un certo lavoro che non deve influire in maniera eccessiva, in calcolo percentuale, sul tempo macchina complessivo, altrimenti il sistema impiegherebbe pi¨ tempo per la sua manutenzione che per i processi utente e questo, per ovvi motivi, non pu˛ essere accettabile: ci sarebbe un eccessivo overhead. Pu˛ essere inoltre opportuno rendere prioritari alcuni processi di particolare importanza o che accedono a strutture molto utilizzate per evitare code di processi in attesa. Bisogna inoltre fare in modo che tutti i processi possano ottenere la CPU senza essere scavalcati continuamente da processi pi¨ importanti.

Il sistema di gestione dell'attribuzione della risorsa CPU si basa sulla prioritÓ di un processo che Ŕ un numero conservato nella sua process table area. Tale prioritÓ varia in continuazione nel corso della vita di un processo: ad un numero piccolo corrisponde un'alta prioritÓ, a un numero pi¨ grande corrisponde una prioritÓ pi¨ bassa. La prioritÓ di un processo che usa molto la CPU tende a diminuire, quella di un processo che impiega molto tempo in attesa tende invece ad aumentare. Tutto ci˛ per non penalizzare in modo eccessivo, per esempio, i processi che eseguono molte operazioni di I/O nei confronti di quelli che ne eseguono di meno.

Un elaboratore Ŕ dotato del clock, un meccanismo hardware che genera di tanto in tanto delle interruzioni: il processo attualmente in esecuzione viene sospeso per effettuare alcune procedure di manutenzione del sistema, fra cui il calcolo della prioritÓ dei processi. Il calcolo tiene conto di una stima dell'utilizzo della CPU da parte dei processi con un fattore correttivo (nice) che pu˛ essere utilizzato dall'utente per influenzare le procedure per il calcolo della prioritÓ. Chiaramente l'obiettivo del fattore nice non Ŕ quello di attribuire in modo esclusivo le risorse ad un solo processo, ma fare avanzare pi¨ rapidamente un processo rispetto ad un altro.

Vi sono due politiche di gestione dello scheduling che vengono eseguite periodicamente a intervalli regolari:

  1. Schedcpu. Ricalcola la stima dell'utilizzo della CPU per tutti i processi. Se la prioritÓ di qualche processo Ŕ diventata maggiore di quella del processo corrente, segnala la necessitÓ di interrompere il processo corrente che avrÓ prioritÓ pi¨ bassa e sarÓ rimpiazzato da quello con pi¨ alta prioritÓ.

  2. Roundrobin. Eseguita con frequenza maggiore rispetto alla prima, cerca di vedere se c'Ŕ necessitÓ di una sostituzione del processo corrente. Tale sostituzione avviene effettivamente se c'Ŕ in coda un processo con prioritÓ almeno uguale a quella del processo corrente.




AvantiIndietro - Inizio

http://ennebi.solira.org

ennebi@solira.org