صف های چند گانه - نسخهی قابل چاپ |
صف های چند گانه - jafarir - 27 مهر ۱۳۹۱ ۱۱:۵۹ ب.ظ
سلام در صف های چند گانه فقط در صورتی میشه از صف با اولویت پایین به صف با اولویت بالا رفت که اون فرایند مسدود بشه بعد که از حالت مسدود در اومد میره انتهای صف اول که اولویتش از همه بالاتره تو ص ۱۲۵ کتاب دکتر حقیقت نوشته برای حل مشکل قحطی می توانیم سیاست های خاصی را بکار ببریم و فرایندهای منتظر در صف های پایین تر را پس از مدتی معین به صف های بالاتر منتقل کنیم. الان اینی نوشته چجوریه؟ تو خود کتاب عکسی که کشیده فقط در صورت مسدود شدن فرایند میره در صف بالا تر. لطفا توضیح بدین ممنون |
صف های چند گانه - Mohammad-A - 28 مهر ۱۳۹۱ ۱۲:۲۴ ق.ظ
من فکر کنم منظور این هست که برای اولویت دادن به کارهای مربوط به I/O فرایندهایی که در صفهای پایینتر مسدود میشن، بعد از اینکه در وضعیت آماده قرار گرفتند به بالاترین صف میان تا احتمالاً اگر بعد از مسدود شدن این فرایند تعاملی شده باشه، زمان پاسخ مطلوبی رو برای کاربر داشته باشه. یا اینکه نه! اگر تعاملی نبودند و باز هم نیاز به درخواستهای خارجی داشتند٬ در زودترین زمان این درخواست داده بشه تا سریعتر این فرایند بتونه کارش رو محدود به CPU بکنه. یعنی این موضوع یک مکانیزم برای فرایندهای I/O میتونه باشه. حالا برای فرایندهایی که زیاد منتظر ماندند هم میشه مکانیزم دیگری رو داشت (مثلاً دیگه سقوط به صف پایینتر نداشته باشیم و از الگوریتمی مثل FCFS در صف پایینتر استفاده کنیم یا به کارها و درخواستهای اصلی در سیستم کلاسهای مشخص و جداگانه بدیم) |
صف های چند گانه - esi - 28 مهر ۱۳۹۱ ۰۱:۰۱ ق.ظ
بستگی به طراح زمانبند داره. کلا تو MLFQ چند تا صف داری که هر کدوم کوانتوم زمانی خاص خودشو داره(یا حتی سیاسیت زمانیندی خاص خودشو، انتخاب تعداد صف ها، انتخاب فرآیند برای صف مربوطه، شرایط انتقال به صف های مسائل مهمی هستن که بسته به سیاست مد نظر سیستم عامل(بسته به نوع محیط،نوع فرآیند،پیش بینی از نحوه عملکرد فرآیند،تقاضای کاربر و ..تعیین میشه) باید تعیین بشه، اما معمولا منظور از MLFQ تویه سیستم عامل کنکور ما چند تا صف با زمانبندی RR برای تمام صفها احتمالا به جز آخری که هر صفی با کوانتوم زمانی مشخص یا توان ۲ از شماره صف). فرآیند ها از صف با اولویت بالا اجرا و بعد از اتمام زمان اجرا یا مسدود شدن به صف بعدی میره(ممکنه سیاست دیگه ای برای فرآیندهای مسدود باشه، مثلا فرآیند مسدود در حقش ظلم شده و قبل از اتمام کوانتوم زمانی مسدود شده پس بهتره تو همون صف بمونه) تا به صف آخر برسه. در صف آخر می تونه سیاست خاص خودشو داشته باشه اما معمولا FCFS انتخاب میشه یا RR با کوانتوم خیلی بالا(یعنی میل به سمت FCFS اما جهت بهبود زمان پاسخ). تا فرآیندی تو صف با اولیت بالا هست فرآیند از صف با اولویت پایین انتخاب نمیشه پس ممکنه در هر بار فرآیندی تو صف با اولویت بالا باشه و به صف هایی با الویت پایین هیچ وقت سرویس نرسه یعنی گرسنگی پیش بیاد. پس بهتره اگه فرآیندی خیلی زیاد تو صف منتظر بود اولویشتو ببریم بالا(مثل HRRN) تا شانس بیشتری برای اجرا داشته باشه و انتظار کمتری رو بکشه. واسه همین کار هم می تونه سیاست های و سوالات متفاوتی باشه مثلا : تا چه زمان انتظار کافیه تا اولویت فرآیند بره بالا، آیا همه صف ها این سیاست رو داشته باشن؟ آیا صف آخر با FCFS هم همین سیاست رو داشته باشه ؟ یا ممکنه در هر چند کوانتوم زمانی یک فرآیند از هر صف اجرا بشه تا زمان پاسخ بهبود پیدا کنه یا .... بحث واقعا پیچیده و می تونه مهم باشه ولی به هر حال تو پیاده سازی سیستم عامل ها به همه این سوالات جواب داده شده. |