دانلود پاورپوینت بن بست ها 36 اسلاید

دانلود پاورپوینت بن بست ها 36 اسلاید

دانلود پاورپوینت بن بست ها 36 اسلاید

دانلود پاورپوینت بن بست ها 36 اسلاید

دسته بندی عمومی
فرمت فایل zip
حجم فایل 857 کیلو بایت
تعداد صفحات 36
برای دانلود فایل روی دکمه زیر کلیک کنید
دریافت فایل

قسمتی از محتوی فایل

تعداد اسلاید : 36 صفحه

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; semaphore resource_2; void process_A(void) { down(&resource _1); void process_A(void) { use_resource_1( ); down(&resource _1); up(&resource _1); down(&resource _2); use_both_resources( ); } up(&resource _2); up(&resource _1); } (a) (b) typedef int semaphore; semaphore resource_1; semaphore resource_2; void process_A(void) { down(&resource _1); down(&resource _2); use_both_resources( ); up(&resource _2); up(&resource _1); } void process_B(void) { down(&resource _1); down(&resource _2); use_both_resources(