Ominide 104 punti

Il modello a processi

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.
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.

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).

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.


Sospensione per interrupt


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 .

PCB (Process Control Block)


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

Hai bisogno di aiuto in Informatica?
Trova il tuo insegnante su Skuola.net | Ripetizioni
Registrati via email