LA GESTIONE DEI PROCESSI

Il processo
(programma in esecuzione)

E' lo strumento concettuale usato per descrivere un programma in esecuzione

Possiamo dire che un intero sistema è descritto come un insieme di processi che possono essere eseguiti in parallelo sui processori e l'esecuzione viene alternata dal sistema operativo

Un processo può essere visibile all'utente (es. applicazione) durante la sua esecuzione oppure può essere eseguito in background.

E' un'entità dinamica

Ha una traccia di esecuzione

Gli stati di
un processo

Parcheggio:
In attesa di essere
esguito

Pronto:
Quando il SO assegna al processo
le risorse richieste

Esecuzione:
Il processo va in
esecuzione

Terminazione:
Quando l'esecuzione e' completata
e il processo abbandona il sistema

Può tornare allo stato "pronto"
se viene interrotto

Attesa:
Attesa del completamento di un'operazione
di I/O

Le interruzioni

il processore riesce a eseguire molti programmi contemporaneamente alternandone l'esecuzione nel tempo, questo avviene secondo diverse modalità e cause:1

Interruzione per priorità
(interruzione dell'esecuzione di
un programma a bassa priorità)

Time sharing
(interruzione allo scadere
di una quantità prefissata
di tempo)

Interruzione per un evento esterno

Le interruzioni sono gestite dal sistema operativo che modifica il valore di un apposito flag memorizzato nella PSW

Le strutture

Puntatori:
I processi sono collegati tra loro
(ad esempio per costruire la lista dei processi in uno stato)

Identificatori:
Quando un processo deve essere identificato il
sistema gli assegna un identificatore e specifica l'utente associato al processo

PSW:
Contiene le informazioni necessarie per far ripartire un processo dopo averlo interrotto

Stato del processo:
(Ne parliamo tra poco)