الگوریتم دکر - ویکی‌پدیا، دانشنامهٔ آزاد

الگوریتم دکر (انگلیسی: 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 

جستارهای وابسته[ویرایش]

منابع[ویرایش]