Algoritmul Dekkers

Autor: Robert Simon
Data Creației: 17 Iunie 2021
Data Actualizării: 14 Mai 2024
Anonim
Race Conditions and How to Prevent Them - A Look at Dekker’s Algorithm
Video: Race Conditions and How to Prevent Them - A Look at Dekker’s Algorithm

Conţinut

Definiție - Ce înseamnă Dekkers Algoritm?

Algoritmul lui Dekker este primul algoritm cunoscut care rezolvă problema excluderii reciproce în programarea concomitentă. Este creditat Th. J. Dekker, matematician olandez care a creat algoritmul pentru un alt con. Algoritmul Dekkers este utilizat în coada proceselor și permite două fire diferite să partajeze aceeași resursă de unică utilizare fără conflict, folosind memoria comună pentru comunicare.


O introducere în Microsoft Azure și Microsoft Cloud | În acest ghid, veți afla despre ce este vorba despre cloud computing și despre cum Microsoft Azure vă poate ajuta să migrați și să conduceți afacerea din cloud.

Techopedia explică algoritmul Dekkers

Algoritmul lui Dekker va permite unui singur proces să folosească o resursă dacă două procese încearcă să o folosească în același timp. Punctul culminant al algoritmului este modul în care rezolvă această problemă. Reușește să prevină conflictul prin aplicarea excluderii reciproce, ceea ce înseamnă că un singur proces poate utiliza resursa simultan și va aștepta dacă un alt proces îl folosește. Acest lucru se realizează cu utilizarea a două „steaguri” și a unui „jeton”. Steagurile indică dacă un proces dorește să intre în secțiunea critică (CS) sau nu; o valoare de 1 înseamnă ADEVĂR că procesul vrea să intre în CS, în timp ce 0, sau FALSE, înseamnă opusul. Jetonul, care poate avea și o valoare de 1 sau 0, indică prioritate atunci când ambele procese au steagurile lor setate pe TRUE.

Acest algoritm poate impune cu succes excluderea reciprocă, dar va testa constant dacă secțiunea critică este disponibilă și, prin urmare, pierde timpul semnificativ al procesorului. Creează problema cunoscută sub numele de sincronizare blocare, în care fiecare fir poate fi executat numai în sincronizare strictă. De asemenea, nu este extindibil, deoarece acceptă doar două procese de excludere reciprocă.