فروشگاه گلد داک

فروشگاه گلد داک

فروشگاه جامع تحقیقات علمی و پژوهشی
فروشگاه گلد داک

فروشگاه گلد داک

فروشگاه جامع تحقیقات علمی و پژوهشی

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

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

فروشنده فایل

کد کاربری 4558

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

تعداد اسلاید : 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(


نظرات 0 + ارسال نظر
امکان ثبت نظر جدید برای این مطلب وجود ندارد.