Il concetto centrale di qualsiasi sistema operativo è il process: un’astrazione di un programma in esecuzione.

Processes

Tutti i computer moderni fanno più cose allo stesso momento.

Un esempio, consideriamo un Web Server, delle richieste potrebbero arrivare per una determinata pagina. Prima di tutto il server controlla se la pagina è nella cache, se si viene inviata indietro, altrimenti un richiesta al disco ha iniziato a fetcharla. Tuttavia dalla prospettiva della CPU, un disk request ci mette un’eternità. Nel mentre che si aspetta la fine del disk request, arriveranno molte atre richieste. Se ci sono più dischi presenti, alcuni o tutti saranno attivati ancora prima che la prima richiesta sia soddisfatta. I processi ci aiutano a controllare e modellare questa concorrenza.

In un sistema multi-programmato, la CPU va da processo a processo velocemente, eseguendo ognuno per decine o centinaia di millisecondi. Mentre la CPU in un istante esegue solamente un processo alla volta, ma nel corso di 1 secondo, grazie a questo velocissimo switching di processi, da l’illusione del parallelismo. (pseudoparallelism).

The Process Model

In questo modello, tutto il software eseguibile nel computer è organizzato in un numero di processi sequenziali, o solamente processi in breve.

Un Processo è un’istanza di un programma in esecuzione, includendo i valori correnti del program counter, registri, e variabili.

Questo rapido switching tra processi viene chiamato multi-programming.

Screenshot 2024-10-21 095413.png

La differenza tra un processo e un programma è sottile.

Se un programma viene eseguito due volte, conta come 2 processi distinti.

Process Creation

4 eventi principali causano la creazione di un processo: