Sartomiki.net

  • Aumenta dimensione caratteri
  • Dimensione caratteri predefinita
  • Diminuisci dimensione caratteri

Esempi di scheduling

E-mail Stampa PDF
Valutazione attuale: / 1
ScarsoOttimo 

Scheduling di Solaris
Lo scheduling dei processi del sistema Solaris si basa su classi di priorità. Per ogni classe sono adottati algoritmi di scheduling differenti. Ogni classe è divisa in sottoclassi (scala di priorità). Nel caso ci siano più processi che hanno la stessa priorità il sistema li gestisce per mezzo di una coda Round Robin. Le classi, in ordine di priorità, sono:
-real time, processi a priorità massima, che quindi hanno un tempo di risposta fisso.
-sistema
-tempo ripartito, è la classe di default per i processi. E' basata su un criterio di scheduling che modifica automaticamente la priorità, assegnando porzioni di tempo variabili, per mezzo di una coda multipla con retroazione. Più alta è la priorità minore è la frazione di tempo destinata al processo.
-interattiva. Utilizza gli stessi criteri della classe a tempo ripartito. A questa classe fanno parte i processi dotati di interfaccia a finestre.
-priorità fissa, introdotta da Solaris 9. E' divisa in sottoclassi, come la modalità a tempo ripartito, ma la priorità non può cambiare dinamicamente.
-quote proporzionali, introdotta da Solaris 9. Questa classe è attribuile ad un insieme di processi (progetto).
La tabella di dispatch contiene informazioni riguardanti la priorità di un processo, il quanto di tempo ad esso associato, la classe a cui passerà il processo dopo che il quanto di tempo si esaurirà e la classe a cui passerà il processo dopo un'operazione di I/O.

Scheduling di Windows XP
Come Solaris, anche Windows XP gestisce lo scheduling servendosi di un algoritmo basato su priorità e prelazione; in questo modo è possibile assicurare che i thread siano eseguiti sempre in base alla priorità. Il dispatcher, per scegliere i thread, utilizza uno schema di priorità a 32 livelli. Le priorità sono divise in due classi, più un processo di sistema a priorità 0:
-classe variabile (priorità 1-15), la priorità viene ridotta nel momento in cui il quanto di tempo associato ad un thread si esaurisce. Se un thread è rilasciato da un'operazione di attesa, la sua priorità aumenta (in questo modo vengono garantiti buoni tempi di risposta per i thread interattivi). Quando un processo viene messo in primo piano, il quanto di tempo ad esso associato aumenta.
-classe real time (priorità 16-31)
In assenza di thread da eseguire viene eseguito un thread speciale, detto idle thread.
La priorità di un thread dipende dalla priorità della classe a cui appartiene (priorità di base) e dalla priorità relativa che il thread ha all'interno della sua classe.

Scheduling di Linux
Fino alla versione 2.5, Linux usava una variante dell'algoritmo tradizionale UNIX. Esso aveva problemi per la gestione degli SMP e non era scalabile (le prestazioni peggioravano con l'aumentare dei processi). E' principalmente per questi due motivi che è stato introdotto un nuovo scheduler.
Il nuovo scheduler si basa su un algoritmo di scheduling a priorità con prelazione. Le classi sono due (numero inferiore->priorità maggiore):
-real time (priorità 0-99), i processi hanno priorità statiche.
-nice (priorità 100-140), i processi hanno priorità variabili, a seconda dell'interattività del task. A seconda del grado di interattività, il dispatcher somma o sottrae fino a 5 gradi di priorità (dipende dai tempi di attesa di I/O: i processi con tempi di attesa più brevi avranno priorità inferiori).
Linux assegna quanti di tempo maggiore per processi a priorità maggiore. La coda di esecuzione (runqueue) è gestita in modo tale da eseguire in ordine di priorità tutti i processi non scaduti (cioè che non hanno ancora terminato il proprio quanto di tempo). Nel momento in cui tutti i processi sono scaduti, si riprende dal processo a priorità maggiore. Questa tecnica è ottenuta mediante due vettori, ordinati per priorità. Nel caso di sistemi multiprocessori, le code sono separate.


blog comments powered by Disqus
 

http://sartomiki.net/modules/mod_fuofb/assets/it/find-us-on-facebook-1.png

Follow me

Amici

Chi è online

 8 visitatori online

Siti amici

Banner

Notizie flash

Da oggi avete la possibilità di commentare tutti gli articoli presenti sul sito!! Scrivete le vostre opinioni!

PUBBLICITA'