Differenza tra Preemptive e Non-Preemptive Scheduling nella CPU

Differenza tra Preemptive e Non-Preemptive Scheduling nella CPU

La pianificazione del processore (pianificazione della CPU) determina quali processi vengono assegnati e rimossi dalla CPU, in base a modelli di pianificazione come la pianificazione preventiva e non preventiva. La pianificazione della CPU fa il pieno utilizzo della CPU risultando in un sistema veloce ed efficiente.

Preemptive Scheduling

Di solito, le attività nei sistemi informatici vengono assegnate in base alle priorità. Ad un certo punto, è necessario eseguire una determinata attività prima di un’altra sebbene sia in esecuzione. Pertanto, l’attività in esecuzione viene interrotta per un po ‘di tempo e riprende in seguito quando l’attività prioritaria ha terminato l’esecuzione. Questo è ciò che viene definito Preemptive Scheduling o in italiano pianificazione preventiva. La pianificazione preventiva viene utilizzata quando un processo passa dallo stato di esecuzione allo stato pronto o dallo stato di attesa allo stato pronto.

Non-Preemptive Scheduling

Nel Non-Preemptive Scheduling o in italiano pianificazione non preventiva , la pianificazione non interrompe un processo che esegue la CPU nel mezzo dell’esecuzione. Invece, attende che il processo completi il ​​tempo di burst della CPU e quindi può allocare la CPU a un altro processo. La pianificazione non preventiva è l’unico metodo che può essere utilizzato su determinate piattaforme hardware perché non richiede l’hardware speciale, ad esempio un timer necessario per la pianificazione preventiva.

Differenza tra Preemptive e Non-Preemptive Scheduling nella CPU

Vantaggi e svantaggi della pianificazione preventiva rispetto alla pianificazione non preventiva 

La pianificazione preventiva consente allo scheduler di controllare i tempi di risposta allontanando la CPU da un processo che ha deciso di essere in esecuzione troppo a lungo per consentire l’esecuzione di un altro processo. Incorre in un sovraccarico maggiore rispetto alla pianificazione non preventiva poiché deve gestire l’overhead dei processi di cambio di contesto invece di consentire l’esecuzione di un processo fino al completamento o fino alla successiva operazione di I / O o altra chiamata di sistema. Tuttavia, consente livelli più elevati di concorrenza e migliori prestazioni interattive.

Differenza tra Preemptive e Non-Preemptive Scheduling

BASE DI CONFRONTO PROGRAMMAZIONE PREVENTIVA PROGRAMMAZIONE NON PREVENTIVA
Descrizione La pianificazione preventiva è quella in cui i processi con priorità più elevate vengono eseguiti per primi. Un processo può essere interrotto da un altro processo nel mezzo della sua esecuzione. La pianificazione non preventiva consiste nel fatto che una volta che la CPU è stata assegnata a un processo, il processo mantiene la CPU fino a quando non rilascia la CPU terminando o passando allo stato di attesa.
Descrizione alternativa La pianificazione preventiva può essere descritta come flessibile perché consente ai processi critici di accedere alla CPU quando arrivano nella coda pronta, indipendentemente dal processo attualmente in esecuzione. La pianificazione non preventiva può essere descritta come rigida perché anche se un processo critico entra nella coda Pronto, il processo che esegue la CPU non viene interrotto.
Esecuzione del processo Nella pianificazione preventiva, se un processo con priorità più alta entra in una coda pronta, il processo con priorità più bassa viene rimosso. Nella pianificazione non preventiva una volta che il processo è stato allocato alla CPU, completerà la sua esecuzione.
Pianificazione del processo Nella pianificazione preventiva, il processo può essere pianificato. Nella pianificazione non preventiva, il processo non può essere pianificato.
Problema di condivisione dei dati La pianificazione preventiva può causare un problema quando due processi condividono i dati perché uno può essere interrotto durante l’aggiornamento delle strutture dati condivise. Questo di solito non è il caso della pianificazione non preventiva.
Sovraccarico di cambiare il processo La pianificazione preventiva ha il sovraccarico di passare il processo dallo stato pronto allo stato in esecuzione, dallo stato in esecuzione allo stato pronto. La pianificazione non preventiva non ha alcun sovraccarico per il passaggio del processo dallo stato in esecuzione allo stato pronto
Utilizzo della CPU Nella pianificazione preventiva, l’utilizzo della CPU è maggiore rispetto alla pianificazione non preventiva. Nella pianificazione non preventiva, l’utilizzo della CPU è inferiore rispetto alla pianificazione preventiva.
in lavorazione Nella pianificazione preventiva, se un processo ad alta priorità arriva frequentemente nella coda pronta, il processo con priorità bassa deve attendere a lungo e potrebbe dover morire di fame. Nella pianificazione non preventiva, se la CPU è allocata al processo con un tempo di burst maggiore, i processi con un tempo di burst ridotto potrebbero dover morire di fame.
Costo La pianificazione preventiva è costosa rispetto alla pianificazione non preventiva perché deve mantenere l’integrità dei dati condivisi. La pianificazione non preventiva è meno costosa rispetto alla pianificazione preventiva perché non deve mantenere l’integrità dei dati condivisi.

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *