PDA

View Full Version : سوال: چگونه سیستم عامل متوجه می شود که یک درخواست منجر به بن بست می شود یا نه؟!



Kubuntu
سه شنبه 20 دی 1390, 18:24 عصر
در اجنتاب از بن بست (deallock avoidance) داریم: هنگامیکه پردازشی می خواهد از یک منبع استفاده کند سیستم عامل بررسی می کند که آیا اون برنامه منجر به بن بست می شود یانه!
می خوام بدونم چجوری os می فهمه که فلان پردازش بن بست ایجاد می کنه؟!

سپاس

pswin.pooya
سه شنبه 20 دی 1390, 20:57 عصر
سلام
روشهاي بن بست و اجتناب از بن بست داخل كتاب تتباوم توضيح داده شده. اكثر سيستم عاملها از روش شتر مرغ استفاده ميكنن چون ارزش نداره كه بررسي و اجتناب از بن بست بكنن.

maktoom
سه شنبه 20 دی 1390, 22:07 عصر
سلام
خیلی بحث داره این مطلب. از اینجا شروع میشه که سیستمت دارای یک نوع از هر منبعه یا چند نوع از هر منبع. اگه یک نوع از هرمنبع باشه میاد میبینه ایجاد حلقه انتظار میشه یا نه. اگه ایجاد حلقه انتظار بشه میاد یه سری چیزا رو چک میکنه اگه برقرار بود بن بسته.
اگه از هرنوع منبع چنتا بود دوباره چنتا اتفاق داریم. یکیش اینه میاد پیش بینی میکنه هر فرایند چه نیازمندی هایی دارن. بر اساس نیاز مندی ها میره جلو.
باز میگم خیلی بحث داره. سیلبر شاتز هم یه کتاب داره. دکتر حقیقت هم یه کتاب داره. اصلا سیستم عامل با یکی دو تا کتاب کارت پیش نمی ره. مگه اینکه عمقی بخونیش.

pswin.pooya
چهارشنبه 21 دی 1390, 19:38 عصر
باز میگم خیلی بحث داره. سیلبر شاتز هم یه کتاب داره. دکتر حقیقت هم یه کتاب داره. اصلا سیستم عامل با یکی دو تا کتاب کارت پیش نمی ره. مگه اینکه عمقی بخونیش.

بر منكرش لعنت.

من خودم اول كتاب تتباوم رو ترجيح ميدم و بعد استالينگ. چون خودم هم دارم OS مي نويسم خيلي خوب ميدونم كتاب تتباوم مابين تمام كتابها به تمام معنا متفاوت و بهتر هست. مخصوصا مباحث مرتبط با مينيكس ( كه توي بعضي از چاپها نيست.) . اين كتاب اينقدر نكات ريزي توش داره كه فقط موقع پياده سازي متوجه اكثر جمله هاي ميشيد. من تا حالا اين كتاب رو سه بار از اول تا آخر خومندمش

fazel-d
چهارشنبه 12 بهمن 1390, 20:57 عصر
سلام
روشهاي بن بست و اجتناب از بن بست داخل كتاب تتباوم توضيح داده شده. اكثر سيستم عاملها از روش شتر مرغ استفاده ميكنن چون ارزش نداره كه بررسي و اجتناب از بن بست بكنن.
البته این موضوع قابل توجه هست که : بین پیشگیری با اجتناب تفاوت و جود داره..!!

الگوریتمی که تتنباوم به عنوان اجتناب معرفی می کنه Banker هست و از بانکدار می خواد که سرمایه بانکه رو به گونه ای بین مشتریان تقسیم کنه که بانک بر شکسته نشه.!!
برای پیشگیری هم ار روش شترمرغ. که همون کبک خودمونه. یعنی سر سیستم عامل رو مثل کبک می کنی توی برف . این گار که بن بستی رخ نمی ده و نخواهد داد. اگر هم بخواد بده آخرش اینه که کاربر سیستم رو Reset می کنه
('$')

ali shabani fard
شنبه 29 بهمن 1390, 03:28 صبح
الگوریتم بانکر کاملا قابل فهمه و اصلا سر سیستم عامل رو تو برف نمی کنه با منابعی که در اختیار سیستم عامل هست با توجه به اولویت هر پردازش و در خواست استفاده هر پردازش از منابع موجود منابع رو اختصاص میده، بن بست وقتی رخ میده که منابع محدود تر از درخواست هر پردازش برای قرار گرفتن در صف پردازش موجود باشه . سیستم عامل برای اینکار از چند ماتریس استفاده میکنه. در ضمن فکر نمیکنم سیستم عاملی وجود داشته باشه که بتونه بدون پردازش از بن بست جلوگیری کنه اول چک میکنه بعد پردازش رو انجام میده اگه منابع محدود بود پروسس ها رو جابجا میکنه

aakh1361
یک شنبه 07 اسفند 1390, 01:39 صبح
سیستم هیچ جوری نمیتونه بفهمه !
در کد نویسی سیتم عامل اصلا به این موضوع توجه نمیشه چون بسیار زیاد برای سیستم سربار داره (البته در مورد بعضی منابع که بسیار کم در یک بازه زمانی ازشون استفاده میشه شاید استفاده بشه)

برای همینه که بعضی از برنامه ها اصطلاحا هنگ میکنند و مجبور میشید دوباره اجراشون کنید
یک جوریای هرکی به هرکیه چون احتمالش (بن بست) خیلی خیلی کمه ولی پیش میاد

البته میشه کرنل رو جوری نوشت که بتونه بصورت نسبی بن بست رو کشف کنه که همون طور که اقا پویا گفتن کتاب تننبام کتاب بسیار خوبیه و کاملا توضیح داده
ولی به خاطر سربار بسیار زیاد معمولا اینکار رو نمیکنند (کشف بن بست) مثل لینوکس