(۰۳ آبان ۱۳۹۰ ۱۲:۵۱ ب.ظ)mina1 نوشته شده توسط: در مورد بن بست: اگه در ناحیه بحرانی فرایند ۰ مشکل ایجاد بشه و turn هرگز نتونه ۱ بشه مگه به همین بن بست نمیگیم ؟؟؟؟
بن بست زمانی اتفاق می افته که هیچ کدوم از فرایندها نتونن منابع مورد درخواستشون را در اختیار بگیرن. اینجا فرضا فرایند P0 بره ناحیه بحرانی ولی باشکست مواجه بشه و یا اینکه سوپروایزر خارجش کنه هیچ شرط از شروط بن بست رخ نداده.
مشکل شما اینجاست که فکر میکنین اون منبع یا ناحیه بحرانی در اختیار فرایند P0 باقی مونده درحالی که سیستم عامل یا سوپروایزر اون منبع یا ناحیه بحرانی رو از P0 گرفته ولی چون P1 فقط به پرچم P0 نگاه میکنه فکر میکنه که منبع در اختیار اونه و تا بی نهایت منتظر باقی میمونه که اینجا انحصار متقابل رعایت شده کرده و بن بستی رخ نداده.
در باره شرط پیشرفت هم اینطور بگم فرض کنید P0 بره ناحیه بحرانی و برگرده ولی P1 فعلا دلش نخواد به ناحیه بحرانی بره اما باز P0 میخواد بره ناحیه بحرانی و باید منتظر P1 باشه که یه بار بره و برگرده. یعنی شرط پیشرفت P0 بستگی به فرایند P1 داره.
باز اگه جایش مشکل داره بگین.