Cos'è la pianificazione prioritaria?
Priority Scheduling è un metodo di pianificazione dei processi basato sulla priorità. In questo algoritmo, lo scheduler seleziona le attività per lavorare secondo la priorità.
I processi con priorità più alta dovrebbero essere eseguiti per primi, mentre i lavori con priorità uguali vengono eseguiti su base round robin o FCFS. La priorità dipende dai requisiti di memoria, dai requisiti di tempo, ecc.
In questo tutorial sul sistema operativo imparerai:
- Cos'è la pianificazione prioritaria?
- Tipi di pianificazione prioritaria
- Caratteristiche della pianificazione prioritaria
- Esempio di pianificazione prioritaria
- Vantaggi della pianificazione prioritaria
- Svantaggi della pianificazione prioritaria
Tipi di pianificazione prioritaria
Schedulazione prioritaria suddivisa in due tipologie principali:
Pianificazione preventiva
Nella pianificazione preventiva, le attività sono per lo più assegnate con le loro priorità. A volte è importante eseguire un'attività con una priorità più alta prima di un'altra attività con priorità più bassa, anche se l'attività con priorità più bassa è ancora in esecuzione. L'attività con priorità più bassa dura per qualche tempo e riprende quando l'attività con priorità più alta termina la sua esecuzione.
Pianificazione non preventiva
In questo tipo di metodo di pianificazione, la CPU è stata assegnata a un processo specifico. Il processo che mantiene la CPU occupata, rilascerà la CPU cambiando contesto o terminando. È l'unico metodo che può essere utilizzato per varie piattaforme hardware. Questo perché non necessita di hardware speciale (ad esempio, un timer) come la pianificazione preventiva.
Caratteristiche della pianificazione prioritaria
- Un algoritmo della CPU che pianifica i processi in base alla priorità.
- Viene utilizzato nei sistemi operativi per eseguire processi batch.
- Se due lavori con la stessa priorità sono PRONTI, funziona in base al PRIMO ARRIVATO, PRIMO SERVITO.
- Nella pianificazione delle priorità, a ogni processo viene assegnato un numero che ne indica il livello di priorità.
- Abbassare il numero, maggiore è la priorità.
- In questo tipo di algoritmo di pianificazione, se arriva un processo più recente, che ha una priorità più alta rispetto al processo attualmente in esecuzione, il processo attualmente in esecuzione viene anticipato.
Esempio di pianificazione prioritaria
Considera i seguenti cinque processi da P1 a P5. Ogni processo ha la sua priorità unica, il tempo di burst e l'ora di arrivo.
Processi | Priorità | Tempo di scoppio | Orario di arrivo |
---|---|---|---|
P1 | 1 | 4 | 0 |
P2 | 2 | 3 | 0 |
P3 | 1 | 7 | 6 |
P4 | 3 | 4 | 11 |
P5 | 2 | 2 | 12 |
Step 0) All'istante = 0 arrivano Process P1 e P2. P1 ha una priorità maggiore di P2. L'esecuzione inizia con il processo P1, che ha un tempo di burst 4.
Passaggio 1) All'ora = 1, non arriva alcun nuovo processo. L'esecuzione continua con P1.
Passaggio 2) Al momento 2, non arriva alcun nuovo processo, quindi puoi continuare con P1. P2 è in coda di attesa.
Passaggio 3) Al momento 3, non arriva alcun nuovo processo, quindi puoi continuare con P1. Processo P2 ancora in coda di attesa.
Passaggio 4) Al momento 4, P1 ha terminato la sua esecuzione. P2 avvia l'esecuzione.
Passaggio 5) All'ora = 5, non arriva alcun nuovo processo, quindi continuiamo con P2.
Passaggio 6) All'ora = 6, arriva P3. P3 ha una priorità più alta (1) rispetto a P2 che ha priorità (2). P2 viene anticipato e P3 inizia la sua esecuzione.
Processi | Priorità | Tempo di scoppio | Orario di arrivo |
---|---|---|---|
P1 | 1 | 4 | 0 |
P2 | 2 | 1 su 3 in sospeso | 0 |
P3 | 1 | 7 | 6 |
P4 | 3 | 4 | 11 |
P5 | 2 | 2 | 12 |
Passaggio 7) Al momento 7, non arriva alcun nuovo processo, quindi continuiamo con P3. P2 è in coda di attesa.
Passaggio 8) All'ora = 8, non arriva alcun nuovo processo, quindi possiamo continuare con P3.
Passaggio 9) All'ora = 9, non arriva alcun nuovo processo, quindi possiamo continuare con P3.
Passaggio 10) All'intervallo di tempo 10, non arriva alcun nuovo processo, quindi continuiamo con P3
Passo 11) All'istante = 11, P4 arriva con priorità 4. P3 ha priorità maggiore, quindi continua la sua esecuzione.
Processi | Priorità | Tempo di scoppio | Orario di arrivo |
---|---|---|---|
P1 | 1 | 4 | 0 |
P2 | 2 | 1 su 3 in sospeso | 0 |
P3 | 1 | 2 su 7 in attesa | 6 |
P4 | 3 | 4 | 11 |
P5 | 2 | 2 | 12 |
Passaggio 12) All'ora = 12, arriva P5. P3 ha una priorità più alta, quindi continua l'esecuzione.
Passaggio 13) All'ora = 13, P3 completa l'esecuzione. Abbiamo P2, P4, P5 in coda pronta. P2 e P5 hanno la stessa priorità. L'orario di arrivo di P2 è prima di P5. Quindi P2 inizia l'esecuzione.
Processi | Priorità | Tempo di scoppio | Orario di arrivo |
---|---|---|---|
P1 | 1 | 4 | 0 |
P2 | 2 | 1 su 3 in sospeso | 0 |
P3 | 1 | 7 | 6 |
P4 | 3 | 4 | 11 |
P5 | 2 | 2 | 12 |
Passaggio 14) All'ora = 14, il processo P2 ha terminato la sua esecuzione. P4 e P5 sono in stato di attesa. P5 ha la priorità più alta e avvia l'esecuzione.
Passaggio 15) All'istante = 15, P5 continua l'esecuzione.
Passaggio 16) Al tempo = 16, P5 termina la sua esecuzione. P4 è l'unico processo rimasto. Inizia l'esecuzione.
Passaggio 17) All'ora = 20, P5 ha completato l'esecuzione e non è rimasto alcun processo.
Passaggio 18) Calcoliamo il tempo di attesa medio per l'esempio sopra.
Tempo di attesa = ora di inizio - ora di arrivo + tempo di attesa per il burst successivo
P1 = o - o = oP2 =4 - o + 7 =11P3= 6-6=0P4= 16-11=5Average Waiting time = (0+11+0+5+2)/5 = 18/5= 3.6
Vantaggi della pianificazione prioritaria
Ecco i vantaggi / vantaggi dell'utilizzo del metodo di pianificazione prioritaria:
- Metodo di pianificazione facile da usare
- I processi vengono eseguiti sulla base della priorità, quindi la priorità alta non deve attendere a lungo, il che consente di risparmiare tempo
- Questo metodo fornisce un buon meccanismo in cui l'importanza relativa di ciascun processo può essere definita con precisione.
- Adatto per applicazioni con requisiti di tempo e risorse variabili.
Svantaggi della pianificazione prioritaria
Ecco i contro / svantaggi della pianificazione delle priorità
- Se il sistema alla fine si arresta in modo anomalo, tutti i processi a bassa priorità vengono persi.
- Se i processi ad alta priorità richiedono molto tempo della CPU, i processi con priorità più bassa potrebbero morire di fame e verranno posticipati per un tempo indefinito.
- Questo algoritmo di pianificazione può lasciare alcuni processi a bassa priorità in attesa indefinitamente.
- Un processo verrà bloccato quando è pronto per essere eseguito, ma deve attendere la CPU perché un altro processo è attualmente in esecuzione.
- Se un nuovo processo con priorità più alta continua ad arrivare nella coda di pronto, allora il processo che si trova nello stato di attesa potrebbe dover attendere per un lungo periodo di tempo.
Sommario:
- La pianificazione prioritaria è un metodo di pianificazione dei processi basato sulla priorità. In questo algoritmo, lo scheduler seleziona le attività per lavorare secondo la priorità.
- Nella pianificazione preventiva prioritaria, le attività sono per lo più assegnate con le loro priorità.
- Nel metodo di pianificazione prioritaria non preventiva, la CPU è stata assegnata a un processo specifico.
- I processi vengono eseguiti sulla base della priorità, quindi la priorità alta non deve attendere a lungo, il che consente di risparmiare tempo
- Se i processi ad alta priorità richiedono molto tempo della CPU, i processi con priorità più bassa potrebbero morire di fame e verranno posticipati per un tempo indefinito.