الگوریتم دکر - ویکیپدیا، دانشنامهٔ آزاد
الگوریتم دکر (انگلیسی: Dekker's algorithm) یک الگوریتم برنامه نویسی همزمان برای انحصار متقابل است که به دو فرایند اجازه میدهد تا از یک منبع مشترک بدون هیچ تعارضی استفاده کنند و از حافظه مشترک تنها برای ارتباطات بهره ببرند. این الگوریتم توسط ادسخر دیکسترا طراحی شدهاست.
الگوریتم برای دو فرایند
[ویرایش] variables wants_to_enter : array of 2 booleans turn : integer wants_to_enter[0] false wants_to_enter[1] ← false turn ← 0 // or 1 | |
p0: wants_to_enter[0] ← true while wants_to_enter[1] { if turn ≠ 0 { wants_to_enter[0] ← false while turn ≠ 0 { // busy wait } wants_to_enter[0] ← true } } // critical section ... turn ← 1 wants_to_enter[0] ← false // remainder section | p1: wants_to_enter[1] ← true while wants_to_enter[0] { if turn ≠ 1 { wants_to_enter[1] ← false while turn ≠ 1 { // busy wait } wants_to_enter[1] ← true } } // critical section ... turn ← 0 wants_to_enter[1] ← false // remainder section |
جستارهای وابسته
[ویرایش]منابع
[ویرایش]- مشارکتکنندگان ویکیپدیا. «Dekker's algorithm». در دانشنامهٔ ویکیپدیای انگلیسی، بازبینیشده در ۲۰ مه ۲۰۱۵.