از یک جنبه زمانبندهای پردازش در سیستم عامل به سه دسته تقسیم بندی میشوند.
الف- دراز مدت[۵]
ب– کوتاه مدت[۶]
ج – میان مدت
زمانبندی دراز مدت
در یک سیستم دستهای پردازشهای بیشتری نسبت به آنچه فوراً میتوانند اجرا شوند تحویل داده میشوند . این پردازشها در دیسک نگهداری میشوند .زمانبندی دراز مدت یازمانبندی کار [۷]پروسسهایی را انتخاب کرده و آنها را برای اجرا از دیسک به حافظه اصلی میآورد.
(( اینجا فقط تکه ای از متن درج شده است. برای خرید متن کامل فایل پایان نامه با فرمت ورد می توانید به سایت nefo.ir مراجعه نمایید و کلمه کلیدی مورد نظرتان را جستجو نمایید. ))
زمانبندی کوتاه مدت
زمانبند کوتاه مدت (یا زمانبند CPU) از بین پروسسهای موجود در حافظه اصلی که آماده اجرا هستند یک را انتخاب کرده و CPU را به آن اختصاص میدهد. غالباً زمانبند کوتاه مدت هر صد میلی ثانیه یک بار اجراء میشود ولی زمانبند دراز مدت ممکن است هر چند دقیقه یک بار اجرا شود. در واقع زمانبند دراز مدت در جه چند برنامگی [۸]یعنی تعداد پردازشهای موجود در حافظه را کنترل میکند .
زمانبند دراز مدت وقت زایدی برای تصمیم گیری دارد ولی زمانبند کوتاه مدت میبایست خیلی سریع تصمیمی گیری کند. زمانبند دراز مدت میبایست مخلوط مناسبی از پردازشهای CPU-limiter و I/O limited را جهت قرار گیری در حافظه انتخاب کند تا کارایی CPU و وسایل I/O بهینه شود. در بعضی سیستمها مثل اغلب سیستمهای اشتراک زمانی زمانبند دراز مدت وجود ندارد, چرا که هر پردازش در سیستم عامل جدید جهت زمانبند CPU در حافظه گذاشته میشود تا زمان پاسخ دهی به برنامه مناسب باشد.
زمانبندی میان مدت :
بعضی سیستم عاملها از زمانبند میان مدت نیز استفاده میکنند. بدین ترتیب که گاهی پروسس هایی از حافظه و در واقع از رقابت جهت دریافت CPU حذف شده و به دیسک برده میشوند[۹] . بدین ترتیب درجه چند برنامگی کاهش مییابد . سپس در زمانی دیگر پردازش در سیستم عامل مذکور مجدداً به حافظه آورده شده و اجرایش از همان نقطه قبلی ادامه مییابد, این عملیات به نام مبادله[۱۰] معروف است .
زمانبندی CPU به طوری کلی میتواند انحصاری غیر قابل پس گرفتن[۱۱] قابل پس گرفتن [۱۲]باشد.
در سیستم انحصاری فقط هنگامی CPU ازپردازش در حال اجراء گرفته میشود که جهت عملیات I/O یا اتمام پردازش در سیستم عامل فرزند را رخداد دیگری بلوکه شود. بنابراین مفهوم و پیاده سازی الگوریتم زمانبندی انحصاری ساده است .ولی ممکن است پردازشی برای مدت طولانی CPU را جهت محاسبات در اختیار بگیرد.
رد این حال پردازشهای دیگر برای مدتی طولانی انتظار خواهند کشید و این موضوع مخصوصاً برای سیستمهای اشتراک زمانی نامناسب است .لذا در اغلب سیستمها از یک زمان سنج[۱۳] داخلی برای ایجاد وقفههای متناوب سختافزاری جهت گرفتن CPUاستفاده میشود.
زمانبندی غیرانحصاری
در هر وقفه در سیستم عامل ساعت, سیستم عامل اجرا میشود تا تصمیم بگیرد که آیا به پروسس در حال اجرا اجازه ادامه کار را بدهد یا اینکه چون پروسس به اندازه کافی از زمان CPU استفاده کرده آن را معلق نماید تا CPU به پروسس دیگری تخصیص داده شود. فرکانس این وقفه در سیستم عاملهای ساعت معمولاً بین ۵۰تا۶۰ بار در ثانیه است . این نوع زمانبندی که در آن پس از تمام شدن برش زمانی معین , CPU از گرفته میشود زمانبندی غیر انحصاری نام دارد.
اولویت در زمانبندی ها
اولویتها میتوانند بصورت اتوماتیک توسط سیستم نسبت داده شوند و یا از خارج سیستم تعیین گردند, مثلاً ممکن است یک کاربر کار فوری داشته باشدو حاضر باشد به خاطر بدست آوردن سرویس بالاتر هزینه بیشتری بپردازد , یعنی اولویت را بخرد .
یک اولویت ممکن است استاتیک باشد یا دینامیک . اولویت استاتیک تغییر نمیکندو بنابراین پیاده سازی آن ساده است .
ولی این نوع اولویت در مقابل تغییرات محیطی عکس العملی نشان نمیدهد . برعکس اولویت دینامیک بر اثر تغییرات محیطی تغییر میکند
مثلاً ً ممکن است در آغاز یک برنامه اولویت پائینی داشته باشد ولی به تدریج اولویت آن بهبود یابد.
معیارهای زمانبندی در سیستم عامل
۱- عدالت [۱۴]یعنی اطمینان از اینکه هر پروسس سهم عادلانه و منصفانهای از CPU را دریافت کند.
۲- کارایی یا بهره وری [۱۵]CPU یعنی اینکه CPU در تمام زمانها (حتی الامکان) مشغول باشد
۳- زمان پاسخ [۱۶]یعنی به حداقل رساندن زمان پاسخ برای فرمانهای محاورهای کاربر. این زمان معمولاً با سرعت ابزار خروجی محدود میشود.
۴- زمان برگشت یا گردش کار [۱۷]یعنی به حداقل رساندن زمانی که کاربران دستهای باید منتظر بمانند تا خروجی آنها پدید آید . فاصله زمانی از لحظه تحویل کار تا لحظه تکمیل کار را زمان برگشت مینامند ولی زمان پاسخ مدت زمانی است که از صدور یک تقاضا تا تولید اولین پاسخ آن طول میکشد (نه زمان خروجی کل برنامه)
زمان بارگذاری در حافظه و زمان عملیات و I/Oمان اجراء+ زمان انتظاردر صف آماده = زمان گردش کار
۵- توان عملیاتی یا گذردهی [۱۸]به تعداد پردازشهایی که در واحد زمان تکمیل میشوند توان عملیاتی میگویند. الگوریتم زمانبندی باید به گونهای باشد که این معیار را افزایش دهد .
۶- زمان انتظار [۱۹]الگوریتم زمانبندی CPU, بر میزان زمان اجرای پردازش یا اعمال I/O اثر نمیکند, بلکه فقط در زمان صرف شده جهت انتظار در صف آماده اثر میگذارد. زمان انتظار , مجموع پریودهای زمانی صرف شده در صف آماده میباشد.
۷- زمانبندی صفهای چند گانه[۲۰]
هنگامی که بتوان فرآیندها را به سادگی به دستهه ای متفاوت طبقه بندی کرد ازاینروش استفاده میگردد.
در الگوریتم صفهای چندگانه, صف آماده, به صفهای جداگانه مختلفی تجزیه میشود و هر پردازش وارد یک صف میگردد. اولویت صفها با هم فرق داشته و هر صفی الگوریتم زمانبندی خود را دارد
یک آمده-یک سرویس شده :[۲۱]
سادهترین الگوریتم زمانبندی CPU ,الگوریتم یک آمده, یک سرویس شده [۲۲]میباشد . گاهی اوقات به این رو یک آمده یک می رود[۲۳] نیز میگویند. در این روش هر پردازش در سیستم عاملی که اولین در خواست CPU را صادر کند , اولین پروسسی خواهد بود که آن را به دست میآورد .
این روش از نوع انحصاری [۲۴]است که به سادگی توسط یک صف FIFO پیاده سازی میشود.
هنگامی که پردازش در سیستم عامل CPU را به دست گرفت آن را رها نمیکند مگر اینکه تمام شود یا جهت انجام عملیات I/O به حالت بسته برود.
زمانبندی نوبت گردشی :[۲۵]
این زمانبندی یکی از قدیمیم ترین , سادهترین , عادلانهترین و رایجترین الگوریتمهای زمانبندی است و از نوع غیر انحصاری میباشد. این الگوریتم شبیه FCFS است ولی به هر پردازش حداکثر به میزان زمانی مشخصی CPU داده میشود.
به عبارتی دیگر یک واحد کوچک زمانی به نام کوانتوم زمان[۲۶] با برش زمانی [۲۷]تعریف میشود که معمولاً بین ۱۰ تا ۱۰۰میلی ثانیه است و هر پروسس حداکثر به این میزان میتواند CPU را در اختیار بگیرد. هنگامی که پردازشی CPU را در اختیار دارد دوحالت ممکن است رخ دهد .
یا انفجار محاسباتی جاری کمتر از یک کوانتوم زمانی است که در این حالت پردازش داوطلبانه CPU را رها میکند و منتظر اتمام عملیات I/O میشود (مانند FCFS) و یا اینکه انفجار محاسباتی بیشتر از یک کوانتوم زمانی است که در این حالت تایمر یک وقفه به سیستم عامل میدهد و سیستم عامل با تعویض متن [۲۸]CPU را از پردازش جاری گرفته و آن را به ته صف آماده میفرستد, سپس از ابتدای صف آماده, پردازش دیگری را جهت اجرا انتخاب میکند :
ازاینروش در سیستمهای اشتراک زمانی استفاده شده تا زمان های پاسخ برای کاربران محاورهای بصورت مناسب گارانتی شود.
حد بالای کوانتوم زمانی بایدبه قدری باشد که زمان پاسخ دهی مناسبی داشته باشیم.
حد پایین برش زمانی توسط دو عامل تعیین میشود یکی اینکه باید این برش خیلی بزرگتر از زمان تعویض متن باشد مثلاً هزاران برابر.
دیگر آنکه مقدار برش زمانی بایستی کمی بزرگتر از زمان لازم برای یک فعل و انفعال نوعی باشد چرا که در غیر اینصورت هر کار کوچکی نیاز به چندین برش زمانی خواهد داشت و کارایی سیستم به علت تعویض متنهای متعدد کم میشود.
یک قاعده سرانگشتی این است که go درصد انفجارهای محاسباتی باید کوتاهتر از کوانتوم زمانی باشند و در عمل برا یاین امر برش زمانی را حدود ۱۰۰ میلی ثانیه در نظر میگیرند.
یک کوتاهترین زمان[۲۹]
در الگوریتم مورد نظر که روشی انحصاری است CPU به پردازش داده میشود که کوچکترین انفجار محاسباتی بعدی را دارد.
البته اصطلاح مناسبتر , «کوتاهترین انفجار محاسباتی بعدی»میباشد. زیرا این زمانبندی بر اساس طول مدت انفجار CPU بعدی عمل میکند و نه بر اساس طول کل پردازش در سیستم عامل . اگر دو پردازش در سیستم عامل مدت انفجار محاسباتی یکسانی داشته باشد براساس FCFS زمانبندی میشوند. این الگوریتم میتواند انحصاری و غیر انحصاری باشد.
این الگوریتم مخصوصاً برای کارهای دستهای که از قبل زمان اجرای آن کارها , مشخص و معین باشد به کار میرود. مهمترین مشکل در SJF آگاهی از طول درخواست بعدی CPU میباشد. هیچ راهی که طول انفجار محاسباتی بعدی را برای ما مشخص سازد وجود ندارد.