تجزیه و تحلیل زمانبندی سیستمهای بیدرنگ
اصطلاح تحلیل زمانبندی در رایانش بیدرنگ شامل تجزیه و تحلیل و آزمایش سیستم زمانبندی و الگوریتمهای مورد استفاده در برنامههای بیدرنگ است. در علوم کامپیوتر، تحلیل زمانبندی بیدرنگ شامل ارزیابی، آزمایش و تأیید سیستمهای زمانبندی و الگوریتمهای مورد استفاده در عملیات بیدرنگ است. برای عملیات مهم، یک سیستم بیدرنگ باید برای عملکرد آزمایش و تأیید شود.
یک سیستم زمانبندی بیدرنگ از زمانبند، ساعت و عناصر سختافزار پردازشی تشکیل شده است. در یک سیستم بیدرنگ، یک فرایند یا کار دارای قابلیت زمانبندی است. وظایف توسط یک سیستم بیدرنگ پذیرفته میشوند و بسته به ویژگی الگوریتم زمانبندی طبق مهلت کار مشخص میشوند. مدلسازی و ارزیابی درگیر شدن سیستم زمانبندی بیدرنگ با استفاده از تجزیه و تحلیل قابلیت الگوریتم برای رسیدن به یک پایان فرایند است. مهلت به عنوان زمان مورد نیاز برای پردازش یک کار تعریف میشود.
به عنوان مثال، در یک الگوریتم زمانبندی بیدرنگ میتوان یک ضرب الاجل را تا پنج نانو ثانیه تنظیم کرد. در یک عملیات مهم، وظیفه باید در زمان مشخص شده در مهلت (یعنی پنج نانو ثانیه) پردازش شود. یک کار در یک سیستم بیدرنگ باید «نه خیلی زود و نه خیلی دیر» تکمیل شود. زمانی گفته میشود که یک سیستم غیرقابل برنامهریزی است که وظایف نتوانند مهلتهای تعیینشده را برآورده کنند. یک کار را میتوان به عنوان یک فرایند دورهای یا غیردورهای طبقهبندی کرد.
دستهبندیها
ویرایشمعیارهای یک سیستم بیدرنگ را میتوان به سخت، محکم یا نرم طبقهبندی کرد. برنامهریز الگوریتمها را برای اجرای وظایف بر اساس یک ترتیب مشخص تنظیم میکند. چندین مدل ریاضی برای نمایش یک سیستم زمانبندی وجود دارد، اکثر پیادهسازیهای الگوریتم زمانبندی بیدرنگ برای اجرای پیکربندیهای تکپردازنده یا چند پردازنده مدلسازی میشوند. الگوریتمهای زمانبندی چالشبرانگیزتر در چند پردازندهها یافت میشوند. پیادهسازی الگوریتم زمانبندی تکپردازنده در چند پردازنده همیشه امکانپذیر نیست. الگوریتمهای مورد استفاده در تحلیل زمانبندی میتوانند به عنوان بازدارنده یا غیر بازدارنده طبقهبندی شوند.
یک الگوریتم زمانبندی نحوه پردازش وظایف توسط سیستم زمانبندی را تعریف میکند. بهطور کلی، در الگوریتم یک سیستم زمانبندی بیدرنگ، به هر کار یک شرح، مهلت و یک شناسه (نشاندهنده اولویت) اختصاص داده میشود. الگوریتم زمانبندی انتخابی نحوه تخصیص اولویتها به یک کار خاص را تعیین میکند. یک الگوریتم زمانبندی بیدرنگ را میتوان به عنوان استاتیک یا پویا طبقهبندی کرد. برای یک زمانبندی ثابت، اولویتهای کار پیش از اجرای سیستم تعیین میشوند. یک زمانبندی پویا اولویتهای کار را در حین اجرا تعیین میکند. وظایف توسط عناصر سختافزاری در یک سیستم زمانبندی بیدرنگ از محیط محاسباتی پذیرفتهشده و در رایانش بیدرنگ پردازش میشوند. یک سیگنال خروجی وضعیت پردازش را نشان میدهد. مهلت کار نشاندهنده زمان تعیین شده برای تکمیل هر کار است.
همیشه نمیتوان مهلت لازم را رعایت کرد؛ بنابراین تأیید بیش از این توسط الگوریتم زمانبندی باید انجام شود. دو مدل مختلف را میتوان با استفاده از یک الگوریتم زمانبندی پویا پیادهسازی کرد. مهلت کار را میتوان با توجه به اولویت کار (اولین مهلت) اختصاص داد یا با کم کردن زمان پردازش از ضرب الاجل (کمترین سستی) زمان تکمیل برای هر کار را تعیین کرد. ضربالاجلها و زمان لازم برای اجرای کار باید از قبل درک شود تا از استفاده مؤثر از زمانهای اجرای عناصر پردازش اطمینان حاصل شود.
تست و تأیید
ویرایشتأیید عملکرد و اجرای یک الگوریتم زمانبندی بیدرنگ با تجزیه و تحلیل زمانهای اجرای الگوریتم انجام میشود. تأیید عملکرد یک زمانبندی بیدرنگ مستلزم آزمایش الگوریتم زمانبندی تحت سناریوهای آزمایشی مختلف از جمله بدترین زمان اجرا است. این سناریوهای تست شامل بدترین حالت و موارد نامطلوب برای ارزیابی عملکرد الگوریتم است. محاسبات زمانی مورد نیاز برای تجزیه و تحلیل سیستمهای زمانبندی نیاز به ارزیابی الگوریتم در سطح کد دارد.
روشهای مختلفی را میتوان برای آزمایش یک سیستم زمانبندی در یک سیستم بیدرنگ به کار برد. برخی از روشها عبارتند از: تأیید ورودی/خروجی و تجزیه و تحلیل کد. یک روش آزمایش هر یک از شرایط ورودی و انجام مشاهدات خروجی است. بسته به تعداد ورودیها، این رویکرد میتواند منجر به تلاش زیادی شود. یکی دیگر از روشهای سریعتر و مقرون به صرفهتر، رویکرد مبتنی بر ریسک است که در آن ورودیهای معرف پراهمیت برای آزمایش انتخاب میشوند. این روش مقرون به صرفهتر است، اما در صورت استفاده از رویکرد نادرست، میتواند نتیجهگیری غیر بهینه در مورد اعتبار سیستم را به همراه داشته باشد. تست مجدد نیازها پس از تغییرات در سیستم زمانبندی به صورت موردی در نظر گرفته میشود.
تست و تأیید سیستمهای بیدرنگ نباید به تأیید ورودی/خروجی و کدها محدود شود، بلکه در برنامههای در حال اجرا با استفاده از روشهای مداخلهای یا غیرمداخلهای نیز انجام میشود.