ارسال قبلیمو پاک کردم که اینجا میبیندش
(۱۶ مهر ۱۳۹۰ ۰۵:۰۸ ب.ظ)mamat نوشته شده توسط: فکر کنم ۲/۱ تلف بشه چون اگه کل وقت پردازنده رو نسبت به این پردازهها ۴ قسمت مساوی در نظز بگیریم و فرض کنیم هر کدام از این ۴ قسمت نصفش پردازنده کار کرده و نصف دیگش عملیات ورودی خروجی، اون وقت ۴/۲ یا همون ۲/۱ وقت پردازنده تلف شده
این جواب ادعا نمیکنم که درست باشه اگه غلطه بگین بیشتر فکر کنم
جواب قبلی من صحیح نیست البته چون من بلوکه شدن فرآیندها در صورت انتظار برای I/O رو در نظر نگرفته بودم
(۱۶ مهر ۱۳۹۰ ۰۷:۱۲ ب.ظ)mamat نوشته شده توسط: به نظر من گزینه ۴ درسته
چون وقتی فرایندی منتظر عمل I/O هست بلوکه میشه یعنی حتی در صف فرایندهای اماده برای دریافت پردازنده هم قرار نمیگیره تا سرویسی رو که منتظر دریافتش بوده دریافت کنه با این حساب هر فرایندی که در حافظه قرار میگیره یعنی در صف اجرا قرار داره و وقتی در سوال گفته شده نیمی از وقتشو منتظر دریافت ورودی-خروجی هست یعنی نیمی از وقتشو بلوکه میشه و کلا به دیسک منتقل میشه و در حافظه باقی نمیمونه. cpu هم همیشه در اختیار برنامه هایی قرار میگیره که در حافظه هستند پس وقتی برنامه ای cpu رو دراختیار داره به محض بلوکه شدن cpu در اختیار برنامه بعدی که در حافظه قرار داره و توسط زمانبند انتخاب میشه قرار میگیره پس زمانی از cpu تلف نمیشه.
این پاسخ شما منو به جواب نزدیکتر کرد
چون میشه حالتی رو در نطر گرفت که هر ۴ فرآیند در حال انتظار برای عملیات وردوی خروجی باشند در این صورت احتمال درخواست هر فرآیند برای I/O برابر ۲/۱ است پس زمان بیکاری پردازنده برابر ضرب احتمالات هر ۴ فرآیند است.
زمان بیکاری پردازنده=۲/۱*۲/۱*۲/۱*۲/۱ برابر با ۱۶/۱ یعنی گزینه ۱ است
باز اگه اشکالی به این جواب وارد است بفرمائید