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

صفحه‌ها: ۱ ۲
کمک در حل سوال زمانبندی - samaneh_aftab - 23 آبان ۱۳۹۱ ۰۱:۲۳ ب.ظ

سلام دوستان
تو آزمون ۲۵% دوم مدرسان، این سوال اومد بود. جواب تشریحیش را خیلی نفهمیدم
میشه ۱ نفر برام بگه نمودار گانت دقیقا چطوری کشیده شده؟ هر پروسه ای چقدر زمان cpu و IO داره

ممنون

کمک در حل سوال زمانبندی - Eng_Sara - 27 آبان ۱۳۹۱ ۰۲:۲۵ ب.ظ

سمانه جان من سوال رو دیدم. راستش تو آزمون نتونستم این تست رو بزنم یکم شک داشتم!
پاسخنامه توضیح داده ولی یکم هنوز برام مبهمه.
اگه گرفتم چی به چیه میام میگم.
دوستان دیگه اگه متوجه سوال شدن یه توضیحی بدن راجعبش.

کمک در حل سوال زمانبندی - foranyone - 27 آبان ۱۳۹۱ ۰۳:۳۱ ب.ظ

به نظر من چون ترتیب I/O و CPU رو برای فرآیندهای A و B مشخص نکرده، اطلاعات مسئله ناقصه

در ضمن مشخص نیست همگی روی یک I/O منتظر هستند یا روی دستگاه های مختلف که می تونند همزمان اجرا بشند!

پس اگه سر جلسه کنکور این سوال رو میدیدم حل نمی کردم!

RE: کمک در حل سوال زمانبندی - hemoso - 27 آبان ۱۳۹۱ ۰۴:۰۶ ب.ظ

(۲۳ آبان ۱۳۹۱ ۰۱:۲۳ ب.ظ)samaneh_aftab نوشته شده توسط:  سلام دوستان
تو آزمون ۲۵% دوم مدرسان، این سوال اومد بود. جواب تشریحیش را خیلی نفهمیدم
میشه ۱ نفر برام بگه نمودار گانت دقیقا چطوری کشیده شده؟ هر پروسه ای چقدر زمان cpu و IO داره

ممنون

سلام
تعریف CPUBURST و I/O BURST را مطمئننا بلدین ولی بذارین یادآوری کنم:
کار CPUBURST :یعنی بیشتر زمان خود را صرف پردازش و محاسبات میکنه
کار I/O BURST :بیشتر زمان خود را صرف عملیات ورودی و خروجی میکنه
برای محاسبه مدت زمانیکه صرف پردازش و I/O هرکار میشه باید برای کار مربوطه زمان شروع را از صفر درنظر بگیریم.
مثلا برای کار A :بازای هر ۵ واحد پردازش نیاز به دو واحد I/O دارد یعنی در زمان صفر پردازش A شروع شده بعد از ۵ واحد اجرا شدن یعنی در زمان ۵نیاز به عملیات I/O (مثلا خواندن یک کاراکتر از ورودی) دارد پس به ناچار CPU را رها کرده بعد از طی شدن ۲واحد زمان در زمان ۷ دوباره پردازش را به مدت ۵ واحد ادامه میدهد تادر زمان ۱۲ مدت اجرایش تمام میشود پس در کل ۱۰ واحد زمانی CPU را برای پردازش در اختیار دارد.
برای کار های B و C و D نیز به همین طریق مدت زمان در اختیار داشتن CPU را محاسبه میکنیم اما برای کار C و D همانطور که در صورت سوال مطرح شده اول پردازش میشوند وبعد به I/O نیاز دارند.
در مورد نمودار گانت باید بگم که در زمان صفر A پردازشش را شروع کرده در زمان ۲ کار B وارد شده بدلیل اینکه زمان اجرای کمتری نسبت به A دارد(کار A هشت واحد زمانی و کار B شش واحد زمانی) شروع به پردازش می کند بعد از ۲ واحد زمانی کار C وارد می شود و بدلیل زمان اباقیمانده کمتر نسبت کار B پردازشش را شروع کرده بعد از یک واحد زمانی نیاز به عمل I/O پیدا میکند که این عمل ۴ واحد زمانی طول میکشد و در این زمان یعنی در زمان ۵ ناچار به ترک پردازشش شده و کار B بدلیل زمان باقیمانده کمتر نسبت به A سی پی یو را در اختیار میگیرد و پردازشش را شروع میکند در زمان ۶ کار D قصد دراختیار گرفتن CPU را دارد ولی چون کار B و D هردو دارای زمان باقیمانده یکسان هستند کار B چون در حال اجرا بوده به اجرایش ادامه می دهد( بدلیل سربار تعویض متن از دادن CPU به کار D جلوگیری می شود)و الی آخر

کمک در حل سوال زمانبندی - m_sardaari - 27 آبان ۱۳۹۱ ۰۵:۴۶ ب.ظ

(۲۷ آبان ۱۳۹۱ ۰۴:۰۶ ب.ظ)hemoso نوشته شده توسط:  در مورد نمودار گانت باید بگم که در زمان صفر A پردازشش را شروع کرده در زمان ۲ کار B وارد شده بدلیل اینکه زمان اجرای کمتری نسبت به A دارد(کار A هشت واحد زمانی و کار B شش واحد زمانی)
ممنون از توضیح.

در زمان ۲ کار A ده واحد زمانی و کار b هفت واحد زمانی مگه نیست؟
نظر شما اینه که:یعنی باید زمان i/o از cpu جدا کنیم و فقط زمان cpu رو در نظر بگیریم که کلا زمان A هشت و زمان B شش میشه؟

در مورد ترتیب I/O و CPU هم به نظرم در حالت عادی باید اینجور باشه:
کار CPUBURST::: اول CPU بعد I/O
کار I/O :::BURST اول I/O بعد CPU

ولی اگر مثل این تست یه ترتیب رو خودش بگه( کار I/O BURST ) باید همون رو در نظر بگیریم.

RE: کمک در حل سوال زمانبندی - asusx59sr - 27 آبان ۱۳۹۱ ۰۶:۳۸ ب.ظ

(۲۷ آبان ۱۳۹۱ ۰۴:۰۶ ب.ظ)hemoso نوشته شده توسط:  ........
در مورد نمودار گانت باید بگم که در زمان صفر A پردازشش را شروع کرده در زمان ۲ کار B وارد شده بدلیل اینکه زمان اجرای کمتری نسبت به A دارد(کار A هشت واحد زمانی و کار B شش واحد زمانی) شروع به پردازش می کند بعد از ۲ واحد زمانی کار C وارد می شود و بدلیل زمان اباقیمانده کمتر نسبت کار B پردازشش را شروع کرده ........

دوست گرامی سپاس
در صورت مسئله مگه نگفته که C اول باید ۴(یا ۲ ، زیاد خوانا نیست) واحد زمانی عمل I/O انجام بده تا به پردازنده نیاز داشته باشه؟ چطوری در زمان ۴ که بلافاصله بعد از ورودشه، بدون عمل I/O میتونه CPU بگیره؟

کمک در حل سوال زمانبندی - m_sardaari - 27 آبان ۱۳۹۱ ۰۹:۵۴ ب.ظ

(۲۷ آبان ۱۳۹۱ ۰۶:۳۸ ب.ظ)asusx59sr نوشته شده توسط:  
(27 آبان ۱۳۹۱ ۰۴:۰۶ ب.ظ)hemoso نوشته شده توسط:  ........
در مورد نمودار گانت باید بگم که در زمان صفر A پردازشش را شروع کرده در زمان ۲ کار B وارد شده بدلیل اینکه زمان اجرای کمتری نسبت به A دارد(کار A هشت واحد زمانی و کار B شش واحد زمانی) شروع به پردازش می کند بعد از ۲ واحد زمانی کار C وارد می شود و بدلیل زمان اباقیمانده کمتر نسبت کار B پردازشش را شروع کرده ........

دوست گرامی سپاس
در صورت مسئله مگه نگفته که C اول باید ۴(یا ۲ ، زیاد خوانا نیست) واحد زمانی عمل I/O انجام بده تا به پردازنده نیاز داشته باشه؟ چطوری در زمان ۴ که بلافاصله بعد از ورودشه، بدون عمل I/O میتونه CPU بگیره؟
شما دوستمون رو خطاب کردین ولی گفتم منم نظرمو بگم.به این دلیل که در اخر سوال در پرانتز گفته cوd اول پردازش(cpu) میشن بعد i/o انجام میدن.

