Scheduler: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica |
Nessun oggetto della modifica |
||
Riga 15:
Esistono in realtà molti requisiti che possono essere presi in considerazione, dipendenti anche dal problema specifico che lo scheduler deve gestire: esistono schedulers che si occupano di suddividere il tempo di uso del processore da parte di un processo, schedulers che gestisono richieste di lettura/scrittura da una periferica, anche gli [[memoria virtuale|algoritmi di sostituzione delle pagine]] della memoria sono da considerarsi "scheduler".
===Scheduler a breve termine del processore (Dispatcher)===
È un componente fondamentale dei [[Sistema operativo|sistemi operativi]] [[multitasking]], e sicuramente l'esempio più diffuso e critico di "scheduler". È in grado di far eseguire, al [[processore]] di un [[computer]], attraverso l'omonima operazione di scheduling, più [[processo (informatica)|processi]] (''task'') concorrentemente attraverso varie politiche di scheduling. Esso rappresenta dunque il gestore del multitasking attraverso criteri di assegnazione delle risorse di memorizzazione/elaborazione ai vari processi e implementati a sua volta attraverso vari tipi di algoritmi di scheduling.
Riga 21:
Ci sono vari modelli di schedulazione:
* Modello macchina singola
* Flow-shop (modello di Johnson)
* Algoritmo euristico di Campbell, Dudek e Smith
* Job-shop
===Scheduling della CPU===
Lo scheduling è un'operazione molto importante per il corretto ed efficiente funzionamento del calcolatore. Infatti non solo consente di eseguire più programmi concorrentemente, ma consente anche di migliorare l'utilizzo del processore. Ad esempio, quando è necessario eseguire un'operazione di I/O, il processore non può proseguire l'elaborazione del processo attualmente in esecuzione fino al completamento della stessa. Dato che le operazioni di I/O sono molto più lente del processore sarebbe un inutile spreco di risorse se il processore rimanesse bloccato fino al completamento delle stesse. Per evitare questo le operazioni di I/O vengono gestite unicamente dal [[Sistema operativo]] che, nel frattempo, assegna l'uso del processore ad un altro processo. In questo modo si massimizza l'uso delle risorse del sistema.
Riga 41:
Per analizzare gli algoritmi che verranno successivamente presentati verrà utilizzato il criterio del tempo d'attesa medio dei processi presi in considerazione.
==== Obiettivi dello scheduling ====
Un algoritmo di scheduling si pone i seguenti obiettivi:
*''Fairness'' (equità): processi dello stesso tipo devono avere trattamenti simili
|