Sei sulla pagina 1di 2

PROGRAMMA E PROCESSO

il programma contiene le istruzioni che dovranno essere eseguite, è una entità passiva
fino a quando non viene caricata in memoria e mandata in esecuzione diventando
così un processo. Il processo è un'entità logica in evoluzione.

Il processo viene rappresentato da:


● stack
● registri
● codice del programma eseguito
● dati ovvero delle variabili
● program counter: l'indirizzo dell’istruzione da eseguire
Inoltre i processi in esecuzione possono essere:
● indipendenti ovvero che si evolve senza aver comunicato con altri processi per
scambiare dati
● cooperare dove due o più processi devono cooperare per evolversi e necessitano di
uno scambio e per cui si devono sincronizzare

STATO DEL PROCESSO


Durante l’esecuzione il processo può assumere diversi stati
● nuovo:lo stato in cui viene creato un processo
● esecuzione:quando il processo si sta evolvendo→la cpu sta eseguendo le istruzioni
● attesa:1 quando gli manca una risorsa per evolversi
● pronto: quando ha tutte le risorse per la evoluzione
● finito:quando il tutto è eseguito e quindi ha terminato la esecuzione

PCB
contiene tutte le informazioni del processo ovvero stato, program counter,contenuto dei
registri e identificatore

RISORSE
I processi per evolversi hanno bisogno delle risorse del sistema di elaborazione.
La risorsa è ogni componente riusabile che è necessario al processo o al sistema.
Possano essere suddivise in classi e se appartengono alla stessa classe sono dette
equivalenti come i byte della memoria.
La gestione delle risorse si organizzano in base alla sua natura:
● per le risorse di natura statica avviene l'assegnazione
● per le risorse di natura dinamica si controlla il loro utilizzo

CLASSIFICAZIONE RISORSE
● secondo numero
○ singola:una sola risorsa per classe, il processo richiede una per volta
○ multipla:richiede più risorse, il processo richiede almeno due risorse
● seconda il tipo
○ richiesta bloccate:il processo ha bisogno di quella risorsa immediatamente
○ non bloccante: il processo si può evolvere ugualmente e se gli serve una
risorsa gli viene inviata la notifica
THREAD
Detti anche processi leggeri, possiamo vedere anche il processo come l'insieme della sua
immagine e delle risorse.
Il thread è un segmento che viene eseguito in maniera sequenziale (parallelo)
all'interno di un processo pesante.
con il termine multithreading si indica le molteplici esecuzioni all’interno di un
processo
● multithreading user-level permette di generare i thread attraverso librerie prestabilite
● il kernel-level li genera tramite il kernel del sistema operativo

il thread è costituito da:


● program counter
● thread id
● registri
● stato di esecuzione
● stack
● variabili

LA VITA DEI THREAD


La vita dei thread:
● è legata alla vita del processo, quando il processo termina comporta la
terminazione di tutti i suoi thread;
● è indipendente ovvero che si evolve indipendentemente dallo stato del
processo

TCB
Contiene i registri lo stack le variabili e lo stato di esecuzione , inoltre il tcb rappresenta lo
stato di esecuzione del singolo thread

STATO DEI THREAD


● idle: prima di essere avviato
● ready:pronto per l'esecuzione
● running:in esecuzione
● blocked: in attesa di completare l’ I/O
● dead: termina le sue istruzioni
● waiting: in attesa di un evento
● sleeping: sospeso per un periodo

DIFFERENZA TRA PESANTE E LEGGERO


● i processi pesanti sono composti da una immagine e dalle risorse usate
● il processi leggeri è l'unione di esecuzione del codice e risorse usate

Potrebbero piacerti anche