اصطلاح تحلیل زمان‌بندی در سیستم‌های بی‌درنگ (بلادرنگ) شامل تحلیل و تست سیستم زمان‌بند و الگوریتم‌های مورد استفاده در کاربردهای بی‌درنگ است. در علم کامپیوتر، تحلیل زمان‌بندی بی‌درنگ، ارزیابی، تست و تصدیق سیستم زمان‌بندی و الگوریتم‌های مورد استفاده در کاربردهای بی‌درنگ تلقی می‌شود. برای عملیات بحرانی، یک سیستم بی‌درنگ باید از نظر عملکرد (کارایی) تست و ارزیابی شود. در علم کامپیوتر، تست و تصدیق تحت عنوان چک کردن مدل شناخته می‌شود.

یک سیستم زمان‌بندی بی‌درنگ متشکل است از زمان‌بند، ساعت و اجزای سخت‌افزاری پردازشگر. در یک سیستم بی‌درنگ، یک پروسه یا وظیفه قابلیت زمان‌بندی شدن دارد؛ وظیفه‌ها توسط یک سیستم بی‌درنگ پذیرفته شده و طبق موعد پایان مشخص شده برای آن وظیفه، بسته به مشخصات الگوریتم زمان‌بندی- تکمیل می‌گردد. مدلینگ و ارزیابی یک سیستم زمان‌بندی بی‌درنگ بر اساس تحلیل ظرفیت الگوریتم مربوط به رعایت شرایط موعد پایان یک پروسه، تعیین می‌گردد. یک موعد پایان به‌صورت زمان مورد نیاز برای اینکه یک وظیفه پردازش شود تعریف می‌گردد

برای مثال، در یک الگوریتم زمان‌بندی بی‌درنگ یک موعد پایان می‌تواند پنج نانوثانیه تنظیم شود. در یک عمل بحرانی وظیفه باید قطعاً در زمان مشخص شده یعنی تا موعد پایان پردازش شود (برای مثال ۵ نانو ثانیه). یک وظیفه در یک سیستم بی‌درنگ باید تحت این شرایط کامل شود: نه زودتر نه دیرتر از وقت تعیین شده. یک سیستم را وقتی غیر زمان‌بندی شده می‌شناسند که وظیفه‌ها موعدهای پایان مشخص شده را رعایت نکنند. یک وظیفه به‌صورت یک پروسه‌ی دوره‌ای یا غیردوره‌ای تعریف می‌شود.

### طبقه‌بندی

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

یک الگوریتم زمان‌بندی مشخص می‌کند که وظیفه‌ها چگونه توسط سیستم زمان‌بندی مورد پردازش قرار گیرند. در بیان کلی، در الگوریتم برای سیستم زمان‌بندی بی‌درنگ، هر وظیفه یک توصیف، موعد اتمام و یک شناساگر (که نشان دهنده اولویت است) دارد. الگوریتم زمان‌بندی منتخب تعیین می‌کند اولویتها چگونه به یک وظیفه خاص نسبت داده شوند. یک الگوریتم زمان‌بندی بی‌درنگ می‌تواند ایستا یا پویا باشد. برای یک زمان‌بند ایستا، اولویت‌های وظیفه قبل از به اجرا درآمدن‌های سیستم تعیین می‌شوند. یک زمان‌بند پویا اولویت‌های وظیفه را در همان حین اجرا تعیین می‌کند.

وظیفه‌ها توسط اِلِمان‌های سخت‌افزاری در یک سیستم زمان‌بندی بی‌درنگ از محیط محاسباتی پذیرفته می‌شوند و در مُد بی‌درنگ پردازش می‌گردند. یک سیگنال خروجی وضعیت پردازش را نشان می‌دهد. یک موعد پایان، زمان برای پایان وظیفه را تعریف می‌کند.

