Fair synchronization

Gadi Taubenfeld

نتاج البحث: نشر في مجلةمقالةمراجعة النظراء

ملخص

Most published concurrent data structures which avoid locking do not provide any fairness guarantees. That is, they allow processes to access a data structure and complete their operations arbitrarily many times before some other trying process can complete a single operation. Such a behavior can be prevented by enforcing fairness. However, fairness requires waiting or helping. Helping techniques are often complex and memory consuming. Furthermore, it is known that it is not possible to automatically transform every data structure, which has a non-blocking implementation, into the corresponding data structure which in addition satisfies a very weak fairness requirement. Does it mean that for enforcing fairness it is best to use locks? The answer is negative. We show that it is possible to automatically transfer any non-blocking or wait-free data structure into a similar data structure which satisfies a strong fairness requirement, without using locks and with limited waiting. The fairness we require is that no process can initiate and complete two operations on a given resource while some other process is kept waiting on the same resource. Our approach allows as many processes as possible to access a shared resource at the same time as long as fairness is preserved. To achieve this goal, we introduce and solve a new synchronization problem, called fair synchronization. Solving the new problem enables us to add fairness to existing implementations of concurrent data structures, and to transform any solution to the mutual exclusion problem into a fair solution.

اللغة الأصليةالإنجليزيّة
الصفحات (من إلى)1-10
عدد الصفحات10
دوريةJournal of Parallel and Distributed Computing
مستوى الصوت97
المعرِّفات الرقمية للأشياء
حالة النشرنُشِر - 1 نوفمبر 2016
منشور خارجيًانعم

ملاحظة ببليوغرافية

Publisher Copyright:
© 2016 Elsevier Inc.

بصمة

أدرس بدقة موضوعات البحث “Fair synchronization'. فهما يشكلان معًا بصمة فريدة.

قم بذكر هذا