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)