سیستم عامل ریل تایم، سیستم عاملی است که دریافت و انجام هر وظیفه توش از یک حدی بیشتر طول نمی کشه. دقت کن که این ربطی به سرعت نداره بلکه بحث اینه که مثلا تو مطمئن باشی که این سیستم عامل دریافت و انجام فلان عمل رو در حداکثر یک دهم ثانیه انجام خواهد داد و این مستقل است از فشار روی سیستم و غیره. این بحث به طور خاص بر می گرده به زمان بندی سیستم عامل و الگوریتم های تقسیم زمان سی پی یو بین وظایف.
این سیستم عامل ها برای حل مسایل خاص بکار می رن. مثلا ترمز ضد قفل ماشین نمونه کلاسیکش است که سیستم عامل باید اطمینان حاصل کنه که ترمز مستقل از وضعیت سی پی یو در حالت قفل گیر نکنه.
۱+
در سیستم بلادرنگ سخت , پردازش در سیستم عامل ها میبایست در یک زمان تخمین شده اجراء و اتمام شوند., مانند سیستم کنترل موشک . چنین تضمینی در یک سیستم با حافظه ثانویه یا حافظه مجازی غیر ممکن است . در سیستم بلادرنگ نرم (مانند پخش موسیقی) زمان پاسخگویی به پردازش در سیستم عامل مهم است ولی مانند بلادرنگ سخت , حیاتی نیست .
اتفاقاتی که سیستم بلادرنگ باید به آنها پاسخ دهد به دو دسته متناوب و غیر متناوب تقسیم میشوند. وقایع متناوب در فواصل زمانی مساوی اتفاق میافتند ولی وقایع متناوب به صورت تصادفی و تصادفی بوده و غیر قابل پیش بینی میباشند.
روشهای زمانبندی بلادرنگ به دو دسته کلی پویا و ایستا تقسیم میشوند. در حالت ایستا قبل از شروع سیستم , تصمیمات زمانبندی گرفته میشود ولی در حالت پویا تصمیمات زمانبندی در زمان اجرای سیستم انجام میپذیرد . سه روش زمانبندی بلا درنگ پویا عبارتند از:
• الگوریتم نرخ یکنواخت (Rate monotonic) : در این الگوریتم به هر پردازش در سیستم عامل اولویتی متناسب با فرکانس رخداد آن واقعه نسبت داده میشود. مثلاً به پردازشی که هر20 میلی ثانیه تکرار میشود, اولویت 50 و به پردازشی که هر 100 میلی ثانیه تکرار میشود, اولیت 10 داده میشود. این الگوریتم از نوع غیرانحصاری است . میتوان اثبات کرد که این الگوریتم بهینه است.
• الگوریتم ابتدا زودترین مهلت (Earliest deadline first) در این الگوریتم پردازش در سیستم عاملی ابتدا اجراء میشود که فرصتش از همه کمتر است یعنی نزدیکترین مهلت را دارد . این مهلت برای وقایع متناوب برابر زمان رخداد واقعه بعدی میباشد.
• الگوریتم کمترین سستی (least laxity) زمان سستی یک پردازش در سیستم عامل زمانی است که میتواند آماده باقی مانده و اجراء نشود. مثلاً اگر یک پردازش در سیستم عامل به 200 میلی ثانیه وقت CPU احتیاج داشته باشد. و250 میلی ثانیه نیز مهلت داشته باشد که کارش را تمام کند, زمان سستی او برابر 250-200=50 میلی ثانیه میباشد. در این الگوریتم پردازشی ابتدا اجراء میگردد که کوچکترین زمان سستی را دارد.
زمانبندی LPT
در زمانبندی (Longest Processing Time) هر گاه که پردازندهای آزاد میگردد, از بین کارهای باقی مانده طولانیترین کار را برای اجرا انتخاب میکند. هرچند که این الگوریتم بهینه نیست ولی غالباً منحصر به زمانبندیهایی با طول معقول میشود.