تست ۷۱ کامپیوتر ۹۱ - نسخهی قابل چاپ |
تست ۷۱ کامپیوتر ۹۱ - M a h d i - 25 بهمن ۱۳۹۵ ۰۱:۱۳ ق.ظ
می دونم که این سیستم دچار بن بست میشه و در این مورد مشکلی ندارم ولی چرا دچار گرسنگی نمیشه؟ مثلا حالتی رو فرض کنیم که فرآیند P1 تمام بافر رو پر کرده و فرآیند P2 هم جا نداره تا خروجی اش رو داخل بافر بذاره خوب الان فرآیند P3 دچار گرسنگی میشه. |
RE: تست ۷۱ کامپیوتر ۹۱ - delete4all - 25 بهمن ۱۳۹۵ ۰۹:۱۲ ق.ظ
(۲۵ بهمن ۱۳۹۵ ۰۱:۱۳ ق.ظ)M a h d i نوشته شده توسط: می دونم که این سیستم دچار بن بست میشه و در این مورد مشکلی ندارم ولی چرا دچار گرسنگی نمیشه؟ سلام احتمالا به این دلیل دچار گرسنگی نمیشه چون فضای بافر تقریبا نامحدود گرفته شده و معادل کل دیسک و مشکلی از نظر مقدار منبع نداره هیچکدوم از فرایند ها ولی فقط بخاطر ترتیب اجرا هست که دچار مشکل میشه صبر کنید دوستان دیگه هم نظرشونو بدن |
RE: تست ۷۱ کامپیوتر ۹۱ - nhd.ssjdn - 31 فروردین ۱۳۹۶ ۰۸:۳۷ ب.ظ
این تست سوال من هم هست لطفا اگر کسی دلیلش رو میدونه توضیح بده ممنون میشم |
RE: تست ۷۱ کامپیوتر ۹۱ - msour44 - 01 اردیبهشت ۱۳۹۶ ۰۳:۰۲ ق.ظ
سلام اول باید بدانیم چه تفاوتی بین بن بست و گرسنگی وجود دارد.در همین تست یک بافر دیگر به اسم[tex]B_{31}[/tex] بین فرایند سوم و اول قرار می دهیم که فرایند سوم خروجی خود را در ان قرار می دهد و فرایند اول هم از ان ورودی میگیرد.برای سادگی هم اندازه بافر ها را ثابت میگیریم حالا فرض کنید همین سیستم به دلایل مختلف از جمله متفاوت بودن سرعت ۳ فرایند به وضعیتی می رسد که هر سه بافر پر و هر یک از فرایند ها هم یک داده در حال پردازش دارند که اگر پرداش انها تمام شود چون بافر ها پر است نمی توانند خروجی خود را در بافر روبروی خود قرار دهند درواقع فرایند اول منتظر می ماند تا فرایند دوم از بافر اول مصرف کند ولی فرایند دوم هنوز خروجی خود را ذخیره نکرده ومنتظر فرایند سوم است تا از بافر دوم داده مصرف کند ولی خود فرایند سوم هم هنوز خروجی خود را ذخیره نکرده و منتظر مصرف داده از بافر سوم توسط فرایند اول است.در این حالت یک چرخه داریم که فرایند ها در ان گرفتار شده اند و تا ابد منتظر یکدیگر اند. تعریف بن بست دکتر حقیقت: "یک مجموعه از فرایند ها در صورتی منجر به بن بست می شوند که هریک از فرایندها ی درون مجموعه منتظر رویدادی باشند که فقط فرایند دیگری از همین مجموعه می تواند باعث ایجاد ان شود" در مورد قحطی با توجه کرد که مثل بن بست نباید دنبال یک چرخه انتظار بین فرایند ها باشیم در واقع قحطی مربوط به حالتی است که یک فرایند مثلا به دلیل اولویت پایین مدت نامعلومی (بدون حد)باید منتظر دریافت cpu بماند ولی در بن بست cpu به فرایند ها هم داده می شود ولی ادامه کار ممکن نیست در این تست اطلاعاتی که نشان دهد یک فرایند ممکن است برای مدت نامعلومی منتظر cpu بماند وجود ندارد پس می توانیم نتیجه بگیریم گرسنگی نداریم درباره بن بست اگربافر اول رشد کند و کل فضایی مشترک را بگیرد و همچنین پر باشد و فرایند دوم هم پردازشی داشته باشد که بخواهد خروجی خود را ذخیره کند بافر دوم فضا ندارد و اگر فرایند اول بخواهد داده ای در بافر اول قرار دهد به دلیل پر بودن باید منتظر بماند تا فرایند دوم از ان مصرف کند ولی فرایند دوم تا ابد منتظر بافر نداشته خود می ماند.فرایند سوم هم منتظر فرایند دوم است تا داده ای روی بافر دوم قرار دهد. در این حالت چرخه بین فرایند دوم و سوم است در واقع فرایند اول منتظر فرایند دوم است ولی نه فرایند دوم ونه فرایند سوم منتظر فرایند اول نیستن وفقط بین فرایند دوم و سوم رقابت وجود دارد اون هم سر منبعی که وجود نداردگزینه۲ |