تالار گفتمان مانشت

نسخه‌ی کامل: زمان بندی نخ ها
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.

مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمی‌باشید. جهت مشاهده پیوندها ثبت نام کنید.

ببخشد عکس کامل نیست اگه میشه تو کتاب حقیقت نگاهیش کنید

این سوال اصلا نفهمیدم چجوری حل شد اگه ممکنه حلش کنیدبرام
ممنون
این، سؤال نسبتاً روونی هست.

ببینید، شما می‌توانید خیلی ساده برای حل کردن این سؤال، نخ‌های فرایندها رو مثل یک فرایند در نظر بگیرید و زمان ورود بهش بدید.
بنابراین زمان ورود نخ‌ها به این شکل میشه:
T11 در 0 --- T12 در 1 --- T21 در 0 --- T22 در 1

حالا این یک استثنا رو باید در نظر داشته باشید که مجموعاً نخ‌های T11 و T12 نمیتونن بیشتر از 2 برش زمانی رو پشت سر هم بگیرند. یعنی اگر از روش RR استفاده کردیم و هنوز نخ‌ها کارشون تمام نشده بود، باید CPU رو به فرایند دوم و طبعاً نخ‌های دوم بدهند.

اما یک نکته‌ی مهم در اینجا چیه؟ زمان‌بندی خود نخ‌های فرایندها
در صورت سؤال ذکر شده که مکانیزم زمان‌بندی نخ‌ها از نوع Preemptive LCFS هست. یعنی میشه منبع رو از نخی که در حال حاضر اون رو داره، بگیریم و به نخ جدیدالورود بدیم.
بنابراین وقتیکه در برش زمانی 1 نخ دوم فرایند اول وارد میشه، منبع از نخ اول گرفته و به نخ دوم فرایند اول داده میشه و کارش رو باید به اتمام برسونه تا به نخ اول مجدداً منبع برگرده.
این، برای فرایند دوم کمی متفاوت هست. چون در زمان 2 هم نخ اول و هم نخ دوم فرایند دوم حاضر هستند و باید طبق روال ابتدا به نخ دوم فرایند دوم منبع داده بشه و چون نخ دیگه‌ای وارد سیستم نمیشه، کارش رو تمام خواهد کرد و از فرایند خارج میشه تا منبع به نخ اول فرایند دوم برسه.

فکر میکنم همه‌ی نکات سؤال همین بود که در بالا گفتم، باقی دیگه خود حل هست که بهترین حل هم در پاسخ‌های کتاب میتونید پیدا کنید.
اگه ممکنه صف ورود نخ ها رو بکشید بفهمم چجوری وارد شدن

[quote='Mohammad-A' pid='323462' dateline='1419548738']

این، برای فرایند دوم کمی متفاوت هست. چون در زمان ۲ هم نخ اول و هم نخ دوم فرایند دوم حاضر هستند و باید طبق روال ابتدا به نخ دوم فرایند دوم منبع داده بشه و چون نخ دیگه‌ای وارد سیستم نمیشه، کارش رو تمام خواهد کرد و از فرایند خارج میشه تا منبع به نخ اول فرایند دوم برسه.
همینو نفهمیدم چرا اول نخ دوم اجرا شد؟
من نمیتونم تصویر رسم کنم و ارسال کنم.
به نظرم شما یکبار دقیق پاسخ کتاب رو بخوانید متوجه راه حل میشید. برای این سؤال صف خاصی مثل بعضی از سؤالا نیاز نیست در نظر بگیرید. یک بار پاسخ کتاب رو دقیق بخوانید.
کتاب گفته فرایند جدید زودتروارد میشه ولی نخ دوم رو زودتر اجرا کرده خب چرا نخ اول ن؟
دقت کنید در اینجا ما دو سیستم زمان بندی داریم

یکی چرخشی مربوط به فایندها یکی هم آخرین ورود اولین سرویس که مربوط به نخهای هر فرایند هست

برش زمانی هم که داده شده مربوط به الگوریتم چرخشی مربوط به فرایندهاست و برای نخها کوانتوم زمانی در نظر گرفته نشده و باید فقط شرطی که در متن سوال گفته شده رو روی اونها اعمال کنیم

در لحظه اول فرایند ۱ نوبت میگیرد

حالا باید ترتیب نخهای داخلش رو بررسی کرد

گفته شده اولین نخ در لحظه اجرای فرایند نوبت میگیرد

اما توجه کنین که با توجه به این که نخ دوم بعد از یک واحد زمانی از لحظه آغاز نوبت رو میگیره فقط نخ اول ۱ ثانیه میتواند اجرا شود و در یک ثانیه باقی مونده نخ دوم اجرا میشه

در اینجا توجه کنین که این لحظه دیگه نخ دوم هست که اولویت داره و در نوبت بعدی خود همین نخ دوم هست که اجرا میشه

همین روال رو برای فرایند دوم طی میکنیم و جلو میریم بقیش واضح هست فکر کنم
لینک مرجع