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