Cuprins:
Definiție - Ce înseamnă Algoritmul lui Dekker?
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 context. Algoritmul lui Dekker este folosit în coada proceselor și permite două fire diferite să partajeze aceeași resursă de o singură utilizare fără conflict, folosind memoria comună pentru comunicare.
Techopedia explică algoritmul lui Dekker
Algoritmul lui Dekker va permite doar unui singur proces să utilizeze 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ă.
