Sunteți pe pagina 1din 35

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


Timpi de raspuns ct mai
nu este doar ntrziat, ci i greit
buni
timpii de rspuns s asigure
respectarea restriciilor de timp
pentru cazul cel mai
nefavorabil

Suprancrcare

Respectarea restriciilor de timp


importante

[The Concise Handbookof Real-Time Systems, www.timesys.com]

Comportare acceptabil

Multitasking

Motontasking

ISR

ISR
while(1){
if() operatii task 1
if() operatii task 2
etc
}

Avantaje abordare multitasking:


- Extensie simpla adaugare taskuri
- Prioritati diferite
- Temporizari & restrictii de timp mai
flexibil de gestionat, independent
pentru fiecare task

while(1){
}
Task1

T2

Task3
Task2

T1

T1T2

T2

T2T3

T3

Executia multitasking solicit:


Orice proces trebuie executat
consistent, indiferent ce
comutri ntre procese au loc

SOTR

Programator
(+ servicii SOTR)

Continuarea executiei
procesului cu urmatoarea
instructiune + gestionare
corect a stivei/memoriei

Logica nealterat,
consistena date,
sincronizare, etc.

Task1
.
.
.
.

Task 2

..

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

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:

fisiere, securitate, interfata utilizator

acces protejat la memorie, servicii I/0


executiv
comunicare intertask
+ sincornizare

kernel

microkernel

planificare (scheduling) +
control execuie (dispatcher)

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:

Proces 1

Proces 2

..............
Setez mod de lucru 1
Folosesc resursa pe mod 1
........................

..............
Setez mod de lucru 2
Folosesc resursa pe mod 2
........................

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)

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

Cere asteptarea
unui eveniment

in asteptare
(waiting)

Evenimentul asteptat
a avut loc

in curs de executie
(running)
Se termina de
executat
Pierde
procesorul
(preempt)

Primeste
procesorul
(start)
suspendata

pregatita pentru
executie (ready)

activata

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:
activare T1
T1

Terminare T1

suspendat

in executie

suspendat

in executie

ready

in executie

v
T2

activare T1
T1

suspendat

Terminare T1
in executie

suspendat

ready

in executie

v
in executie
T2

o nepreemtiv
un proces nu cedeaz procesorul altui proces activ, fr acordul su
activare T1
T1

suspendat

ready

in executie

v
in executie

suspendat

T2
Terminare T2

>> 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

activare T1
T1

Terminare T1

suspendat

in executie

suspendat

in executie

ready

in executie

v
T2

activare T1
T1

suspendat

cadru
(frame)

Terminare T1

in executie

suspendat

ready

in executie

v
in executie
T2

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

( I d , t release , t exec , p I d ,t deadline )


cu t exec < t deadline t release ,
p perioada de activare a proceselor periodice
Id identificator task

interval in care procesul


trebuie sa se execute
(occurance interval, feasible interval)

Di

(deadline relativ)

procesi
ri
activare
(release)

timp
di
termen limita
(deadline absolut)

ei
(executie)

li
rezerva
(laxity, slack)

Taski
intarziere
(tardeness)
Taski

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
ei [ei , ei + ] >> se va considera in analiza ei +

Obs:
In aplicatiile de timp real exista multe procese periodice
Aplicaii on-line: Tdeadline < ; aplicaii off-line: Tdeadline
Tipuri restrictii de timp
hard (ferme)
soft (mai putin severe, optionale)
Functia de utilitate
Indica daca este utila executia procesului chiar si dupa expirarea termenului limita
utilitate

intarziere
0

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 ei + , 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

S-ar putea să vă placă și