Scheduler: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
c'è ancora molto da sistemare
m Sostituito "a sua volta" con "a loro volta", in quanto ci si riferisce ai "criteri"
Riga 16:
 
===''Scheduler'' a breve termine del processore (''dispatcher'')===
È un componente fondamentale dei [[Sistema operativo|sistemi operativi]] [[multitasking|multiprocesso]], 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 sualoro volta attraverso vari tipi di algoritmi di scheduling.
 
Generalmente infatti [[computer]] con un [[processore]] sono in grado di eseguire un programmaprocesso per volta, quindi per poter far convivere più task è necessario usare uno ''scheduler''. Nel dettaglio lo scheduler si occupa di farefar avanzare un processo interrompendone temporaneamente un altro, realizzando così una [[commutazione di contesto]] all'interno del [[ciclo del processore]]. Esistono vari [[algoritmo|algoritmi]] di ''scheduling'' che permettono di scegliere nella maniera più efficiente possibile quale task far proseguire: ad esempio il [[kernel]] [[linux]] nella versione 2.4 ha uno scheduler [[teoria della complessità algoritmica|O(n)]], mentre dalla versione 2.6 ha un algoritmo di complessità [[teoria della complessità algoritmica|O(1)]], ossia in grado di determinare in un tempo costante quale processo debba essere eseguito, indipendentemente dal numero di processi in attesa.
 
Ci sono vari modelli di schedulazione: