La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Gestione del processore (Scheduler)

Presentazioni simili


Presentazione sul tema: "Gestione del processore (Scheduler)"— Transcript della presentazione:

1 Gestione del processore (Scheduler)
Il modello a processi sequenziali

2 Introduzione Nei computer attuali, ci sono molte attività attive contemporaneamente (sia di SO che di utente) es : stampa in corso + Word + cd player … Tutto il software che gira su un calcolatore è organizzato come un insieme di processi sequenziali cooperanti

3 Cos’è un processo ? Un processo è un programma in esecuzione completo del suo stato (spazio di indirizzamento, registri, file aperti…) Come si crea un processo ? Richiedendo al SO l’esecuzione di una o più chiamate di sistema Esempi di attivazione : l’invocazione di un comando, il doppio click su un’icona, il lancio di un eseguibile … inizializzazione del sistema

4 Terminazione di un processo
Un processo termina : Quando esegue una istruzione di terminazione Quando effettua una operazione illecita es. cerca di accedere alla memoria privata di altri processi Quando c’è un errore che non gli permette di proseguire (es. overflow, etc) In tutti questi casi il processore ricomincia automaticamente ad eseguire il sistema operativo

5 Stati di un processo Come si passa da uno stato all’altro ?
Bloccato (blocked) In esecuzione (running) Pronto (ready) È in attesa che venga terminata una richiesta effettuata (system call) Il processore lo sta eseguendo Può proseguire ma è in attesa che lo scheduler gli assegni il processore Come si passa da uno stato all’altro ?

6 Stati di un processo Bloccato In esecuzione Pronto Lo scheduler ha deciso di mandare in esecuzione proprio questo processo

7 Stati di un processo Bloccato In esecuzione Pronto Il processo ha eseguito una SC e il servizio non può essere completato

8 Stati di un processo Il servizio richiesto è stato completato
Bloccato In esecuzione Pronto Il servizio richiesto è stato completato es : è arrivata una interruzione dal dispositivo, ...

9 Stati di un processo Bloccato In esecuzione Pronto Lo scheduler ha deciso di assegnare il processore ad un altro processo

10 Stati di un processo Bloccato In esecuzione Pronto Le altre due transizioni tipicamente non hanno senso

11 Implementazione di processi
Le informazioni relative a tutti i processi attivi ad un dato istante sono mantenute nella Tabella dei processi, che contiene tutte le informazioni sul processo valore dei registri stato (pronto, bloccato …) informazioni relative ai file che il processo sta utilizzando

12 Scheduling Lo scheduler si occupa di decidere quale fra i processi pronti può essere mandato in esecuzione L’algoritmo di scheduling ha impatto su: prestazioni percepite dagli utenti efficienza nell’utilizzo delle risorse della macchina Lo scheduling ha obiettivi diversi in diversi sistemi (batch, interattivi…)

13 Scheduling Obiettivi principali degli Algoritmi di Scheduling:
Fairness (Equità) - processi della stesso tipo devono avere trattamenti simili Balance (Bilanciamento) - tutte le parti del sistema devono essere sfruttate (CPU, dispositivi …) Sistemi batch Throughput - massimizzare il numero di job completati in un intervallo di tempo Tempo di Turnaround - minimizzare il tempo di permanenza di un job nel sistema Sistemi interattivi Tempo di risposta - minimizzare il tempo di riposta agli eventi Proporzionalità - assicurare che il tempo di risposta sia proporzionale alla complessità dell’azione richiesta

14 Scheduling Scheduling senza prerilascio (non preemptive)
lo scheduler interviene solo quando un processo viene creato, termina o si blocca su una SC Scheduling con prerilascio (preempitive) lo scheduler può intervenire ogni volta che è necessario per ottenere gli obiettivi perseguiti quando diventa pronto un processo a più alta priorità rispetto a quello in esecuzione quando il processo in esecuzione ha sfruttato la CPU per un tempo abbastanza lungo

15 Scheduling Scheduling in sistemi batch
SJF (shortest job first) Scheduling in sistemi interattivi Round Robin Code Multiple

16 Scheduling nei sistemi Batch
Un esempio di scheduling secondo la strategia che privilegia il job più corto (SJF “Shortest Job First”) l’insieme dei job da schedulare è noto all’inizio si conosce il tempo di esecuzione T di ogni job i job sono schedulati in ordine di T crescente SJF minimizza il tempo di turnaround medio non c’è prerilascio

17 Scheduling nei sistemi Interattivi Scheduling Round Robin
(a) lista dei processi pronti (b) lista dei pronti dopo che B ha usato il suo quanto (quantum) di tempo

18 Scheduling Round Robin
Come fissare il quanto di tempo deve essere abbastanza lungo da ammortizzare il costo di un context switch (ordine 1 ms) deve essere abbastanza breve da permettere una risposta veloce agli utenti interattivi in sistemi reali tipicamente ms

19 Scheduling con priorità
Ogni processo ha una priorità Ogni volta va in esecuzione il processo a priorità più elevata Punti chiave : come assegnare le priorità (statiche, dinamiche…) come evitare attesa indefinita della CPU nei processi a priorità più bassa (Starvation)

20 Scheduling con priorità
Molte strategie per il calcolo della priorità Tipicamente : priorità dinamica (es. più elevata per i processi che passano da bloccato a pronto) legata alla percentuale f del quanto di tempo che è stato consumato l’ultima volta che il processo è andato in esecuzione (es. proporzionale a 1/ f ) decrescente nel tempo per i processi che rimangono pronti (es. per impedire l’attesa indefinita-starvation)

21 Scheduling con Code multiple
Esempio di algoritmo di scheduling a code multiple con 4 classi di priorità

22 Scheduling con Code multiple
Scheduling Round Robin all’interno della classe con priorità più elevata I processi che usano tutto il quanto di tempo più di un certo numero di volte vengono passati alla classe inferiore


Scaricare ppt "Gestione del processore (Scheduler)"

Presentazioni simili


Annunci Google