Ominide 16 punti
Questo appunto contiene un allegato
Schedulazione dei processi scaricato 1 volte

Schedulazione dei processi

La componente del S.O. che opera i cambiamenti di stato di un processo è schedulatore. Lo schedulatore implementa le politiche di gestione dei processi. Ci sono diversi tipi di schedulazione che sono eseguite con frequenza crescente passando dalla schedulazione a lungo termine, a quello a medio termine per finire a quella a breve termine.


Una buona politica di schedulazione mira a;
• Massimizzare la percentuale di utilizzo della CPU.
• Massimizzare il throughput (Portata, capacità di lavorazione) del sistema. Il throughput è misurato come il numero di processi completati nell’unità di tempo.
• Minimizzare il sovraccarico del processore.
• Minimizzare il tempo di turnaround. Il tempo di turnaround(Tempo di circolazione) è il tempo che passa tra la sottomissione di un processo e la sua fine.
• Minimizzare il tempo di risposta dei processi interattivi. È il tempo impiegato dal processo a fornire il primo output.

• Prevenire la situazione di starvation(inedia). È la situazione per la quale un processo non viene mai eseguito. Anche i processi a bassa prioritò prima o poi devono essere completati.

Algoritmi di Schedulazione


Gli Algoritmi di schedulazione possono essere classificati secondo due categorie:
Schedulazione senza perialascio (non preemptive scheduling), cioè un processo running non può essere interrotto durante l’esecuzione. Dopo aver ottenuto il processore, il processo prosegue nell’esecuzione sino alla fine o sino a quando si interrompe per fare un’operazione di Input/Output o per un’altra ragione.
Schedulazione con prerilascio (preemptive scheduling), cioè un processo running può essere interrotto e portato nello stesso ready per lasciare il post ad adltri processi. Questo avviene sia per l’arrivo di un nuovo processo ad elevata priorità, sia per l’intervento dell’orologio di sistema (TIMER) allo scadere del quanto di tempo assegnato a un processo.

Schedulazione FCFS


FCFS (First come First Served, primo arrivato primo servito) è una politica di schedulazione senza prerilascio, secondo la quale i processi sono eseguiti nell’ordine di arrivo.


Un nuovo processo è inserito in una coda di processi ready gestita in modalità FIFO (FIRST IN FIRST OUT). Quando un processo ottiene la CPU continua nell’esecuzione sino alla fine o finchè si deve fermrare in attesa di un evento. L’evento atteso, quando si presenta, causa il trasferimento di un proesso dalla coda dei processi waiting nella coda dei processi ready.
Questo tipo di schedulazione usa l’ordine di arrivo come unico criterio per scegliere il processo da eseguire. Le conseguenze sono:

o Se un processo molto breve arriva subito dopo una serie di processi lunghi, attenderà molto tempo prima di essere eseguito.
o Discrimina i processi I/O band perché i CPU BOUND occupano la CPU. (P1,P2,P3,P4).

Schedulazione a priorità


o Ci sono 2 situazioni che possono causare il prerilascio del processo in esecuzione:

o Quando arriva un nuovo processo a priorità più elevate
o Quando un evento causa lo spostamento di un processo a prirità più elevata dalla coda dei processi waiting a quella dei processi ready

La priorità dei processi è controllata ogni volta che la coda dei processi ready viene aggiornata.

Schedulazione Round Robin


L’uso delle priorità porta a ritenere che ci siamo processi più importanti di altre. La schedulazione Round Robin, all’opposto, considera tutti i processi egualmente importanti.
Il Round Robin è un algoritmo di schedulazione primo arrivato – primo servito con prerilascio, tipico dei sistemi time sharing. È definito un’intervallo di temporale indicato con il termine di quantum oppure time slice, che rappresenta la quantità massima di tempo di CPU concessa a un processo. Se il processo non rilascia la CPU entro questo tempo, è interrotto e posto in coda fra i processi ready.
Hai bisogno di aiuto in Informatica?
Trova il tuo insegnante su Skuola.net | Ripetizioni
Registrati via email