Categorieën: Alle - gestione - esecuzione - programma - risorse

door Alessandro Scuderi 8 jaren geleden

123

Gestione dei processi

Il processore ha la capacità di eseguire più programmi contemporaneamente, alternandone l'uso nel tempo in base a diverse modalità e necessità. La gestione delle interruzioni è cruciale e viene orchestrata dal sistema operativo (

Gestione dei processi

Gestione dei processi

Strumento concettuale usato per descrivere un programma in esecuzione

In generale si può dire che :

un processo è un programma in esecuzione
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 processore ha una traccia di esecuzione, che può essere definita come la sequenza di dati assunti dal processore durante l'esecuzione del processo
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

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

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:

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

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

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

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

un evento esterno al sistema causa l'interruzione del programma in esecuzione, permettendo al S.O. di intervenire per attuare le azioni necessarie
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
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
il S.O. interrompe l'esecuzione di un programma di bassa priorità per assegnare il processore ad un programma di priorità maggiore