کد مقاله کد نشریه سال انتشار مقاله انگلیسی نسخه تمام متن
9952173 1441438 2018 44 صفحه PDF دانلود رایگان
عنوان انگلیسی مقاله ISI
Lock-free concurrent binomial heaps
ترجمه فارسی عنوان
انبساط دوقطبی همزمان همزمان بدون قفل
کلمات کلیدی
انواع داده های همزمان شیب دوتایی، خطی سازگاری، قفل-آزادی،
ترجمه چکیده
ما یک پشته دوقطبی همزمان را بدون لیزر، بدون قفل ارائه می کنیم. در تجربه ما، پشته دوتایی بطور قابل توجهی پیچیده تر از انواع داده های قبلا در نظر گرفته شده است. اجرای چندین چالش را ارائه می دهد. ما باید با تداخل مقابله کنیم وقتی یک موضوع در حال حرکت است، جستجو برای کوچکترین کلید: راه حل ما این است که تشخیص چنین تداخل، و راه اندازی مجدد. ما باید از تداخل بین عملیات به روز رسانی اجتناب کنیم: برچسب ها را به گره ها اضافه می کنیم تا مانع از به روز رسانی این گره ها شوند؛ و ما برچسب ها را به دسته های مختلف اضافه می کنیم تا مانع فعالیت های اتحادیه ها با عملیات های دیگر در یک پشته شود. این برچسب گذاری دیگر عملیات را متوقف می کند: برای رسیدن به آزادی قفل، این موضوعات به عملیات مسدود کمک می کند؛ این نیاز به مراقبت برای اطمینان از صحت و جلوگیری از چرخه کمک به آن منجر به بن بست می شود. ما از تعدادی تکنیک برای اطمینان از کارایی مناسب استفاده می کنیم. پیچیدگی پیاده سازی به سختی اثبات های خطی پذیری و قفل-آزادی افزوده می شود: ما هر اثبات را در یک روش مدولار ارائه می کنیم، نتایج حاصل از هر عملیات را به صورت جداگانه اثبات می کنیم، و سپس آنها را با هم ترکیب می کنیم تا نتایج مورد نظر را به دست آوریم. ما امیدواریم برخی از این تکنیک ها بتوانند در جای دیگر استفاده شوند.
موضوعات مرتبط
مهندسی و علوم پایه مهندسی کامپیوتر نظریه محاسباتی و ریاضیات
چکیده انگلیسی
We present a linearizable, lock-free concurrent binomial heap. In our experience, a binomial heap is considerably more complex than previously considered concurrent datatypes. The implementation presents a number of challenges. We need to deal with interference when a thread is traversing the heap, searching for the smallest key: our solution is to detect such interference, and restart the traversal. We must avoid interference between updating operations: we add labels to nodes to prevent interfering updates to those nodes; and we add labels to heaps to prevent union operations interfering with other operations on the same heap. This labelling blocks other operations: to achieve lock-freedom, those threads help with the blocking operation; this requires care to ensure correctness, and to avoid cycles of helping that would lead to deadlock. We use a number of techniques to ensure decent efficiency. The complexity of the implementation adds to the difficulty of the proofs of linearizability and lock-freedom: we present each proof in a modular way, proving results about each operation individually, and then combining them to give the desired results. We hope some of these techniques can be applied elsewhere.
ناشر
Database: Elsevier - ScienceDirect (ساینس دایرکت)
Journal: Journal of Logical and Algebraic Methods in Programming - Volume 101, December 2018, Pages 44-87
نویسندگان
,