Definizione di processo
Stati di un processo
Descrittore di un processo
Code di processi
Cambio di contesto
Programma
Processo
Processi differenti possono eseguire più istanze di uno stesso programma.
Durante la sua esecuzione, un processo è soggetto a transizioni di stato definite:
In prima approssimazione, un processo può essere caratterizzato da due stati. Da un punto di vista astratto ciò varrebbe se esistessero tante unità di elaborazioni fisiche quanti sono i processi.
In generale il numero di unità di elaborazione è inferiore al numero dei processi.
Nell’ipotesi esemplificativa di un sistema monoprocessore, di tutti i processi attivi uno solo può utilizzare l’unità di elaborazione in ogni istante.
Pertanto risulta necessario distinguere tra processo pronto e processo in esecuzione
Il passaggio dallo stato di pronto a quello di esecuzione comporta una scelta di un processo tra tutti i processi pronti a cui assegnare la CPU.
Tale scelta è compiuta da una funzione di gestione del processore (scheduling) che fa parte in genere del Kernel di un sistema operativo.
Lo stato “nuovo” corrisponde alla creazione di un nuovo processo che può avvenire, ad esempio, per la richiesta da parte di un processo già esistente;
Lo stato “terminato” corrisponde ad una terminazione del processo che può essere
In molti sistemi operativi è prevista la possibilità per un processo presente in memoria principale di essere temporaneamente spostato in memoria secondaria (swapping) in modo da liberare spazio per altri processi
…per tali sistemi sorge la necessità di aggiungere un ulteriore stato di “sospeso”.
Ad ogni processso è associata una struttura dati (tipo record), denominata Descrittore del processo (PCB- Process Control Block).
I descrittori sono a loro volta organizzati in una tabella dei processi (Process Table).
Le informazioni da registrare nel descrittore possono essere così classificate:
In un sistema monoprocessore ad ogni istante un solo processo è in esecuzione, mentre gli altri sono o bloccati o pronti per essere eseguiti.
I processi presenti nella memoria principale che sono pronti per essere eseguiti sono organizzati in una (o più) code (code dei processi pronti).
L’operazione di inserimento di un processo nella coda avviene all’atto della transizione in stato di pronto da parte di:
L’operazione di prelievo produce la transizione in stato di esecuzione di un processo pronto.
Il componente del SO che è responsabile di selezionare un processo dalla coda dei processi pronti e di farlo transitare nello stato di esecuzione è denominato schedulatore di breve termine (BT) o schedulatore della CPU.
L’algoritmo implementato dallo schedulatore BT dipende dalle caratteristiche e dagli obiettivi del SO.
L’insieme di operazioni eseguite per il prerilascio di un processo in esecuzione a favore di un nuovo processo scelto nella coda dei processi pronti si chiama cambiamento di contesto (context switch).
In tal caso cambia il contesto a cui appartengono le informazioni contenute nei registri del processore.
A seguito di ….
Timeout
Interruzioni di I/O
Memory fault
Trap
System call
Il cambiamento di contesto è il risultato dell’esecuzione di tre procedure distinte del S.O.
Procedure Salvataggio_stato
Procedure Scheduling_CPU
Procedure Ripristino_stato
Procedure Context_Switch
begin
Salvataggio_stato,
Scheduling_CPU,
Ripristino_stato
end
1. Introduzione ai Sistemi Operativi
5. Scheduling nei sistemi mono-processore
6. Threads, SMP
8. Scheduling Multiprocessore e Real-Time
9. Gestione dei processi nei sistemi operativi Unix/Linux e Window...
10. Introduzione alla Programmazione Concorrente
11. Sincronizzazione nel modello ad ambiente globale
12. Problemi di cooperazione nel modello ad ambiente globale
14. Sincronizzazione nel modello ad ambiente locale
15. Deadlock
16. Programmazione Multithread
18. Memoria Virtuale
20. Il File System
21. Primitive di sincronizzazione nel kernel Linux
22. Esercitazione: System call per la gestione dei processi
23. Esercitazione: Inteprocess Communication e Shared Memory
24. Esercitazione: System Call per la gestione dei semafori in Linu...
25. Esercitazione: Problema dei Produttori e dei Consumatori
26. Posix Threads
P. Ancilotti, M.Boari, A. Ciampolini, G. Lipari, “Sistemi Operativi”, Mc-Graw-Hill (Cap.2)
Testi di Approfondimento
A. Silbershatz, G. Gagne, "Sistemi Operativi" (sesta edizione), Addison-Wesley (Cap. 4)
W. Stallings, “Operating Systems : Internals and Design Principles (5th Edition) ”, Prentice Hall (Cap. 3)