Кіріспе

Ең нашар жағдайда орындалу уақыты (WCET) — есептеу тапсырмасының белгілі бір аппараттық платформада орындалуына кететін ең ұзақ уақыт.

Не үшін қолданылады

Ең нашар орындалу уақыты көбінесе сенімді нақты уақыт жүйелерінде қолданылады, онда бағдарламалық құралдың ең нашар орындалу уақытын түсіну, сенімділік немесе дұрыс функционалдық мінез-құлық үшін маңызды. Мысалы, көлік құралындағы қозғалтқыштың жұмысын басқаратын компьютерлік жүйе, кіріс деректеріне белгілі бір уақыт ішінде жауап беруі керек. Жауап беру уақытын құрайтын бір компонент – бағдарламалық құралды орындауға кеткен уақыт. Сондықтан, егер бағдарламалық құралдың ең нашар орындалу уақытын анықтау мүмкін болса, жүйе дизайнерлері оны басқа әдістермен, мысалы, кестелеу талдауымен бірге қолданып, жүйенің жеткілікті жылдам жауап беретініне көз жеткізе алады. WCET әлеуетті түрде көптеген нақты уақыт жүйелеріне қолданылғанымен, практикада WCET кепілдігі көбінесе жоғары сенімділік немесе қауіпсіздік талаптары бар нақты уақыт жүйелерінде қолданылады. Мысалы, авиациялық бағдарламалық құралдарға DO178C стандартының 6.3.4-бөлімінде белгілі бір назар аудару қажет. Автомобильдік жүйелерде бағдарламалық құралды қолданудың артуы бағдарламалық құралды WCET талдауымен бағалау қажеттілігін де арттырады. Кейбір жүйелерді жобалау кезінде WCET көбінесе кестелеу талдауына кіріс ретінде қолданылады, бірақ WCET-тің маңызды жүйелердегі басты қолданылуы – ARINC 653 сияқты бөліктерге бөлінген жүйеде алдын ала белгіленген уақыт бюджеттерінің бұзылмауын қамтамасыз ету болып табылады.

Қарастырылатын мәселелер

WCET-ті талдау арқылы табу мәселесі тоқтату мәселесімен эквивалентті және де жалпы жағдайда шешілмейді. Ақыр соңында, инженерлер WCET-ті анықтауға тырысатын жүйелерде бағдарламалық құралдар әдетте жақсы құрылымдалған, әрқашан аяқталады және талдауға жарамды болады. WCET-ті табудың көптеген әдістері жуықтауды қолданады (әдетте, белгісіздіктер болғанда жоғарылай дөңгелектеу) және сондықтан практикада нақты WCET-ті алу мүмкін емес деп есептеледі. Оның орнына, WCET-ті табудың әртүрлі техникалары WCET-тің бағалауын береді. Бұл бағалаулар көбінесе пессимистік болады, яғни есептелген WCET нақты WCET-тен жоғары екені белгілі (әдетте осылай қажет). WCET талдауындағы көптеген жұмыстар талдаудың пессимизмін азайтуға бағытталған, сонда бағаланған мән жүйе дизайнерлері үшін жеткілікті төмен болуы үшін. WCET талдауы әдетте бір жіптің, тапсырманың немесе процестің орындалу уақытына қатысты. Дегенмен, қазіргі заманғы аппараттық құралдарда, әсіресе көп ядролы процессорларда, егер олар кэш, жад жолдары және басқа аппараттық мүмкіндіктерді бөліссе, жүйедегі басқа тапсырмалар берілген тапсырманың WCET-іне әсер етеді. Сонымен қатар, WCET талдауында, егер олар нақты жүйеде пайда болуы мүмкін болса, тапсырмаларды жоспарлау кезінде туындайтын тоқтаулар немесе үзілістер де ескерілуі керек. Сондықтан WCET талдауын қолдану контекстін ескеру маңызды.

Статикалық талдау әдістері

Статикалық WCET құралы компьютерлік бағдарламалық жасақтаманы тікелей аппараттық құралдарда орындамай, WCET-ті бағалауға тырысады. Статикалық талдау әдістері 1980-ші жылдардың соңынан бері осы саладағы зерттеулерге басымдық берді, бірақ өнеркәсіптік ортада бастапқыдан соңғы өлшемдер әдістері стандартты тәжірибе болып келді. Статикалық талдау құралдары бағдарламаның тапсырмасының құрылымын анықтау үшін жоғары деңгейде жұмыс істейді, бастапқы кодтың бөлігіне немесе құрастырылған екілік атқарылатын файлға қолданылады. Олар төмен деңгейде де жұмыс істейді, тапсырма орындалатын нақты аппараттық құрал туралы уақыттық ақпаратты, оның барлық ерекшеліктерін пайдаланады. Осы екі талдау түрін біріктіру арқылы құрал, белгілі бір аппараттық платформада берілген тапсырманы орындау үшін қажетті уақыттың жоғарғы шегін беруге тырысады. Төмен деңгейде статикалық WCET талдау процессордың орташа жағдайдағы өнімділігін жақсартатын архитектуралық мүмкіндіктердің болуымен күрделенеді: нұсқаулар/деректер кэштері, тармақтарды болжау және нұсқаулар конвейерлері, мысалы. Егер осы заманауи архитектуралық мүмкіндіктер талдауда қолданылатын уақыт моделінде ескерілсе, WCET-тің нақты шектерін анықтау мүмкін, бірақ бұл қиындыққа толы. Сондықтан, Еуропалық авиациялық қауіпсіздік агенттігі сияқты сертификаттау органдары модельді тексеру жинақтарына сенеді. Статикалық талдау қарапайым аппараттық құралдар үшін жақсы нәтижелер берді, бірақ статикалық талдаудың мүмкін шектеуі – аппараттық құралдың (әсіресе процессордың) модельдеуді өте қиын ететін күрделілікке жеткендігі. Атап айтқанда, модельдеу процесі бірнеше көздерден қателерді тудыруы мүмкін: чип дизайнындағы қателер, құжаттаманың жетіспеуі, құжаттамадағы қателер, модель жасаудағы қателер; бәрі де модельдің нақты аппараттық құралда байқалатыннан өзгеше мінез-құлықты болжауына әкелуі мүмкін. Әдетте, мінез-құлықты дәл болжау мүмкін болмаған жағдайда, пессимистік нәтиже қолданылады, бұл WCET бағалауының орындалу уақытында алынған кез келген мәннен әлдеқайда жоғары болуына әкелуі мүмкін. Көп ядролы процессорларда WCET-тің нақты статикалық бағалауын алу әсіресе қиын. Статикалық талдаудың әртүрлі формаларын іске асыратын көптеген коммерциялық және академиялық құралдар бар.

