زمانبند نرخ یکنواخت
در علوم کامپیوتر، زمان‌بند Rate-monotonic(برنامه‌ریز نرخ یکنواخت یا RMS) به عنوان یک الگوریتم زمان‌بندی بر اساس اولویت با استفاده از یک کلاس اولویت ایستا است؛ که در سیستم عامل‌های بی‌درنگ (RTOS) استفاده می‌شود. اولویت‌های ایستا در این روش بر اساس زمان مورد نیاز برای انجام شدن یک چرخه کامل کار (وظیفه) تعیین می‌شود پس هرچه زمان مورد نیاز برای چرخه کار کمتر باشد اولویت آن کار (وظیفه) بیشتر است.
این سیستم عامل‌ها عموماً انحصاری (قبضه ای) است و تضمین قطعی برای زمان اجرا دارد. در این سیستم‌ها از تحلیل نرخ یکنواخت (Rate monotonic analysis) برای به دست آوردن تضمین زمان‌بندی در یک برنامه خاص استفاده می‌شود.
در نسخه ساده تجزیه و تحلیل نرخ مونوتونیک rate-monotonic analysis فرض می‌شود رشته‌ها دارای ویژگی‌های زیر باشند:
این یک مدل ریاضی است که شامل یک شبیه‌سازی محاسبه شده از دوره‌ها در یک سیستم بسته‌است، در جایی که زمانبندهای راند رابین (نوبت گردشی) و اشتراک زمانی در برآورد کردن نیازهای زمانبندی ناتوان هستند.
زمان‌بند rate monotonic مدل اجرایی همه رشته‌های موجود در سیستم را بررسی می‌کند و از روی این بررسی انجام شده تعیین می‌کند چه مقدار زمان برای تضمین مجموعه رشته‌های درخواستی مورد نیاز است
تست برنامه‌ریزی برای RMS از رابطه زیر به دست می‌آید:
که در این رابطه زمان مورد نیاز وظیفه i ام برای پردازش است، دوره آزادسازی پردازه iام است که مهلت پایان آن یک دوره بعد است، و تعداد فرایندهای برنامه‌ریزی شده‌است. به عنوان مثال، برای دو فرایند است.
هنگامی که تعداد فرایندها به سمت بی‌نهایت تمایل پیدا می‌کند، این عبارت به سمت مقدار زیر میل می‌کند:
بنابراین، برآورد تقریبی این است که RMS می‌تواند تمام مهلت‌های پایان مقرر را در صورتی که نرخ بهره‌وری CPU کمتر از ۶۹٫۳۲٪ باشد برآورده کند. ۳۰٫۷٪ باقی از CPU را می‌توان به وظایف غیر بی‌درنگ کم اولویت اختصاص داد.
می‌دانیم که یک سیستم وظیفه که به صورت تصادفی تولید می‌شود زمانی که بهره‌وری پردازنده ۸۵٪ یا کمتر باشد تمامی مهلت پایان‌ها را برآورده خواهدکرد، با این حال این واقعیت به دانستن دقیق آمار و اطلاعات وظایف (مانند دوره‌ها، مهلت‌ها) بستگی دارد که نمی‌توان تأمین این اطلاعات را برای تمام مجموعه‌های کار تضمین کرد.
محدودیت هایپربولیک یک شرط کافی با محدودیت شدیدتر نسبت یه روش ارائه لی(Liu) و لیلند (Layland) برای بازه قابلیت برنامه‌ریزی است
که در این رابطه کارایی پردازنده برای هر وظیفه است.
تخصیص اولویت نرخ مونوتونیک بهینه است، به این معنی که اگر هر الگوریتم برنامه‌ریزی استاتیک اولویت دیگری بتواند تمام ضرب‌الاجل‌ها را برآورده کند، الگوریتم نرخ مونوتونی نیز می‌تواند.
الگوریتم برای دوره‌ها و ضرب‌العجل‌های برابر نیز بهینه است، در واقع در این مورد الگوریتم‌ها یکسان هستند.
علاوه بر این، زمانبندی مونوتنیک ضرب‌الاجل زمانی مطلوب است که ضرب‌الاجل کمتر از دوره باشد. الگوریتم Audsley که دارای تست برنامه‌ریزی دقیق برای این مدل است، برای یک مدل کاری که در آن ضرب‌الاجل می‌تواند بیشتر از دوره باشد، یک تخصیص اولویت بهینه را تعیین می‌کند.
در بسیاری از کاربردهای عملی، منابع به اشتراک گذاشته می‌شوند و RMS بدون تغییر، باعث می‌شود در معرض خطر عدم رعایت اولویت و همچنین در معرض خطر وقوع بن‌بست قرار گیرد.
در عمل این مشکل را با غیرفعال کردن امکان قبضه یا حل می‌کنند.
همچنین روش‌های جایگزینی وجود دارد مانند استفاده از الگوریتم‌های بدون قفل یا اجتناب از اشتراک (mutex) یا نشان‌بر(semaphore) بین رشته‌های دارای اولویت مختلف، که در وهله اول اینکار می‌تواند باعث جلوگیری از تداخل منابع شود. الگوریتم‌های ارث بری اولویت می‌توانند با دو ویژگی مشخص شوند.
ویژگی اول وراثت تنبل یا فوری (بلافاصله):
تنبل (فقط زمانی اعمال می‌شود که ضروری است) یا وراثت بلافاصله (افزایش اولویت قبل از وقوع یک تداخل)
ویژگی دوم اولویت خوش بین یا بدبین:
اولویت خوش‌بینانه (افزایش به اندازه حداقل مقدار) بدبینانه (افزایش بیشتر از حداقل مقدار) در عمل هیچ تفاوت ریاضی (از لحاظ استفاده از سیستم Liu-Layland محدود) بین الگوریتم‌های تنبل و فوری وجود ندارد و الگوریتم‌های فوری برای پیاده‌سازی کارآمدتر هستند و بنابراین در سیستم‌های عملی معمولاً از آنها استفاده می‌شوند.
یک نمونه از استفاده از وراثت اولیه (ساده) اولویت مربوط به "خطای بازنشانی پیمایش مریخ " است
بهره‌وری برابر است با:
شرایط کافی برای ۳ فرایند، که می‌توان نتیجه گرفت که سیستم قابل برنامه‌ریزی و زمانبندی است:
از آنجاییکه سیستم مطمئناً قابل برنامه‌ریزی است
اما به یاد داشته باشید، این شرط لازم نیست؛ بنابراین ما نمی‌توانیم بگوییم که یک سیستم با بهره‌وری بیشتر با این الگوریتم زمانبندی قابل برنامه‌ریزی نیست یا نه.