Il 0% ha trovato utile questo documento (0 voti)
6 visualizzazioni4 pagine

Documento 17

Il documento tratta dei concetti fondamentali di processi e thread, evidenziando le differenze tra di essi, come la gestione della memoria e la comunicazione. Viene descritto il ciclo di vita dei processi e dei thread, inclusi stati, creazione e terminazione, oltre a spiegare il ruolo dello scheduling nel sistema operativo. Infine, viene menzionato il problema del produttore-consumatore e la necessità di sincronizzazione tra processi.

Caricato da

vowelaj596
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
6 visualizzazioni4 pagine

Documento 17

Il documento tratta dei concetti fondamentali di processi e thread, evidenziando le differenze tra di essi, come la gestione della memoria e la comunicazione. Viene descritto il ciclo di vita dei processi e dei thread, inclusi stati, creazione e terminazione, oltre a spiegare il ruolo dello scheduling nel sistema operativo. Infine, viene menzionato il problema del produttore-consumatore e la necessità di sincronizzazione tra processi.

Caricato da

vowelaj596
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Sei sulla pagina 1/ 4

Riassunto schematico: Processi e Thread

1. Concetti di base

• Un processo è un'astrazione che permette di eseguire più programmi


contemporaneamente su una CPU.
• Un sistema multiprogrammato consente alla CPU di alternarsi rapidamente tra
processi, creando l'illusione del parallelismo (pseudoparallelismo su CPU
single-core).
• Un thread è un'entità attiva all'interno di un processo. Un processo può avere
più thread (multithreading).
• I thread condividono lo spazio degli indirizzi e le risorse del processo, ma
hanno stack e registri separati.

2. Differenze tra Processi e Thread

Caratteristica Processo Thread


Spazio di Condiviso con altri thread del
Separato
memoria processo
Alto (richiede più
Overhead Basso (più leggero e veloce)
risorse)
Comunicazione Più complessa (IPC) Più semplice (memoria condivisa)
Esecuzione Indipendente Dipendente dal processo

3. Creazione e terminazione

• Creazione processi:
o UNIX/Linux: fork() crea un clone del processo, execve() sostituisce
l'immagine di memoria.
o Windows: CreateProcess().
• Terminazione processi:
o Per completamento del lavoro o errore.
o Da parte di un altro processo (kill in UNIX/Linux, TerminateProcess in
Windows).

4. Stati dei Thread

• Running (in esecuzione).


• Ready (pronto, ma in attesa della CPU).
• Blocked (in attesa di un evento esterno, es. I/O).

5. Scheduling e gestione

• Il sistema operativo usa lo scheduler per gestire i thread e i processi.


• Ogni processo è rappresentato da un PCB (Process Control Block), che
contiene informazioni di stato e viene gestito dal SO.
1. Concetti di base

• Un processo è un programma in esecuzione e rappresenta un’unità di


esecuzione all’interno del sistema operativo (SO).
• Un thread (o processo leggero) è un'unità di esecuzione che condivide codice e
dati con altri thread dello stesso task.

2. Differenza tra Programma e Processo

• Programma → Entità passiva (insieme di istruzioni).


• Processo → Entità attiva (ha codice, dati, registri, stack e program counter).

3. Stati di un Processo

• Init → Caricamento in memoria.


• Ready → Pronto per essere eseguito.
• Running → In esecuzione sulla CPU.
• Waiting → In attesa di un evento (es. I/O).
• Terminated → Processo concluso.

4. Scheduling dei Processi

• Scheduling a lungo termine → Seleziona i programmi da eseguire dalla memoria


secondaria.
• Scheduling a medio termine (swapping) → Trasferisce temporaneamente
processi in memoria secondaria per liberare spazio.
• Scheduling a breve termine (di CPU) → Seleziona quale processo in stato
"Ready" deve essere eseguito.

5. Struttura del Processo

• Ogni processo è rappresentato da un Process Control Block (PCB), che


contiene:
o Stato del processo
o Program counter
o Registri della CPU
o Informazioni di scheduling
o Risorse allocate (file, I/O, memoria)
6. Creazione e Terminazione di Processi

• Creazione:
o Un processo padre può creare processi figli (es. fork() in UNIX).
o Gerarchia di processi (padre-figlio).
• Terminazione:
o Il processo può terminare per completamento, errore o richiesta di un
altro processo.

7. Differenze tra Processi e Thread

Caratteristica Processo Thread


Spazio di Condiviso con altri thread del
Separato
memoria task
Overhead Alto Basso
Più semplice (memoria
Comunicazione Tramite IPC
condivisa)
Indipendent
Esecuzione Dipendente dal processo
e

8. Interazione tra Processi

• Indipendenti → Nessuna influenza reciproca.


• Interagenti → Si influenzano a vicenda (cooperazione o competizione).

9. Problema Produttore-Consumatore

• Due processi condividono un buffer:


o Il produttore inserisce dati nel buffer.
o Il consumatore preleva dati dal buffer.
• Problemi:
o Se il buffer è vuoto, il consumatore deve aspettare.
o Se il buffer è pieno, il produttore deve aspettare.
• Soluzione: utilizzo di variabili di sincronizzazione (buffer_pieno,
buffer_vuoto).

Potrebbero piacerti anche