Concetti Chiave
- Un programma è un'entità statica memorizzata su disco, mentre un processo è dinamico e modifica lo stato della memoria e dei registri.
- Il processo ha uno stato di esecuzione definito da elementi come il Program Counter e i registri utente.
- Ad un processo sono associati codice, area dati e risorse necessarie per l'esecuzione.
- La vita di un processo è caratterizzata da stati come 'new', 'ready' e 'running', con transizioni tra di essi determinate dal sistema operativo.
- In ambienti di time sharing, un processo può completare l'esecuzione, essere interrotto o attendere il completamento di operazioni di I/O.
Differenza tra programma e processo
Un programma, è un insieme di bit collocati in un file su disco : non cambia nel tempo, non modifica lo stato della memoria : è quindi un' entità statica.
Un processo è un entità dinamica: modifica lo stato della memoria e dei registri.
Quindi si potrebbe dire che: 1) un processo è un'entità dinamica il cui stato di esecuzione è determinato dai valori assunti dal Program Counter , dai registri utente , dalla memoria;
2)ha una traccia di esecuzione, definita come la sequenza di stati assunti dal processore durante l'esecuzione del processo ;
3) Ad un processo sono associati il codice,un 'area dati e le altre risorse ad esso assegnate.
Stati e transizioni di un processo
per capire la vita di un processo bisogna esaminare la sequenza di stati che assume e i relativi cambiamenti o transizioni di stato. Il Sistema Operativo crea la struttura dati che rappresenta il processo , ma non assegna ad esso alcuna risorsa : il processo si trova nello stato new( nuovo ).
Quando il sistema operativo assegna al processo le risorse richieste e le colloca in memoria si trova nello stato di ready (pronto )..
Quando il sistema operativo assegna ad esso il processore , il processo passa nello stato running (esecuzione )..
Se il processo sta girando in un ambiente time sharing a questo punto l'evoluzione del processo può seguire 3 strade diverse:
1) il processo completa la sua esecuzione e cede il controllo al S.O.
2)la gestione dell'interruzione causa l'intervento del S.O. che mette il processo interrotto nello stato ready;
3)il processo esegue un'operazione di I/O e ne deve attendere il completamento.
Domande da interrogazione
- Qual è la principale differenza tra un programma e un processo?
- Quali sono gli stati principali che un processo può assumere durante la sua vita?
- Cosa succede a un processo in esecuzione in un ambiente time sharing?
Un programma è un'entità statica, un insieme di bit in un file su disco che non cambia nel tempo, mentre un processo è un'entità dinamica che modifica lo stato della memoria e dei registri (come descritto nel testo).
Un processo può trovarsi negli stati di new (nuovo), ready (pronto) e running (esecuzione), a seconda delle risorse assegnate e della gestione del sistema operativo (come spiegato nel testo).
In un ambiente time sharing, un processo in esecuzione può completare la sua esecuzione, essere interrotto dal sistema operativo e tornare nello stato ready, oppure eseguire un'operazione di I/O e attendere il completamento (come indicato nel testo).