🚦

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

  1. Evitare che i programmi consumino la CPU in attesa.
  2. 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.