پروژه پاورپوینت الگوریتمهای انحصار متقابل در سیستمهای توزیعشده
خلاصه ای از پروژه:
در سیستمهای تک پردازندهای، از سازوکارهایی مانند مانیتور و سمافور برای همگامسازی فرآیندها استفاده میشود. در سیستمهای توزیعشده، فرآیندها باید خود را همگام کنند تا از تداخل جلوگیری شود. الگوریتمهای متمرکز و غیرمتمرکز برای دستیابی به این هدف وجود دارند. یک الگوریتم ایدهآل برای تخصیص منابع باید سه شرط اساسی را برآورده کند: فرآیندی که منبعی را در اختیار دارد باید آن را رها کند، درخواستها باید به ترتیب ایجاد شدن پذیرفته شوند و هر درخواستی در نهایت پذیرفته شود.
الگوریتم متمرکز در سیستم توزیعشده، یک فرآیند را به عنوان هماهنگکننده (Coordinator) انتخاب میکند. فرآیندها برای ورود به بخش بحرانی (CS) یک درخواست به هماهنگکننده ارسال میکنند. هماهنگکننده بررسی میکند که آیا بخش بحرانی آزاد است یا خیر. اگر آزاد باشد، مجوز ورود را صادر میکند، در غیر این صورت، درخواست را در صف انتظار قرار میدهد. پس از خروج از بخش بحرانی، فرآیند یک پیام رهاسازی (Release) به هماهنگکننده ارسال میکند که در صورت وجود درخواست در صف، اولین فرآیند معلق را وارد بخش بحرانی میکند.
الگوریتمهای غیرمتمرکز، مانند الگوریتم لامپورت و الگوریتم ریکارت-آگراوالا، برای حل مشکل تکنقطهای بودن شکست در الگوریتم متمرکز طراحی شدهاند. الگوریتم لامپورت، فرآیندها پیام درخواست را به همه فرآیندها ارسال میکنند و درخواستها را بر اساس مهر زمانی (Timestamp) در صف محلی خود قرار میدهند. فرآیند تنها زمانی وارد بخش بحرانی میشود که پیام پاسخ (Reply) را از همه فرآیندهای دیگر دریافت کرده باشد و درخواست آن در صف، بالاتر از همه درخواستهای دیگر باشد. الگوریتم ریکارت-آگراوالا نیز مشابه است، اما به جای ارسال پیام پاسخ به همه، تنها در صورتی پیام پاسخ ارسال میشود که فرآیند در بخش بحرانی نباشد و درخواستی برای آن نداشته باشد.
الگوریتم Maekawa یک روش دیگر برای دستیابی به انحصار متقابل در سیستمهای توزیعشده است. در این الگوریتم، هر گره یک مجموعه درخواست (Request Set) دارد و برای ورود به بخش بحرانی، باید درخواست خود را به همه گرههای موجود در مجموعه درخواست خود ارسال کند. مجموعه درخواست هر گره شامل همه گرههای سیستم نیست، اما اشتراک بین هر دو مجموعه درخواست مخالف صفر است. این الگوریتم میتواند منجر به بنبست بالقوه شود، اما مکانیزمهایی برای شناسایی و رفع این مشکل وجود دارد.
الگوریتمهای مبتنی بر نشانه (Token) مانند الگوریتم حلقه نشانه و الگوریتم درختی ریموند، از یک نشانه منحصر به فرد استفاده میکنند که بین فرآیندها منتقل میشود. فرآیندی که نشانه را در اختیار دارد، میتواند وارد بخش بحرانی شود. در الگوریتم حلقه نشانه، نشانه به صورت چرخشی بین فرآیندها منتقل میشود. در الگوریتم درختی ریموند، فرآیندها در یک ساختار درختی سازماندهی میشوند و نشانه همیشه در ریشه درخت قرار دارد.
به دنبال پروژههای دانشجویی برتر و آماده برای استفاده هستید؟ با دانلود آسان پروژههای آماده، در زمان خود صرفهجویی کنید و گامی بلند در مسیر موفقیت تحصیلی بردارید!
عناوین و فهرست کلی پروژه:
Mutual Exclusion
Distributed Systems
Single processor systems
Distributed systems
Centralized algorithms
Distributed systems
Centralized algorithm
Request the CS
Enter the CS
Release the CS
Centralized algorithm
Example
مشكل Centralized algorithm
Distributed systems
Decentralized algorithm
Non-token based algorithm
Lamport’s algorithm
Request the CS
Enter the CS
Release the CS
Ricart-Agrawala’s algorithm
Request the CS
Enter the CS
Release the CS
Ricart-Agrawala’s algorithm
Example
Maekawa’s algorithm
Request the CS
Example
Request the CS
Enter the CS
Release the CS
potential deadlock problem in Maekawa’s algorithm
detect the Potential Deadlock
Request the CS
Resolve to the Potential Deadlock
Request the CS
Token based algorithm
Token Ring Algorithm
Request the CS
Enter the CS
Release the CS
Raymond’s Tree-based Algorithm
Request the CS
exe
Enter the CS
Release the CS
Example Raymond’s Tree-based Algorithm
Comparison of the three Algorithms
K- State Algorithm
Self – Stabilizing Mutual Exclusion Algorithm
Self – stabilizing Algorithm for Mutual Exclusion
مفهوم كلي
Self – stabilizing Algorithm for Mutual Exclusion
Suzuki – Kasami’s Broadcast Algorithm
اجرا كن (A)
Suzuki – Kasami’s Broadcast Algorithm
نقد و بررسیها
هنوز بررسیای ثبت نشده است.