Concetti Chiave
- L'incremento delle capacità computazionali è favorito dalla maggiore velocità delle CPU, che permette di ottimizzare la gestione dei processi e ridurre i tempi di risposta.
- Il modello a processi consente la multiprogrammazione, dove più processi possono condividere un'unica CPU tramite algoritmi di schedulazione per massimizzare l'efficienza.
- I processi si classificano in tre categorie: indipendenti, cooperativi e competitivi, ognuno con caratteristiche distintive che influenzano l'interazione e l'uso delle risorse.
- Il ciclo di vita di un processo comprende diversi stati: Nuovo, Pronto, Esecuzione, Attesa e Finito, che descrivono le varie fasi di un processo durante la sua esecuzione.
- Il descrittore del processore PCB include informazioni fondamentali come l'identificatore unico (PID), stato corrente e puntatori a memoria e risorse, essenziali per la gestione dei processi.
Incremento delle capacità computazionali
Grazie all'aumento della velocità delle CPU, abbiamo incrementato le capacita computazionali.
La gestione del processo deve ancora oggi ottimizzata perche spesso presenta situazioni di criticità.
Tutti i moderni SO cercano di sfruttare al massimo le potenzialità di parallelismo fisico dell'hardware per minimizzare i tempi di risposta e aumentare il throughput del sistema, ossia il numero di programmi eseguiti per unita di tempo.
Il programma, composta da un insieme di byte, contiene le istruzioni che dovranno essere utilizzate , e’ un entità passiva, finchè non viene caricato in memoria e mandato in esecuzione.
Modello a processi e multiprogrammazione
Nel modello a processi tutto il software che può essere eseguito su un calcolatore (compreso il SO) e’ organizzato in un certo numero di processi sequenzionali (chiamati semplicemente processi).
Un unico processore può essere condiviso tra più processi utilizzando un algoritmo di schedulazione (scheduling) per determinare quando interrompere un processo e avviarne un altro.
Questa tecnica di gestione della CPU si chiama multiprogrammazione, che richiede la contemporanea presenza di piu programmi in memoria , quindi un processo e’ costituito da una successione di fasi di elaborazione della CPU e fasi di attesa per l’ esecuzione di u altre risorse del sistema.
La multiprogrammazione permette l’utilizzo in contemporanea di più processi limitando al minimo i tempi morti e sfruttando al massimo la potenzialità di calcolo del processore.
Quali sono i tipi di processi e le loro caratteristiche?
I processi si suddividono in 3 tipi: Indipendenti, cooperativi e competitivi
Indipendenti: un processo evolve in modo autonomo senza bisogno di comunicare con gli altri processi per scambiare dati
Cooperativi: due o più processi hanno la necessità di cooperare in quanto, per poter evolvere, necessitano di uno scambio informazioni.
Avere la possibilità di utilizzare processi che cooperano, è utile per ottenere:
- Parallelizzazione dell'esecuzione: Per esempio, macchine con molta CPU
- Modularità: Diversi processi per funzioni diverse in una stessa applicazione possono svolgere il loro lavoro autonomamente
- Replica di un servizio: Per esempio, una connessione di rete
- Condivisione delle informazioni
Competitivi: in cui entrambi i processi competono per utilizzare la medesima risorsa, ciò può portare a situazioni indesiderate per uno o più processi).
Stati del ciclo di vita di un processo
STATO DEI PROCESSI
Durante il ciclo di vita di un processo, è possibile individuare un insieme di situazione in cui un processo può trovarsi, che definiremo gli stati di un processo.
Un processo si divide in: Nuovo, Pronto, Esecuzione, Attesa e Finito
- Nuovo (New): E' un processo in cui si trova uno stato appena creato
- Esecuzione (Runninig): Il processo sta volvendo, nel senso che la CPU sta eseguendo le sue istruzioni.
- Attesa (Waiting): Un processo è nello stato di attesa quando gli manca una risorsa per poter evolvere e quindi sta aspettando che si verifichi un evento.
- Pronto (Ready-to-run) : Se ha tutte le risorse necessarie alla sua evoluzione.
- Finito (Terminated): Siamo nella situazione in cui il codice del processo è stato eseguito e quindi ha determinato l'esecuzione.
Il SO ha un diverso comportamento nel caso che il processo venga sospeso a causa di un interruzione associata a un dispositivo I/O rispetto alla sospensione dovuta allo scadere del time slice.
Gli Interrupt dovuti ai dispositivi di I/O sono organizzati in classi e vengono associati una locazione spesso vicina alla parte bassa della memoria, chiamata Interrupt Vector (che contiene l'indirizzo della procedura di gestione delle istruzioni).
Se si dovesse verificare un interruzione quando è in esecuzione il processo, entra in gioco il Program Counter di questo processo .
Descrittore del processore PCB
Concludiamo questa sintesi sui processi ricordando la struttura la struttura del descrittore del processore PCB.
- Identificatore Unico (PID)
- Stato corrente
- Program counter
- Registri
- Priorità
- Puntatori alla memoria del processo
- Puntatori alle risorse allocate al processo
Oltre a queste informazioni, sono presenti dati che riguardano informazione per l'accounting e per lo stato dell' I/O, che riportano la lista dei file e delle periferiche associati al processo.
Il descrittore di processo viene allocato dinamicamente all'atto della creazione e opportunamente inizializzato.
Viene rimosso dopo le operazioni di termine del processore
Domande da interrogazione
- Qual è l'importanza dell'incremento delle capacità computazionali nelle moderne architetture di sistema?
- Come funziona il modello a processi e la multiprogrammazione?
- Quali sono i tre tipi di processi e le loro caratteristiche principali?
- Quali sono gli stati del ciclo di vita di un processo?
- Cosa comprende la struttura del descrittore del processore PCB?
L'incremento delle capacità computazionali, grazie all'aumento della velocità delle CPU, è fondamentale per ottimizzare la gestione dei processi e sfruttare al massimo il parallelismo fisico dell'hardware, riducendo i tempi di risposta e aumentando il throughput del sistema.
Nel modello a processi, il software è organizzato in processi sequenziali, e la multiprogrammazione consente a più processi di condividere un'unica CPU, utilizzando algoritmi di schedulazione per massimizzare l'efficienza e ridurre i tempi morti.
I processi si suddividono in indipendenti, cooperativi e competitivi. I processi indipendenti operano autonomamente, quelli cooperativi necessitano di scambi di informazioni, mentre i processi competitivi competono per risorse comuni, il che può portare a conflitti.
Un processo può trovarsi in uno dei seguenti stati: Nuovo, Pronto, Esecuzione, Attesa e Finito. Ogni stato rappresenta una fase specifica del ciclo di vita del processo, influenzando il suo comportamento e l'allocazione delle risorse.
Il descrittore del processore PCB include informazioni cruciali come l'identificatore unico (PID), lo stato corrente, il program counter, i registri, la priorità e puntatori alla memoria e alle risorse allocate, essenziali per la gestione e il monitoraggio dei processi.