Gestione dei processi

Il processore riesce a eseguire più probrammi contemporaneamente alternandone l'esecuzione nel tempo, secondo diverse modalità e per differenti cause :

il S.O. interrompe l'esecuzione di un programma di bassa priorità per assegnare il processore ad un programma di priorità maggiore

in caso di sistemi timer sharing, allo scadere di una certa quantità di tempo, il programma in esecuzione è interrotto per assegnare la CPU (processore) ad un altro programma

un programma in esecuzione che deve leggere dei dati in una periferica, richiede l'intervento del S.O. che avvia la lettura; meìtre il programma attende la lettua dei dati, il processore avvia un altro programma

un evento esterno al sistema causa l'interruzione del programma in esecuzione, permettendo al S.O. di intervenire per attuare le azioni necessarie

L'abilitazione o meno delle interruzioni è gestita dal S.O. che modifica il valore di un flag memorizzato nella PSW

Un programma per la gestione dell'interruzione, indicato con la sigla ISR, deve:

1. salvare lo stato del programma in esecuzione per farlo ripartire al termine dell'interruzione

2. identificare chi ha inviato la richiesta di interruzione e quindi il tipo di servizio richiesto

3. trasferire il controllo alla routine specializzata nella gestione del servizio richiesto

Le interruzioni possibili sono in numero predefinito. Per velocizzare le operazioni di gestione dell'interruzione si usa un vettore delle interruzioni, cioè un array di puntatori a differenti routine di gestione dell'interruttore

In generale si può dire che :

un processo è un'entità dinamica il cui stato di esecuzione è determinato dai valori assunti dal Program Counter, dai registri utente e di stato, dalla memoria e dallo stack

un processore ha una traccia di esecuzione, che può essere definita come la sequenza di dati assunti dal processore durante l'esecuzione del processo

a un processo sono associati il codice, un'area dati, e le altre risorse (memoria, processori, file, dispositivi di I/O, e ogni altra risorsa assegnabile)

un processo è un programma in esecuzione

Strumento concettuale usato per descrivere un programma in esecuzione