Concetti Chiave

  • La pianificazione (scheduling) è fondamentale per eseguire più processi su una singola CPU, organizzando l'ordine di esecuzione in base a regole specifiche.
  • Le tecniche di scheduling includono First Come First Serve, Shortest Job First, pianificazione delle priorità e Round Robin, ognuna con criteri diversi per assegnare l'esecuzione dei processi.
  • I processi possono trovarsi in vari stati, come New, Running, Waiting, Ready-to-run e Terminated, ognuno rappresenta una fase specifica del ciclo di vita del processo.
  • Il Process Control Block (PCB) contiene informazioni vitali per l'esecuzione dei processi, come stato, priorità e registri, ed è gestito dal sistema operativo.
  • Il sistema operativo effettua tre tipi di scheduling: a lungo termine, a medio termine e a breve termine, per gestire l'esecuzione e la priorità dei processi in modo efficiente.

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.

Indice

  1. Quali sono le tecniche di scheduling?
  2. Stati dei processi e PCB
  3. Tipi di scheduling
  4. Algoritmi di pianificazione

Quali sono le tecniche di scheduling?

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).

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.

Stati dei processi e PCB

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.

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.

Tipi di scheduling

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.

Lo scheduling a lungo termine decide se c'è abbastanza spazio nella coda per consentire ai processi di essere eseguiti

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 principale

Scheduling 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

  1. Qual è il ruolo della pianificazione (scheduling) nei sistemi operativi?
  2. La pianificazione è fondamentale per gestire l'esecuzione di più processi su una singola CPU, determinando l'ordine in cui i processi vengono eseguiti in base a regole specifiche.

  3. Quali sono le principali tecniche di scheduling?
  4. Le tecniche di scheduling includono First Come First Serve, Shortest Job First, e Round Robin, ognuna con un approccio diverso per gestire l'assegnazione del tempo della CPU ai processi.

  5. Che tipi di stato può avere un processo durante la sua esecuzione?
  6. Un processo può trovarsi in vari stati, tra cui New, Running, Waiting, Ready-to-run e Terminated, a seconda della sua fase di esecuzione e delle condizioni di attesa.

  7. Cosa contiene il Process Control Block (PCB) e qual è la sua importanza?
  8. Il PCB contiene informazioni essenziali per l'esecuzione dei processi, come lo stato del processo, l'indirizzo del prossimo processo da eseguire e la priorità, ed è gestito dal sistema operativo.

  9. Quali sono le tre attività principali di scheduling svolte dal sistema operativo?
  10. Le tre attività principali di scheduling sono a breve termine, a medio termine e a lungo termine, ognuna delle quali gestisce i processi in momenti diversi e con priorità differenti.

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community