Professional Documents
Culture Documents
_______________________________________________________
Съдържание
2 / 58
Операционна система за реално време за вградени системи
_______________________________________________________
4 / 58
Операционна система за реално време за вградени системи
_______________________________________________________
1.1.1. OSEK/VDX
OSEK е съкращение от немския термин” Offene Systeme und deren Schnittstellen für die
Elektronik im Kraftfahrzeug" (б.а.: Отворени системи и сътветните взаимовръзки за електронни
изделия в автомобилната промишленост).”Представлява статична операционна система за
отказо устойчиви вградени системи. Статичността на системата се изразява в това, че системата
не притежава възможност за поддръжка на динамични обекти. Нейната структура е статична и
се дефинира в процеса на създаване на ОСРВ. Тази структура не се променя в последствие.
OSEK операционна система предоставя необходимите услуги за подръжка на разпределени,
отказо-устойчиви, приложения за реално време с висока сигурност - стартиране на системата,
управления на комуникация, обработване на прекъсвания, синхронизация и стратегия за
управление на грешките и проблемите
Операционната система се генерира на базата на потребителски настройки и конфигурации.
Тя не може да бъде модифицирана по време на нейната работа. Което означава, че тя е статична
– и нейния първоначален вид – като използвани ресурси се запазва за целия жизнен цикъл на
продукта без допълнителни модификации. Така специфицираните услуги на ОС предоставят
база за интеграция на софтуерни модули, разработени от различни производители. За
създаването на специфична функционалност в индивидуалните модули за контрол и
управление, е необходимо да се нарави оценка техните характеристика на работа, както и
изисквания за минимална консумация на ресурси
Системните услуги, са основното звено в OSEK. Те взимат участие в изпълнението на задачите,
както и управление на техните преходи, в зависимост от състоянието на цялата система. Те са
5 / 58
Операционна система за реално време за вградени системи
_______________________________________________________
отговорни за управлението на ресурсите и събитията, както и обработването на прекъсвания.
Системите услуги се активират при настъпване на някое от следните събития:
- изтичане на системния квант от време;
- явно искане за превключване на задача;
- настъпване на очаквано събитие;
- освобождаване на очакван ресурс;
- настъпване на системно прекъсване.
Основните характеристики са:
- OSEK операционна система е конфигуриуема и статична като изпълнение. Потребителят
може да специфицира броя на задачите, ресурсите, и системинте услуги, които са
необходими.
- Спецификацията на OSEK операционна система разрешава съзадаването на софтуерни
модули, които се изпълняват направо от ROM.
- OSEK операционна система изисква преносимост на приложните задачи, по отношение
на използваната апаратна платформа
- OSEK операционна система предоставя възможност за предсказване и документиране на
поведението, като по този начин реализацията може да осигури покритието на
изисквания към критичните системи за реално време.
- Спецификацията на OSEK операционна система дава възможност за изграждане на
система с ясно заложени изисквания по отношение на времето и ресурсите.
1.1.2. X51
НЕ Е ГОТОВО!
1.1.3. FreeRTOS
НЕ Е ГОТОВО!
8 / 58
Операционна система за реално време за вградени системи
_______________________________________________________
9 / 58
Операционна система за реално време за вградени системи
_______________________________________________________
Подебен сценарии се използва и за превключване между задачите. Съществува
компонент в ОСРВ, който управлява превключване на задачите наречен диспечер - фиг. 7.
12 / 58
Операционна система за реално време за вградени системи
_______________________________________________________
условията в системата се променят, което налага стартирането на задача 1. Стартирането на
задача се изразява от последователно преминаване от спряно състояние (SUSPENDED) в
готовност за стартиране (READY) и след като започне изпълнението на задачата в процесора,
тя преминава в активно състояние (RUNNING) – разгледано в детаили в §1.2.1. В този момент
задача 1 не може да бъде активирана, поради непрекъсваемия характер на диспечеризация за
задача 2. Задача 1 престоява известно време в състояние готовност за стартиране (READY) –
време известно в литературните източници като „латентно време”. Латентното време трябва да
бъде съобразено с правило 1.1. На задача 1 се предоставя процесорно време в момента t2,
когато задача 1 завършва своето изпълнение.
14 / 58
Операционна система за реално време за вградени системи
_______________________________________________________
Предишно
Преход Ново състояние Обяснение
състояние
*
Състоянието WAITING е възможно само за разширен тип задачи.
15 / 58
Операционна система за реално време за вградени системи
_______________________________________________________
1.2.2. Базова задача
16 / 58
Операционна система за реално време за вградени системи
_______________________________________________________
бъде синхронизирана по системно събитие. Поради тази причина в момент t1 тя прекрътява
своето изпълнение чрез явно обръщение към диспечера (WaitEvent). Диспечерът я поставя в
състояние WAITING и стртира прекъсваемата задача 2 в момент t2. В момент t3 настъпва
очакваното събитие от задача 1, което кара диспечерът да промени нейното състояние в
READY. Поради факта, че в момента задача 1 е с най-висок приоритет, диспечерът стартира
задачата в t4. След като завърши своята работа, задача 1 прави обръщение към диспечера за
терминиране (TerminateTask) – t5. В последствие прекъснатата задача 2 бива стартирана от
диспечера 2 момент t6.
Разширените задачи са подходящи за използване при необходимост от междинно
синхронно изпълнение с предварително дефинирано вътрешно системно в ОСРВ събитие. По
този начин се постига бърза реакция при настъпването на събитието. От друга страна
механизмът позволява уплътняване на процесорното време до настъпване на събитието чрез
стартиране на по-ниско приоритетни задачи. На лице е баланс между бързина на реакцията и
оптимизация на системните ресурси.
t1 t2 t3 t4 t
19 / 58
Операционна система за реално време за вградени системи
_______________________________________________________
В практиката възникават изисквания за създавне на комплексни реакций на базата на вътрешно
или външно схемно събитие. Комплексността на тази реакция най-често се изразява в
активирането наняколко потребителски задачи, очакващи това събитие. Тези операции са не
възможни без явно участие на сервизите предоставени от операционната система. За използване
на системните сервизи на операционната система е необходимо те да бъдат извършени
отобекти със собствен контекст в операционната система. Поради тази причина е необходимо
създаване на собствен контекст за подпрограмите за обработка на прекъсвания (ISR) от
Категория 2. За целта е необходимо въвличане на диспечерът в обработката на прекъсванията
от Категория 2 - фиг. 13.
act Обслужване на системно прекъсване Категория 2
INT X
«flow» [Използване на сис темен с ервиз]
Системно
Изпълнение на Системен
прекъсване X
подпрограма за сервиз
обслужване на X
[Завършване на ISR]
Изпълнение на
Превключване
Задача Y контекст X->Y
[Възс тановяване на прекъс натата задача]
20 / 58
Операционна система за реално време за вградени системи
_______________________________________________________
Динамичен времеви анализ в системите за реално време.
Прекъсванията се представят като задачи,
чиято цикличност представлява минималния очакван период на активиране напрекъсването.
Контекст
Категория 1
ISR Кат. 1
Диспечер
t
Време за завършване
Контекст
на Задача Y
Категория 2
ISR Кат. 2
ISR
t
Време за завършване
на Задача Y
21 / 58
Операционна система за реално време за вградени системи
_______________________________________________________
24.1. Заемане на ресурс
- В случай, че ресурс заеман от активната задача бъде освободен, то друга задача може да
премине в активно състояние (RUNNING), с цел използване на ресурса. Следователно
освобождаването на ресурс се явява точка на диспечеризация.
Всяка приложна задача на ОСРВ има статично зададен приоритет по време на генерацията
на ОСРВ. Допълнително към основния приоритет, се добавя и допълнителен – таванен
приоритет. Таваният приоритет се асоциира с ресурс, който ще бъде достъпван от
определена група задачи, асициирани с него преди момента на генерация на ОСРВ.
Неговата стойност се определя от най-високия приоритет от всички задачи асоциирани с
този ресурс. Когато задача от асоциираната група с ресурса се активира, нейният основен
приоритет се замества с таванния приоритет, дефиниран за тази група. По този начин, се
гарантира, че задачата няма да бъде изтласкана от друга задача ползваща асоциирания
ресурс. Активната задача не трябва да се самотерминра, да влиза в състояние на изчакване
или в друга точка на редеспечеризация, докато заема съответния ресурс. Когато активната
задача освобождава заемания от нея ресурс, нейният приоритет се намалява до най-високия
таванен приоритет, асоцииран със заеманите от нея в момента ресурси. Ако задачата не
заема други ресурси, то нейният приоритет се връща към основния – дефиниран по време на
генерацията на ОСРВ. По този начин, се опростява резултатния приоритет на активната
потребителската задача в моментите на редеспечеризация. В резултат на въвеждането на
този протокол, времето на забавяне се ограничава до времето на заемане на асоциирания
ресурс от по-нископриоритетна задача.
На фиг. 16 е показана аналогична ситуация, която беше разгледана на фиг. 15, при
използване на протокола за таванен приоритет. В момент t0 на заемане на семафор 1 от
23 / 58
Операционна система за реално време за вградени системи
_______________________________________________________
Задача 4, нейният приоритет се повишава до таванния и тя продължава своето изпълнение.
В t1, в системата се появява точка на деспечеризация и Задача 4 е изтласкана от Задача 1,
поради факта, че Задача 1 притежава по-висок приоритет от Задача 4. По време на
изпълнението си Задача 1 има нужда от използването на семафор 1, който е заключен от
прекъснатата Задача 4. Поради невъзможност за продължаване на своята работа, Задача 1
преминава в състояние на изчакване (WAITING) в момент t3. Задача 1 остава в състояние на
изчакване, до момента t4, в който активаната Задача 4, освобождава семафор 1. Този момент
се явява точка на деспечеризация, поради освобождавнето на ресурса семафор 1. Като
резултат се стартира Задача 1, която вече е в състояние да използва семафор 1. Както може
да се забележи момента на изчакване на високо-приоритетната Задача 4 за освобождаване е
по-кратко при използване на принципа на таванният приоритет (фиг. 16), за разлика от
ситуацията, където той не е изполван (фиг. 15). Времето на изчакване за ресурса на високо-
приоритетната Задача 1 е ограничено до времето на използване на ресурс от Задача 4 (фиг.
16). При липса на принципа на таванния приоритет, времето за изчакване се увеличава с
времето за изпълнение на междинните задачи 2 и 3 (фиг. 15).
Време
на Заемане на
изчакване семафор С1
деспечеризация Освобождаване на
Неуспешен опит за
семафор С1
заемане на семафор С1
READY
Задача
1
SUSPENDED RUNNING WAITING RUNNING SUSPENDED
Таванен
RUNNING READY RUNNING
Приоритет
приоритет 4
Задача
2
SUSPENDED READY RUNNING SUSPENDED
Задача
3
SUSPENDED READY RUNNING SUSPENDED
Задача
4
RUNNING READY RUNNING
t0 t1 t2 t3 t4 t5 t
Заемане на
семафор С1
24 / 58
Операционна система за реално време за вградени системи
_______________________________________________________
25. Аларми
25.1. Броячи
26 / 58
Операционна система за реално време за вградени системи
_______________________________________________________
29 / 58
Операционна система за реално време за вградени системи
_______________________________________________________
28.1.1. Алгоритъм за диспечеризация с фиксиран приоритет на
задачите
†
Условието е необходимо, но не и достатъчно диспечеризацията в реално време да бъде
реализируема.
‡
(а)‖ – е представяне за най-голямото цяло число по-малко или равно на „а”, ‖(а) - е представяне за
най-малкото цяло число по-голямо от „а”.
31 / 58
Операционна система за реално време за вградени системи
_______________________________________________________
Ci
, където е времето за което задачата – i се изпълнява в един нейн цикличен период T i, a
Ti
Тj
Тi‖ . Ci е времето за изпълнение i-та задача с цикличност на активация T i, в рамките на период
T j , като T j >T i.
В случай, че τ 1 е по-високо приоритетната задача, то следното неравенство трябва да бъде
вярно:
C 1+C 2 ≤T 1 1.4
Т2
Т1‖.C 1+
Т2
Т1 ‖
. C2≤
Т2
Т1
.T1
‖
От друга страна като се има в предвид че:
Т2
Т1 ‖
.T 1 ≤ T 2
, тогава:
Т2
Т1‖.C 1+
Т2
Т1 ‖
. C2≤
Т2
Т1 ‖
. T 1≤ T2
1.1
33 / 58
Операционна система за реално време за вградени системи
_______________________________________________________
оползотворяването на процесора е пълно по време на критичната времева зона. Като следствие
са възможни са два случая:
C 1 ≤ T 2−T 1.
T2
T1 ‖
Следователно, най-голямата стойност за C 2 е:
C 2=T 2−C1.
‖ T2
T1
T 2−C 1.
‖ T2
T1
[ ‖ ]
2
Ci C1 C2 C1 1 1 T2
U =∑ = + = + =1+ C1. . − .
i=1 Ti T 1 T 2 T 1 T2 T1 T2 T 1
Случай 2: Изпълнението на ‖ T2
T1
-та заявка за изпълнение наτ 1 се презастъпва със следващата
34 / 58
Операционна система за реално време за вградени системи
_______________________________________________________
C 1 ≥ T 2 −T 1.
T2
T1 ‖
Следователно най-голямата възможна стойност на C 2 е:
C 2=T 1.
T2
T1 ‖
−C1.
T2
T1 ‖
Съответният фактор на оползотворяване на процесора е :
T 1.
T2
−C 1.
‖T2
‖
T1 T1
‖ [ ‖]
2
Ci C1 C2 C1 T1 T2 1 1 T
U =∑ = + = + = . +C 1 − . 2
i=1 Ti T 1 T 2 T 1 T2 T2 T1 T1 T2 T1
C 1=T 2 −Т 1.
T2
T1 ‖
, от където се получава:
U =1−
Т1
Т2 [‖ T2 Т 2 Т 2 T 2
− −
T1 Т 1 Т 1 T 1 ][ ‖] 1.3
Полагаме
A=
T2
T1 ‖и дробната част на
Т2
Т1
Т2 T 2
както следва B = −
Т1 T 1
: ‖
U =1−B ( 1−B
A +B )
U =1−B ( 1−B
1+B )
35 / 58
Операционна система за реално време за вградени системи
_______________________________________________________
U =2 (2 −1) ≈ 0 , 83
1
2
U =1=1−B ( 1−B
1+ B )
, когато B = 0, или
Т2 T 2
−
Т1 T 1 ‖
=0 , т.е. по-продължителният период T 2 кратен на по-краткия T 1.
То нека
'
C 1=T 2 −Т 1
36 / 58
Операционна система за реално време за вградени системи
_______________________________________________________
'
C 2=C2 + ∆
'
C 3=C 3
…
'
C m−1=C m−1
'
C m=C m
Очевидно е, че множеството C '1 , C '2 , C'3 , … , C'm −1 , C'm също заема цялото процесорно време. Ако
съответният фактор на заемане на процесора е U’, се получава:
U −U ' = ( )( )
∆
T1
−
∆
T2
>0
Нека
''
C 1 =T 2−Т 1
''
C 2 =C 2−2 ∆
''
C 3 =C 3
…
''
C m−1=C m−1
''
C m=C m
''
U −U =−
( T∆ )+( 2T∆ )> 0
1 2
C 3=T 4−Т 3
…
C m−1=T m−Т m−1
37 / 58
Операционна система за реално време за вградени системи
_______________________________________________________
Като следствие се получава:
C m=T m−2(C 1 +C 2+ …+Cm −1 )
C m=T m−2 g1 .T 1
От където се получава:
[ ( )] ( )
m
C i m−1 T T
U =∑ =∑ gi−g i+1 i +1 +1−¿ 2 g1 1 ¿ =
i=1 T i i=1 Ti Tm
[ ) ]
gi +1 ( g i+1 )
[ ]
m−1
g1
= ∑ gi − +1−2 =¿
i=1 ( gi +1+ 1 g1 +1
¿ 1+
g 1 (g 1−1) m−1
g1 +1
+ ∑ gi .
i=1 [
( g i−gi−1 )
( gi +1 ) ] 1.4
∂ U ( g i + 2 gi −g i−1)
2
g
= − i+1 =0 ,
∂ gi ( gi +1 )
2
g i+1 +1 1.5
i=1 , 2 ,3 , … ,(m−1)
( m−i
m ) 1.6
gi=2 −1 , i=0 , 1 ,2 , … ,(m−1)
U =m(2 ¿ ¿ ( m1 )−1)¿
, което предствлява и връзката, която искахме да докажем
38 / 58
Операционна система за реално време за вградени системи
_______________________________________________________
За две задачи се получава:
( )
1
1
U m =2 =m(2 ¿ ¿ −1)=2(2 2 −1)¿
m
U =m(2 ¿ ¿ ( m1 )−1)¿
Доказателство: Нека τ 1 , τ 2 , τ 3 , … τ m е множество от задачи, които заемат напълно неговото
Т m=q Т i +r , q>1 и r ≥ 0
Нека заместим задача τ i със задача τ 'i , така че, Т 'i=q . T i и C 'i=Ci , а C m заеме такава стойност, с
която процесорното време е напълно заето. Това увеличение е най-осезаемо в C i (q−1) –
времето на критичната времева зона τ m, заето от τ i , но не от τ 'i . За изчислението на фактора на
заемане на процесора се получава:
'
U <U +
[ Tm ]
C i .(q−1) C i C i
+ '−
Ti Ti
Или
39 / 58
Операционна система за реално време за вградени системи
_______________________________________________________
системата. В противен случай, системата губи свойта основна характеристика – работа в реално
време.
Поради тази причина е необходимо провеждането на анализ в ранен етап от проектирането на
системата, като тази характеристика се поддържа през целия жизнен цикъл на системата. За
целта е необходимо синтезиране на методология, с чиято помощ дабъдат изчислени времевите
параметри на системата и на тяхна база да се проведе необходимия динамичен анализ.
По време на анализа, се използват най-лошите възможни времеви характеристики на системата.
По този начин се гарантира работа на системата вреално време, при екстремални условия.
Поради факта, че системата е изградена от потребителски задачи, то първият необходим
параметър е най-дългата реакция на всяка една задача в системата - Ri , където i е съответния
номерна задачата. Времето за реакция на една задача включва времето от момента на
активиране на задачата – преход към сустояние RUN - фиг. 10, до момента на завършванена
нейното изпълнение. Отделните преходи между състоянията на задачите са показани на фиг. 25.
Показани са двата възможни прехода към състояние READY, съответно WAINTING – READY
за расширените задачи и SUSPENDED-READY за базовите задачи. Моментът t r - е така
нареченият момент на освобождаване на задачата – настъпване на условието за активиране на
задачата. Това може да е изтичане на аларма за активация на задача, при периодични задачи
или настъпване на очаквано събитие за апериодични (асинхронни) задачи. В този момент
задачата се добавя в опашката на задачите готови за изпълнение, на позиция, съответстваща на
нейния приоритет в системата. Следващият момент в рамките на периода за реакция на
задачата, това е t a - стартиране на задачата. В този момент, задачата започва своето изпълнение
– изготвяне на нейната реакция в системата. Всяка една задача се характеризира с параметър –
максимално време, необходимо за изготвяне на реакцията C i – известно още като „максимално
време за изпълнение на задачата” [1]. След края на своето изпълнение, задчата преминава в
пасивно състояние “SUSPENDED”, до настъпването на следващата и активация.
40 / 58
Операционна система за реално време за вградени системи
_______________________________________________________
По време на анализът, времето за диспечеризация – смяна на състоянието на задачите е
пренебрегнато, с цел улесняване на анализа. От друга страна, това време е съизмеримо малко с
останалите времена използвани в анализа, като допълнителен аргумент за пренебрегването му.
На база на фиг. 25 и изложеното до момента, може да се запише следното уравнение за
максималното време за реакция на потребителска задача в система за реално време:
Ri=W i+ Ci 1.7
Тук е удачно да се направи междинен анализ на отделните членове на равенстовото, по
отношение на вида диспечеризация в системата (виж. §2.2.2 Видове диспечеризация), както и
типа на задачите изграждащи системата за реално време (виж. §1.2 Потребителска задача).
Първоначално се разглежда параметърът W i . Този параметър характеризира времето, през
което, задачата има всички необходими ресурси за стартиране в системата, с изключение на
процесора. Тя е в състояние READY (виж. §1.2.1 Граф на състояния на задачите), намира се в
опашката на готовите за изпълнение задачи и се конкурира за процесорно време с останалите в
опашката задачи. Конкурирането за процесорно време е единствено на база приоритет на
задачата. Следователно типът на задачата – базова или разширена, не оказва влияние върху W i .
Също така трябва да се отбележи, че типът на диспечеризацията (виж. §2.2.2 Видове
диспечеризация), също не влияе върху W i , поради факта, че диспечеризацията влияе само върху
времето за изпълнение на задачата, когато тя е активна – състояние READY. От друга страна, в
случайте, когато разглежданата задача преминава в състояние READY, но точно преди този
преход е активирана задача с по нисък приоритет, е възможно увеличаване на Ri ако тази задача
е от непрекъсваем тип. Следователно параметърът Ri е инвариантен от типа на задачата – базова
или разширена, но зависи от типа на диспечеризация на по-ниско приоритетните задачи от
текущо анализираната задача. На фиг. 26 са показани двата възможни случай:
случай 1: предварително активираната по-ниско приоритетна задача е с непрекъсваем характер
на диспечеризация;
случай 2: предварително активираната по-ниско приоритетна задача с прекъсваем характер на
диспечеризация.
41 / 58
Операционна система за реално време за вградени системи
_______________________________________________________
42 / 58
Операционна система за реално време за вградени системи
_______________________________________________________
‖
hp (i)
Ri
I i= ∑ .C 1.10
j=i +1 Tj j
‖
hp (i)
Ri
Ri=C i + max (C j)+ ∑ .C 1.11
j ∈lp(i) j =i +1 Tj j
43 / 58
Операционна система за реално време за вградени системи
_______________________________________________________
Решението на уравнението (1.11) се получава посредством рекурсивен алгоритъм – най-малкото
Ri решение на (1.11) е най-дългото време за реакция на T i. За рекурсивното уравнение се
запосват последователностите:
0
mi =C i
‖
hp(i) n
mi
=Ci + max (C l)+ ∑
n+1
m i .C 1.12
l ∈lp(i) j=i+1 Tj j
Редът (1.12) е монотонно увеличаващ се. Ако mn+1i = mni , то това е и най-малкото неотрицателно
решение на (1.11) - Ri=mni . Съответно ако Ri > Di , където Di е крайният срок за изготвяне на
реакцията на задачата T i, условията заработа в реално време на T i са нарушение и казваме, че
системата не е диспечеризуема в реално време!
45 / 58
Операционна система за реално време за вградени системи
_______________________________________________________
46 / 58
Операционна система за реално време за вградени системи
_______________________________________________________
Анализът на стековото пространство обикновено се извършва на базата на силно
натоварващ тест (б.р. eng “Stress test”). Целта на теста е навлизане на максимална
дъбочина на изпълнявания обект, което води и до максимлна големина на използвания
стек. За една силно асинхронна среда е трудно да се конструира тест напълно натоварващ
сътвения обект на ОСРВ. Следователно не винаги е възможно да се получи реална
информация за максималния размер на използваня стек. С цел постигане на максимална
сигурност, посредством елиминиране на възможността за презастъпване на стековото
пространство, в настоящата разработка има създаден и допълнителен предпазен
механизъм. Той се състои от добавяне на допълнителни шаблони на границата на
стековото пространство - фиг. 31 а).
47 / 58
Операционна система за реално време за вградени системи
_______________________________________________________
sd StackCheck
Активаране на задача()
Изпълнение на задачата()
Терминиране на задачата()
[else]
Запис на грешка()
48 / 58
Операционна система за реално време за вградени системи
_______________________________________________________
49 / 58
Операционна система за реално време за вградени системи
_______________________________________________________
sd TimeScheduleManager
Аларма 1()
Активиране на задача()
Изпълнение()
Рапорт за край()
Терминиране()
Аларма 2()
Активиране на задача()
Изпълнение()
Рапорт на край()
Терминиране()
Мониторна Аларма()
Активиране на задача()
Проверка на времената()
[else]
Реакция при закъснение()
50 / 58
Операционна система за реално време за вградени системи
_______________________________________________________
Цикличен период
Референтна
Задача Брояч на акривираща Обяснение
стойност
аларма
За 6 активации на монитора
Задача 1 Инкрементиращ 50ms 6 се очаква един доклад от
задачата.
За 3 активации на монитора
Задача 3 Инкрементиращ 20ms 3 се очаква един доклад от
задачата.
TimeScheduleManager - 10ms - -
51 / 58
Операционна система за реално време за вградени системи
_______________________________________________________
sd Мониторинг на TSM
Времева
нотификация()
Аларма TSM()
Активиране на задача()
Период, през който Има забавяне на изпълнението
TSM трябва да бъде на TSM - две последователни
активиран поне нотификации от системния
веднъж. Изпълнение() часовник, без активиране на
TSM.
Нулиране на флага()
Терминиране()
Времева нотификация()
[else]
52 / 58
Операционна система за реално време за вградени системи
_______________________________________________________
WDT се нулира единствено ако задачите и TSM се изпълняват без закъснение. В
противен случай, WDT спира да се нулира, което от своя страна води до ресет на
системата. От гледна точка на ОСРВ, TSM може да се разглежда като съвкупност от
няколко виртуални WDT. Всеки един от тези виртуални WDM притежава възможност за
индивидуална настройка на периода на препълване, в съответствие с наложените времеви
изисквания към отделните задача. От архитектурна гледна точка облужването на WDT от
един централизиран компонент е правило и не трябва да бъде нарушавано. Следователно
недопустимо е, потребителските задачи да извършват манипулации върху WDT
29.1.1. Диспечер
29.1.2. Задачи
29.1.4. Ресурси
29.1.5. Аларми
53 / 58
Операционна система за реално време за вградени системи
_______________________________________________________
31.2.1. Апаратно зависими звена
#define DisableAllInterrupts() \
NetstedInterrupts++; \
_DI()
#define EnableAllInterrupts() \
if(0 < NetstedInterrupts) \
if(0 == -- NetstedInterrupts) \
_EI()
НЕДОВЪРШЕНО!!!
55 / 58
Операционна система за реално време за вградени системи
_______________________________________________________
ПРИЛОЖЕНИЕ
ФИГУРИ
фиг. 1 Взаимодействие на ОСРВ с физическата среда...........................................................................................3
фиг. 2 Основни моменти в система за реално време............................................................................................... 4
фиг. 3 Структура на СРВ – множество задачи и среда за комуникация помежду им.............................................5
фиг. 4 Декомпозиция на фукционалностти............................................................................................................. 7
фиг. 5 Превключване на контекст на задачи........................................................................................................... 9
фиг. 6 Апаратно прекъсване в микроконтролер...................................................................................................... 9
фиг. 7 Превключване на задачи............................................................................................................................. 10
фиг. 8 Стратегия на кооперативна диспечеризация............................................................................................. 12
фиг. 9 Стратегия на диспечеризация с изтласкване............................................................................................. 13
фиг. 10 Граф на състоянията и преходите за базова и разширена задача.............................................................15
фиг. 11 Изчакване на събитие от разширена задача.............................................................................................16
фиг. 12 Изпълнение на подпрограма за обрабока на прекъсване Категория 1........................................................19
фиг. 13 Обслужване на прекъсване Категория 2 (UML – activity diagram).............................................................20
фиг. 14 Влияние на прекъсвания Категория 1 и Категория 2 върху потребителски задачи....................................21
фиг. 15 Инверсия приоритета на задача очакваща ресурс....................................................................................22
фиг. 16 Работа при използване на протокол за таванен приоритет.....................................................................24
фиг. 17 Изпадане в състояние „мъртва хватка”.................................................................................................. 25
фиг. 18 Етапи при разработка на система с ОСРВ.............................................................................................. 27
фиг. 19 Примерна времева карта на задачите...................................................................................................... 28
фиг. 20 Изпълнение на τ i между активации на τ m ............................................................................................... 30
фиг. 21 Изпълнение на две задачаи........................................................................................................................ 31
фиг. 22 Изпълнение на τ 1 и τ 2 - случай 1............................................................................................................ 34
фиг. 23 Изпълнение на τ 1 и τ 2 - случай 1............................................................................................................ 34
фиг. 24 Максимална продължителност на задача.................................................................................................. 36
фиг. 25 Време за реакция на потребителска задача.............................................................................................. 40
фиг. 26 Влияние на ниско приоритетните задачи върху високо приоритетните задачи........................................41
фиг. 27 Влияние на високо приоритетни задачи при прексваем характер на диспечеризация................................42
фиг. 28 Припокриване на стекови облсти............................................................................................................. 44
фиг. 29 Неизползване на стеков масив.................................................................................................................. 45
фиг. 30 Мониторинг на стека посредством байтов шаблон.................................................................................45
фиг. 31 Маркиране край на стека посредством „воден знак”...............................................................................46
фиг. 32 Хронологична диаграма – проверка на „воден знак”..................................................................................47
фиг. 33 Нарушаване на времето за реакция - td.................................................................................................... 48
фиг. 34 Работа на времевия монитор – TimeScheduleManager..............................................................................49
фиг. 35 Само-мониторинг на TimeScheduleManager.............................................................................................. 51
56 / 58
Операционна система за реално време за вградени системи
_______________________________________________________
фиг. 36 Защитен механизъм на ОСРВ с WDT........................................................................................................ 51
фиг. 37 Ефект на вложеност при работа с прекъсвания......................................................................................53
ТАБЛИЦИ
БИБЛИОГРАФИЯ
1. Liu, C.L. и Layland, J.W. Scheduling Algorithms for Multi-Programming in a Hard Real-Time. н.м. : Journal
of the Association for Computing Machinery Vol. 20, 1 (January 1973), pp. 46-61., 1973.
2. Wellings, A. Burns and A.J. Restricted Tasking Models. н.м. : Real-Time Systems Research Group,
University of York, UK.
3. Michael, G., Harbour. Timing Analysis for Fixed Priority Scheduling of Hard Real-Time Systems. н.м. : Naval
Ocean Systems Center under contract N66001-87-C-0155,.
4. Reinder J. Bril, Johan J. Lukkien. Worst-case response time analysis of real-time tasks.
5. Lehoczky, John, Sha, Lui и Ding, Ye. The Rate Monotonic Scheduling Algorithm: Exact Characterization
And Average Case Behaviour. н.м. : Department of ComputerScience - Carnegie Mellon University.
6. A hyperbolic bound for the rate monotonic algorithm. Enrico Bini, Giorgio Buttazzo, and Giuseppe
Buttazzo. н.м. : In Proceedings of the IEEE Euromicro Conference on Real-Time Systems, 2001.
7. Sensitivity analysis for fixed-priority real-time systems. Bini, Enrico, Di Natale, Marco и Buttazzo, Giorgio.
н.м. : Springer Science+Business Media, LLC 2007, 2008. DOI 10.1007/s11241-006-9010-1.
8. Somoza, R. Early Use of Reversed Rate Monotonic Analysis for Estimation of Required Computing Power in
Hard Real-Time Systems. Madrid : Support Analysis of Software Manager Aircraft Construction, 2005.
9. Wang, Yun и Saksena, Manas. Scheduling Fixed-Priority Tasks with Preemption Threshold. Pittsburgh, PA
15260, USA : Department of Computer Science, 2006.
10. consortium, AUTOSAR. AUTOSAR OS Specification. AUTOSAR. [Онлайн] AUTOSAR, 2010 r.
http://portal.osek-vdx.org/index.php?option=com_content&task=view&id=9&Itemid=13. os223.pdf.
11. Sangiovanni-Vincentelli, Alberto и Di Natale, Marco. Embedded System Design for Automotive
Applications. Berkeley : University of California, 2008.
12. L. Sha, R. Rajkumar, and J.P. Lehoczky. Priority Inheritance Protocols: An Approach to Real-Time
Synchronization. н.м. : IEEE Trans. Computers, 1990. vol. 39, no. 9, 1990, pp. 1175-1185..
13. Scheduling Fixed-Priority Tasks with Preemption Threshold. н.м. : Proc. IEEE Int’l Conf. Real-Time
Computing Systems and Applications, IEEE Press, 1999.
14. Joseph, M. и Pandya, P. K. Finding Response Times in a Real-Time System. н.м. : The Computer J., vol.
29, no. 5, 1986.
15. C. Pinello, L. Carloni, and A. Sangiovanni-Vincentelli. Fault-Tolerant Deployment of Embedded Software
for Cost-Sensitive Real-Time Feedback-Control Applications. н.м. : Proc. DATE Conf., IEEE CS Press, 2004,
pp. 1164-1169., 2002.
16. Zheng, W. Synthesis of Task and Message Activation Models in Real-Time Distributed Automotive
Systems. н.м. : Proc. IEEE/ACM DATE Conf., IEEE Press, 2007, pp. 93-98., 2007.
57 / 58
Операционна система за реално време за вградени системи
_______________________________________________________
17. Lehoczky, John P. Fixed Priority Scheduling of Periodic Task Sets with Arbitrary Deadlines. Pittsburg PA
15213 : Carnegie Mellon University, 2000.
18. Fidge, C. J. Real-Time Schedulability Tests for Preemptive Multitasking. Queensland 4072, Australia :
Software Verification Research Centre, School of Information Technology, The University of Queensland, 2006.
19. Harbour, Michael Gonzalez, Mark, Klein H. и Lehoczky, John P. Timing Analysis for Fixed Priority
Scheduling of Hard Real-Time Systems. Pittsburgh, PA 15213 : Software Engineering Institute - Carnegie
Mellon University, 2005.
58 / 58