Concetti Chiave
- I processi sono piccoli programmi eseguiti dalla CPU attraverso regole di scheduling per gestire l'esecuzione simultanea su una singola CPU.
- Esistono diverse tecniche di scheduling come First Come First Serve, Shortest Job First, Round Robin, e Pianificazione delle priorità, ciascuna con modalità diverse di gestione dei processi.
- Il sistema operativo utilizza il PCB (Process Control Block) per gestire le informazioni essenziali dei processi, come stato, priorità e risorse utilizzate.
- Lo scheduling dei processi si divide in tre categorie principali: a lungo termine, a medio termine e a breve termine, ciascuna con specifiche funzioni di gestione dei processi in coda.
- Gli algoritmi di pianificazione, scelti in base alle esigenze dell'utente, determinano l'ordine e la priorità di esecuzione dei processi per ottimizzare l'uso della CPU.
Indice
Gestore dei processi
Come sappiamo, possiamo eseguire molti programmi (processi) contemporaneamente sul computer. Ma c'è una singola CPU. Quindi per eseguire tutti i programmi contemporaneamente, utilizziamo la pianificazione (scheduling). I processi sono piccoli programmi che vengono eseguiti dall'utente in base alla sua richiesta. La CPU esegue il processo in base ad alcune regole di scheduling. Ogni processo occupa del tempo alla CPU per svolgersi.
In base a quali regole si decide quale processo eseguire per primo?
Esistono varie tecniche di scheduling, come:1) First Come First Serve(Primo arrivato, primo servito): come suggerisce il nome, i processi che arrivano per primi, verranno eseguiti per primi e significa che la CPU creerà una coda. Il primo della coda sarà eseguito e gli altri cos’ via in base al loro ordine di arrivo.
2) Shortest Job first(Prima il lavoro più breve): in questa pianificazione, tutti i processi sono organizzati in base al tempo della loro esecuzione. Anche qua verrà creata una coda, ma verrà eseguito non il primo che arriva, bensì quello che richiede meno tempo di esecuzione. Es: Voglio svolgere due azioni: stampare una pagina e spostare il mouse sullo schermo. La prima cosa che verrò fatta è lo spostamento del mouse sullo schermo perché richiede meno tempo della stampa della pagina.
Quando i processi sono in coda nell’attesa di essere eseguiti, essi possono essere di tre tipi:
- Ready: pronti per essere eseguiti (risiedono nella memoria principale);
- I/O: in attesa di un segnale da parte delle periferiche;
- Job: pronti per essere eseguiti (risiedono nella memoria secondaria).
Esistono due tipi di pianificazione
1) Preventivo: Qui tutti i processi vengono eseguiti utilizzando una certa quantità di tempo di CPU. Il tempo è diviso in numero di minuti;2) Non Preventivo: La CPU sarà automaticamente libera dopo l'esecuzione dell'intero processo. Ciò significa che quando l'esecuzione del processo sarà completata, la CPU sarà libera. Quando vengono forniti due o più processi, questo completerà prima il primo processo e, dopo averlo completato, avvierà automaticamente il secondo. Quindi i processi vengono eseguiti uno ad uno;
3) Pianificazione delle priorità: quando viene assegnato il processo, ogni processo ha una priorità significa un problema di preferenza. Quale lavoro verrà eseguito per primo è determinato dalla CPU. Dopo aver esaminato la priorità della CPU. Ogni processo richiede un diverso tempo di CPU e anche il numero di ingressi necessari alla CPU. Quindi la CPU mantiene il livello di priorità dopo aver esaminato il tempo totale che un processo consumerà. Tutti i processi sono organizzati utilizzando una certa priorità. Quindi la CPU esegue il processo utilizzando la priorità del processo;
4) Round Robin: In questa Scheduling il Tempo della CPU è diviso in Parti Uguali e Assegnato a vari Processi. In questo tempo della CPU è anche noto come Quantum Time.
Il gestore di processi è detto scheduler (=archivio). Il suo compito è quello di scegliere quale processo per prima deve essere eseguito. Ogni processo può trovarsi in tre tipi di stato:
- New: il processo è in fase di creazione;
- Running: le istruzioni vengono eseguite;
- Waiting: un processo è nello stato di attesa quando sta aspettando che si verifichi un evento per potersi evolvere (es: ricezione di un segnale);
- Ready-to-run: il processo è in attesa di essere assegnato a un processore;
- Terminated: il processo ha terminato l’esecuzione.
Processo: programma in esecuzione
Le informazione essenziali per l’esecuzione dei processi sono racchiusi nel PCB (Process Control Block), come:- Specificare lo stato del processo;
- L’indirizzo del prossimo processo da eseguire;
- I registri che usa il processo;
- La priorità del processo
- Le periferiche di input e d output utilizzate dal processo
Il PCB è gestito dal sistema operativo.
In generale il sistema operativo compie tre diverse attività di scheduling:
- Scheduling a breve termine;
- Scheduling a medio termine;
- Scheduling a lungo termine;
La maggior parte dei sistemi operativi per computer deve svolgere più attività. Usano un algoritmo di pianificazione che decide quale dei molti processi può essere eseguito in un dato momento. Mette da parte alcuni lavori mentre altri vengono eseguiti, a seconda delle priorità impostate dal programmatore. L'algoritmo di pianificazione viene messo in atto per mantenere occupato il processore, per garantire che i lavori più importanti vengano eseguiti per primi... Esistono tre tipi principali di pianificazione dei processi: a lungo termine, a medio termine e a breve termine. Ciascuno ordina e assegna la priorità ai processi del computer in un momento diverso.
Scheduling a lungo termine
Lo scheduling a lungo termine decide se c'è abbastanza spazio nella coda per consentire ai processi di essere eseguiti
Scheduling a medio termine
Lo scheduler a medio termine sposta i processi dalla memoria principale a una secondaria per fare spazio a processi che hanno la priorità di esecuzione (swapping). Quando i processi con priorità sono stati eseguiti, lo scheduling a medio termine riporta i processi che aveva spostato nella memoria secondaria di nuovo nella memoria principaleScheduling a breve termine
Lo scheduler a breve termine da il via all’esecuzione del processo, quindi quale processo assegnare alla CPU. Quando un processo viene eseguito e si da il via all’esecuzione di un nuovo processo, avviene il cosiddetto Context Switch (scambio di contesto)
Algoritmi di pianificazione
Un programmatore di computer può scegliere tra una varietà di algoritmi di pianificazione a seconda delle esigenze dell'utente finale. Il round robin dà a un processo un tempo assegnato e continua fino al termine o allo scadere del tempo. Le pianificazioni prioritarie ordinano ed eseguono i lavori in base a una certa varietà di classifica delle priorità. L'utilità di pianificazione seleziona successivamente il lavoro con la priorità più alta e lo esegue finché non viene terminato o viene anticipato da una priorità più alta, nel qual caso la sua priorità viene ridotta.Domande da interrogazione
- Qual è il ruolo del gestore dei processi nel sistema operativo?
- Quali sono le principali tecniche di scheduling dei processi?
- Quali sono i tipi di pianificazione dei processi e come differiscono tra loro?
- Come funziona l'algoritmo di Round Robin?
- Cosa contiene il Process Control Block (PCB) e qual è la sua funzione?
Il gestore dei processi, o scheduler, ha il compito di scegliere quale processo deve essere eseguito per primo, gestendo lo stato dei processi e garantendo un uso efficiente della CPU.
Le principali tecniche di scheduling includono First Come First Serve, Shortest Job First, pianificazione delle priorità, e Round Robin, ognuna con un diverso criterio per determinare l'ordine di esecuzione dei processi.
Esistono tre tipi di pianificazione: a lungo termine, a medio termine e a breve termine. La pianificazione a lungo termine decide l'ingresso dei processi nella coda, quella a medio termine gestisce lo swapping tra memoria principale e secondaria, e quella a breve termine assegna i processi alla CPU.
L'algoritmo di Round Robin assegna un tempo fisso, chiamato Quantum Time, a ciascun processo. I processi vengono eseguiti in cicli, ricevendo ciascuno una porzione di tempo della CPU fino al completamento o allo scadere del tempo assegnato.
Il PCB contiene informazioni essenziali per l'esecuzione dei processi, come lo stato del processo, l'indirizzo del prossimo processo, i registri utilizzati, la priorità e le periferiche di input/output. È gestito dal sistema operativo per monitorare e controllare i processi.