|
Appunti informatica |
|
Visite: 2327 | Gradito: | [ Picolo appunti ] |
Leggi anche appunti:Dispositivi di memoriaDispositivi di memoria I sistemi di calcolo possono immagazzinare dati in Dispositivo TappoDispositivo Tappo La funzione di questo dispositivo e di rispedire in modo opportuno, Il computerIL COMPUTER ll personal computer (in italiano elaboratore personale), |
La Gestione del Processore
La gestione del processore è il livello che viene richiamato con più frequenza. E' formato dai seguenti moduli:
Job Scheduler;
Process Scheduler;
Traffic Controller
job scheduler
In questo schema il job scheduler si occupa della gestione dei jobs, definendo quelli che possono accedere alle risorse del sistema che, passando nello stato di pronto, vanno sotto il controllo del process scheduler, scegliendo quale tra questi può utilizzare il processore. Il fattore predominante per la gestione dello scheduling (che è la gestione del processore) è il tempo; si hanno perciò 3 classi di scheduling:
Short Term Scheduling: è riferito ad operazioni di brevissima durata per la gestione della CPU da parte del process scheduler.
Medium Term Scheduling: le operazioni che si vogliono gestire hanno durata media (come quelle del job scheduler che sono meno frequenti ma più lunghe).
Long Term Scheduling: siamo ad un livello ancora più alto, quando siamo ancora nella fase di sottomissione dei job, dove un programma è in attesa di essere prescelto dal job scheduler.
Con questo tipo di classificazione si cerca di fare in modo che nello scheduling a breve termine i processi che richiedono il processore attendano il meno possibile, mentre in quello a lungo termine si cerca di utilizzare al meglio la risorsa.
Il Job Scheduler
Il job scheduler occupa di assegnare le risorse del sistema ai jobs. Per mantenere la traccia del job deve esserci una tabella per ogni job (Job Control Block).
Job ID |
Stato corrente |
Priorità |
Tempo prev |
|
|
L'insieme di queste tabelle costituisce la coda in stato di acquisizione. Esistono varie strategie per far passare i jobs dallo stato di acquisizione a quello di pronto; per scegliere il più ottimizzato si cerca la strategia che minimizzi il tempo medio di acquisizione (ATT).
Ti = Istante di arrivo - istante finale
Strategia FIFO: i jobs vengono eseguiti nell'ordine in cui arrivano.
Strategia Shortest Job First: viene mandato in esecuzione il primo job arrivato. Successivamente vanno in esecuzione gli altri job partendo da quello con tempo di esecuzione previsto più corto.
Strategia Future Knowledge: è utilizzabile se si conoscono a priori i jobs che si presenteranno. Bisogna però lasciare inutilizzata la risorsa per una frazione di tempo iniziale, attendendo un job che faccia abbassare il tempo medio di esecuzione.
Quest'ultima tecnica è quella che consente di avere un ATT più basso, ma non è sempre possibile conoscere la sequenza dei jobs da eseguire.
Process Scheduler
Il process scheduler gestisce l'insieme dei programmi che possono utilizzare la cpu. In base alla strategia di allocazione decide a chi e per quanto tempo assegnare il processore.
Per fare questa gestione ogni processo è definito da una Process Control Block (PCB).
Process ID |
Stato corrente |
Priorità |
Copia registri attivi |
Puntatore lista processi |
|
L'insieme delle PCB che si trova nello stato di pronto si chiama ready list. Altre liste di attesa si trovano per gli altri stati.
In base alla strategia di assegnazione del processore, il process scheduler deciderà come gestire queste liste. Le tecniche di assegnazione sono le seguenti:
FCFS (First Came First Server) : ogni processo mantiene il possesso del processore per un tempo predefinito(Time Slice). Se il processo non viene terminato, viene inserito nella coda.
Round Robin: questa tecnica prevede che la Ready List sia gestita in modo FIFO, ad ogni processo viene assegnato un turno di CPU uguale per tutti;
Inverso del Time Slice Residuo: è una variante della precedente tecnica. Il primo giro di assegnazione è fatto secondo la tecnica del Round Robin. Successivamente i processi vengono inseriti nella lista in attesa in ordine inverso rispetto al tempo di CPU inutilizzato. Con questa tecnica si da priorità maggiore ai processi che utilizzano poco il processore.
Priorità definita: questa tecnica è realizzabile se si conoscono a priori le priorità dei processi, che vengono inseriti nella ready list secondo la propria priorità. Una variante consiste nel definire tante code quanti sono i livelli di priorità, gestendo ogni coda tramite tecnica FCFS, oppure Round Robin. Il problema di questa tecnica è lo starvation ( attesa infinità dei processi a bassa priorità )
Shortest Elapsed Time: è una organizzazione multilista. I processi che arrivano nello stato di pronto vengono inseriti subito nella coda a priorità maggiore. Ottengono perciò la CPU entro breve tempo e, se prima della fine del time slice terminano il loro lavoro, escono dalla struttura, altrimenti vengono inseriti nella coda con livello di priorità immediatamente inferiore.
Appunti su: gestione del processore riassunto, |
|