Vai alla Home Page About me Courseware Federica Living Library Federica Federica Podstudio Virtual Campus 3D La Corte in Rete
 
Il Corso Le lezioni del Corso La Cattedra
 
Materiali di approfondimento Risorse Web Il Podcast di questa lezione

Domenico Cotroneo » 4.Gestione dei processi


Sommario della lezione

Definizione di processo
Stati di un processo

  • Modello a due stati
  • Modello a tre stati
  • Modello generale

Descrittore di un processo
Code di processi
Cambio di contesto

Relazione tra processo e programma

Programma

  • … è la codifica di un algoritmo in un opportuno linguaggio di programmazione che ne rende possibile l’esecuzione da parte di un elaboratore;
  • e’ una descrizione statica delle elaborazioni da eseguire.

Processo

  • … è l’unità base di esecuzione del SO che identifica le attività dell’elaboratore relative ad una specifica esecuzione di un programma;
  • un processo è un programma in esecuzione;
  • è una entità dinamica (programma + stato di esecuzione).

Processi differenti possono eseguire più istanze di uno stesso programma.

Dal Programma al Processo


Stati di un processo

Durante la sua esecuzione, un processo è soggetto a transizioni di stato definite:

  • dall’attività corrente del processo;
  • da eventi esterni asincroni con la sua esecuzione;

Modello a due stati

In prima approssimazione, un processo può essere caratterizzato da due stati. Da un punto di vista astratto ciò varrebbe se esistessero tante unità di elaborazioni fisiche quanti sono i processi.


Limiti del modello a 2 stati

In generale il numero di unità di elaborazione è inferiore al numero dei processi.

Nell’ipotesi esemplificativa di un sistema monoprocessore, di tutti i processi attivi uno solo può utilizzare l’unità di elaborazione in ogni istante.

Pertanto risulta necessario distinguere tra processo pronto e processo in esecuzione

Modello a tre stati


L’assegnazione dell’unità di elaborazione

Il passaggio dallo stato di pronto a quello di esecuzione comporta una scelta di un processo tra tutti i processi pronti a cui assegnare la CPU.

Tale scelta è compiuta da una funzione di gestione del processore (scheduling) che fa parte in genere del Kernel di un sistema operativo.

Stato “nuovo” e “terminato”

Lo stato “nuovo” corrisponde alla creazione di un nuovo processo che può avvenire, ad esempio, per la richiesta da parte di un processo già esistente;

Lo stato “terminato” corrisponde ad una terminazione del processo che può essere

  • terminazione normale. Il processo esegue una chiamata al SO per indicare il completamento delle sue attività;
  • terminazione anomala, che può essere provocata, ad esempio, da un utilizzo scorretto delle risorse.

Modello a 5 stati


Un primo esempio…


La presenza dei processi swapped

In molti sistemi operativi è prevista la possibilità per un processo presente in memoria principale di essere temporaneamente spostato in memoria secondaria (swapping) in modo da liberare spazio per altri processi

…per tali sistemi sorge la necessità di aggiungere un ulteriore stato di “sospeso”.

Modello generale


Descrittore di un processo

Ad ogni processso è associata una struttura dati (tipo record), denominata Descrittore del processo (PCB- Process Control Block).

I descrittori sono a loro volta organizzati in una tabella dei processi (Process Table).

Descrittore di un processo

Le informazioni da registrare nel descrittore possono essere così classificate:

  • nome del processo;
  • stato del processo;
  • modalità di servizio (ad es. priorità, deadline);
  • informazioni sulla gestione della memoria;
  • contesto del processo (reg. del processore);
  • utilizzo delle risorse;
  • identificatore del processo successivo.

Code dei processi pronti

In un sistema monoprocessore ad ogni istante un solo processo è in esecuzione, mentre gli altri sono o bloccati o pronti per essere eseguiti.
I processi presenti nella memoria principale che sono pronti per essere eseguiti sono organizzati in una (o più) code (code dei processi pronti).
L’operazione di inserimento di un processo nella coda avviene all’atto della transizione in stato di pronto da parte di:

  • un processo sospeso (a seguito del verificarsi dell’evento atteso), o
  • un processo in esecuzione (a seguito del prerilascio della CPU da parte del SO);
  • all’atto della creazione di un nuovo Processo

L’operazione di prelievo produce la transizione in stato di esecuzione di un processo pronto.

Coda dei processi bloccati


Schedulatore di Breve Termine

Il componente del SO che è responsabile di selezionare un processo dalla coda dei processi pronti e di farlo transitare nello stato di esecuzione è denominato schedulatore di breve termine (BT) o schedulatore della CPU.

L’algoritmo implementato dallo schedulatore BT dipende dalle caratteristiche e dagli obiettivi del SO.

Il cambiamento di contesto

L’insieme di operazioni eseguite per il prerilascio di un processo in esecuzione a favore di un nuovo processo scelto nella coda dei processi pronti si chiama cambiamento di contesto (context switch).

In tal caso cambia il contesto a cui appartengono le informazioni contenute nei registri del processore.

Quando avviene un cambio di contesto

A seguito di ….
Timeout

  • il quanto di tempo assegnato al processo è scaduto

Interruzioni di I/O
Memory fault

  • il processo tenta di riferirsi ad un indirizzo di memoria non valido

Trap

  • error or exception, ciò può causare la terminazione del processo

System call

  • il processo richiede un servizio al SO

Il cambiamento di contesto

Il cambiamento di contesto è il risultato dell’esecuzione di tre procedure distinte del S.O.

Procedure Salvataggio_stato
Procedure Scheduling_CPU
Procedure Ripristino_stato

Procedure Context_Switch
begin

Salvataggio_stato,
Scheduling_CPU,
Ripristino_stato

end

Un esempio….


I materiali di supporto della lezione

P. Ancilotti, M.Boari, A. Ciampolini, G. Lipari, “Sistemi Operativi”, Mc-Graw-Hill (Cap.2)

Testi di Approfondimento

A. Silbershatz, G. Gagne, "Sistemi Operativi" (sesta edizione), Addison-Wesley (Cap. 4)

W. Stallings, “Operating Systems : Internals and Design Principles (5th Edition) ”, Prentice Hall (Cap. 3)

  • Contenuti protetti da Creative Commons
  • Feed RSS
  • Condividi su FriendFeed
  • Condividi su Facebook
  • Segnala su Twitter
  • Condividi su LinkedIn
Progetto "Campus Virtuale" dell'Università degli Studi di Napoli Federico II, realizzato con il cofinanziamento dell'Unione europea. Asse V - Società dell'informazione - Obiettivo Operativo 5.1 e-Government ed e-Inclusion

Fatal error: Call to undefined function federicaDebug() in /usr/local/apache/htdocs/html/footer.php on line 93