590 likes | 930 Views
بن بست. اسلایدهای فصل هفتم کتاب سیلبرشاتز دانشکده مهندسی کامپیوتر دانشگاه شریف. مروری بر عناوین مطالب. مساله بن بست مشخصه های بن بست روش های برخورد با بن بست پیشگیری از بن بست اجتناب از بن بست کشف بن بست ترمیم از بن بست روش های ترکیبی برای برخورد با بن بست. مروری بر اهداف فصل.
E N D
بن بست اسلایدهای فصل هفتم کتاب سیلبرشاتز دانشکده مهندسی کامپیوتر دانشگاه شریف دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
مروری بر عناوین مطالب • مساله بن بست • مشخصه های بن بست • روش های برخورد با بن بست • پیشگیری از بن بست • اجتناب از بن بست • کشف بن بست • ترمیم از بن بست • روش های ترکیبی برای برخورد با بن بست دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
مروری بر اهداف فصل • آشنایی با مفهوم بن بست که مانع از انجام کار یک یا چندین پردازه می شود • آشنایی با روش های مختلف مقابله با بن بست دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
مساله بن بست • یک مجموعه از پردازه ها در حالت بن بست هستند اگر هر یک از پردازه ها منبعی را در اختیار داشته باشند و منتظر منبع دیگری باشند که در اختیار پردازه ای دیگر در همین مجموعه است. • نمونه: دو سمافور A و B با مقدار اولیه 1 P0P1 wait (A); wait(B) wait (B); wait(A) • نمونه: پل میان گذر • عرض پل به اندازه ای است که اجازه عبور یک ماشین را می دهد. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
مساله بن بست (ادامه) • هر قسمت از پل یک منبع محسوب می شود. • اگر بن بست رخ دهد، می توان با بازگرداندن یک ماشین آن را حل کرد. • ممکن است نیاز باشد چندین ماشین برگردانده شوند. • احتمال قحطی وجود دارد. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
مدل سیستم • منابع سیستم از انواع مختلف R1, R2, . . ., Rmهستند. • قطعه های زمانی پردازنده، فضای حافظه، ابزارهای خواندن / نوشتن، ... • از هر منبع Ri ، Wi تا داریم. • هر پردازه از هر منبع با رعایت توالی اعمال زیر بهره برداری می کند: • درخواست • استفاده • رهاسازی دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
مروری بر عناوین مطالب • مساله بن بست • مشخصه های بن بست • روش های برخورد با بن بست • پیشگیری از بن بست • اجتناب از بن بست • کشف بن بست • ترمیم از بن بست • روش های ترکیبی برای برخورد با بن بست دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
مشخصه های بن بست • برای رخ دادن بن بست برقراری همزمان چهار شرط زیر الزامی است: • ممانعت دوجانبه (Mutual Exclusion): در هر زمان تنها یک پردازه می تواند از یک منبع استفاده کند. • نگهدار و منتظر بمان (Hold and Wait): پردازه ای که حداقل یک منبع در اختیار دارد، منتظر است تا منابع دیگری که در اختیار پردازه های دیگر است نیز بگیرد. • عدم پیشدستی (No Preemption): هر منبعی تنها پس از پایان کار پردازه ای که آن را در اختیار گرفته است و به صورت داوطلبانه توسط همان پردازه قابل رهاسازی است. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
مشخصه های بن بست (ادامه) • انتظار حلقوی (Circular Wait): مجموعه ای مانند {P0, P1, …, Pn} وجود دارد به گونه ای که P0منتظر منبعی است که در اختیار P1قرار دارد، P1منتظر منبعی است که در اختیار P2قرار دارد، ... ، و Pnمنتظر منبعی است که در اختیار P0قرار دارد. • گرچه وقوع همزمان هر چهار شرط برای وقوع بن بست الزامی است، اما این شرایط کاملا از هم مستقل نیستند. • برای مثال شرط «انتظار حلقوی»، شرط «نگهدار و منتظر بمان» را نتیجه می دهد. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
گراف تخصیص منابع • گراف تخصیص منابع به صورت مجموعه رئوس V و مجموعه یال های جهت دار E تعریف می شود. • دو نوع راس: پردازه ها و نوع منابع • P = {P1, P2, …, Pn} مجموعه همه پردازه های سیستم • R = {R1, R2, …, Rm} مجموعه همه انواع منابع سیستم • هر یال جهت دار نشانگر درخواست یا اختصاص منبع • درخواست منبع: P1 Rj • اختصاص منبع: Rj Pi دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
گراف تخصیص منابع (ادامه) • پردازه: • نوع منبع با چهار نمونه: • Pi یک نمونه از Rj را تقاضا می کند: • Pi یک نمونه از Rj را در اختیار دارد: Pi Rj Pi دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف Rj
یک نمونه از گراف تخصیص منابع دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
گراف تخصیص منابع (با حلقه و بن بست) دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
گراف تخصیص منابع (با حلقه و بدون بن بست) دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
معیار تشخیص اولیه • اگر گراف تخصیص منابع حلقه ندارد ... • سیستم بن بست ندارد. • اگر گراف تخصیص منابع حلقه دارد ... • اگر از هر نوع منبع درگیر در حلقه فقط یک نمونه داریم، یک بن بست رخ داده است. • اگر از هر نوع منبع درگیر در حلقه چندین نمونه داریم، ممکن است بن بست رخ داده باشد. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
مروری بر عناوین مطالب • مساله بن بست • مشخصه های بن بست • روش های برخورد با بن بست • پیشگیری از بن بست • اجتناب از بن بست • کشف بن بست • ترمیم از بن بست • روش های ترکیبی برای برخورد با بن بست دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
روش های برخورد با بن بست • در حالت کلی به سه گونه می توان با مساله بن بست برخورد کرد: تضمین عدم وقوع بن بست، ترمیم بن بست، و اجتناب از بن بست. • برای تضمین اینکه هیچ گاه بن بست در سیستم رخ نمی دهد... • باید مکانیزمی وجود داشته باشد که قبل از تخصیص منابع به پردازه ها صحت شروط تضمین عدم امکان وقوع بن بست را ارزیابی کند. • پیشگیری از بن بست و اجتناب از بن بست هر دو در این دسته جای می گیرند. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
روش های برخورد با بن بست (ادامه) • ترمیم بن بست • در این رهیافت به سیستم اجازه داده می شود وارد حالت بن بست شود و سپس تلاش می شود بن بست رفع شود. • نیاز به مکانیزم هایی است که وقوع بن بست را تشخیص دهند و سپس آن را برطرف کنند. • صرف نظر کردن از بن بست • در بسیاری از سیستم ها بن بست به ندرت رخ می دهد، بنابراین به جای استفاده از راه حل های گران قبلی به سادگی فرض می شود هیچ گاه بن بست رخ نمی دهد. • راه حل مورد استفاده در UNIX دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
مروری بر عناوین مطالب • مساله بن بست • مشخصه های بن بست • روش های برخورد با بن بست • پیشگیری از بن بست • اجتناب از بن بست • کشف بن بست • ترمیم از بن بست • روش های ترکیبی برای برخورد با بن بست دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
پیشگیری از بن بست • برای پیشگیری از بن بست، باید یکی از شروط چهارگانه را نقض کرد. 1. ممانعت دوجانبه • اگر منبع قابل به اشتراک گذاری باشد (مانند یک پرونده فقط خواندنی) می توان در مورد آن از شرط ممانعت دوجانبه صرف نظر کرد. • در حالت کلی این شرط قابل نقض نیست، چون ماهیت بسیاری از منابع (مانند چاپگر) وجود این شرط را الزامی می کند. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
پیشگیری از بن بست (ادامه) 2. نگهدار و منتظر بمان • برای نقض این شرط هر پردازه تنها باید در صورتی تقاضای یک منبع را بکند که هیچ منبع دیگری در اختیار نداشته باشد. • پردازه دو راه برای درخواست منبع دارد. یا باید همه منابع مورد نیاز خود را در ابتدای اجرای خود به صورت یکجا درخواست کند یا باید همه منابع در اختیار را آزاد کرده و سپس تقاضای منبع جدید کند. • بهره وری منابع در این روش پایین است و احتمال قحطی نیز وجود دارد. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
پیشگیری از بن بست (ادامه) 3. عدم پیشدستی • برای نقض این شرط می توان به سیستم عامل اجازه داد تا در صورت لزوم پیشدستی کرده و خود منابع در اختیار پردازه را آزاد کند. • در صورتی که پردازه ای تقاضای منبع کرد و اختصاص منبع امکان پذیر نبود، سیستم عامل می تواند تمام منابع در اختیار پردازه متقاضی را آزاد کند. • منابع آزادشده به لیست منابع مورد تقاضای پردازه افزوده می شوند. • اجرای پردازه وقتی از سر گرفته می شود که پردازه بتواند منبع مورد نیاز و تمام منابع آزاد شده قبلی را در اختیار بگیرد. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
پیشگیری از بن بست (ادامه) 4. انتظار حلقوی • برای نقض این شرط می توان یک ترتیب کلی روی همه منابع موجود در سیستم اعمال کرد و سپس از هر پردازه خواست منابع مورد نیاز خود را فقط در یک ترتیب افزایشی درخواست کند. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
مروری بر عناوین مطالب • مساله بن بست • مشخصه های بن بست • روش های برخورد با بن بست • پیشگیری از بن بست • اجتناب از بن بست • کشف بن بست • ترمیم از بن بست • روش های ترکیبی برای برخورد با بن بست دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
اجتناب از بن بست • در این رهیافت سیستم تلاش می کند تا با استفاده از یک دانش قبلی درباره رفتار پردازه ها مانع از وقوع بن بست شود. • رهیافت «پیشگیری از بن بست» بر نقض شرایط پیش نیازی وقوع بن بست و رهیافت «اجتناب از بن بست» بر نظارت مداوم و بررسی امکان یا عدم امکان وقوع بن بست تمرکز دارند. • در ساده ترین و مفیدترین روش موجود هر پردازه قبل از شروع اجرا باید نوع و حداکثر تعداد منابع مورد نیاز از هر نوع را اعلان کند. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
حالت تخصیص منابع و حالت امن • الگوریتم اجتناب از بن بست به صورت پویا حالت تخصیص منابع را بررسی می کند تا تضمین کند هیچ گاه انتظار حلقوی اتفاق نمی افتد. • حالت تخصیص منابع از منابع موجود و تخصیص داده شده و همچنین حداکثر تقاضای پردازه ها برای هر نوع منبع تشکیل شده است. • وقتی پردازه ای تقاضای اختصاص یک منبع موجود را می کند، سیستم باید تصمیم بگیرد که آیا اختصاص فوری منبع به پردازه سیستم را در حالت امن نگاه می دارد یا خیر؟ دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
حالت امن • سیستم در حالت امن است در صورتی که یک ترتیب امن از پردازه ها وجود داشته باشد. • ترتیب <P1, P2, …, Pn>یک ترتیب امن است در صورتی که برای هر Pi، منابعی که Piمی تواند تقاضا کند زیرمجموعه ای از منابع موجود و منابع در اختیار Pjها باشد ( j < i). • اگر منابع مورد نیاز Piهمه فراهم نیستند، Piمی تواند تا پایان تمام Pjها که منابع مورد نیاز را در اختیار دارند صبر کند. • وقتی منابع آماده شد، Piمی تواند آنها را در اختیار بگیرد، اجرا شود و سپس منابع در اختیار را آزاد کند. • وقتی Piپایان یافت، Pi+1می تواند اجرا شود و به همین صورت اجرا ادامه می یابد. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
معیار تشخیص اولیه • اگر سیستم در یک حالت امن است ... • سیستم بن بست ندارد. • اگر سیستم در یک حالت ناامن است ... • ممکن است بن بست رخ داده باشد. • اجتناب از بن بست تضمین می کند سیستم هیچ گاه وارد یک حالت ناامن نشود. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
امنیت – عدم امنیت و بن بست دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
الگوریتم های جلوگیری از بن بست • هنگامی که از هر منبع تنها یک نمونه موجود است . از الگوریتم گراف تخصیص منابع استفاده می کنیم . • هنگامی که بیش از یک نمونه ازمنبع موجود است . از الگوریتم بانکدار استفاده می کنیم . دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
الگوریتم گراف تخصیص منابع • اجزای الگوریتم: • وقتی ممکن است پردازهPiمنبعRjرا تقاضا کند، یک یال خواسته (claim edge) به صورت خط چین بین رئوس مربوطه می کشیم. • وقتی پردازه منبع را درخواست می کند، یال خواسته به یال تقاضای منبع تبدیل می شود. • وقتی پردازه منبع را آزاد می کند، یال تخصیص به یال خواسته تبدیل می شود. • منابع مورد نیاز باید از قبل از سیستم خواسته شوند. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
گراف تخصیص منابع برای اجتناب از بن بست دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
حالت ناامن در گراف تخصیص منابع دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
الگوریتم گراف تخصیص منابع • فرض کنیم پردازهPiمنبعRjرا تقاضا کند • درخواست تنها هنگامی پاسخ داده می شود که تبدیل یال تقاضا به یال تبدیل باعث ایجاد یک حلقه در گراف نشود دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
الگوریتم بانکدارها • این الگوریتم از حالتی که از هر نوع منبع چندین نمونه داشته باشیم پشتیبانی می کند. • الگوریتم گراف تخصیص منابع برای این حالت جواب نمی دهد. • هر پردازه باید از پیش حداکثر تعداد منابع مورد نیاز خود را اعلام کند. • وقتی پردازه ای تقاضای منبعی را می کند، ممکن است مجبور شود منتظر بماند. • وقتی پردازه ای تمام منابع مورد نیاز را می گیرد، باید همه را در زمان محدود بازگرداند. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
ساختار داده الگوریتم بانکدارها • فرض کنید m تعداد پردازه ها و n تعداد نوع منابع باشد. int available [m]; available [j] = kیعنیkنمونه از منبعRjموجود هستند. int max [n][m]; max [i][j] = kیعنی پردازه Pi حداکثر ممکن استkنمونه از منبعRjرا درخواست کند. int allocation [n][m]; allocation [i][j] = kیعنی پردازه Pi، kنمونه از منبعRjرا در اختیار دارد. int need [n][m]; need [i][j] = kیعنی پردازه Pi به kنمونه دیگر از منبعRjنیاز دارد تا کارش را تمام کند. Need [i,j] = Max[i,j] – Allocation [i,j] دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
الگوریتم ایمنی – آيا سيستم در حالت امن است؟ 1. فرض کن Work و Finishدو بردار به طول m و n باشند. این بردارها را به این صورت مقداردهی اولیه کن: Work = Available; Finish = {False}; 2. اندیس i را به گونه ای پیدا کن که: Finish [i] = False; Needi Work; اگر چنین i پیدا نکردی به گام 4 برو. Work = Work + Allocationi; Finish [i] = True; 3. به گام 2 برو. 4. اگر i: Finish [i] == True آنگاه سیستم در یک حالت امن است. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
الگوریتم درخواست منبع برای پردازه Pi • بردار Requesti را به عنوان بردار نیاز پردازه Pi تعریف می کنیم. • Requesti [j] == k یعنی پردازه Pi به k نمونه از منبع Rj نیاز دارد. 1. اگر Requesti Needi به گام 2 برو، وگرنه اعلام خطا. 2. اگر Requesti Available به گام 3 برو، وگرنه Pi باید منتظر بماند تا منابع مورد نیاز آزاد شوند. 3. فرض کن منابع مورد نیاز Pi را اختصاص داده ای. حالت تخصیص منابع را به صورت زیر به روز کن: Available = Available – Requesti Allocationi = Allocationi + Requesti; Needi = Needi – Requesti; اگر حالت سیستم امن بود منابع بهPiاختصاص یافته اند. اگر حالت سیستم ناامن بود Piباید منتظر بماند، حالت قبلی سیستم را بازیابی کن. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
مثالی از الگوریتم بانکدارها • پنج پردازه P0 تا P4 و سه منبع A (10 نمونه)، B (5 نمونه) و C (7 نمونه). • حالت تخصیص منابع در T0: AllocationMaxAvailable A B C A B C A B C P0 0 1 0 7 5 3 3 3 2 P1 2 0 0 3 2 2 P2 3 0 2 9 0 2 P3 2 1 1 2 2 2 P4 0 0 2 4 3 3 دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
مثالی از الگوریتم بانکدارها (ادامه) • مقادیر ماتریس Need را محاسبه می کنیم: Need A B C P0 7 4 3 P1 1 2 2 P2 6 0 0 P3 0 1 1 P4 4 3 1 • سیستم در یک حالت امن است چون ترتیب < P1, P3, P4, P2, P0> شرط امنیت را تامین می کند و یک ترتیب امن است. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
مثال : P1 برای (1,0,2) درخواست می دهد • ببین آیا Request Available است؟ یعنی : • (1,0,2) (3,3,2) true دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
اجرای الگوریتم ایمنی نشان می دهد رشته ی < P1, P3, P4, P0, P2> شرایط امنیت را برقرار می کند. • آیا می توان درخواست (3,3,0) را برای P4 اجابت کرد؟ • آیا می توان درخواست(0,2,0) را برای P0اجابت کرد؟ دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
مروری بر عناوین مطالب • مساله بن بست • مشخصه های بن بست • روش های برخورد با بن بست • پیشگیری از بن بست • اجتناب از بن بست • کشف بن بست • ترمیم از بن بست • روش های ترکیبی برای برخورد با بن بست دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
کشف بن بست • به سیستم اجازه داده می شود وارد حالت بن بست شود و سپس تلاش می شود بن بست کشف شده و ترمیم شود. • مکانیزم کشف بن بست ؟ • مکانیزم ترمیم بن بست ؟ • در حالتی که از هر نوع منبع یکی موجود باشد، می توان از گراف انتظار (wait-for graph) استفاده کرد. • هر پردازه یک گره. • Pi Pj یعنی Pi منتظر Pj است. • به صورت دوره ای گراف انتظار برای یافتن حلقه جستحو می شود. پیچیدگی زمانی این الگوریتم O(n2)است (n تعداد پردازه ها). دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
گراف تخصیص منابع و گراف انتظار گراف انتظار گراف تخصیص منابع دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
الگوریتم کشف بن بست در حالت وجود چند نمونه از هر منبع • ساختار داده الگوریتم: • m تعداد نوع منابع و n تعداد پردازه ها int available [m]; int allocation [n][m]; int Request [n][m]; • الگوریتم: 1. فرض کن Work و Finishدو بردار به طول m و n باشند. این بردارها را به این صورت مقداردهی اولیه کن: Work = Available; if (Allocationi ≠ 0) Finishi = False;else Finishi = True; دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
الگوریتم کشف بن بست در حالت وجود چند نمونه از هر منبع (ادامه) • ادامه الگوریتم 2. اندیس i را به گونه ای پیدا کن که: Finish [i] = False; Requesti Work; اگر چنین i پیدا نکردی به گام 4 برو. Work = Work + Allocationi; Finish [i] = True; 3. به گام 2 برو. 4. اگر i: Finish [i] == False آنگاه سیستم در حالت بن بست است و Pi نیز در بن بست قرار دارد. • پیچیدگی زمانی این الگوریتم O(m x n2) است. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
نمونه ای از کاربرد الگوریتم کشف بن بست • پنج پردازه P0 تا P4 و سه منبع A (7 نمونه)، B (2 نمونه) و C (6 نمونه). حالت تخصیص منابع در T0: Allocation Request Available A B C A B C A B C P0 0 1 0 0 0 0 0 0 0 P1 2 0 0 2 0 2 P2 3 0 3 0 0 0 P3 2 1 1 1 0 0 P4 0 0 2 0 0 2 • با در نظر گرفتن ترتیب <P0, P2, P3, P1, P4> داریم: i: Finish [i] == True دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
نمونه ای از کاربرد الگوریتم کشف بن بست (ادامه) • P2 یک نمونه دیگر از C درخواست می کند. Request A B C P0 0 0 0 P1 2 0 1 P2 0 0 1 P3 1 0 0 P4 0 0 2 • حالت سیستم: • سیستم تنها می تواند پاسخگوی باقیمانده منابع مورد نیاز P0 باشد. • بن بست وجود دارد. پردازه های P1 تا P4 در بن بست قرار دارند. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
استفاده از کشف بن بست • فواصل زمانی و چگونگی فراخوانی الگوریتم به موارد زیر بستگی دارد: • معمولا هر چند مدت یکبار در سیستم بن بست رخ می دهد؟ • چه تعداد پردازه باید عقب کشیده شوند؟ • در هر حلقه بن بست حداقل یکی از پردازه ها باید عقب کشیده شود. • اگر الگوریتم در زمان دلخواه و بدون در نظر گرفتن معیارهای بالا فراخوانی شود، ممکن است ما با تعداد زیادی حلقه در گراف منابع و پردازه گرفتارشده در بن بست مواجه شویم و نتوانیم تشخیص دهیم کدام پردازه باعث ایجاد زنجیر بن بست شده است. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف