تالار گفتمان مانشت
سوال از فصل دوم - نسخه‌ی قابل چاپ

سوال از فصل دوم - mina1 - 16 مهر ۱۳۹۰ ۰۴:۵۴ ب.ظ

سلام به همه دوستان . نظرتون درباره‌ی این سوال چیه .کامپیوتری می توانند ۴ یرنامه را به طور همزمان در حافظه داشته باشد .هر یک از این برنامه‌ها نیمی از وقت خود را منتظر عملیات ورودی-خروجی هستند .چه کسری از زمان پردازنده تلف میشود . سوال IT سال ۸۶ و جواب‌ها
۱) ۱۶/۱ (۱ تقسیم بر ۱۶)
۲) ۲/۱
۳) ۴/۱
۴) پردازنده همواره مشغول اجرا این ۴ برنامه است و وقت تلف شده ندارد .



من که فکر میکنم این سوال یه جورای مورد داره و اصلا نمیشه نظر داد جواب چی میشه ؟؟؟

سوال از فصل دوم - narges_r - 16 مهر ۱۳۹۰ ۰۶:۵۱ ب.ظ

به نظر من گزینه ۴ درسته
چون وقتی فرایندی منتظر عمل I/O هست بلوکه میشه یعنی حتی در صف فرایندهای اماده برای دریافت پردازنده هم قرار نمیگیره تا سرویسی رو که منتظر دریافتش بوده دریافت کنه با این حساب هر فرایندی که در حافظه قرار میگیره یعنی در صف اجرا قرار داره و وقتی در سوال گفته شده نیمی از وقتشو منتظر دریافت ورودی-خروجی هست یعنی نیمی از وقتشو بلوکه میشه و کلا به دیسک منتقل میشه و در حافظه باقی نمیمونه. cpu هم همیشه در اختیار برنامه هایی قرار میگیره که در حافظه هستند پس وقتی برنامه ای cpu رو دراختیار داره به محض بلوکه شدن cpu در اختیار برنامه بعدی که در حافظه قرار داره و توسط زمانبند انتخاب میشه قرار میگیره پس زمانی از cpu تلف نمیشه.

سوال از فصل دوم - mamat - 16 مهر ۱۳۹۰ ۰۷:۱۲ ب.ظ

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

سوال از فصل دوم - narges_r - 16 مهر ۱۳۹۰ ۰۷:۲۳ ب.ظ

خوب چون فقط یک پردازنده در اینجا وجود داره در یک لحظه پردازنده فقط میتونه یک فرایندو اجرا کنه و فرایندها به ترتیب با توجه به ترتیبی که زمانبند باتوجه به الگوریتمهای زمانبندی اعمال میکنه cpu را در اختیار میگیرن
حالا شما تصور کن یک فرایند در حال اجرا توسط cpu هست و به اون نیمی از زمانی که باید منتظر ورودی-خروجی بمونه میرسه پس باید بلوکه بشه پس cpu رو رها میکنه بلوکه میشه و cpu در اختیار فرایند دیگه قرار میگیره در مدت زمانی که cpu در حال اجرای این فراینده اون فرایند بلوکه شده در حال سپری کردن زمان انتظاز برای ورودی-خروجی هست یا حتی ممکنه cpu دو فرایندو اجرا کنه تا این فرایند از حالت بلوکه خارج بشه و این اتفاق برای فرایندهای دیگه هم میفته پی کلا cpu همیشه مشغول میمونه و وقتش تلف نمیشه

سوال از فصل دوم - Avicenna - 16 مهر ۱۳۹۰ ۰۷:۳۷ ب.ظ

زمانی وقت پردازنده هدر خواهد رفت که هر چهار فرآیند اشاره شده بصورت "همزمان" منتظر دریافت I/O باشند (و فرآیند دیگری هم در آن زمان در حال پردازش نباشد) و چون در صورت سوال به این مورد اشاره شده که "هر فرآیند نیمی از زمان خود (۱/۲) را منتظر عملیات ورودی / خروجی هست"، بنابراین گزینه چهارم به خودی خود از بین گزینه‌ها حذف خواهد شد، چون این احتمال (حتی خیلی کم) برای هدررفت زمان پردازنده وجود دارد، بنابراین نمیتوان گفت که اتلاف وقت پردازنده امکانپذیر نیست.

