Logo NEXUS

NEXUS didattica

← Torna indietro
Informatica / Lezione Teorica

Deadlock (Stallo)

Condizioni di blocco permanente tra processi, le 4 condizioni di Coffman e strategie di prevenzione ed evitamento.

1. Cos'è il Deadlock (Stallo)?

In un sistema operativo, un deadlock (stallo) si verifica quando un insieme di processi è permanentemente bloccato perché ciascun processo detiene una risorsa ed è in attesa di acquisire un'altra risorsa che è attualmente detenuta da un altro processo dello stesso insieme. Nessun processo può avanzare, rilasciare risorse o terminare, bloccando indefinitamente l'esecuzione del sistema.

2. Le 4 Condizioni di Coffman

Affinché possa verificarsi un deadlock, devono essere presenti simultaneamente quattro condizioni fondamentali:

Algoritmo del Banchiere (Banker's Algorithm): Utilizzato per l'evitamento del deadlock nei sistemi con risorse multiple. Uno stato è sicuro se esiste una sequenza di allocazione sicura $\langle P_0, P_1, \dots, P_n \rangle$ tale che le risorse massime richieste da ciascun processo possano essere soddisfatte dalle risorse disponibili sommate a quelle rilasciate dai processi precedenti.

3. Simulatore Interattivo: Rilevamento dello Stallo

Simula l'interazione tra due processi e due risorse critiche per osservare quando insorge una situazione di deadlock o un'esecuzione sicura.

kernel-debugger@nexus-core:~# deadlock-detector Resource Allocation Monitor
Stato del Sistema: In attesa di simulazione...

Processo P1

Possiede: Nessuna
Attende: Nessuna

Processo P2

Possiede: Nessuna
Attende: Nessuna