Domov Rozvoj Co je to dekkerův algoritmus? - definice z techopedie

Co je to dekkerův algoritmus? - definice z techopedie

Obsah:

Anonim

Definice - Co znamená Dekkerův algoritmus?

Dekkerův algoritmus je první známý algoritmus, který řeší problém vzájemného vyloučení při současném programování. Je připsána Th. J. Dekker, nizozemský matematik, který vytvořil algoritmus pro další kontext. Dekkerův algoritmus se používá ve frontě procesů a umožňuje dvěma různým vláknům sdílet stejný prostředek pro jedno použití bez konfliktů pomocí sdílené paměti pro komunikaci.

Techopedia vysvětluje Dekkerův algoritmus

Dekkerův algoritmus umožní použití zdroje pouze v případě, že se dva procesy pokusí použít současně. Vrcholem algoritmu je to, jak tento problém řeší. Úspěšně předchází konfliktu vynucením vzájemného vyloučení, což znamená, že prostředek může používat současně pouze jeden proces a bude čekat, až jej použije jiný proces. Toho je dosaženo použitím dvou „příznaků“ a „tokenu“. Tyto příznaky označují, zda proces chce vstoupit do kritické sekce (CS) nebo ne; hodnota 1 znamená PRAVDA, že proces chce vstoupit do CS, zatímco 0, nebo FALSE, znamená opak. Token, který může mít také hodnotu 1 nebo 0, označuje prioritu, když oba procesy mají své příznaky nastaveny na PRAVDA.


Tento algoritmus může úspěšně vynutit vzájemné vyloučení, ale bude neustále testovat, zda je kritická sekce k dispozici, a proto ztrácí značný čas procesoru. Vytváří problém známý jako synchronizace lockstep, ve kterém může každé vlákno provádět pouze při přísné synchronizaci. Je také nerozšiřitelný, protože podporuje pouze dva procesy pro vzájemné vyloučení.

Co je to dekkerův algoritmus? - definice z techopedie