Author
cojocaru-lucian
View
311
Download
25
Embed Size (px)
DESCRIPTION
acesta este un curs acest curs a fost pus aici pt a trage alt curs. multumim pt intelegere. la cererea voastra cursul poate fi dat jos bineinteles, doar nu l-am pus din scopuri bla bla bla kjlksj lkdjlkj skdkls klsj lks lsh jksh skj hjskl jsl jksjksjl
I. Noiuni introductive privind aplicaiile multi-tasking de timp real
Sistem numeric: = hardware (resurse) + sistem de operare + aplicaie utilizator (rutine/metode)
Sistem de timp real - un sistem care trebuie s rspund unor restricii de timp (RT) prestabilite
RT cheia funcionalitilor dorite
Ex: control proces, identificare online
Aplicatie de timp real Aplicaie cu timp de execuie mic
- [timp] conteaz momentele de timp la care rezultatele sunt obinute!!
- [real] rspuns la evenimentele externe pe msur ce acestea apar
Exemple
Control
Monitorizare + alerte/decizii
Sistem de timp real
o Hardware -ul asigura rspuns rapid la evenimente externe, sincronizare temporal, siguran
o Aplicaia dezvoltat multitasking [procese modulare, cu prioriti diferite] + ISRuri
o Sistemul de operare ofer anumite faciliti suplimentare accent pe rspuns rapid la evenimente externe, partajare resurse, executie multitasking (comutare de la un task la altul + planificare & alocare)
resurse
o active: procesoare asigura execuia instruciunilor
o pasive: periferice (DA, AD, PWM, numaratoare), linii de comunicatie, locatii memorie (variabile)
+
procese care lupta pentru ocuparea resurselor (implementate de programator)
o Task = proces care implementeaza o anumita facilitate a aplicatiei
o ISR = proces prin care se raspunde unei cereri de intreruperi lansata de un dispozitiv periferic
+
sistemul de operare de timp real asigura servicii pentru execuia proceselor i ocupare/eliberarea resurselor in sensul respectrii restrictiilor de timp
procesele trebuie s coopereze pentru a produce rezultate
procesele lupta pentru ocuparea resurselor: algoritmi de planificare si alocare
procesele ocupa pentru executie: - o resursa activa (procesor, server) cel putin - eventual anumite resurse pasive (memorie, etc)
O resursa poate fi ocupata de un singur proces la un moment dat (acces exclusiv)
Cedarea resursei unui alt proces mai prioritar: o resurse active - prin preemtare (unui alt task) sau
intrerupere (unui ISR); o resurse pasive: acces preemtiv
Proces zona de memorie proprie pentru
- cod executat - date folosite
+ - stare procesor (resursa activa): registri
Fir (thread engl.) fara zona proprie de memorie
Procese create dinamic/static
Diferente principale sistem timp real alte sisteme numerice
Sistem timp real
Alte sisteme numerice
Planificare Planificarea taskurilor in sensul respectarii restrictiilor de timp
Folosirea corect i eficient a resurselor
Timp de rspuns Incalcarea unui deadline rezultatul nu este doar ntrziat, ci i greit
timpii de rspuns s asigure respectarea restriciilor de timp pentru cazul cel mai nefavorabil
Timpi de raspuns ct mai buni
Suprancrcare Respectarea restriciilor de timp importante
Comportare acceptabil
[The Concise Handbookof Real-Time Systems, www.timesys.com]
T2 T1 T1T2 T2 T2T3 T3
while(1){ if() operatii task 1 if() operatii task 2 etc }
Motontasking
while(1){
}
Multitasking
ISR
Task1
ISR
Task2 Task3
Avantaje abordare multitasking: - Extensie simpla adaugare taskuri - Prioritati diferite - Temporizari & restrictii de timp mai
flexibil de gestionat, independent pentru fiecare task
Executia multitasking solicit:
Task1 .
.
.
.
Task 2
..
SOTR
Programator (+ servicii SOTR)
Continuarea executiei procesului cu urmatoarea instructiune + gestionare corect a stivei/memoriei
Logica nealterat, consistena date, sincronizare, etc.
SOTR asigur comutarea corect de la un proces la altul (comutarea contextelor)
Context task = coninut regitri procesor + adres de nceput task + stare task +adresa stivei iniiale + var. specifice ale SOTR
Orice proces trebuie executat consistent, indiferent ce comutri ntre procese au loc
Din perspectiva programarii: Multitasking + folosire ISR
Pot exista sectiuni critice:
acces concurent la IO, variabile de memorie globale
alte succesiuni de instructiuni ce trebuie nu trebuie fragmentate
Poate exista secvente reentrante acelai cod executat pe instante diferite
Din perspectiva dezvoltarii unui RTOS: RTOS - mod privilegiat
Faciliti uzuale oferite de un SOTR:
asigur execuie multitasking: o creare-stergere taskuri o gestionare taskuri pe stri multiple o comutare ntre taskuri o arbitrare taskuri
comunicare ntre taskuri
partajare resurse pasive
monitorizare executie
+
respectare restricii de timp arbitrare n sensul respectrii RT pe baz de prioriti
Tipuri RTOS in funcie de facilitaile oferite:
planificare (scheduling) + control execuie (dispatcher)
comunicare intertask + sincornizare
acces protejat la memorie, servicii I/0
fisiere, securitate, interfata utilizator
microkernel
kernel
executiv
Clasificare RTOS/ n funcie de interfaarea cu aplicaia utilizator
- monolitic o RTOS lucreaza in mod privilegiat, iar aplicatiile lucreaza in mod
utilizator folosind apeluri la RTOS bazate pe trap o Executia aplicatiei in mod supervizor prin linkeditare cu RTOS
(apel sistem apel functie)
- stratificat o RTOS organizate pe module organizate ierahic
Permite update simplu a unui modul Scalabilitate, portabilitate crescute
- bazat pe OS servere o Kernel minimal:
asigura comunicare securizata si operatii sistem critce (accesare registri IO)
functii ale RTOS sunt mutate in procese de tip OS server ce ruleaza in mod utilizator si comunica prin mesaje.
o modularitate, extensie fireasca catre sisteme distribuite o eroare la un server SO nu devine fatala
Probleme: o Consum resurse pe comunicare o Dificultati in gestionarea comunicarii o Tratarea ISR - cereri transmise prin mesaje si
tratate in mod user prin interrupt service task (implica comutari de context intre taskuri)
Ocuparea resurselor active/pasive este tratat distinct de SOTR:
i). Ocuparea resurselor active (procesoare):
Caz multiprocesor planificare si alocare >> procese concurente CAND (planificare) i UNDE (alocare) se execut taskurile (procesoarele vor comunica prin mesaje sau zone partajate de memorie) Caz nedetaliat n curs!!!!!!
Caz monoprocesor - planificare: CAND se execut taskurile
o pentru taskuri exista un arbitru care decide ce task preia procesorul: planificatorul (componenta a SOTR);
o pentru ISR arbitrul este de obicei un controller hard, nu o componenta a SOTR.
ii). Ocuparea resurselor pasive:
Resurse pasive = zone de memorie, dispozitive periferice, etc
Resursele sunt partajabile intre procese!!!!
o Un proces care ocupa resursa trebuie s i poat finaliza n timp finit operaiile, fr a pierde consistena datelor
o Un proces mai puin prioritar nu trebuie s ntrzie un alt proces mai prioritar la primirea resursei (inversare de prioritate)
o Procesele nu trebuie s se blocheze n ateptarea resurselor (deadlock)
Proces 1
..............
Setez mod de lucru 1 Folosesc resursa pe mod 1 ........................
Proces 2
..............
Setez mod de lucru 2 Folosesc resursa pe mod 2 ........................
I.1. Detalii despre ocuparea resurselor active in SOTR
I. 1. 1. Clasificare taskuri
1) dup mod activare
o periodice, deterministe activate cu regularitate la fiecare activare: citesc stare sistem, execut calcule, trimit comenzi
de afiare-modificare stare sistem Ex: aviaie - ajustarea poziiei supapei rezervorului de combustibil n funcie de puterea solicitat; automobilism verificare blocare roi; achiziie date; control periodic; refresh DRAM.
o aperiodice activate cnd anumite evenimente au loc pot fi critice (cu deadline ferm - sporadice) sau obinuite (fr
deadline ferm - aperiodice) Ex: reconfigurarea sistemului de control atunci cnd anumite anomalii sunt detectate; operaii de ntreinere; nregistrare de evenimente.
2) dup importan o critice hard deadline - uzual : periodice o eseniale deadline ferm, important o neeseniale deadline-ul poate fi nclcat fr efecte imediate
(software deadline)
necesitate considerare prioriti pentru taskuri
I. 1. 2. Starile posibile ale unui task
in asteptare (waiting)
Se termina de executat
in curs de executie (running)
Evenimentul asteptat a avut loc
pregatita pentru executie (ready)
Cere asteptarea unui eveniment
suspendata
activata
Primeste procesorul
(start)
Pierde procesorul
(preempt)
Pot exista diferente intre SOTR cu privire la modul de trecere del a o stare la alta sau denumirea strii
I. 1. 3. Moduri execuie a taskurilor
o preemtiv
un proces poate ceda procesorul altui proces atunci cand planificatorul decide acest lucru, fr a i se cere acordul:
in executie ready
T1
in executie
suspendat in executie
suspendat
activare T1 Terminare T1
T2
v
in executie ready
T1
in executie
suspendat in executie
suspendat
activare T1 Terminare T1
T2
v
o nepreemtiv
un proces nu cedeaz procesorul altui proces activ, fr acordul su
in executie
T1
suspendat
suspendat ready
in executie
activare T1
Terminare T2
T2
v
>> pot fi admise moduri mixte: unele procese preemtive, altele nepreemtive
Un proces caracterizat in SOTR prin:
o ID
o Stare
o Resurse ocupate
- pentru control executie
1. 4. Planificator
Planificatorul (scheduler) monitorizeaz coada de taskuri ready i stabilete ce task trece executie.
Elemente ce definesc planificatorul:
o cand se activeaz planificatorul (cnd poate decide comutarea)
clock driven [periodic] planificatorul se activeaz periodic (o perioad = frame) + procesul in executie cere acces la planificator, se termina sau intra in asteptare
event driven [bazat pe evenimente] planificatorul se activeaz cand apare un eveniment ce modific coada ready + procesul in executie cere acces la planificator, se termina sau intra in asteptare
in executie ready
T1
in executie
suspendat in executie
suspendat
activare T1 Terminare T1
T2
v
in executie ready
T1
in executie
suspendat in executie
suspendat
activare T1 Terminare T1
T2
v
cadru (frame)
mod preemptiv!!!!
o algoritmul de planificare cum alege taskul ctigtor:
uzual pe baz de prioritate
prioritile pot fi statice (un task are aceeai priroitate pe durata execuiei aplicaiei) sau dinamice (un task i modific prioritatea)
la multe SOTR: statice (stabilite de designer)
I. 1. 5. Execuia ISR
Atentie: ISR nu sunt supervizate de planificator!
Cererile nu sunt stocate in coada ready gestionate de controllerul de intreruperi
Uzual ISR sunt gestionate pe nivele de prioritate superioare: un ISR intrerupe orice task daca IF permite
+
modifcare IF disable/enable un ISR poate intrerupe un ISR mai putin prioritar daca IF permite
I. 2 Restriciile de timp definiii utile
Restricia de timp - cerina de a executa o operaie dup ce sunt ndeplinite anumite condiii i nainte de un termen prestabilit
),,,,( deadlineIexecreleased tpttI d
cu releaseexec ttt < deadline ,
p perioada de activare a proceselor periodice Id identificator task
procesi
ei
(executie)
Di
(deadline relativ)
Taski li rezerva
(laxity, slack)
di termen limita
(deadline absolut)
ri
activare (release)
timp
interval in care procesul trebuie sa se execute
(occurance interval, feasible interval)
Taski
intarziere (tardeness)
Timpul de activare ri poate incorpora i restricii de precedena (procesul se poate executa doar dac alte procese s-au executat)
Timpul de executie ei este calculat pentru un proces care se executa fara a fi intrerupt-preemtat, avand toate resursele necesare disponibile si toate restrictiile de precedenta indeplinite
Depinde de viteza resurselor active Nu depinde de secventa de executie a taskurilor Poate fi diferit daca exista instructiuni conditionale,
daca se foloseste memorie cash ],[ + iii eee >> se va considera in analiza +ie
Timp = resursa STR corectitudine n funcionarea STR
Alte restricii ce trebuie ndeplinite: Performane impuse pentru anumite operaii Fiabilitate STR Restricii privind accesul la resursele comune limitate i partajabile:
procesoare, dispozitive IO, baze date, resurse reea comunicaie
De multe ori SOTR ofer doar ajutor in gestionarea resurselor active/pasive conform prioritatilor proceselor
Respectarea restriciilor ramne in sarcina designer ului!!!!
Respectarea restrictiilor de timp se verifica pe cazul cel mai nefavorabil
Acesta este greu de gasit la sisteme cu multe procese, principalele dificulti fiind: determinarea +ie , ri, lucru cu procese aperiodice sau sporadice, intrzieri, situaii neprevzute
Cerin: respectarea predictibil a restriciilor de timp (importante)
Plan = secventa/ordinea in care se vor executa taskurile
Plan valid (corect) asigura respectarea conditiilor:
Un procesor are asignat un singur job la un moment dat
Un proces este asignat maxim unui singur procesor la un moment dat
Niciun task nu incepe inainte de ri
Restrictiile de precedenta si de utilizare a resurselor sunt indeplinite
Un task ocupa procesoarele maxim un timp egal cu ei
Plan admisibil (feasible) plan valid ce asigura respectarea deadline-urilor
Sisteme de timp real
PET [Physical Execution Time] - o descriere temporal exact a secventei de executie, prin design o acces exclusiv la procesor - uzual main + ISR in ASM
BET [Bounded Execution time] cu SOTR: taskuri + ISR
o RT: deadine pentru taskuri
Probleme: adaugarea unor taskuri noi afecteaza modul de execuie al taskurilor deja existente n sistem
LET [Logical Execution time]
Exemplu: HTL [Hierarchical Timimg Language]
comunicator = variabila ce poate fi accesata la anumite momente de timp pentru sciere-citire
mode grup de taskuri de aceeai frecven; acceptate restricii de preceden
un program HTL: set de comunicatori + mode -uri
o taskurile nu includ sincronizri, ci citesc/ actualizeaz instane ale comunicatorilor;
o taskurile comunica prin comunicatori; comunicarea directa intertask permis n mode prin porturi