صفحه 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