کمک در حل سوال زمانبندی - asusx59sr - 27 آبان ۱۳۹۱ ۱۰:۵۵ ب.ظ

این بی دقتی کار دستم میده

RE: کمک در حل سوال زمانبندی - hemoso - 28 آبان ۱۳۹۱ ۰۸:۵۵ ق.ظ

(۲۷ آبان ۱۳۹۱ ۰۵:۴۶ ب.ظ)m_sardaari نوشته شده توسط:  
(27 آبان ۱۳۹۱ ۰۴:۰۶ ب.ظ)hemoso نوشته شده توسط:  در مورد نمودار گانت باید بگم که در زمان صفر A پردازشش را شروع کرده در زمان ۲ کار B وارد شده بدلیل اینکه زمان اجرای کمتری نسبت به A دارد(کار A هشت واحد زمانی و کار B شش واحد زمانی)
ممنون از توضیح.

در زمان ۲ کار A ده واحد زمانی و کار b هفت واحد زمانی مگه نیست؟
نظر شما اینه که:یعنی باید زمان i/o از cpu جدا کنیم و فقط زمان cpu رو در نظر بگیریم که کلا زمان A هشت و زمان B شش میشه؟

در مورد ترتیب I/O و CPU هم به نظرم در حالت عادی باید اینجور باشه:
کار CPUBURST::: اول CPU بعد I/O
کار I/O :::BURST اول I/O بعد CPU

ولی اگر مثل این تست یه ترتیب رو خودش بگه( کار I/O BURST ) باید همون رو در نظر بگیریم.

اگر بخواهیم طبق نظر شما عمل کنیم یعنی کل زمان اجرا (هم پردازش و هم i/o)را در نظر بگیریم
در زمان در زمان ۴ با وارد شدن کار c چون زمان اجرای باقیمانده اش ۱۱ واحد زمان بوده و کار های A و B به ترتیب ۱۰و۵ واحد زمان باقیمانده دارند پس کار B باید به پردازشش ادامه بدهد و در اینصورت تست اشتباه حل می شود.
در الگوریتم زمانبندی SRT اگر اشتباه نکنم منظور از زمان باقیمانده ، مدت زمان برای در اختیار گرفتن CPU و اجرا شدن است
زمان I/O که در صورت سوال مطرح شده همان وقفه است و در زمان وقفه هم CPU یا دچار انتظار مشغولی می شه یا به پردازش کار
دیگری می پردازد. پس اول باید زمان هایی را که هر فرایند به CPU نیاز داره را حساب کنیم بعد طبق زمانبندی آن کار (چه مدت پردازش می شود و چه مدت I/O نیاز دارد) و الگوریتم زمانبندی مطرح شده مساله را حل کنیم.
امیدوارم که ابهام برطرف شده باشه ولی اگه سوالی بود مطرح کنین.

RE: کمک در حل سوال زمانبندی - samaneh_aftab - 28 آبان ۱۳۹۱ ۱۱:۰۹ ق.ظ


سلام
ممنون از جواب کاملتون. خیلی خیلی خوب توضیح دادین.

ولی من بازم نمودار گانتم انگار اشتباهه. میشه ببینید کجاشو اشتباه رفتم؟
ممنون

RE: کمک در حل سوال زمانبندی - hemoso - 28 آبان ۱۳۹۱ ۰۱:۱۵ ب.ظ

(۲۸ آبان ۱۳۹۱ ۱۱:۰۹ ق.ظ)samaneh_aftab نوشته شده توسط:  
(27 آبان ۱۳۹۱ ۰۴:۰۶ ب.ظ)hemoso نوشته شده توسط:  

سلام
ممنون از جواب کاملتون. خیلی خیلی خوب توضیح دادین.

ولی من بازم نمودار گانتم انگار اشتباهه. میشه ببینید کجاشو اشتباه رفتم؟
ممنون

