Coconote
AI notes
AI voice & video notes
Try for free
🚦
Mutua Esclusione e Semafori nei Processi
Mar 10, 2025
Lezione sui Semafori di Destra
Introduzione
Argomento: problemi di concorrenza tra processi
Focus: mutua esclusione
Definizione di mutua esclusione: necessità di eseguire porzioni di codice in modo esclusivo.
Sezioni Critiche
Sezione critica: parte del programma eseguita in mutua esclusione.
I processi devono attendere se un altro processo è già nella sezione critica.
Soluzioni al Problema della Mutua Esclusione
Soluzioni Hardware
Disabilitazione e riabilitazione dell'interrupt
Problemi associati a questa soluzione.
Soluzioni Software
Algoritmo di Peterson:
Realizza mutua esclusione tra due processi.
Scrittura in codice ad alto livello.
Problemi: difficoltà di generalizzazione e busy waiting.
Istruzione "Test and Set":
Permette di caricare un valore e modificarlo simultaneamente.
Implementa un ciclo di busy waiting.
Preferibile rispetto all'algoritmo di Peterson per efficienza e generalizzabilità.
Problemi Aperti
Evitare che i programmi consumino la CPU in attesa.
Garantire imparzialità (fairness) fra i processi:
Un processo in attesa deve avere la garanzia di accedere alla risorsa in un tempo ragionevole.
Accesso casuale non garantito da "Test and Set".
Concetto di Semaforo
Definizione di semaforo: variabile speciale per la sincronizzazione tra processi.
Creazione: ideato da Edsger Dijkstra.
Struttura di un Semaforo
Costituzione:
Contatore (variabile intera):
Valore positivo: semaforo libero (verde).
Valore negativo: semaforo occupato (rosso), indica quanti processi sono in attesa.
Coda di processi in attesa.
Funzionamento del Contatore
Valore positivo (es: 4):
Indica che 4 processi possono accedere.
Valore di inizializzazione:
Semaforo binario: valore iniziale 1 (un processo alla volta).
Semaforo contatore: valore iniziale superiore a 1 (risorse multiple).
Esempio Pratico
Semaforo con valore 4 per accedere a 4 masterizzatori di CD.
Conclusione
Riepilogo delle caratteristiche del semaforo:
Oggetto con contatore e coda di processi.
Valore negativo indica occupazione e attesa, valore positivo indica disponibilità.
Prossima lezione: implementazione e utilizzo del semaforo.
📄
Full transcript