در مورد گزینه‌ها هم طبق پاسخ اشاره شده گزینه یک درست بنظر میاد. چهار فرآیند داریم، هر کدام با احتمال ۱/۲ ممکن است اقدام به درخواست I/O کنند، بنابراین باید چهار تا نیم یا ۱/۲ را در هم ضرب کنیم که در نهایت ۱/۱۶ بدست میاد.

سوال از فصل دوم - si.mozhgan - 16 مهر ۱۳۹۰ ۰۷:۳۷ ب.ظ

یادمه تو کتاب مقسمی اینو حل کرده بود . به اینصورت که اگه n برنامه همزمان داشتیم و احتمال دست یابی به I/O‌، متغیر x بود. اونوقت x^n زمان سی پی یو تلف می شد . (که n برنامه همشون منتظر I/O هستن)
البته سوال مبهمه. چون می شه طوری برنامه‌ها رو زمانبندی کرد که سی پی یو هدر نره.

RE: سوال از فصل دوم - mina1 - 17 مهر ۱۳۹۰ ۱۲:۴۰ ق.ظ

همون طور که گفتید جواب ۱۶/۱ میشه که با احتمال حل شده ولی به نظر من بهتر بود در صورت سوال گفته میشد احتمال تلف شدن وقت پردازنده چقدره چون این جواب قطعیت نداره . و با مثال های مختلف و زمانبندی های مختلف جواب های متفاوتی بدست میاد .
یه سوال همین الان به ذهنم خورد ایا عملیات ورودی-خروجی اگه متفاوت باشن میتونن در یه لحظه انجام بشن ؟؟؟ که احتمالا میتونن ولی اگه از یک نوع باشن احتمالا باید به ترتیب انجام بشن که این مسئله هم به مشکلات سوال اضافه میکنه چون اگه فرایندها یه عمل ورودی-خروجی را بخوان باهم انجام بدن باید بیشتر مسدود بمونن که این بیشتر وقت پردازنده را تلف میکنه . نمیدونم این تحلیل‌ها درسته یا نه اگه اشتباه میکنم بگید چطور باید بدون توجه به نوع زمانبندی و عملیات ورودی-خروجی باید تحلیل کرد.

RE: سوال از فصل دوم - narges_r - 17 مهر ۱۳۹۰ ۰۱:۱۷ ق.ظ

(۱۷ مهر ۱۳۹۰ ۱۲:۴۰ ق.ظ)mina1 نوشته شده توسط:  همون طور که گفتید جواب ۱۶/۱ میشه که با احتمال حل شده ولی به نظر من بهتر بود در صورت سوال گفته میشد احتمال تلف شدن وقت پردازنده چقدره چون این جواب قطعیت نداره . و با مثال های مختلف و زمانبندی های مختلف جواب های متفاوتی بدست میاد .
یه سوال همین الان به ذهنم خورد ایا عملیات ورودی-خروجی اگه متفاوت باشن میتونن در یه لحظه انجام بشن ؟؟؟ که احتمالا میتونن ولی اگه از یک نوع باشن احتمالا باید به ترتیب انجام بشن که این مسئله هم به مشکلات سوال اضافه میکنه چون اگه فرایندها یه عمل ورودی-خروجی را بخوان باهم انجام بدن باید بیشتر مسدود بمونن که این بیشتر وقت پردازنده را تلف میکنه . نمیدونم این تحلیل‌ها درسته یا نه اگه اشتباه میکنم بگید چطور باید بدون توجه به نوع زمانبندی و عملیات ورودی-خروجی باید تحلیل کرد.
در کتاب اقای حقیقت به این نکته اشاره شده که زمان بند I/O هم وجود داره البته این زمان بند بصورت یکتا نیست بلکه برای هر وسیله ورودی-خروجی یک صف وجود دارد که درخواست کننده های اون وسیله در صف درخواست اون وسیله قرار میگیرن و سرویس دهنده اون دستگاه باید درخواستهارو زمانبندی کنه مانند زمانبند دیسک که اگر تعداد زیادی درخواست خواندن یا نوشتن در دیسک درخواست بشه زمانبند دیسک باید درخواستها رو زمانبندی کنه

کلا به نظر این سوال خیلی کلیه و نمیشه جواب قطعی بهش داده بشه