Casa Sviluppo Qual è l'algoritmo di Dekker? - definizione da techopedia

Qual è l'algoritmo di Dekker? - definizione da techopedia

Sommario:

Anonim

Definizione - Cosa significa l'algoritmo di Dekker?

L'algoritmo di Dekker è il primo algoritmo noto che risolve il problema dell'esclusione reciproca nella programmazione concorrente. È accreditato a Th. J. Dekker, un matematico olandese che ha creato l'algoritmo per un altro contesto. L'algoritmo di Dekker viene utilizzato nell'accodamento dei processi e consente a due thread diversi di condividere la stessa risorsa monouso senza conflitti utilizzando la memoria condivisa per la comunicazione.

Techopedia spiega l'algoritmo di Dekker

L'algoritmo di Dekker consentirà a un solo processo di utilizzare una risorsa se due processi stanno tentando di usarla contemporaneamente. Il punto culminante dell'algoritmo è come risolve questo problema. Riesce a prevenire il conflitto applicando l'esclusione reciproca, il che significa che solo un processo può utilizzare la risorsa alla volta e attenderà se un altro processo lo sta utilizzando. Ciò si ottiene con l'uso di due "flag" e un "token". I flag indicano se un processo vuole entrare o meno nella sezione critica (CS); un valore di 1 significa VERO che il processo vuole entrare nel CS, mentre 0, o FALSO, significa il contrario. Il token, che può anche avere un valore di 1 o 0, indica la priorità quando entrambi i processi hanno i loro flag impostati su TRUE.


Questo algoritmo può applicare con successo l'esclusione reciproca, ma verificherà costantemente se la sezione critica è disponibile e quindi fa perdere tempo significativo al processore. Crea il problema noto come sincronizzazione lockstep, in cui ogni thread può essere eseguito solo in stretta sincronizzazione. Inoltre, non è espandibile in quanto supporta solo un massimo di due processi per l'esclusione reciproca.

Qual è l'algoritmo di Dekker? - definizione da techopedia