Өлшеу және гибридтік әдістер

Өлшемге негізделген және гибридті тәсілдер әдетте нақты аппараттық құралдарда қысқа код сегменттерінің орындалу уақытын өлшеуге тырысады, содан кейін оларды жоғары деңгейдегі талдауда біріктіреді. Құралдар бағдарламалық жасақтаманың құрылымын (мысалы, циклдар, тармақталулар) ескере отырып, үлкен бағдарламаның ең нашар жағдайдағы орындалу уақытын (WCET) бағалауға мүмкіндік береді. Бұның себебі, күрделі бағдарламалық жасақтамада ең ұзақ жолды тексеру қиын, бірақ оның көптеген кішігірім компоненттерінде ең ұзақ жолды тексеру оңайырақ. Ең нашар жағдайдың әсерін талдау үшін тек бір рет сынақ кезінде көру жеткілікті, сонда оны басқа ең нашар жағдай оқиғаларымен біріктіруге болады. Әдетте, бағдарламалық жасақтаманың кішігірім бөліктерін аспаптар (бағдарламаға маркерлер қосу) немесе аппараттық қолдау, мысалы, жөндеушілер (debuggers) және CPU аппараттық іздеу модульдері арқылы автоматты түрде өлшеуге болады. Бұл маркерлер бағдарламаның орындалу жолын және әртүрлі нүктелерде орындалу уақытын қамтитын орындалу ізін (trace) құрайды. Содан кейін із талданады, бағдарламаның әр бөлігінің орындалуына кеткен максималды уақыт, әр циклдің максималды қайталану уақыты және бағдарламалық жасақтаманың сыналмаған бөліктері бар-жоғы (кодты қамту) анықталады. Өлшемге негізделген WCET талдауы қарапайым және күрделі аппараттық құралдар үшін де жақсы нәтижелер көрсетті, бірақ статикалық талдау сияқты, көп ядролы (multi-core) жағдайларда шамадан тыс пессимизмге ұшырауы мүмкін, себебі бір ядроның екіншісіне тигізетін әсерін анықтау қиын. Өлшемнің шектеулілігі – сынақ кезінде ең нашар жағдайдың әсерін байқау қажеттігі (бірақ міндетті түрде бір уақытта емес). Ең нашар жағдайдың әсерін міндетті түрде сынап көргенін анықтау қиын болуы мүмкін. Өлшемге негізделген талдаудың әртүрлі формаларын іске асыратын көптеген коммерциялық және академиялық құралдар бар.

Зерттеу

Ең белсенді ғылыми топтар АҚШ-та (Американың Мичиган университеті), Швецияда (Mälardalen, Linköping), Германияда (Saarbrücken, Dortmund, Braunschweig), Францияда (Тулуза, Saclay, Rennes), Австрияда (Вена), Ұлыбританияда (York университеті және Rapita Systems Ltd), Италияда (Болонья), Испанияда (Кантабрия, Валенсия) және Швейцарияда (Цюрих) орналасқан. Соңғы кезде код деңгейіндегі уақытты талдау мәселесі Еуропа шегінен тыс, АҚШ-та (Солтүстік Каролина, Флорида), Канада, Австралия, Бангладеш (MBI LAB және RDS), Сауд Арабиясы Корольдігінің UQU (HISE LAB) университетінде, Сингапур және Үндістанда (IIT Мадрас, IISc Бангалор) зерттеу топтарының қызығушылығын арттырды.

WCET құралдар сынағы

Бірінші халықаралық WCET Tool Challenge 2006 жылдың күзінде өтті. Оны Mälardalen университеті ұйымдастырды және ARTIST2 кіріктірілген жүйелерді жобалау бойынша Excellence Network желісі демеушілік етті. Байқаудың мақсаты – ең нашар жағдайда орындалу уақытын талдаудың әртүрлі тәсілдерін қарастыру және салыстыру. Тапсырмалардың WCET-і үшін қауіпсіз жоғарғы шекараны анықтай алатын барлық қолжетімді құралдар мен прототиптер қатысты. Қорытынды нәтижелер 2006 жылдың қараша айында Кипрдің Пафос қаласында өткен ISoLA 2006 халықаралық симпозиумында таныстырылды. 2008 жылы екінші байқау өтті.