بخشی از پاورپوینت
--- پاورپوینت شامل تصاویر میباشد ----
اسلاید 1 :
اسلاید 2 :
1-8 مدل سیستم
هر سیستم متشکل از تعداد محدودی از منابع است که باید بین فرآیندهای رقیب توزیع شود.
اگر فرآیندی نمونه ای از یک نوع منبع را درخواست کند ، تخصیص هر نمونه از آن نوع ، آن درخواست را برآورده می کند.
اگر درخواست برآورده نشود ، آنگاه نمونه ها یکسان نیستند و نوع منابع به طور مناسب دسته بندی نشده اند.
اسلاید 3 :
اسلاید 4 :
درخواست و آزاد کردن منابع ، فراخوان های سیستم هستند (مثل Request ،Release device ، ... )
درخواست و آزاد کردن منابع دیگر می تواند از طریق عملیات wait وsignal بروی سمافورها انجام شود.
سیستم عامل برای کنترل منابع از جدول سیستم استفاده می کند.
جدول سیستم مشخص می کند که آیا منبعی آزاد است یا تخصیص یافته است و چنانچه تخصیص یافته باشد ، به کدام فرآیند تخصیص یافته است.
اگر فرآیندی منبع را درخواست کند و آن منبع در حال حاضر در اختیار منبع دیگری باشد ، آن فرآیند در صف انتظار آن منبع قرار می گیرد.
اسلاید 5 :
اسلاید 6 :
باید فرآیند وجود داشته باشد که حداقل یک منبع را در اختیار داشته باشد و منتظر بدست آوردن منبع دیگری باشد که فعلا در اختیار فرآیندهای دیگر است.
منابع نمی توانند قبضه شوند ، یعنی آزادسازی منبع به عهده فرآیندی است که آن را در اختیار دارد که پس از کامل کردن وظیفه خود ، آن را آزاد می کند.
باید مجموعه ای از فرآیندهای منتظر P0,P1,…,Pn وجود داشته باشند که P0 منتظر منبعی باشد که در اختیار P1 است و P1 منتظر منبعی باشد که در اختیار P2 است و به همین ترتیب ، Pn-1 منتظر منبعی است که در اختیار Pn است و Pn منتظر منبعی است که در اختیار P0 است.
اسلاید 7 :
اسلاید 8 :
اسلاید 9 :
اگر گراف فاقد چرخه (Cycle) باشد ، هیچ فرآیندی در بن بست نیست.
اگر گراف حاوی چرخه باشد ، ممکن است بن بست وجود داشته باشد.
اگر هر نوع منبع دقیقا یک نمونه داشته باشند ، چرخه نشان دهنده وجود بن بست است اما اگر هر نوع منبع دارای چند نمونه باشند ، وجود چرخه الزاما به معنای وجود بن بست نیست.
اسلاید 10 :
3-8 روش های اداره کردن بن بست
سه روش مختلف برای برخورد با مسئله بن بست وجود دارد :
می توان از پروتکلی استفاده کرد تا تضمین شود که سیستم هرگز به بن بست نمی رود
می توان اجازه داد سیستم وارد بن بست شود و سپس از حالت بن بست خارج گردد
می توان از مسئله بن بست صرفه نظر کرد و اینطور وانمود کرد که بن بست در سیستم رخ نمی دهد (این روش در اغلب سیستم عامل های مجموعه یونیکس استفاده می شود)
در بعضی سیستم ها بن بست به ندرت اتفاق می افتد بنابراین بهتر است به جای روش های گرافی مثل پیشگیری از بن بست ، اجتناب از بن بست ، یا روش های کشف و ترمیم بن بست ، از این روش ارزان استفاده کرد.