Sistemi Operativi

Processo

In Informatica per processo si intende un programma in esecuzione. Il concetto di processo è associato a quello di thread, con cui si intende una posizione nell'esecuzione del programma. Un processo ha sempre almeno un thread, ma in alcuni casi un processo può avere più thread che avanzano in parallelo (multitheard). Quando si vuol far riferimento indistintamente a un processo o un thread, si usa la parola task. Un programma è costituito dal codice oggetto generato dalla compilazione del codice sorgente. Esso è un'entità statica, che rimane immutata durante l'esecuzione. Un processo, invece, è un'entità dinamica, che dipende dai dati che vengono elaborati, e dalle operazioni eseguite su di essi. Il processo, quindi, è caratterizzato, oltre che dal codice eseguibile, dall'insieme di tutte le informazioni che ne definiscono lo stato. Ogni processo è rappresentato nel sistema operativo da un descrittore di processo, detto anche blocco do controllo di un processo (process control block o PCB). Ogni PCB contiene molte informazioni connesse a un processo specifico, tra cui:

  1. Stato del processo: durante la sua esecuzione un processo cambia il proprio stato che può essere:

    Il diagramma di stato di un processo sarà il seguente:

  2. program counter: contiene l’ indirizzo della successiva istruzione da eseguire.

  3. registri della CPU: Quando si verifica una interruzione della CPU, si devono salvare tutte le informazioni contenute nei registri in modo da permettere l corretta esecuzione del processo in un momento successivo.

  4. info sullo scheduling della CPU: questo informazioni comprendono la priorità del processo e tutti gli altri parametri di scheduling.

  5. stato dell’I/O: queste informazioni comprendono la lista dei dispositivi di I/O assegnati ad un determinato processo.

Quando la CPU passa ad un altro processo, il sistema deve salvare lo stato del vecchio processo (PCB0) e caricare quello del nuovo processo (PCB1).

Questa fase è detta commutazione di contesto o context switch. Ricapitolando, in fasi di commutazione di contesto, prima di tutto è necessario salvare lo stato della computazione del processo correntemente in esecuzione, tra cui il program counter ed il contenuto dei registri generali, in modo che l'esecuzione potrà essere ripresa in seguito. Queste informazioni sullo stato del processo vengono generalmente salvante nel PCB del processo. Successivamente lo scheduler sceglierà un processo dalla coda dei processi pronti, in base alla propria politica di scheduling, e accederà al suo PCB per ripristinare il suo stato nel processore, in maniera inversa rispetto alla fase precedente. Per saperne di più consulta i seguenti approfondimenti:























































Tutto quanto riportato in questa pagina è a puro scopo informativo personale. Se non ti trovi in accordo con quanto riportato nella pagina, vuoi fare delle precisazioni, vuoi fare delle aggiunte o hai delle proposte e dei consigli da dare, puoi farlo mandando un email. Ogni indicazione è fondamentale per la continua crescita del sito.