صفحه 1:
بن بست اسلايدهاى فصل هفتم كتاب سيلبرشاتز دانشكده مهندسى كامبيوتر دانشكاه شريف دكتر جليلى - مفاهيم سيستم عامل د

صفحه 2:
5 مروری بر عناوین مطالب * مساله بن ببست مشخصه هاى بن بست روش های برخورد با بن بست * بيشكيرى از بن بست اجتناب از بن بست * كشف بن بست ترميم از بن بست روش هاى تركيبى براى برخورد با بن بست دكتر جليلى - مفاهيم سيستم عامل دانشكدهى كامبيوتر- دانشكاه صنعتى شريف مه

صفحه 3:
مروری بر اهداف فصل * آشنایی با مفهوم بن بست که مانع از انجام کار یک یا چندین پردازه می شود ۴ آشنایی با روش های مختلف مقابله با بن بست

صفحه 4:
لي سال بن بست * يك مجموعه از يردازه ها در حالت بن بست هستند اكر هر يك از پردازه ها منبعى را در اختيار داشته باشند و منتظر منبع ديكرى باشند که در اختیار پردازه ای دیگر در همین مجموعه است. * نمونه: دو سمافور و با مقدار اوليه ‎١‏ Po 2 ‏سر‎ )0(( ui(®) ura (®); wi(®) * نمونه: پل میان گذر عرض پل به اندازه ای است که اجازه عبور یک ماشین را می دهد. دکتر جليلى - مفافهم ميستم عامل دنشکده ى كامبيوتر- دانشكاه صنعتى شريف ‎ee‏

صفحه 5:
هر قسمت از پل یک منبع محسوب می شود. اگر بن بست رخ دهد می توان با بازگرداندن یک ماشین آن را حل کرد. ممکن است نیاز باشد چندین ماشین برگردانده شوند. احتمال قحطی وجود دارد. دكتر جليلى - مفاهيم سيستم عامل دانشكدهى كامبيوتر- دانشكاه صنعتى شريف مه

صفحه 6:
يم مدل ‎cow‏ 8 منابع سیستم از انواع مختلف ,© ,. . . ,© ,© هستند. قطعه های زمانی پردازنده فضای حافظه. ابزارهای خواندن / نوشتن» ... * از هر منبع ۰0 تا داریم. * هر پردازه از هر منبع با رعایت توالی اعمال زیر بهره برداری می کند: درخواست استفاده رهاسازی دکتر جليلى - مفافهم ميستم عامل دنشکده ى كامبيوتر- دانشكاه صنعتى شريف ‎ee‏

صفحه 7:
5 مروری بر عناوین مطالب * مساله بن بست مشخصه هاى بن بست روش هاى برخورد با بن بست * پیشگیری از بن بست اجتناب از بن بست es ترميم از بن بست روش هاى تركيبى براى برخورد با بن بست دكتر جليلى - مفاهيم سيستم عامل دانشكدهى كامبيوتر- دانشكاه صنعتى شريف - جه

صفحه 8:
مشخصه هاى بن بست براى رخ دادن بن بست برقرارى همزمان جهار شرط زير الزامى است: ممانعت دوجانبه (تسا<) اسه۵): در هر زمان تنها یک پردلزه می ‎SEL‏ ‏از یک منبع استفاده کند نگهدار و منتظر بمان ‎sold rd Daal)‏ پردازه ای که حداقل یک منبع در اختیار دار منتظر است تا منابع دیگری که در اختیار پردازه های دیگر است نیز بگیرد. عدم پیشدستی (۳۳۲۲۲۵) ): هر منبعی تنها پس از پایان کار پردازه ای که آن را در اختیار گرفته است و به صورت داوطلبانه توسط همان پردازه قابل رهاسازی است. دكتر جليلى - مفاهيم سيستم عامل دانشكدهى كامبيوتر- دانشكاه صنعتى شريف مه

صفحه 9:
4 مشخصه هاى بن بست (ادامه) انتظار ‎Den) (6 gil‏ 5): مجموعه ای مانند (۴ ,..۰ ,2 ,و6) وجود داره به گونه ای که ,8 متظر منبعی است که در اختیار ,6 قرار دارد؛ .8 معط میمی است که در اختیار ۶ قرار دارد ...و2 متطر میعی است که در اختیار ر] قرار دارد. * گرچه وقوع همزمان هر چهار شرط برای وقوع بن بست الزامی است. اما این شرایط کاملا از هم مستقل نیستند. برای مثال شرط «انتظار حلقوی». شرط «نگهدار و منتظر بمان» را نتیجه می دهد. دكتر جليلى - مفاهيم سيستم عامل دانشكدهى كامبيوتر- دانشكاه صنعتى شريف مه

صفحه 10:
# گراف تخصیص منابع * كراف تخصیص منابع به صورت مجموعه رئوس 0 و مجموعه يال های جهت دار * تعریف می شود. * دو نوع راس: پردازه ها و نوع منابع }® ...بر ‎Ae pee P= (Py‏ همه يردازه هاى سيستم (, ... ,6 ,6) 8 مجموعه همه انواع منابع سیستم . هر یال جهت دار نشانگر درخحواست یا اختصاص منبع درخواست منبع: ‎AR‏ ‏اختصاص منیع: 6 ,68 دکتر جلیلی - مفاهیم سیستم علمل . دانشکده ی کامپیوتر- دانشگاه صنعتی شریف 200

صفحه 11:
گراف تخصیص منابع (ادامه) دازه: ا © نوع منبع با جهار نمونه: * © يك نمونه از © را تقاضا مى كند: * 6 یک نمونه از 8 را در اختیار دارد: ® مه

صفحه 12:
یک نمونه از گراف تخصیص منابع مه

صفحه 13:
گراف تخصیص منابع (با حلقه و بن بست)

صفحه 14:

صفحه 15:
معیار تشخیص اولیه * اگر گراف تخصیص منابع حلقه ندارد ... سيستم بن بست ندارد. * اكر كراف تخصيص منابع حلقه دارد ... اگر از هر نوع منبع دركير در حلقه فقط يك نمونه داريم» يك بن بست دخ داده است. اگر از هر نوع منبع درگیر در حلقه چندین نمونه داریم. ممکن است بن بست رخ داده باشد. مه

صفحه 16:
5 مروری بر عناوین مطالب * مساله بن بست مشخصه هاى بن بست روش هاى برخورد با بن بست ‎Sole‏ اجتناب از بن بست * کشف بن بست ترميم از بن بست روش هاى تركيبى براى برخورد با بن بست دكتر جليلى - مفافهم ميستم عامل دنشکده ى كامبيوتر- دانشكاه صنعتى شريف هه

صفحه 17:
# روش های برخورد با بن بست * در حالت کلی به سه گونه می توان با مساله بن بست برخورد کرد: تضمین عدم وقوع بن بست. ترمیم بن بست. و اجتناب از بن برای تضمین اينکه هیچ گاه بن بست در سیستم رخ نمی دهد... ‎Lb‏ مکانیزمی وجود داشته باشد که قبل از تخخصیص منابع به پردازه ها صحت شروط تضمین عدم امکان وقوع بن بست را ارزيابى كند. پیشگیری از بن بست و اجتناب از بن بست هر دو در اين دسته جاى مى كيرند. دکتر جلیلی - مفاهیم سیستم علمل . دانشکده ی کامپیوتر- دانشگاه صنعتی شریف ‎ear‏

صفحه 18:
روش های برخورد با بن پست (ادامه) See ‏رهیافت به سیستم اجازه‎ ه می شود وارد حالت بن بست شود و سيس تلاش مى شود بن بست رفع شود. نياز به مكانيزم هایی است که وقوع بن بست را تشخیص دهند و سپس آن را برطرف کنند, صرف نظر كردن از بن بست در بسيارى از سيستم ها بن بست به ندرت رخ مى دهدء بنابراين به جاى استفاده از راه حل های گران قبلی به سادگی فرض مى شود هيج كاه بن بست رخ نمی دهد. راه حل مورد استفاده در 00 دكتر جليلى - مفاهيم سيستم عامل دانشكدهى كامبيوتر- دانشكاه صنعتى شريف مه

