Nei sistemi multitasking, la schedulazione ha il compito di gestire la turnazione dei processi sul processore in base a delle politiche. Lo scheduler della CPU ordina la lista dei processi, ponendo in prima posizione quello che il dispatcher manderá in esecuzione.
Attivazione dello schedulatore
- Senza Preemption (prelazione): la cpu viene assegnata ad un processo finché questo non lo rilascia esplicitamente o si mette in attesa di un evento / periferica.
Attivazione é sincrona.
- Con Preemption (prelazione): Il sistema puó anche forzare il rilascio della cpu assegnata ad un processo. L’attivazione é asincrona.
Scelta di Algoritmi di schedulazione
Per valutare la bontá di un algoritmo di schedulazione, bisogna tenere conto dei seguenti criteri:
- Sfruttamento della CPU
- Throughtput: quanti processi vengono completati in un’unitá di tempo.
- Tempo di tournaround: il tempo che passa dal momento in cui un processo entra nel sistema, fino alla sua terminazione, tenendo conto del tempo speso anche in coda d’attesa.
- Tempo di attesa
- Tempo di risposta
Valutazione di un Algoritmo di schedulazione
Per valutare la bontá di un algoritmo di schedulazione dobbiamo procedere nei seguenti modi:
Valutazione Analitica
Si definisce in modo matematico le prestazioni di un algoritmo in base al carico di lavoro prestabilito.
Veloce e preciso, ma non generalizzabile, il carico di lavoro non é costante.
Valutazione Statistica
La valutazione statistica permette di avere dei risultati con un grado di incertezza associato.