نمودار گانت شما از زمان صفر تا ۱۵ درسته
در زمان ۱۵ کار D وقفه میخوره و کار C وA در صف فرایندهای آماده منتظر دریافت CPU هستند(کار C از حالت مسدود به علت عمل I/O خارج شده و الان منتظر دریافت CPU است)حالا چون کار A زمان باقیمانده از اجرایش ۵ واحد زمانی است و کار C دارای زمان باقیمانده ۱ واحد زمانی است پس در زمان ۱۵ کار C پردازشش را شروع میکنه
بعد از ۱ واحد اجرا CPU را ترک کرده ودر این زمان فقط کار A در صف آماده قرار دارد پس شروع به پردازش میکند تا زمان ۲۰
در زمان ۲۰ کار D عمل I/O خودش را تکمیل کرده و منتظر دریافت CPU هست ولی چون زمان باقیمانده از کار A و D برابر است
پس تعویض فرایندی در کار نیست و کار A پردازشش را کامل میکنه و CPU را ترک میکنه
حالا کار D شروع به پردازش ۱ واحد باقیمانده اش میکنه و در پایان ۲ واحد از زمان اجرای کلی(پردازش و I/O) کار D باقیمانده و درنهایت در زمان ۲۴ اجرایش تمام میشود.
اما در مورد ۲ واحد باقیمانده کار D در انتها باید بگم که این زمان به اینصورت محاسبه شده :
در زمان ۸ اولین بار اجرا شده بعد در زمان ۹ دچار وقفه به مدت ۵ واحد زمانی شده و مجددا در زمان ۱۴ به خاطر مساعد بودن شرایط CPU را در اختیار گرفته و مجددا در زمان ۱۵ دچار وقفه به مدت ۵ واحد زمانی شده (تا اینجای کار یعنی تا زمان ۲۰ به مدت ۱۲ واحد زمانی از زمان اجرای کلی (پردازش و I/O) آن سپری شده) ولی همانطور که در نمودار گانت توضیح دادم بعلت تساوی زمان پردازش باقیمانده A و D بخاطر سربار تعویض متن کار D نمیتواند پردازشش را انجام دهد پس مجبور میشود صبر کند (اما این صبر کردن جز زمان اجرای کار D محسوب نمیشه یعنی بعد از اتمام کار A هنوز ۳ واحد زمانی از زمان اجرای کلی کار D باقیمانده)و به همین علت در زمان ۲۲ هنوز ۲ واحد از زمان اجرای کلی اش باقیمانده که باید اجرا شود.

کمک در حل سوال زمانبندی - samaneh_aftab - 28 آبان ۱۳۹۱ ۰۳:۰۳ ب.ظ

ممنووووووووووووووووووووووووووووون
خیلی کمکم کردین . کامل کامل فهمیدم چی شد

************************************************************
۱ موضوع بی ربط:
آقا/ خانم hemoso نفر اول مدرسان› تو هر ۲تا آزمون، ۱ آقایی از زرین شهره. احیانا" شما نیستی؟ اگه هستی که امیدوارم موفق باشی و همینطوری ادامه بدی
اگه هم نیستی مطمئنم تواناییشو داری که از همشهریت جلو بزنی. موفق باشی

RE: کمک در حل سوال زمانبندی - hemoso - 28 آبان ۱۳۹۱ ۰۳:۱۴ ب.ظ

(۲۸ آبان ۱۳۹۱ ۰۳:۰۳ ب.ظ)samaneh_aftab نوشته شده توسط:  ممنووووووووووووووووووووووووووووون
خیلی کمکم کردین . کامل کامل فهمیدم چی شد

************************************************************
۱ موضوع بی ربط:
آقا/ خانم hemoso نفر اول مدرسان› تو هر ۲تا آزمون، ۱ آقایی از زرین شهره. احیانا" شما نیستی؟ اگه هستی که امیدوارم موفق باشی و همینطوری ادامه بدی
اگه هم نیستی مطمئنم تواناییشو داری که از همشهریت جلو بزنی. موفق باشی

ان شاالله خدا کمک کنه تمام مانشتی ها موفق بشن

RE: کمک در حل سوال زمانبندی - M@A - 28 آبان ۱۳۹۱ ۰۴:۲۴ ب.ظ