همیشه رعایت موعدهای پایان ممکن نیست از این رو تصدیق‌های بیشتری از الگوریتم زمان‌بندی باید گرفته شود. دو مدل مختلف را با استفاده از یک الگوریتم زمان‌بندی پویا می‌توان پیاده کرد: یک موعد مظیفه مطابق با اولویت وظیفه (موعد پایان زودتر) انتساب داده شود یا یک زمان تکمیل برای هر وظیفه به‌صورت تفریق زمان پردازش از زمان موعد اتمام نسبت داده شود (تسامح). موعدهای پایان و زمان اجرای مورد نیاز وظیفه باید از قبل تفهمیم شده باشند تا اطمینان حاصل شود استفاده مؤثر از زمان‌های اجرای المان‌های پردازشگر انجام می‌شود.

Testing and verification
------------------------

تصدیق عملکرد و اجرای الگوریتم زمان‌بندی بی‌درنگ توسط تحلیل زمان‌های اجرای الگوریتم انجام می‌شود. تصدیق برای عملکرد یک زمان‌بند بی‌درنگ نیازمند تست الگوریتم زمان‌بندی تحت سناریوهای تست مختلف است از جمله بدترین حالت زمان اجرا. اسن سناریوهای تست شامل موارد بدترین و نامطلوب هستند تا عملکرد و کارایی الگوریتم مورد بازبینی قرار گیرد. محاسبات زمان لازم برای تحلیل سیستم‌های زمان‌بندی نیازمند ارزیابی الگوریتم در سطح کد نویسی است.

متدهای مختلف را برای تست یک سیستم زمان‌بندی در یک سیستم بی‌درنگ می‌توان به کار بست. برخی متدها شامل: تصدیق‌های ورودی /خروجی و تحلیل کد. یک متد به‌صورت تست شرایط هر ورودی و انجام مشاهدات خروجی‌ها است. بسته به تعداد ورودی‌ها این رویکرد می‌تواند منتهی به تلاش‌های زیادی گردد. یک متد اقتصادی تر و سریع تر دیگر رویکرد مبتنی بر ریسک است که ورودی‌هایی که بحرانی به نظر می‌آیند برای تست انتخاب شوند. این متد به صرفه تر است اما نتایج کمتر بهینه تری در قبال تأیید سیستم خواهد داشت اگر که رویکرد نادرست استفاده شود. الزامات تست و آزمون مجدد بعد از تغییرات وارد شده به سیستم زمان‌بندی، بر اساس موارد استفادهٔ آن سیستم، تعریف می‌گردد
تست و تصدیق سیستم‌های بی‌درنگ نباید به ورودی و خروجی‌ها و تصدیق‌های کد محدود باشد بلکه باید همچنین در اجرا شدن کاربردها با کمک گرفتن از متدهای مداخله‌کننده یا غیرمداخله‌کننده، انجام شوند.

جستارهای وابسته
---------------

* Pinwheel scheduling

منابع
-----

1. 1 2  Leung, Joseph; Zhao, Hairong (November 2005). *Real-Time Scheduling Analysis* (PDF) (Technical report). DOT/FAA/AR-05/27.
2. ↑  Liu, Zhiming; Joseph, Mathai (17 February 2001). "Verification, Refinement and Scheduling of Real-time Programs" (PDF). *Theoretical Computer Science*. **253** (1): 119–152. doi:10.1016/s0304-3975(00)00091-8. Retrieved 4 December 2015.[*پیوند مرده*]
3. ↑  Sorin, Manolache,; Petru, Eles; Zebo, Peng (November 2004). "Schedulability Analysis of Applications with Stochastic Task Execution Times" (PDF). *ACM Transactions on Embedded Computing Systems*. **3** (4): 706–735. Retrieved 4 December 2015.`{{cite journal}}`: نگهداری CS1: نقطه‌گذاری اضافه (link)
4. 1 2 3 4 5 6  Audsley, N.; Burns, A. (1990). *Real-Time System Scheduling* (PDF) (Technical report). University of York, UK. Archived from the original (PDF) on 6 November 2015. Retrieved 17 April 2019.
5. ↑  Castanet, R.; Laurençot, P. "Testing real-Time Systems". *15th World Conference on Nondestructive Testing*. AIPnD. Retrieved 4 December 2015.