Sistema operativo - Pianificazione del processo
Definizione
La schedulazione del processo è l'attività del process manager che gestisce la rimozione del processo in esecuzione dalla CPU e la selezione di un altro processo sulla base di una particolare strategia.
La pianificazione dei processi è una parte essenziale di un sistema operativo multiprogrammazione. Tali sistemi operativi consentono di caricare più di un processo alla volta nella memoria eseguibile e il processo caricato condivide la CPU utilizzando il multiplexing temporale.
Code di pianificazione del processo
Il sistema operativo mantiene tutti i PCB nelle code di pianificazione dei processi. Il sistema operativo mantiene una coda separata per ciascuno degli stati del processo e i PCB di tutti i processi nello stesso stato di esecuzione vengono inseriti nella stessa coda. Quando lo stato di un processo viene modificato, il relativo PCB viene scollegato dalla coda corrente e spostato nella coda del nuovo stato.
Il sistema operativo mantiene le seguenti importanti code di pianificazione dei processi:
Job queue - Questa coda mantiene tutti i processi nel sistema.
Ready queue- Questa coda mantiene un insieme di tutti i processi che risiedono nella memoria principale, pronti e in attesa di essere eseguiti. In questa coda viene sempre inserito un nuovo processo.
Device queues - I processi bloccati a causa dell'indisponibilità di un dispositivo I / O costituiscono questa coda.
Il sistema operativo può utilizzare diverse politiche per gestire ciascuna coda (FIFO, Round Robin, Priorità, ecc.). Lo scheduler del sistema operativo determina come spostare i processi tra le code ready ed run che possono avere solo una voce per core del processore sul sistema; nel diagramma sopra, è stato unito alla CPU.
Modello di processo a due stati
Il modello di processo a due stati si riferisce agli stati in esecuzione e non in esecuzione descritti di seguito:
SN | Stato e descrizione |
---|---|
1 | Running Quando viene creato un nuovo processo, entra nel sistema come nello stato di esecuzione. |
2 | Not Running I processi che non sono in esecuzione vengono tenuti in coda, in attesa del proprio turno di esecuzione. Ogni voce nella coda è un puntatore a un particolare processo. La coda viene implementata utilizzando l'elenco collegato. L'utilizzo del dispatcher è il seguente. Quando un processo viene interrotto, tale processo viene trasferito nella coda di attesa. Se il processo è stato completato o interrotto, il processo viene scartato. In entrambi i casi, il dispatcher seleziona quindi un processo dalla coda da eseguire. |
Schedulatori
Gli schedulatori sono software di sistema speciali che gestiscono la pianificazione dei processi in vari modi. Il loro compito principale è selezionare i lavori da inviare al sistema e decidere quale processo eseguire. Gli schedulatori sono di tre tipi:
- Scheduler a lungo termine
- Scheduler a breve termine
- Scheduler a medio termine
Scheduler a lungo termine
È anche chiamato a job scheduler. Uno scheduler a lungo termine determina quali programmi sono ammessi al sistema per l'elaborazione. Seleziona i processi dalla coda e li carica in memoria per l'esecuzione. Il processo viene caricato nella memoria per la pianificazione della CPU.
L'obiettivo principale del job scheduler è fornire una combinazione bilanciata di lavori, come I / O bound e processor bound. Controlla anche il grado di multiprogrammazione. Se il grado di multiprogrammazione è stabile, il tasso medio di creazione del processo deve essere uguale al tasso medio di partenza dei processi che lasciano il sistema.
Su alcuni sistemi, lo scheduler a lungo termine potrebbe non essere disponibile o minimo. I sistemi operativi con condivisione del tempo non hanno uno scheduler a lungo termine. Quando un processo cambia lo stato da nuovo a pronto, viene utilizzato lo scheduler a lungo termine.
Scheduler a breve termine
È anche chiamato come CPU scheduler. Il suo obiettivo principale è aumentare le prestazioni del sistema in base al set di criteri scelto. È il passaggio dallo stato di pronto allo stato di esecuzione del processo. Lo scheduler della CPU seleziona un processo tra i processi pronti per l'esecuzione e assegna la CPU a uno di essi.
Gli scheduler a breve termine, noti anche come dispatcher, decidono quale processo eseguire successivamente. Gli scheduler a breve termine sono più veloci degli scheduler a lungo termine.
Scheduler a medio termine
La programmazione a medio termine fa parte di swapping. Rimuove i processi dalla memoria. Riduce il grado di multiprogrammazione. Lo scheduler a medio termine è incaricato di gestire i processi out scambiati.
Un processo in esecuzione può essere sospeso se effettua una richiesta di I / O. Un processo sospeso non può avanzare verso il completamento. In questa condizione, per rimuovere il processo dalla memoria e fare spazio per altri processi, il processo sospeso viene spostato nella memoria secondaria. Questo processo è chiamatoswappinge si dice che il processo venga sostituito o implementato. Lo scambio può essere necessario per migliorare il mix di processo.
Confronto tra Scheduler
SN | Scheduler a lungo termine | Scheduler a breve termine | Scheduler a medio termine |
---|---|---|---|
1 | È un pianificatore di lavori | È uno scheduler della CPU | È uno scheduler di scambio di processi. |
2 | La velocità è inferiore rispetto allo scheduler a breve termine | La velocità è la più veloce tra le altre due | La velocità è tra scheduler sia a breve che a lungo termine. |
3 | Controlla il grado di multiprogrammazione | Fornisce un controllo minore sul grado di multiprogrammazione | Riduce il grado di multiprogrammazione. |
4 | È quasi assente o minimo nel sistema di condivisione del tempo | È anche minimo nel sistema di condivisione del tempo | Fa parte dei sistemi di condivisione del tempo. |
5 | Seleziona i processi dal pool e li carica in memoria per l'esecuzione | Seleziona quei processi che sono pronti per essere eseguiti | Può reintrodurre il processo in memoria e l'esecuzione può essere continuata. |
Cambio di contesto
Un cambio di contesto è il meccanismo per memorizzare e ripristinare lo stato o il contesto di una CPU nel blocco Process Control in modo che l'esecuzione di un processo possa essere ripresa dallo stesso punto in un secondo momento. Utilizzando questa tecnica, un selettore di contesto consente a più processi di condividere una singola CPU. Il cambio di contesto è una parte essenziale delle funzionalità di un sistema operativo multitasking.
Quando lo scheduler commuta la CPU dall'esecuzione di un processo all'esecuzione di un altro, lo stato del processo in esecuzione corrente viene memorizzato nel blocco di controllo del processo. Dopodiché, lo stato del processo da eseguire successivamente viene caricato dal proprio PCB e utilizzato per impostare il PC, i registri, ecc. A quel punto, può iniziare l'esecuzione del secondo processo.
I cambi di contesto richiedono molte risorse di calcolo poiché il registro e lo stato della memoria devono essere salvati e ripristinati. Per evitare la quantità di tempo di cambio di contesto, alcuni sistemi hardware utilizzano due o più set di registri del processore. Quando si cambia il processo, le seguenti informazioni vengono memorizzate per un uso successivo.
- Contatore di programma
- Informazioni sulla pianificazione
- Valore del registro di base e limite
- Registro attualmente utilizzato
- Stato modificato
- Informazioni sullo stato I / O
- Informazioni contabili