Sadržaj:
Definicija - Što znači Dekkerov algoritam?
Dekkerov algoritam prvi je poznati algoritam koji rješava problem međusobne isključenosti u istodobnom programiranju. Zaslužan je za Th. J. Dekker, nizozemski matematičar koji je stvorio algoritam za drugi kontekst. Dekkerov algoritam koristi se u čekanju procesa i omogućava dvije različite niti da dijele isti resurs za jednokratnu upotrebu bez sukoba koristeći zajedničku memoriju za komunikaciju.
Tehopedija objašnjava Dekkerov algoritam
Dekkerov algoritam dopustit će samo jedan proces za korištenje resursa ako ga dva procesa pokušavaju koristiti istovremeno. Vrhunac algoritma je kako rješava ovaj problem. Uspijeva spriječiti sukob prisilnim međusobnim isključenjem, što znači da samo jedan proces može istovremeno koristiti resurs i čekati ako ga koristi drugi proces. To se postiže upotrebom dvije "zastave" i "tokena". Zastave označavaju da li proces želi ući u kritični odjeljak (CS) ili ne; vrijednost 1 znači TRUE da proces želi ući u CS, dok 0 ili FALSE znači suprotno. Token, koji također može imati vrijednost 1 ili 0, označava prioritet kada oba postupka zastave postave na TRUE.
Ovaj algoritam može uspješno nametnuti međusobno isključivanje, ali stalno će provjeravati je li kritični presjek dostupan i stoga gubi značajno procesorsko vrijeme. To stvara problem poznat kao lockstep sinkronizacija, u kojem se svaka nit može izvršiti samo u strogoj sinkronizaciji. Također se ne može proširivati jer podržava samo dva procesa za međusobno isključivanje.