صفحه 19:
5 مروری بر عناوین مطالب * مساله بن بست مشخصه هاى بن بست روش های برخورد با بن بست * پیشگیری از بن بست اجتناب از بن بست * کشف بن بست ترميم از بن بست روش هاى تركيبى براى برخورد با بن بست دكتر جليلى - مفاهيم سيستم عامل دانشكدهى كامبيوتر- دانشكاه صنعتى شريف مه

صفحه 20:
‎sale}‏ پیشگیری از بن بست ‏* برای پیشگیری از بن بست. باید یکی از شروط چهارگانه را نقض ‎ ‏دکتر جلیلی - مفاهیم سیستم علمل . دانشکده ی کامپیوتر- دانشگاه صنعتی شریف موه

صفحه 21:
دص از بن بست (ادامه) ۲.نگهدار و منتظر بمان برای نقض این شرط هر پردازه تنها باید در صورتی تقاضای یک منبع را بکند که هیچ منبع دیگری در اختیار نداشته باشد. پردازه دو راه برای درخواست منبع دارد. با باید همه منابع مورد نیاز خود را در ابتدای اجرای خود به صورت یکجا درخواست کند يا باید همه منابع در اختیار را آزاد کرده و سپس تقاضای منبع جدید کند. بهره وری منابع در این روش پایین است و احتمال قحطی نیز وجود دارد. دکتر جلیلی - مفاهیم سیستم علمل . دانشکده ی کامپیوتر- دانشگاه صنعتی شریف موه

صفحه 22:
دص از بن بست (ادامه) ۳عدم پیشدستی برای نقض این شرط می توان به سیستم عامل اجازه داد تا در صورت لزوم پیشدستی کرده و خود منابع در اختیار پردازه را آزاد کند. 0 منبع امكان پذیر نبود. سيستم عامل مى تواند تمام منابع در اختيار يردازه متقاضى را آزاد ‎nes)‏ منابع آزادشده به ليست منابع مورد تقاضای پردازه افزوده می شوند. اجرای پردازه وقتی از سر گرفته می شود که پردازه بتواند منبع مورد نیاز و تمام منابع آزاد شده قبلی را در اختیار بگیرد. دکتر جليلى - مفافهم ميستم عامل دنشکده ى كامبيوتر- دانشكاه صنعتى شريف موه

صفحه 23:
# دص از بن بست (ادامه) ۶.انتظار حلقوی برای نقض این شرط می توان یک ترتیب کلی روی همه منابع موجود در سیستم اعمال کرد و سپس از هر پردازه خواست منابع مورد نیاز خود را فقط در یک ترتیب افزایشی درخواست کند. دكتر جليلى - مفافهم ميستم عامل دنشکده ى كامبيوتر- دانشكاه صنعتى شريف همه

صفحه 24:
5 مروری بر عناوین مطالب * مساله بن بست مشخصه هاى بن بست روش های برخورد با بن بست * بيشكيرى از بن بست اجتناب از بن بست * کشف بن بست ترميم از بن بست روش هاى تركيبى براى برخورد با بن بست دكتر جليلى - مفافهم ميستم عامل دنشکده ى كامبيوتر- دانشكاه صنعتى شريف ممه

صفحه 25:
‎sale}‏ اجتناب از بن بست ‏" در این رهیافت سیستم تلاش مى کند تا با استفاده از یک دانش قبلی درباره رفتار پردازه ها مانع از وقوع بن بست شود. ‏رهیافت بپیشگیری از بن بست» بر نقض شرایط پیش نیازی وقوع بن بست و رهیافت «اجتناب از بن بست» بر نظارت مداوم و بررسی امکان یا عدم امکان وقوع بن بست تمرکز دارند. ‎ ‏در ساده ترین و مفیدترین روش موجود هر پردازه قبل از شروع اجرا باید نوع و حداکثر تعداد منابع مورد نیاز از هر نوع را اعلان کند. ‏دکتر جليلى - مفافهم ميستم عامل دنشکده ى كامبيوتر- دانشكاه صنعتى شريف موه

صفحه 26:
حالت تخصیص منابع و حالت امن * الكوريتم اجتناب از بن بست به صورت پویا حالت تخصیص منابع را بررسى مى كند تا تضمين كند هيج كاه انتظار حلقوى اتفاق نمی افتد. حالت تخصیص منابع از منابع موجود و تخصیص داده شده و همچنین حداکثر تقاضای پردازه ها برای هر نوع منبع تشکیل شده است. وقتى يردازه اى تقاضاى اختصاص يك منبع موجود را می کند, سيستم بايد تصميم بكيرد كه آيا اختصاص فورى منبع به پردازه تم راد ‎el‏ 1 دكتر جليلى - مفاهيم سيستم عامل دانشكدهى كامبيوتر- دانشكاه صنعتى شريف مه

صفحه 27:
يي حالت امن * سيستم در حالت امن است در صورتى كه يك ترتيب امن از يردازه ها وجود داشته باشد. ‎SG <P Per P= cus *‏ :1225م اسك ادر موري که برای هر ©, منابعی که ,۴ می تواند تقاضا كند زيرمجموعه اى از منابع موجود و منابع در اختیار ر/ ها باشد | > [۲). ‏اگر منابع مورد نیاز , همه فراهم نیستند. ,2 می تواند تا پایان تمام © ها از را در اختیار دارند صبر کند. وقتی منابع آماده شد. ,2 مى تواند آنها را در اختیار بگیرد. اجرا شود و سپس منابع در اختیار را آزاد کند. ‎ ‏که منابع مورد ‏وقتی ,۶ پایان یافت. بر می تواند اجرا شود و به همین صورت اجرا ادامه ‎patie ality oes‏ سيستم عامل دانشكدهى كامبيرتر- دانشكاه صنعتی شریق موه

صفحه 28:
ار تشخیص ‎adsl‏ 3 اگر سیستم در یک حالت امن است .. سيستم بن بست ندارد. 5 اگر سیستم در یک حالت ناامن است ... ممكن است بن بست رخ داده باشد. 0 سيستم هيج كاه وارد يك حالت ناامن نشود.

صفحه 29:
‎sae}‏ امنيت - عدم امنيت و بن بست ‎deadlock‏ ‎ ‏دکتر جلیلی - مفاهیم سیستم علمل . دانشکده ی کامپیوتر- دانشگاه صنعتی شریف ‎ ‏موه

صفحه 30:
الگوریتم های جلوگیری از بن بست هنگامی که از هر منبع تنها یک نمونه موجود است . از الگوریتم ‎LS‏ تخصیص منابع استفاده می کنیم . ‎elope es‏ ت . از الگوریت هنگامی که بیش از یک نمونه ازمنبع موجود است . از گوریتم بانکدار استفاده می کنیم . ‏دکتر جليلى - مفافهم ميستم عامل دنشکده ى كامبيوتر- دانشكاه صنعتى شريف موه

