
نام فایل : بن بست ها 36 اسلاید (2)
فرمت : .ppt
تعداد صفحه/اسلاید : 36
حجم : 1073 کیلوبایت
Deadlocksبن بست ها
كامپيوتر ها داراي منابع زيادي هستند كه در هر لحظه فقط توسط يك processمي توانند استفاده شوند . مثلا printer ها ،tape drive ها ، scanner ها ، slot هاي process table .
اگر دو پروسس همزمان بخواهند در يك slot درون process table بنويسند، باعث خراب شدن سيستم ميشود.اگر دو پروسس بخواهند روي printer بنويسند حاصل آشغال خواهد بود.
بنا بر اين تمام سيستمهاي عامل قدرت تخصيص دسترسي انحصاري (به طور موقت) به منابع مشخصي را دارند . در بسياري از برنامه هاي كاربردي ، process نيازانحصاري به چندين منبع را دارد . فرض كنيدقرار باشد نقشه يك كشور از روي يك cd ،روي يك plotterبرده شود . فرض كنيد process Aدرخواست cd-Rom كند وcd-Rom به او تخصيص يابد. كمي بعد process Bدرخواست plotterكند وبه او داده شودحالا process A درخواست plotterكند،و در انتظار آن منبع ،block شود . سپس process B، تقاضاي cd_Rom driverكند وblock شود . در اين لحظه هر دوي process ها در حالت blockهستند و تا ابد در اين حالت باقي مي مانند . اين وضعيت deadlockنام دارد.
A
B
R1
R2
منبع : هر چیزی است که در هر لحظه فقط توسط یک پروسس می تواند استفاده شود . منبع می تواند سخت افزاری یا نرم افزاری باشد .
Resource ها دو نوعند:
قابل پس گرفتن preemptable
غير قابل پس گرفتن nonpreemptable
دنباله اتفاقات در مورد استفاده از يك منبع به اين صورت است:
تقاضا براي منبع
استفاده از منبع
آزاد كردن منبع
typedef int semaphore; typedef int semaphore;
semaphore resource_1; semaphore resource_1;
....