(۲۷ آبان ۱۳۹۱ ۰۴:۰۶ ب.ظ)hemoso نوشته شده توسط:  
(23 آبان ۱۳۹۱ ۰۱:۲۳ ب.ظ)samaneh_aftab نوشته شده توسط:  سلام دوستان
تو آزمون ۲۵% دوم مدرسان، این سوال اومد بود. جواب تشریحیش را خیلی نفهمیدم
میشه ۱ نفر برام بگه نمودار گانت دقیقا چطوری کشیده شده؟ هر پروسه ای چقدر زمان cpu و IO داره

ممنون

سلام
تعریف CPUBURST و I/O BURST را مطمئننا بلدین ولی بذارین یادآوری کنم:
کار CPUBURST :یعنی بیشتر زمان خود را صرف پردازش و محاسبات میکنه
کار I/O BURST :بیشتر زمان خود را صرف عملیات ورودی و خروجی میکنه
برای محاسبه مدت زمانیکه صرف پردازش و I/O هرکار میشه باید برای کار مربوطه زمان شروع را از صفر درنظر بگیریم.
مثلا برای کار A :بازای هر ۵ واحد پردازش نیاز به دو واحد I/O دارد یعنی در زمان صفر پردازش A شروع شده بعد از ۵ واحد اجرا شدن یعنی در زمان ۵نیاز به عملیات I/O (مثلا خواندن یک کاراکتر از ورودی) دارد پس به ناچار CPU را رها کرده بعد از طی شدن ۲واحد زمان در زمان ۷ دوباره پردازش را به مدت ۵ واحد ادامه میدهد تادر زمان ۱۲ مدت اجرایش تمام میشود پس در کل ۱۰ واحد زمانی CPU را برای پردازش در اختیار دارد.
برای کار های B و C و D نیز به همین طریق مدت زمان در اختیار داشتن CPU را محاسبه میکنیم اما برای کار C و D همانطور که در صورت سوال مطرح شده اول پردازش میشوند وبعد به I/O نیاز دارند.
در مورد نمودار گانت باید بگم که در زمان صفر A پردازشش را شروع کرده در زمان ۲ کار B وارد شده بدلیل اینکه زمان اجرای کمتری نسبت به A دارد(کار A هشت واحد زمانی و کار B شش واحد زمانی) شروع به پردازش می کند بعد از ۲ واحد زمانی کار C وارد می شود و بدلیل زمان اباقیمانده کمتر نسبت کار B پردازشش را شروع کرده بعد از یک واحد زمانی نیاز به عمل I/O پیدا میکند که این عمل ۴ واحد زمانی طول میکشد و در این زمان یعنی در زمان ۵ ناچار به ترک پردازشش شده و کار B بدلیل زمان باقیمانده کمتر نسبت به A سی پی یو را در اختیار میگیرد و پردازشش را شروع میکند در زمان ۶ کار D قصد دراختیار گرفتن CPU را دارد ولی چون کار B و D هردو دارای زمان باقیمانده یکسان هستند کار B چون در حال اجرا بوده به اجرایش ادامه می دهد( بدلیل سربار تعویض متن از دادن CPU به کار D جلوگیری می شود)و الی آخر
با سلام و تشکر از توضیح عالی تون
من کامل متوجه این توضیحتون شدم...فقط یه سوال داشتم؟در زمان ۶ ک نوبت ورود D هست قبول دارم ک B بدلیل سربار تعویض متن سی پی رو به D نمیده و به اجراش ادامه میده اما چرادر زمان ۸ سی پی رو به D میده و مجدد در زمان ۹ یه واحد باقیمونده شو تموم میکنه؟چرا پیوسته از زمان ۵تا۹ کارش رو تموم نکرد که بعد در زمان ۹ سی پی رو به D بده و اونم بعد از یه واحد محاسباتیش و اتمام زمان IOکار C سی پی رو در زمان ۱۰ به C واگذار کنه؟؟؟؟؟؟

کمک در حل سوال زمانبندی - hemoso - 28 آبان ۱۳۹۱ ۰۴:۳۸ ب.ظ

خواهش میکنم
شما لطف دارین
درمورد سوالتون باید بگم که احتمالا صورت سوال را درست نخوندین
توی صورت سوال گفته کار B بعد از هر ۵ واحد پردازش نیاز به ۱ واحد عملیات I/O دارد.
ان شا الله همیشه موفق باشین