صفحه 31:
الگوریتم گراف تخصیص منابع * اجراى الكوريتم: وقتى ممكن است بردازه ,8 منبع ,8 را تقاضا كند, یک یال حواسته (7بر ۸ به صورت خحط چین بین رئوس مربوطه می کشیم. وقتی پردازه منبع را درخواست می کند. یال خواسته به یال تقاضای منبع تبدیل می شود. وقتی پردازه منبع را آزاد می کند. يال تخصيص به يال خواسته تبدیل می شود. منابع مورد نیاز باید از قبل از سیستم خواسته شوند. دکتر جلیلی - مفاهیم سیستم علمل . دانشکده ی کامپیوتر- دانشگاه صنعتی شریف موه

صفحه 32:
کگراف تب تخصیص منابع برای اجتناب از ج لاد رتست

صفحه 33:
حالت ناامن ‎BS‏ گراف تخصیص منابع دكتر جليلى - ما

صفحه 34:
الگوریتم گراف تخصیص منابع 5 فرض کنیم پردازه , منبع ,۴ را تقاضا کند ۴ درخواست تنها هنكامى ياسخ داده مى شود كه تبديل يال تقاضا به یال تبدیل باعث ایجاد یک حلقه در گراف نشود دكتر جليلى - مفاهيم سيستم عامل د

صفحه 35:
‎sales‏ الگوریتم بانکدارها ‏این الگوریتم از حالتی که از هر نوع منبع چندین نمونه داشته باشیم ی ی کند. الگوریتم گراف تخصیص منابع براى اين حالت جواب نمی دهد. ‎ ‎ ‏* هر پردازه باید از پیش حداکثر تعداد منابع مورد نیاز خود را اعلام ‏* وقتی پردازه ای تقاضای منبعی را می کند. ممکن است مجبور شود ‏متنظر بماند. ‏* وقتی پردازه ای تمام منابع مورد نیاز را می گیرد باید همه را در زمان ‏محدود با زگرداند. ‏دکتر جليلى - مفافهم ميستم عامل دنشکده ى كامبيوتر- دانشكاه صنعتى شريف موه

صفحه 36:
# ساختار داده الگوریتم بانکدارها فرض كنيد > تعداد يردازه ها و » تعداد نوع منابع باشد. tt arable [vo]; ‏یعنی نمونه از منبع ,8 موجود هستند‎ ۵۷۵1۵016 [j] =k tet wax [eller]; AE oR) tt pd Ss pS Pi ash te max [if] = k ‎[xf];‏ مس با ‎k‏ > [[][1] 9106۵100 یعنی‌پردازه ۷ ,۴ نسونه از منبع ,8 را در لختیار دارد. ‏تلا نس ‎tet‏ ‎need [illj] = k‏ یعنیپردازه ,۴ به كا نمونه ديكر از منبع ,8 نیاز دارد تا کایشرا ‎AS el ‏مس‎ ],[ = Doxfh,l] - ‏مسا‎ ],[ ‏دکتر جليلى - مفافهم ميستم عامل دنشکده ى كامبيوتر- دانشكاه صنعتى شريف موه

صفحه 37:
# الگوریتم ایمنی - آیا سیستم در حالت امن است؟ ۱.فرض کن 0 و 6# دو بردار به طول م و »باشند. این بردارها را به این صورت مقداردهی اولیه کن: زج زاس = ‎Dork‏ ۲.اندیس را به گونه ای پیدا کن که: ‎[i] = Pose; ved < Oork;‏ اس اگر چنین اپیدا نکردی به گام ۶ برو. ‎[i] = Pre; 9.‏ اس اعسا + بو و0 به گام ۲ برو. ءاگر ۷ << [/ 0۵۸ ۷ آنگاه سیستم در یک حالت امن است. ‏دکتر جلیلی - مفاهیم سیستم ‎ake‏ دانشکده ی کامپیوتر- دانشگاه صنعتی شریف ‎eer‏

صفحه 38:
الگوریتم درخواست منبع برای پردازه ۴ بردار ‎٩-۳‏ را به عنوان بردار نیاز پردازه 4 تعریف می کنیم. ‎a5 oe Rement [i] ==‏ بسه ۲ نسمونه از منبع ‎6٩,‏ نسیاز دارد. گر 020 > مجح به گام ۲ بری وگرنه اعلام خطا ‎Preah SY‏ > پسمج6 به گام ۳ برو. وكرنه ,8 بايد منتظر بماند تا منابع مورد نیاز آزاد دوند ۳فرض کن منابع مورد نياز ,0 را اختصاص داده اى. حالت تخصيص منابع را به صورت زیر به روز کن: ‎vkkble = Brokble — Rewer‏ سبد + حدما < مسا سبح — ‎Oped = Dowd‏ اگر اعت لع به ,6 اختصاص يافته اند. ‎bas cl aes ll SI‏ 90ج ید مت ‎AS sells tls,‏ سیستم دا بازیبی کن. موم

صفحه 39:
مثالی از الگوریتم بانکدارها * پنج پردازه ,۵ تا ,۵ و سه منبع 0 (۱۰ نمونه4 6( نمونه) و 0 (۷ نمونه). * حالت تخصیص منابع در ,۳ ‎Dax Breakable‏ مات 66 0 PBC BBO ۰ 0( ووو 00 199ص ۵« 6 6100 یه ووه 005 دکتر جلیلی - مقاهیم سیستم ‎abe‏ دانشکده ی کامپیوتر- دانشگاه صنعتی شریف ‎sae‏

صفحه 40:
4 مثالى از الكو ریتم بانکدارها (ادامه) ‎Deed Gr Sle polis ©‏ را محاسبه مى كنيم: ‎Deed‏ ‎CBC‏ ‏و۵ ‏199 ‏9 ‎oad‏ ‏0 68 ‏عم ‏ه م ه ‎۳ ‏* سیستم در یک حالت امن است چون ترتیب > ‎Py, Poy‏ ‎Puy ‏,> شرط امنیت را تامین می کند و یک ترتیب امن است. ‏دکتر جلیلی - مفاهیم سیستم علمل . دانشکده ی کامپیوتر- دانشگاه صنعتی شریف

صفحه 41:
4 مثال : 000 (۱,۱,:۲) درخواست می دهد = ببین آیا ‎Request < @vatuble‏ است؟ يعنى : (۱,,۲) صص = )9,9,8( < Available Need Allocation ABC ABC ABC 230 743 010 ۳ 020 302 P, 600 307 ‏وم‎ ‎OAM 20 ‏وم‎ ‎43 1 002 Py دکتر جلیلی - مفاهیم سیستم علمل . دانشکده ی کامپیوتر- دانشگاه صنعتی شریف ‎eed‏

صفحه 42:
ae * اجراى الكوريتم اب شرايط امنيت را برقرار مى كند. * آیامی توان درخواست (۳:۳,۰) را برای ‎Pe‏ اجابت كرد؟ نشان می دهد رشته ی > ‎Pa, Pa, Pos Pa‏ بط > * آیامی توان درخواست(*,۰,۲) را برای ۵ اجابت کرد؟ دکتر جلیلی - مفاهیم سیستم عامل . دانشکده ی کامپوتر- دانشگاه صنعتی شریف موه

صفحه 43:
5 مروری بر عناوین مطالب * مساله بن بست مشخصه هاى بن بست روش های برخورد با بن بست * بيشكيرى از بن بست اجتناب از بن بست ترميم از بن بست روش هاى تركيبى براى برخورد با بن بست دكتر جليلى - مفافهم ميستم عامل دنشکده ى كامبيوتر- دانشكاه صنعتى شريف ممه

صفحه 44:
۱ es * به سیستم اجازه داده می شود وارد حالت بن بست شود و سپس تلاش می شود ین بست کشف شله و ترمیم شود. مکانیزم کشف بن بست ؟ لطا ‎Se‏ ‏در حالتی که از هر نوع منبع یکی موجود باشد. می توان از گراف انتظار (ممب ‎(warPor‏ استفاده کرد. هر پردازه یک گره. © 6 یعنی ) منتظر 0 است. به صورت دوره ای گراف انتظار برای یافتن حلقه جستحو می شود. پیچیدگی زمانی اين الكوريتم (0)08© است (" تعداد پردازه ها دکتر جليلى - مفافهم ميستم عامل دنشکده ى كامبيوتر- دانشكاه صنعتى شريف ‎ose‏

صفحه 45:
‎ganas oS‏ متيع و رات انا ‎ ‎ ‎ ‎ ‎ ‏دکتر جلیلی - مفاهیم سیستم ‎ake‏ دانشکده ی کامپیوتر- دانشگاه صنعتی شریف ‎ ‎ ‎

صفحه 46:
الگوریتم کشف بن بست در حالت وجود چند نمونه از هر منبع * ساختار داده الگوریتم: > تعداد نوع منابع و » تعداد پردازه ها [] مره ۱ :]هط بر ‎tt Request [alls];‏ " الگوریتم: ‎.١‏ فرض ‎Dork oS‏ 5 6۵۳ دو بردار به طول « و » باشند. اين بردارها را به اين صورت مقداردهی اولیه کن: ‎ork = Ovakble;‏ ست د ‎BP (boo #D) Prk‏ ‎be Prick = Pret‏ دکتر جليلى - مفافهم ميستم عامل دنشکده ى كامبيوتر- دانشكاه صنعتى شريف ‎eee‏

صفحه 47:
الگوریتم کشف بن بست در حالت وجود جند نمونه از هر منبع (ادامه) " ادامه الگوریتم ۲نلایس رای کونه ای بدا که ‎Prick ][ - Pee; Roque < Dork;‏ اگر چنین ؛پیدا نکردی به گام برو. ‎risk [] = Tre; oF‏ مسا + 0 - 0 به گام ۲ برو. ۶اگر سل 2 [] ۳ :2 آنگاه سیستم در حالت بن بست است و ,© نيز در بن بست قرار دارد. * پیچیدگی زمانی این الگوریتم (0)7*۰8 است. دکتر جلیلی - مفاهیم سیستم ‎ake‏ دانشکده ی کامپیوتر- دانشگاه صنعتی شریف ‎oer‏

صفحه 48:
‎ES‏ وهای از کرد اگورن کشف بن بست ‏* پنج پردازه ,۳ تا ,۳ و سه منبع 0 (۷ نمونه» 0 (۲ نمونه) و 0 (1 نمونه). حالت تخصیص منابع در و۳ ‏سا سسمساسسسلا ‎PBC PCC PBC‏ ‎O40 000 OOO‏ و6 ‏08 8 0 0 6 رص ‎2 909 00 © ‎Py edd © ‎Pe O08 O0e ‏"ا با در نظر گرفتن ترتیب <6 »0 ,6 ,و6۳ ,> داریم: ‎Vit Proick [i‏ ‎ ‏دکتر جلیلی - مفاهیم سیستم عامل . دانشکده ی کامپوتر- دانشگاه صنعتی شریف موه

صفحه 49:
نمونه اى از كاربرد الكوريتم كشف بن بست (ادامه) * © يكنوونه ديكر از © درخولسهی‌ک ند Request CVO © © ارم 0 رم ‎Pf, ood‏ ‎P, doo‏ ‎Py O02‏ سیستم تنها می تواند پاسخگوی باقیمانده منابع مورد ‎Po SL‏ باشد. ب ل جره تازه پرداره های متام در نس فرار دارنلر دكتر جلیلی -مفاهیم سیستم عامل . دنشکده ی كامبيوتر- دانشكاه صنعتى شريف موه

صفحه 50:
# استفاده از کشف بن بست * فواصل زمانی و چگونگی فراخوانی الگوریتم به موارد زیر بستگی دارد: معمولا هر چند مدت یکبار در سیستم بن بست رخ می دهد؟ چه تعداد پردازه باید عقب کشیده شوند؟ در هر حلقه بن بست حداقل يكى از بردازه ها بايد عقب کشیده شود * اكر الكوريتم در زمان دلخواه و بدون در نظر كرفتن معيارهاى بالا فراخوانی شود. ممكن است ما با تعداد زيادى حلقه در كراف منابع و يردازه كرفتارشده در بن بست مواجه شويم و نتوانيم تشخيص دهيم کدام پردازه باعث ایجاد زنجیر بن بست شده است. دکتر جليلى - مفافهم ميستم عامل دنشکده ى كامبيوتر- دانشكاه صنعتى شريف موه

صفحه 51:
5 مروری بر عناوین مطالب * مساله بن بست مشخصه هاى بن بست روش های برخورد با بن بست * بيشكيرى از بن بست اجتناب از بن بست * كشف بن بست ترميم از بن بست روش هاى تركيبى براى برخورد با بن بست دکتر جلیلی - مفاهیم سیستم علمل . دانشکده ی کامپیوتر- دانشگاه صنعتی شریف موه

صفحه 52:
‎sales‏ ترميم از بن بست ‏2 می توان بن بست را با پایان دهی به تعدادی پردازه و رهاسازی منابع در اختيار انها ترميم كرد. ‏يايان دهى به همه يردازه هاى دركير ‎AS LU‏ 4 کی از بردر هاش درک در انتخاب پردازه قربانی باید هزینه پرداختی پایان دهی به پردازه را مینیمم کرد. چس از پایان دهی به پردازه قربانی. سیستم به یک حالت امن عقبگرد می کند و اجرای پردازه قربانی را از آن حالت مجددا شروع می کند. ‏دکتر جلیلی - مفاهیم سیستم ‎ake‏ دانشکده ی کامپیوتر- دانشگاه صنعتی شریف

صفحه 53:
ترميم از بن بست (ادامه) براى انتخاب پردازه قربانی می توان معیارهایی در نظر گرفت... اولویت پردازه ها زمان پردازنده مصرف شده و تخمین موجود از زمان پردازنده مورد نیاز برای تکمیل کار پردازه منابع مصرف شده و منابع مورد نیاز پردازه برای تکمیل کار تعداد پردازه هایی که برای رفع همه بن بست ها بايد به آنها يايان داده ود ا بودن پر داره 50" می توان تعداد عقبگرد های هر پردازه را نیز یک معیار در نظر گرفت. دکتر جلیلی - مفاهیم سیستم ‎ake‏ دانشکده ی کامپیوتر- دانشگاه صنعتی شریف

صفحه 54:
5 مروری بر عناوین مطالب * مساله بن بست مشخصه هاى بن بست روش های برخورد با بن بست * پیشگیری از بن بست اجتناب از بن بست * کشف بن بست ترميم از بن بست روش هاى تركيبى براى برخورد با بن بست دکتر جلیلی - مفاهیم سیستم ‎ake‏ دانشکده ی کامپیوتر- دانشگاه صنعتی شریف

صفحه 55:
روش های ترکیبی برای برخورد با بن بست * می توان پیشگیری؛ اجتناب و کشف بن بست را با هم ترکیب کرد و برای هر منبع از روشی که برای آن منبع مناسب تر است استفاده کرد. براى اين كار مى توان منابع را کلاس بندی کرد و سپس برای برخورد با بن بست در هر يك از كلاس هاى منابع از مناسبترين ا ا ا دكتر جليلى - مفافهم ميستم عامل دنشکده ى كامبيوتر- دانشكاه صنعتى شريف همه

صفحه 56:
دکتر جلیلی - مفاهیم سیستم ‎ake‏ دانشکده ی کامپیوتر- دانشگاه صنعتی شریف

بن بست اسالیدهای فصل هفتم کتاب سیلبرشاتز دانشکده مهندسی کامپیوتر دانشگاه شریف دکتر جلیلی -مفاهیم سیستم عامل دانشکده ی کامپیوتر -دانشگاه صنعتی شریف مروری بر عناوین مطالب ‏ ‏ ‏ ‏ ‏ ‏ ‏ ‏ مساله بن بست مشخصه های بن بست روش های برخورد با بن بست پیشگیری از بن بست اجتناب از بن بست کشف بن بست ترمیم از بن بست روش های ترکیبی برای برخورد با بن بست دکتر جلیلی -مفاهیم سیستم عامل دانشکده ی کامپیوتر -دانشگاه صنعتی شریف 5.2 مروری بر اهداف فصل ‏ ‏ آشنایی با مفهوم بن بست که مانع از انجام کار یک یا چندین پردازه می شود آشنایی با روش های مختلف مقابله با بن بست دکتر جلیلی -مفاهیم سیستم عامل دانشکده ی کامپیوتر -دانشگاه صنعتی شریف 5.3 مساله بن بست ‏ ‏ یک مجموعه از پردازه ها در حالت بن بست هستند اگر هر یک از پردازه ها منبعی را در اختیار داشته باشند و منتظر منبع دیگری باشند که در اختیار پردازه ای دیگر در همین مجموعه است. نمونه :دو سمافور Aو Bبا مقدار اولیه 1 ‏P0 ‏P1 )wait(B )wait(A ‏ ;)wait (A ;)wait (B نمونه :پل میان گذر ‏ عرض پل به اندازه ای است که اجازه عبور یک ماشین را می دهد. دکتر جلیلی -مفاهیم سیستم عامل دانشکده ی کامپیوتر -دانشگاه صنعتی شریف 5.4 مساله بن بست ‏ ‏ ‏ ‏ (ادامه) هر قسمت از پل یک منبع محسوب می شود. اگر بن بست رخ دهد ،می توان با بازگرداندن یک ماشین آن را حل کرد. ممکن است نیاز باشد چندین ماشین برگردانده شوند. احتمال قحطی وجود دارد. دکتر جلیلی -مفاهیم سیستم عامل دانشکده ی کامپیوتر -دانشگاه صنعتی شریف 5.5 مدل سیستم ‏ منابع سیستم از انواع مختلف R1, R2, . . ., Rmهستند. ‏ قطعه های زمانی پردازنده ،فضای حافظه ،ابزارهای خواندن /نوشتن... ، ‏ از هر منبع Ri ، Wiتا داریم. ‏ هر پردازه از هر منبع با رعایت توالی اعمال زیر بهره برداری می کند: ‏ ‏ ‏ درخواست استفاده رهاسازی دکتر جلیلی -مفاهیم سیستم عامل دانشکده ی کامپیوتر -دانشگاه صنعتی شریف 5.6 مروری بر عناوین مطالب ‏ ‏ ‏ ‏ ‏ ‏ ‏ ‏ مساله بن بست مشخصه های بن بست روش های برخورد با بن بست پیشگیری از بن بست اجتناب از بن بست کشف بن بست ترمیم از بن بست روش های ترکیبی برای برخورد با بن بست دکتر جلیلی -مفاهیم سیستم عامل دانشکده ی کامپیوتر -دانشگاه صنعتی شریف 5.7 مشخصه های بن بست ‏ برای رخ دادن بن بست برقراری همزمان چهار شرط زیر الزامی است: ‏ ‏ ‏ ممانعت دوجانبه ( :)Mutual Exclusionدر هر زمان تنها یک RپرداRزه می توRاند از یک منبع استفاده کند. نگهدار و منتظر بمان ( :)Hold and Waitپردازه ای که حداقل یک منبع در اختیار دارد ،منتظر است تا منابع دیRگری که در اخRتیار پردازه های دیگر است نیز بگیرد. عدم پیشدستی ( :)No Preemptionهر منبعی تنها پس از پایان کار پردازه ای که آن را Rدر اختیار گرفته است و به صورت داوطلبانه توسط Rهمان پردازه قابل رهاسازی است. دکتر جلیلی -مفاهیم سیستم عامل دانشکده ی کامپیوتر -دانشگاه صنعتی شریف 5.8 مشخصه های بن بست ‏ ‏ (ادامه) انتظار حلقوی ( :)Circular Waitمجموعه ای مانند { }P0, P1, …, Pnوجود دارد به گونه ای که P0منتظر منبعی است که Rدر اختیار P1قرار داردP1 ، منتظر منبعی است که در اختیار P2قرار دارد ، ... ،و Pnمنتظر منبعی است که در اختیار P0قرار دارد. گرچه وقوع همزمان هر چهار شرط برای وقوع بن بست الزامی است ،اما این شرایط کامال از هم مستقل نیستند. ‏ برای مثال شرط «انتظار حلقوی» ،شرط «نگهدار و منتظر بمان» را نتیجه می دهد. دکتر جلیلی -مفاهیم سیستم عامل دانشکده ی کامپیوتر -دانشگاه صنعتی شریف 5.9 گراف تخصیص منابع ‏ ‏ ‏ گراف تخصیص منابع به صورت مجموعه رئوس Vو مجموعه یال های جهت دار Eتعریف می شود. دو نوع راس :پردازه ها و نوع منابع ‏ } P = {P1, P2, …, Pnمجموعه همه پردازه های سیستم ‏ } R = {R1, R2, …, Rmمجموعه همه انواع منابع سیستم هر یال جهت دار نشانگر درخواست یا اختصاص منبع ‏ ‏ ‏P1  Rj درخواست منبع: اختصاص منبعRj  Pi : دکتر جلیلی -مفاهیم سیستم عامل دانشکده ی کامپیوتر -دانشگاه صنعتی شریف 5.10 گراف تخصیص منابع ‏ پردازه: ‏ نوع منبع با چهار نمونه: (ادامه) ‏ Piیک نمونه از Rjرا تقاضا می کند: ‏ Piیک نمونه از Rjرا در اختیار دارد: ‏Pi ‏Rj ‏Pi صنعتیRشریف دکتر جلیلی -مفاهیم سیستم عامل دانشکده ی کامپیوتر -دانشگاه ‏j 5.11 یک نمونه از گراف تخصیص منابع دکتر جلیلی -مفاهیم سیستم عامل دانشکده ی کامپیوتر -دانشگاه صنعتی شریف 5.12 گراف تخصیص منابع (با حلقه و بن بست) دکتر جلیلی -مفاهیم سیستم عامل دانشکده ی کامپیوتر -دانشگاه صنعتی شریف 5.13 گراف تخصیص منابع (با حلقه و بدون بن بست) دکتر جلیلی -مفاهیم سیستم عامل دانشکده ی کامپیوتر -دانشگاه صنعتی شریف 5.14 معیار تشخیص اولیه ‏ اگر گراف تخصیص منابع حلقه ندارد ... ‏ ‏ سیستم بن بست ندارد. اگر گراف تخصیص منابع حلقه دارد ... ‏ ‏ اگر از هر نوع منبع درگیر در حلقه فقط یک نمونه داریم ،یک بن بست رخ داده است. اگر از هر نوع منبع درگیر در حلقه چندین نمونه داریم ،ممکن است بن بست رخ داده باشد. دکتر جلیلی -مفاهیم سیستم عامل دانشکده ی کامپیوتر -دانشگاه صنعتی شریف 5.15 مروری بر عناوین مطالب ‏ ‏ ‏ ‏ ‏ ‏ ‏ ‏ مساله بن بست مشخصه های بن بست روش های برخورد با بن بست پیشگیری از بن بست اجتناب از بن بست کشف بن بست ترمیم از بن بست روش های ترکیبی برای برخورد با بن بست دکتر جلیلی -مفاهیم سیستم عامل دانشکده ی کامپیوتر -دانشگاه صنعتی شریف 5.16 روش های برخورد با بن بست ‏ ‏ در حالت کلی به سه گونه می توان با مساله بن بست برخورد کرد: تضمین عدم وقوع بن بست ،ترمیم بن بست ،و اجتناب از بن بست. برای تضمین اینکه هیچ گاه بن بست در سیستم رخ نمی دهد... ‏ ‏ باید مکانیزمی وجود داشته باشد که قبل از تخصیص منابع به پردازه ها صحت شروط تضمین عدم امکان وقوع بن بست را ارزیابی کند. پیشگیری از بن بست و اجتناب از بن بست هر دو در این دسته جای می گیرند. دکتر جلیلی -مفاهیم سیستم عامل دانشکده ی کامپیوتر -دانشگاه صنعتی شریف 5.17 روش های برخورد با بن بست ‏ ترمیم بن بست ‏ ‏ ‏ (ادامه) در این رهیافت به سیستم اجازه داده می شود وارد حالت بن بست شود و سپس تالش می شود بن بست رفع شود. نیاز به مکانیزم هایی است که وقوع بن بست را تشخیص دهند و سپس آن را برطرف کنند. صرف نظر کردن از بن بست ‏ ‏ در بسیاری از سیستم ها بن بست به ندرت رخ می دهد ،بنابراین به جای استفاده از راه حل های گران قبلی به سادگی فرض Rمی شود هیچ گاه بن بست رخ نمی دهد. راه حل مورد استفاده در UNIX دکتر جلیلی -مفاهیم سیستم عامل دانشکده ی کامپیوتر -دانشگاه صنعتی شریف 5.18 مروری بر عناوین مطالب ‏ ‏ ‏ ‏ ‏ ‏ ‏ ‏ مساله بن بست مشخصه های بن بست روش های برخورد با بن بست پیشگیری از بن بست اجتناب از بن بست کشف بن بست ترمیم از بن بست روش های ترکیبی برای برخورد با بن بست دکتر جلیلی -مفاهیم سیستم عامل دانشکده ی کامپیوتر -دانشگاه صنعتی شریف 5.19 پیشگیری از بن بست ‏ برای پیشگیری از بن بست ،باید یکی از شروط چهارگانه را نقض کرد. .1ممانعت دوجانبه ‏ ‏ اگر منبع قابل به اشتراک گذاری باشد (مانند یک پرونده فقط خواندنی) می توان در مورد آن از شرط ممانعت دوجانبه صرف نظر کرد. در حالت کلی این شرط قابل نقض نیست ،چون ماهیت بسیاری از منابع (مانند چاپگر) وجود این شرط را الزامی می کند. دکتر جلیلی -مفاهیم سیستم عامل دانشکده ی کامپیوتر -دانشگاه صنعتی شریف 5.20 پیشگیری از بن بست (ادامه) .2نگهدار و منتظر بمان ‏ ‏ ‏ برای نقض این شرط هر پردازه تنها باید در صورتی تقاضای یک منبع را بکند که هیچ منبع دیگری در اختیار نداشته باشد. پردازه دو راه برای درخواست منبع دارد .یا باید همه منابع مورد نیاز خود را در ابتدای اجرای خود به صورت یکجا درخواست کند یا باید همه منابع در اختیار را آزاد کرده و سپس تقاضای منبع جدید کند. بهره وری منابع در این روش پایین است و احتمال قحطی نیز وجود دارد. دکتر جلیلی -مفاهیم سیستم عامل دانشکده ی کامپیوتر -دانشگاه صنعتی شریف 5.21 پیشگیری از بن بست (ادامه) .3عدم پیشدستی ‏ ‏ ‏ ‏ برای نقض این شرط می توان به سیستم عامل اجازه داد تا در صورت لزوم پیشدستی کرده و خود منابع در اختیار پردازه را آزاد کند. در صورتی که پردازه ای تقاضای منبع کرد و اختصاص منبع امکان پذیر نبود ،سیستم عامل می تواند تمام منابع در اختیار پردازه متقاضی را آزاد کند. منابع آزادشده به لیست منابع مورد تقاضای پردازه افزوده می شوند. اجرای پردازه وقتی از سر گرفته می شود که پردازه بتواند منبع مورد نیاز و تمام منابع آزاد شده قبلی را در اختیار بگیرد. دکتر جلیلی -مفاهیم سیستم عامل دانشکده ی کامپیوتر -دانشگاه صنعتی شریف 5.22 پیشگیری از بن بست (ادامه) .4انتظار حلقوی ‏ برای نقض این شرط می توان یک ترتیب کلی روی همه منابع موجود در سیستم اعمال کرد و سپس از هر پردازه خواست منابع مورد نیاز خود را فقط در یک ترتیب افزایشی درخواست کند. دکتر جلیلی -مفاهیم سیستم عامل دانشکده ی کامپیوتر -دانشگاه صنعتی شریف 5.23 مروری بر عناوین مطالب ‏ ‏ ‏ ‏ ‏ ‏ ‏ ‏ مساله بن بست مشخصه های بن بست روش های برخورد با بن بست پیشگیری از بن بست اجتناب از بن بست کشف بن بست ترمیم از بن بست روش های ترکیبی برای برخورد با بن بست دکتر جلیلی -مفاهیم سیستم عامل دانشکده ی کامپیوتر -دانشگاه صنعتی شریف 5.24 اجتناب از بن بست ‏ ‏ ‏ در این رهیافت سیستم تالش می کند تا با استفاده از یک دانش قبلی درباره رفتار پردازه ها مانع از وقوع بن بست شود. رهیافت «پRیشگیری از بن بست» بر نقض شرایط پیش نیازی وقوع بن بست و رهیافت «اجتناب از بن بست» بر نظارت مداوم و بررسی امکان یا عدم امکان وقوع بن بست تمرکز دارند. در ساده ترین و مفیدترین روش موجود هر پردازه قبل از شروع اجرا باید نوع و حداکثر تعداد منابع مورد نیاز از هر نوع را اعالن کند. دکتر جلیلی -مفاهیم سیستم عامل دانشکده ی کامپیوتر -دانشگاه صنعتی شریف 5.25 حالت تخصیص منابع و حالت امن ‏ ‏ ‏ الگوریتم اجتناب از بن بست به صورت پویا حالت تخصیص منابع را بررسی می کند تا تضمین کند هیچ گاه انتظار حلقوی اتفاق نمی افتد. حالت تخصیص منابع از منابع موجود و تخصیص داده شده و همچنین حداکثر تقاضای پردازه ها برای هر نوع منبع تشکیل شده است. وقتی پردازه ای تقاضای اختصاص یک منبع موجود را می کند، سیستم باید تصمیم بگیرد که آیا اختصاص فوری منبع به پردازه سیستم را در حالت امن نگاه می دارد یا خیر؟ دکتر جلیلی -مفاهیم سیستم عامل دانشکده ی کامپیوتر -دانشگاه صنعتی شریف 5.26 حالت امن ‏ ‏ سیستم در حالت امن است در صورتی که یک ترتیب امن از پردازه ها وجود داشته باشد. ترتیب < >P1, P2, …, Pnیک ترتیب امن است در صورتی که برای هر ،Piمنابعی که Piمی تواند تقاضا کند زیرمجموعه ای از منابع موجود و منابع در اختیار Pjها باشد (.) j < i ‏ ‏ ‏ اگر منابع مورد نیاز Piهمه فراهم نیستند Pi ،می تواند تا پایان تمام Pjها که منابع مورد نیاز را در اختیار دارند صبر کند. وقتی منابع آماده شد Pi ،می تواند آنها را در اختیار بگیرد ،اجرا شود و سپس منابع در اختیار را آزاد کند. وقتی Piپایان یافت Pi+1 ،می تواند اجرا شود و به همین صورت اجرا ادامه یابد.مفاهیم سیستم عامل دانشکده ی کامپیوتر -دانشگاه صنعتی شریف میجلیلی - دکتر 5.27 معیار تشخیص اولیه ‏ اگر سیستم در یک حالت امن است ... ‏ ‏ اگر سیستم در یک حالت ناامن است ... ‏ ‏ سیستم بن بست ندارد. ممکن است بن بست رخ داده باشد. اجتناب از بن بست تضمین می کند سیستم هیچ گاه وارد یک حالت ناامن نشود. دکتر جلیلی -مفاهیم سیستم عامل دانشکده ی کامپیوتر -دانشگاه صنعتی شریف 5.28 امنیت – عدم امنیت و بن بست دکتر جلیلی -مفاهیم سیستم عامل دانشکده ی کامپیوتر -دانشگاه صنعتی شریف 5.29 الگوریتم های جلوگیری از بن بست ‏ ‏ هنگامی که از هر منبع تنها یک نمونه موجود است .از الگوریتم گراف تخصیص منابع استفاده می کنیم . هنگامی که بیش از یک نمونه ازمنبع موجود است .از الگوریتم بانکدار استفاده می کنیم . دکتر جلیلی -مفاهیم سیستم عامل دانشکده ی کامپیوتر -دانشگاه صنعتی شریف 5.30 الگوریتم گراف تخصیص منابع ‏ اجزای الگوریتم: ‏ ‏ ‏ ‏ وقتی ممکن است پردازه Piمنبع Rjرا تقاضا کند ،یک یال خواسته )edgeبه صورت خط چین بین رئوس مربوطه می کشیم. وقتی پردازه منبع را درخواست می کند ،یال خواسته Rبه یال تقاضای منبع تبدیل می شود. وقتی پردازه منبع را آزاد می کند ،یال تخصیص به یال خواسته تبدیل می شود. منابع مورد نیاز باید از قبل از سیستم خواسته شوند. (claim دکتر جلیلی -مفاهیم سیستم عامل دانشکده ی کامپیوتر -دانشگاه صنعتی شریف 5.31 گراف تخصیص منابع برای اجتناب از بن بست دکتر جلیلی -مفاهیم سیستم عامل دانشکده ی کامپیوتر -دانشگاه صنعتی شریف 5.32 حالت ناامن در گراف تخصیص منابع دکتر جلیلی -مفاهیم سیستم عامل دانشکده ی کامپیوتر -دانشگاه صنعتی شریف 5.33 الگوریتم گراف تخصیص منابع ‏ فرض کنیم پردازه Piمنبع Rjرا تقاضا کند ‏ درخواست تنها هنگامی پاسخ داده می شود که تبدیل یال تقاضا به یال تبدیل باعث ایجاد یک حلقه در گراف نشود دکتر جلیلی -مفاهیم سیستم عامل دانشکده ی کامپیوتر -دانشگاه صنعتی شریف 5.34 الگوریتم بانکدارها ‏ این الگوریتم از حالتی که از هر نوع منبع چندین نمونه داشته باشیم پشتیبانی می کند. ‏ ‏ ‏ ‏ الگوریتم گراف تخصیص منابع برای این حالت جواب نمی دهد. هر پردازه باید از پیش حداکثر تعداد منابع مورد نیاز خود را اعالم کند. وقتی پردازه ای تقاضای منبعی را می کند ،ممکن است مجبور شود منتظر بماند. وقتی پردازه ای تمام منابع مورد نیاز را می گیرد ،باید همه را در زمان محدود بازگرداند. دکتر جلیلی -مفاهیم سیستم عامل دانشکده ی کامپیوتر -دانشگاه صنعتی شریف 5.35 ساختار داده الگوریتم بانکدارها ‏ فرض کنید mتعداد پردازه ها و nتعداد نوع منابع باشد. ;]int available [m available [j] = kیRRعنی kنRRمونRه از مRنبع RjمRوجود هستند. ;]int max [n][m مRمکنRسRت kنRRمونRه از مRنبع Rjرا درRخواRسRتکRRند. ا max [i][j] = kیRRعنیپRRردازRه Pi RحRداRکRثر ;]int allocation [n][m allocation [i][j] = kیRRعنیپRRردازRه Pi، k RنRRمونRه از مRنبع Rjرا در اRخRتیار دارد. ;]int need [n][m need [i][j] = kیRRعنیپRRردازRه Pi RبRRRه kنRRمونRه دRیRگر از مRنبع RjنRRیاز دارد تRRا کRRارRشرا تRRمام کRRند. ]Need [i,j] = Max[i,j] – Allocation [i,j دکتر جلیلی -مفاهیم سیستم عامل دانشکده ی کامپیوتر -دانشگاه صنعتی شریف 5.36 الگوریتم ایمنی – آيا سيستم در حالت امن است؟ .1فرض کن Workو Finishدو بردار به طول mو nباشند .این بردارها را به این صورت مقداردهی اولیه کن: ;}Finish = {False ;Work = Available .2اندیس iرا به گونه ای پیدا کن که: ;Needi  Work ;Finish [i] = False اگر چنین iپیدا نکردی به گام 4برو. ; Work = Work + Allocation ;Finish [i] = True 3. به گام 2برو. .4اگر i: Finish [i] == Trueآنگاه Rسیستم در یک حالت امن است. ‏i دکتر جلیلی -مفاهیم سیستم عامل دانشکده ی کامپیوتر -دانشگاه صنعتی شریف 5.37 الگوریتم درخواست منبع برای پردازه ‏ ‏Pi بردار Requestiرا به عنوان بردار نیاز پردازه Piتعریف می کنیم. ‏ Requesti [j] == kیRRعنیپRRردازRه Pi RبRRRه kنRRمونRه از مRنبع RjنRRیاز دارد. .1اگر Requesti  Neediبه گام 2برو ،وگرنه اعالم خطا. .2اگر Requesti  Availableبه گام 3برو ،وگرنه Piباید منتظر بماند تا منابع مورد نیاز آزاد شوند. .3فرض کن منابع مورد نیاز Piرا اختصاص داده ای .حالت تخصیص منابع را به صورت زیر به روز کن: ‏Available = Available – Requesti ;Allocationi = Allocationi + Requesti ;Needi = Needi – Requesti اگر حالت سیستم امن بود منابع به Piاختصاص یافته اند. شریفقبلی سیستم را بازیابی کن. حالت اگر حالت سیستم ناامن بود  Pباید منتظر بماند، دکتر جلیلی -مفاهیم سیستم عامل iدانشکده ی کامپیوتر -دانشگاه صنعتی 5.38 مثالی از الگوریتم بانکدارها ‏ ‏ پنج پردازه P0تا P4و سه منبع 10( Aنمونه) 5( B ،نمونه) و 7( C نمونه). حالت تخصیص منابع در :T0 ‏Allocation ‏Max ‏Available ‏ABC ABC ABC 010 753 332 ‏P0 200 322 ‏P1 302 902 ‏P2 211 ‏P3 002 433 ‏P4 222 دکتر جلیلی -مفاهیم سیستم عامل دانشکده ی کامپیوتر -دانشگاه صنعتی شریف 5.39 مثالی از الگوریتم بانکدارها (ادامه) ‏ مقادیر ماتریس Needرا محاسبه می کنیم: ‏ سیستم در یک حالت امن است چون ترتیب >Pشرط امنیت را تامین می کند و یک ترتیب امن است. ‏Need ‏ABC 743 ‏P0 122 ‏P1 600 ‏P2 011 ‏P3 431 ‏P4 < P1, P3, P4, P2, 0 دکتر جلیلی -مفاهیم سیستم عامل دانشکده ی کامپیوتر -دانشگاه صنعتی شریف 5.40 مثال P1 :برای ( )1,0,2درخواست می دهد ‏ ببین آیا Request  Availableاست؟ یعنی : ‏ ( (3,3,2)  true )1,0,2 دکتر جلیلی -مفاهیم سیستم عامل دانشکده ی کامپیوتر -دانشگاه صنعتی شریف 5.41  اجرای الگوریتم ایمنی نشان می دهد رشته ی < >P1, P3, P4, P0, P2 شرایط امنیت را برقرار می کند. ‏ آیا می توان درخواست ( )3,3,0را برای P4اجابت کرد؟ ‏ آیا می توان درخواست( )0,2,0را برای P0اجابت کرد؟ دکتر جلیلی -مفاهیم سیستم عامل دانشکده ی کامپیوتر -دانشگاه صنعتی شریف 5.42 مروری بر عناوین مطالب ‏ ‏ ‏ ‏ ‏ ‏ ‏ ‏ مساله بن بست مشخصه های بن بست روش های برخورد با بن بست پیشگیری از بن بست اجتناب از بن بست کشف بن بست ترمیم از بن بست روش های ترکیبی برای برخورد با بن بست دکتر جلیلی -مفاهیم سیستم عامل دانشکده ی کامپیوتر -دانشگاه صنعتی شریف 5.43 کشف بن بست ‏ به سیستم اجازه داده می شود وارد حالت بن بست شود و سپس تالش می شود بن بست کشف شده و ترمیم شود. ‏ ‏ ‏ مکانیزم کشف بن بست ؟ مکانیزم ترمیم بن بست ؟ در حالتی که از هر نوع منبع یکی موجود باشد ،می توان از گراف انتظار ( )wait-for graphاستفاده کرد. ‏ ‏ ‏ هر پردازه یک گره. Pi  Pjیعنی Piمنتظر Pjاست. به صورت دوره ای گراف انتظار برای یافتن حلقه جستحو می شود. پیچیدگی زمانی این الگوریتم ) O(n2است ( nتعداد پردازه ها). دکتر جلیلی -مفاهیم سیستم عامل دانشکده ی کامپیوتر -دانشگاه صنعتی شریف 5.44 گراف تخصیص منابع و گراف انتظار گراف انتظار گراف تخصیص منابع دکتر جلیلی -مفاهیم سیستم عامل دانشکده ی کامپیوتر -دانشگاه صنعتی شریف 5.45 الگوریتم کشف بن بست در حالت وجود چند نمونه از هر منبع ‏ ساختار داده الگوریتم: ‏ 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 دکتر جلیلی -مفاهیم سیستم عامل دانشکده ی کامپیوتر -دانشگاه صنعتی شریف 5.46 الگوریتم کشف بن بست در حالت وجود چند نمونه از هر منبع (ادامه) ‏ ادامه الگوریتم .2اندیس iرا به گونه Rای پیدا کن که: ;Requesti  Work ;Finish [i] = False اگر چنین iپیدا نکردی به گام 4برو. ;Finish [i] = True 3. ;Work = Work + Allocationi به گام 2برو. .4اگر  i: Finish [i] == Falseآنگاه سیستم در حالت بن بست است و Piنیز در بن بست قرار دارد. ‏ پیچیدگی زمانی این الگوریتم ) O(m x n2است. دکتر جلیلی -مفاهیم سیستم عامل دانشکده ی کامپیوتر -دانشگاه صنعتی شریف 5.47 نمونه ای از کاربرد الگوریتم کشف بن بست ‏ پنج پردازه P0تا P4و سه منبع 7( Aنمونه) 2( B ،نمونه) و 6( Cنمونه). حالت تخصیص منابع در :T0 ‏AllocationRequest Available ‏ABC ABC ABC ‏P0 010 000 000 200 202 ‏P1 303 000 ‏P2 211 ‏P3 002 002 ‏P4 100 ‏ با در نظر گرفتن ترتیب < >P0, P2, P3, P1, P4داریم: ‏ i: Finish [i] == True دکتر جلیلی -مفاهیم سیستم عامل دانشکده ی کامپیوتر -دانشگاه صنعتی شریف 5.48 نمونه ای از کاربرد الگوریتم کشف بن بست (ادامه) ‏ P2یRRکنRRمونRه دRیRگر از CدرRخواRسRتمRیکRRند. ‏ حالت سیستم: 000 201 001 100 002 ‏ ‏ ‏Request ‏ABC ‏P0 ‏P1 ‏P2 ‏P3 ‏P4 سیستم تنها می تواند پاسخگوی باقیمانده منابع مورد نیاز P0باشد. بن بست وجود دارد .پردازه های P1تا P4در بن بست قرار دارند. دکتر جلیلی -مفاهیم سیستم عامل دانشکده ی کامپیوتر -دانشگاه صنعتی شریف 5.49 استفاده از کشف بن بست ‏ فواصل زمانی و چگونگی فراخوانی الگوریتم به موارد زیر بستگی دارد: ‏ ‏ معموال هر چند مدت یکبار در سیستم بن بست رخ می دهد؟ چه تعداد پردازه باید عقب کشیده شوند؟ ‏ ‏ در هر حلقه بن بست حداقل یکی از پردازه ها باید عقب کشیده شود. اگر الگوریتم در زمان دلخواه و بدون در نظر گرفتن معیارهای باال فراخوانی شود ،ممکن است ما با تعداد زیادی حلقه در گراف منابع و پردازه گرفتارشده در بن بست مواجه شویم و نتوانیم تشخیص دهیم کدام پردازه باعث ایجاد زنجیر بن بست شده است. دکتر جلیلی -مفاهیم سیستم عامل دانشکده ی کامپیوتر -دانشگاه صنعتی شریف 5.50 مروری بر عناوین مطالب ‏ ‏ ‏ ‏ ‏ ‏ ‏ ‏ مساله بن بست مشخصه های بن بست روش های برخورد با بن بست پیشگیری از بن بست اجتناب از بن بست کشف بن بست ترمیم از بن بست روش های ترکیبی برای برخورد با بن بست دکتر جلیلی -مفاهیم سیستم عامل دانشکده ی کامپیوتر -دانشگاه صنعتی شریف 5.51 ترمیم از بن بست ‏ می توان بن بست را با پایان دهی به تعدادی پردازه و رهاسازی منابع در اختیار آنها ترمیم کرد. ‏ ‏ ‏ ‏ پایان دهی به همه پردازه های درگیر پایان دهی به یکی از پردازه های درگیر در انتخاب پردازه قربانی باید هزینه پرداختی پایان دهی به پردازه را مینیمم کرد. پRس از پایان دهی به پRردازه قربانی ،سیستم به یک حالت امن عقبگرد می کند و اجرای پردازه قربانی را از آن حالت مجددا شروع می کند. دکتر جلیلی -مفاهیم سیستم عامل دانشکده ی کامپیوتر -دانشگاه صنعتی شریف 5.52 ترمیم از بن بست ‏ برای انتخاب پردازه قربانی می توان معیارهایی در نظر گرفت... ‏ ‏ ‏ ‏ ‏ ‏ (ادامه) اولویت پردازه ها زمان پردازنده مصرف شده ،و تخمین موجود از زمان پردازنده مورد نیاز برای تکمیل کار پردازه منابع مصرف شده و منابع مورد نیاز پردازه برای تکمیل کار تعداد پردازه هایی که برای رفع همه بن بست ها باید به آنها پایان داده شود. تعاملی یا دسته ای بودن پردازه. خطر قحطی :یک پردازه همیشه قربانی شود ‏ می توان تعداد عقبگرد های هر پردازه را نیز یک معیار در نظر گرفت. دکتر جلیلی -مفاهیم سیستم عامل دانشکده ی کامپیوتر -دانشگاه صنعتی شریف 5.53 مروری بر عناوین مطالب ‏ ‏ ‏ ‏ ‏ ‏ ‏ ‏ مساله بن بست مشخصه های بن بست روش های برخورد با بن بست پیشگیری از بن بست اجتناب از بن بست کشف بن بست ترمیم از بن بست روش های ترکیبی برای برخورد با بن بست دکتر جلیلی -مفاهیم سیستم عامل دانشکده ی کامپیوتر -دانشگاه صنعتی شریف 5.54 روش های ترکیبی برای برخورد با بن بست ‏ ‏ می توان پیشگیری ،اجتناب و کشف بن بست را با هم ترکیب کرد و برای هر منبع از روشی که برای آن منبع مناسب تر است استفاده کرد. برای این کار می توان منابع را کالس بندی کرد و سپس برای برخورد با بن بست در هر یک از کالس های منابع از مناسبترین روش موجود استفاده کرد. دکتر جلیلی -مفاهیم سیستم عامل دانشکده ی کامپیوتر -دانشگاه صنعتی شریف 5.55  پایان فصل هفتم دکتر جلیلی -مفاهیم سیستم عامل دانشکده ی کامپیوتر -دانشگاه صنعتی شریف 5.56
39,000 تومان