Sunteți pe pagina 1din 21

1. Functiile automatizarii proceselor: enumerare, caracterizare.

In contextul conducerii automate pot fi identificate patru categorii de


sisteme automate care permit realizarea urmatoarelor functii:
- monitorizarea automata
- reglarea automata
- protectia automata
- optimizare automata
Monitorizarea automata – conceptul e legat nemijlocit de
cunoasterea starii momentane si a evolutiei parametrilor aferenti unui
proces.

-cu structura total distribuita-exista un instrument de vizualizare pt


fiecare parametri.
-cu structura total concentrata-exista un IV pt toti parametri
- cu structura partial distribuita-exista cate un IV pt fiecare grup de
parametri
Reglarea automata – presupune atingerea si mentinerea unei stari
de referinta pentru un proces fara interventia nemijlocita a factorului uman
Exista doua tipuri de sisteme de reglare automata SRA:
- SRA cu structura conventionala –mentinerea starii de refenta pentru
un singur parametru (SRA abatere, SRA perturbatie)
- SRA cu structura evoluata – au asociate obiective specifice intregului
proces
Protectia automata –Sitem. de protectie aut SPA asigura realizarea
obiectivelor legate de securitate. Se au in vedere urm. factori: factorul
uman,a mediului ambiant si a utilajelor implicate
Doua categorii de functii:
-de informare – sistem automate de avertizare SAA;avertizare de
pozitie, prevenire sau de avarie
-de interventie – sisteme automate de blocare si comanda SAB si SAC
Optimizare automata
Conducerea optimala implica, de regula, aplicarea catre proces a acelor
comenzi care extremizeaza o functie de performanta. Se situeaza de regula
la nivel superior reglarii conventionale.

2. Trasaturi specifice ale SOTR: enumerare, caracterizare.


Categorii de resurse software implicate in executia unei ATR:
a. programe de sistem;
b. programe aplicative;
c. programe utilitare sau de serviciu.
Programele de sistem(software de baza), asigura urmatoarele functii
importante:
d. servicii comune pt programe aplicative;
e. planificarea si coordonarea programelor aplicative.
Categorii de servicii comune:
f. alocarea UCP;
g. alocarea memoriei;
h. alocarea echipamentelor I-E;
i. tratarea intreruperilor.
Programele aplicative – realizeaza prelucrarile dorite de utilizator, se
incadreaza in clasa ATR(aplicatii de conducere in timp real sau aplicatii
tranzactionale in timp real).
Programele utilitare – cele care asista programatorul la dezvoltarea si
implementarea programelor aplicative(mediile de dezvoltare, diagnosticarea
si depanarea, generatoarele de cod si de rapoarte)
Specificul SOTR rezulta din faptul ca exista programe care sa fie executate
conditionat de unul din factorii timp si/sau evenimente externe.
Functii importante SO: gestionarea resurselor sistemului de calcul, realizarea
unei interfete de dialog cu utilizatorul.
Principala componenta a SOTR este planificatorul care asigura secventierea
corecta aevolutiei taskurilor.
Niveluri de planificare a executiei taskurilor:
j. pe conditii de timp;
k. pe conditii de evenimente.
SOTRM=SOTR multitasking – asigura o executie paralela sau pseudoparalela
a taskurilor.
Pe parcursul evolutiei, taskurile pot activa proceduri sau rutine dedicate,
comune sau reentrante.
Functia de gestiune a SOTRM-tipuri de gestiune:
l. gestionarea timpului UCP: cand taskurile existente la un moment
dat in memoria interna isi disputa dreptul de a utiliza UCP,
planificatorul le dispune pe cele apte de a prelua controlul intr-o
coada de asteptare organizata in functie de prioritati sau in
ordinea sosirii;
m. gestionarea spatiului de alocare a memoriei interne –
strategii de alocare a memoriei: incarcarea in zone fixe ale
memoriei fixe, strategia de suprapunere si inlantuire, strategia
planificatorului si strategia coexistentei;
n. gestionarea echipamentelor periferice de I-E; pentru gestionarea
operatiilor de I-E, SO pun la dispozitie draivere si rutine de I-E..

3. Obiectivele si principiile ingineriei programarii: enumerare,


caracterizare.
Obiectivele ingineriei programarii:
- de adaptabilitate-dezvoltarea de facilitati pentru efectuarea intr-o
maniera strict controlata de modificari (adaug. de noi inf.,corectare erori
prg., ameliorare perf. sist)
- de eficienta-minimizarea necesar de resurse pt exec. programelor, a
efortului si a timpului necesar pt dezvoltarea programelor.
- de fiabilitate-dezvoltarea de aptitudini de indeplinire a sarcinilor, un
interval de timp prestabilit in conditii de lucru specificate.
- de perceptibilitate-aptitudinea programelor de a fi usor intelese si
urmarite de catre un alt utilizator, sau chiar autor la un timp dupa finalizare
Principiile IPTR:
- principiul modularitatii-maniera in care trebuie structurat un
program pentru a atinge mai usor un anumit scop
- principiul abstractizarii-identificarea proprietatilor unor entitati
aparent diferite si omiterea unor detalii specifice neesentiale.
- principiul localizarii-dispunerea in vecinatatea fizica a elementelor
cu legaturi intre ele cum ar fi:subrutine, inreg. fizice si logice, pagini de
memorie
- principiul uniformitatii-asigurarea consistentei (ex.:respectarea
notatiilor)
- principiul completitudinii-includerea in conceptele abstracte a
tuturor elementelor semnificative
- principiul confirmabilitatii-afirma necesitatea formularii explicite a
tuturor informatiilor legate de posibilitatea verificarii corectitudinii
programelor.
- principiul acoperirii-afirmarea aspectelor esentiale in favoarea celor
neesentiale, care pot fi transparente pentru utilizator.

4. Starile si tranzitiile taskurilor: definitie task, tipuri taskuri


– abordarea 1-.
In contextul PTR unitatea functionala elementara de program,
independenta din punct de vedere logic se numeste task.
Tipuri de taskuri:
In structura unei aplicatii in timp real sunt incluse in mod obisnuit:
- taskuri interactive: pe parcursul evolutiei lor utilizeaza resurse
comune si fac schimburi de informatie
- taskuri disjuncte: nu interactioneaza, nu utilizeaza resurse comune si
nu fac schimb de informatii
Starile unui task specifice primei abordari:
- necreat: task necunoscut de executivul de timp real
- creat: task cunoscut de executiv, are atribuit un identificator si are
alocat zone pentru date, cod, stiva
- gata de executie: daca indeplineste toate conditiile pentru preluarea
controlului UCP
- executie: Daca rularea sa a inceput si e apt pentru rulare:
- exec fizica: detine control UCP
- exec logica: nu detine control UCP
- blocat - daca a fost in executie fizica si a devenit inapt pentru rulare
datorita aparitiei unei conditii de blocare:
- asteptare un masaj
- asteptare un eveniment
- asteptarea expirarii uni timp
- asteptarea disponibilitatii unei resurse critice
Tranzitiile intre stari sunt determinate de directive sau primitive care
pot fi lansate de catre taskul aflat in executie sau de executivul de timp real:
1 directiva Creare – asigura tranzitia NECREAT-CREAT
2 directiva Activare – asig tranzitia CREAT-GATA DE EXECUTIE
2 directiva Blocare – asig tranzitia EXECUTIE-BLOCAT
3 directiva Dispecerizare – tranz-GATA DE EXECUTIE- EXECUTIE
FIZICA
-EXECUTIE FIZICA- EXECUTIE LOGICA
-EXECUTIE LOGICA- EXECUTIE FIZICA
4 directiva Deblocare – asig tranzitia BLOCARE- EXECUTIE LOGICA
5 directiva Dezactivare – asig tranzitia- GATA DE EXECUTIE- CREAT
-BLOCAT- CREAT
-EXECUTIE- CREAT
6 directiva Suprimare – asig tranzitia – CREAT-NECREAT
- GATA DE EXECUTIE- NECREAT
- BLOCAT-NECREAT
- EXECUTIE-NECREAT

5. Starile si tranzitiile taskurilor: definitie task, tipuri taskuri


– abordarea 2-.
In contextul PTR unitatea functionala elementara de program,
independenta din punct de vedere logic se numeste task.
Tipuri de taskuri:
In structura unei aplicatii in timp real sunt incluse in mod obisnuit:
- taskuri interactive: pe parcursul evolutiei lor utilizeaza resurse
comune si fac schimburi de informatie
- taskuri disjuncte: nu interactioneaza, nu utilizeaza resurse comune si
nu fac schimb de informatii
In acesta abordare un task se poate gasi in una din urmatoarele stari:
- neinstalat
- inactiv
- activ cu substarile: - executie
-gata de executie
- blocat
Exista doua tipuri de directive:
- care nu declara un eveniment semnificativ: dupa exec lor CPU
returnat task intrerupt
- care declara un eveniment semnificativ: dupa exec lor CPU
returnat task aflat pe prima pozitie in coada de asteptare
Directive:
- Instalare -tranz NEINSTALAT –INACTIV
- Stergere -tranz INACTIV-NEINSTALAT
- Start -tranz INACTIV-ACTIV
- Preluare -tranz GATA DE EXECUTIE- EXECUTIE
- Asteptare -tranz GATA DE EXECUTIE-BLOCAT
-tranz EXECUTIE-BLOCAT
- Stop fortat -tranz GATA DE EXECUTIE-INACTIV
-tranz BLOCAT-INACTIV
- Eliberare -tranz EXECUTIE- GATA DE EXECUTIE
- Stop normal -tranz EXECUTIE-INACTIV
- Continuare -tranz BLOCAT- GATA DE EXECUTIE

6. Dispecerizarea taskurilor: definitie, tipuri, disp. prin rotatie


(fara figura).
Dispecesrizarea taskurilor = ansamblul de actiuni prin care in cadrul unei
sesiuni de comutare este ales taskul care urmeaza a fi rulat. La baza acestui
proces – realizat de dispecer- sta un algoritm adoptat din faza de proiectare
a executivului de timp real
Tipuri uzuale de dispecerizare :
- dispecerizare prin rotatie
- dispecerizare prin prioritizare
- dispecerizare prin prioritizare si prin rotatie
Dispecerizarea prin rotatie presupune existenta unei Liste de Asteptare la
Procesor LAP in care se inscriu elementele de identificare (indexurile) ale
tuturor taskurilor rulabile (in starea GATA DE EXECUTIE si EXECUTIE)
Dispecerul va alege intotdeauna pentru rulare taskul aflat pe prima
pozitie din LAP. Taskul aflat in rulare se considera a fi ultimul in pozitia LAP,
iar taskurile devenite rulabile se insereaza inaintea primei pozitii din lista.
Cand un task aflat in rulare este supus unui proces de comutare fara
ca acest lucru sa fie provocat de dezactivare sau suprimare, in fata sa
stau doua alternative:
- daca indeplineste conditiile de rulare, i se asigura ramanerea normala
in LAP si inscrierea indexului pe penultima pozitie din lista
- daca nu mai indeplineste conditiile de rulare, acesta se blocheaza si
este eliminat dis LAP si inscris intr-o lista a taskurilor blocate.
Daca taskul aflat in rulare este supus unui proces de comutare datorat
dezactivarii sau suprimarii, atunci taskul e scos din LAP si trecut in starea
CERAT sau NECREAT

7. Dispecerizarea taskurilor: definitie, tipuri, disp. prin


prioritizare (fara figura).
Dispecerizarea taskurilor = ansamblul de actiuni prin care in cadrul unei
sesiuni de comutare este ales taskul care urmeaza a fi rulat. La baza acestui
proces – realizat de dispecer- sta un algoritm adoptat din faza de proiectare
a executivului de timp real

Tipuri uzuale de dispecerizare :


- dispecerizare prin rotatie
- dispecerizare prin prioritizare
- dispecerizare prin prioritizare si prin rotatie
Dispecerizarea prin prioritizare presupune alocarea pentru fiecare
task la crearea sa a unei prioritati. Toate taskurile rulabile sunt incluse intr-o
LAP organizata insa pe baza de prioritati. In fruntea listei sta taskul cu cea
mai mare prioritate .
In cadrul sesiunii de comunicare dispecerul introduce in rulare taskul cu
cea mai puternica prioritate LAP.
Daca in intervalul de timp care provoaca procesul de comutare nu este
introdus in LAP un task cu prioritate superioara celui rulat, atunci UCP va fi
alocat pentru inca o sesiune de rulare a acestuia.
Introducerea in LAP a unui task poate fi consecinta unei intreruperi
fizice (care va putea fi chiar cea care provoaca procesul de comutare) sau a
unei actiuni de autoblocare a taskului aflat in rulare.

8. Conflicte potentiale in sisteme miltitasking. Tipuri de


resurse, definitie excludere mutuala, recomndari Tanenbaumm.
Pentru evitarea situatiilor conflictuale si pentru ca taskurile sa-si realizeze
obiectivele, au fost formalizate asa numitele operatii multitasking:
excluderea mutuala, sincronizarea si comunicarea.
Resursa desemneaza orice element necesar unui task pentru a rula. Pot fi:
- materiale
- procesorul
- memoria interna si externa
- dispozitive intrare/iesire
- ceas de timp real
- dispozitive speciale
- logice
- subrutinele
- masivele de date
- fisierele
- variabilele
O alta clasificare a resurselor
- locale – accesate de catre un singur task
- comune – sunt accesate de mai multe taskuri.Acestea pot fi:
- critice:la un moment dat poate fi accesata de un singur
task
- partajabile:admite asupra ei la un momment dat n sesiuni
de lucru
- reentrante: admite oricate sesiuni de lucru la un moment
dat
Excludere mutuala = excluderea de catre un task aflat intr-o sesiune
critica referitoare la o resursa a accesului altor taskuri de a accesa propriile
sectiuni critice referitoare la aceiasi resursa
Excludere mutuala =Orice sectiune critica poate fi executata la un
moment dat de catre un singur task
Recomandari Tanenbaum:
a) Orice sectiune critica poate fi executata la un moment dat de catre
un singur task.
b) Nu se poate face nici o ipoteza cu privire la viteza relativa si
frecventa de executie a taskurilor
c) Orice task are dreptul sa acceseze propria sectiune critica referitoare
la o anumita resursa dupa un interval finit de timp
d) Orice task trebuie sa evacueze o sectiune critica dupa interval finit
de timp.
e) Taskurile nu se pot bloca in interiorul propriilor sectiuni critice

9. Excluderea mutuala: definitie, implementare cu semafoare.


Se defineste ca fiind excluderea de catre un task aflat intr-o sectiune
critica referitoare la o resursa a accesului altor taskuri de a accesa propriile
sectiuni critice referitoare la aceiasi resursa.
Notiunea de “semafor” a fost introdusa in 1965 de un matematician olandez,
care il defineste ca fiind un dublet format dintr-o variabila de tip intreg I, si o
coada de asteptare C, adica
S=(I,C)

Asupra semafoarelor pot fi efectuate operatii de tip P(a trece) si V(a elibera),
initiale care deriva din initialele acestor cuvinte olandeze. Functiile sunt
indivizibile si se numesc primitive. Coada de asteptare este gestionata dupa
principiul FIFO sau dupa prioritati.
Primitiva P(S) presupune efectuarea urmatorelor operatii:
1. IßI-1
2. daca I > 0, functia se incheie si taskul isi continua executia
3. daca I<0, taskul iese din randul taskurilor apelabile, se blocheaza
si intra in coada de asteptare

NU DA

Executia primitivei P(S)


Primitiva V(S), presupune realizarea urmatorilor pasi:
1. IßI+1
2. daca I < 0 se deblocheaza taskul de pe prima pozitie in coada de
asteptare la semafor, se inscrie in randul taskurilor rulabile, se face apel
la dispecer si apoi continua executia taskului apelant
3. daca I>0, taskul isi continua executia

NU DA

Executia primitivei V(S)

Excluderea cu semafoare presupune utilizarea unui semafor binar care se


initializeaza cu valoarea 1. In fiecare task care trebuie sa se excluda mutual
inainte de intrarea in sectiunea critica se executa o directiva P iar dupa
iesirea din sectiune o directiva V

10. Excluderea mutuala: definitie, implementare cu cutii


postale.
Se defineste ca fiind excluderea de catre un task aflat intr-o sectiune
critica referitoare la o resursa a accesului altor taskuri de a accesa propriile
sectiuni critice referitoare la aceiasi resursa.
O functie de depunere (PUT) a unui mesaj intr-o anumita CP trebuie sa
contina un pointer catre variabila al carui continut se depune, iar functia de
extragere (GET) un pointer la variabila in care se depune mesajul extras.
Cutiile postale trebuie astfel gestionate incat sa se produca blocarea
taskurilor pe operatii de depunere cand CP e plina sau operatii de extragere
atunci cand CP e goala.
Excluderea mutuala cu cutii postale presupune utilizarea unei singure CP
(CPEX) in care primul task care se initializeaza depune un mesaj simbolic
MESEX. Inaitea de intrarea in sectiunea critica fiecare task care trebuie sa se
excluda mutual va extrage MESEX din CPEX, iar dupa iesirea din sectiunea
critica il va redepune.
Rezulta ca in intervalul de timp in care un task se afla in sectiunea sa
critica referitoare la o anumita resursa, CPEX e vida. In aceste conditii orice
alt task ce va dori sa acceada la propria sectiune critica referitoare la aceiasi
resursa, se va bloca la executia functiei de preluare a mesajului simbolic.

11. Excluderea mutuala: definitie, implementare cu variabile


de tip eveniment.
Se defineste ca fiind excluderea de catre un task aflat intr-o sectiune
critica referitoare la o resursa a accesului altor taskuri de a accesa propriile
sectiuni critice referitoare la aceiasi resursa.
O variabila de tip eveniment este o variabila speciala asupra careia pot
actiona trei tipuri de primitive: INSCRIE, STERGE si ASTEAPTA.
Se considera E o variabila de tip eveniment si E Î {ADEVARAT, FALS},
INSCRIE (E)ÞE= ADEVARAT
STERGE(E)==>E=FALS
ASTEAPTA(E)==>Blocheaza taskul daca E=FALS
Continua executia daca E=ADEVARAT
Excluderea mutuala cu variabile de tip eveniment se bazeaza pe utilizarea
unei singure variabile notata de obicei EVEX care se initializeaza cu valoarea
ADEVARAT. In fiecare task care trebuie sa se excluda mutual, inainte de
intrarea in sectiunea critica se executa o secventa de directive
ASTEAPTA(EVEX), STERGE(EVEX) si dupa iesire, INSCRIE(EVEX).
La iesire, se va inscrie EVEX=ADEVARAT si primul task blocat la variabila
EVEX va fi deblocat si va putea patrunde de asemenea in sectiunea critica.
12. Sincronizarea taskurilor: definitie, implementare cu
semafoare.
Def: repr. Procesul de punere a unui task in relatie cu alt task, cu timpul sau
cu un eveniment extern. Doua taskuri sunt sincronizate daca se pot stabili
relatii predictibile intre anumite momente ale desfasurarii lor. Cu alte
cuvinte, sincronizarea este o coordonare in timp, o corelare.
Sincronizarea se poate face prin doua metode:
- functie de producerea unui eveniment extern taskului;
- functie de realizarea unei conditii de timp.
Sincronizarea cu timpul poate fi tratata ca o sincronizare cu evenimente
externe daca se considera impulsurile ceasului de timp real ca fiind astfel de
evenimente.pentru realizarea sincronizarii sunt necesare functii specifice de
tratare, si anume:
- wait – asteptare pana la producerea evenimentului;
- signal – anuntare ca evenimentul s-a produs

13. Sincronizarea taskurilor: definitie, implementare cu


variabile de tip eveniment.
Variabilele de tip eveniment (VTE) sunt adecvate sincronizarii cu
evenimente externe. In acest caz punctele de sincronizare sunt asociate
unor evenimente externe, a caror producere se inscriu in VTE.
Sincronizarea cu VTE va fi exemplificata pentru un sistem de trei taskuri
T1,T2,T3 cu urmatoarea functionalitate:
- T1 se sincronizeaza cu evenimentul extern EVEX1
- T2 se sincronizeaza cu evenimentul extern EVEX2
- T3 se sincronizeaza cu ansamblul celor doua evenimente

14. Sincronizarea taskurilor: definitie, implementare cu cutii


postale.
Cutiile postale si mesajele pot fi utilizate atat pentru implementarea
sincronizarii cu timpul, cat si cu evenimentele externe
In cazul sincronizarii cu timpul se utilizeaza de regula asteptarea
temporizata la o cutie postala vida.
Se considera taskurile T1 si T2 (sincro cu timpul, T2 se produce in
interiorul cuantei de timp Δt).
T1: -asteapta un interval Δt (int de sincro) la CP0 (vida_
-la expirarea intervalului transmite in CP1 masaj de sincronizare
MES_SYNC
-asteapta si preia din CP2 mesaj de confirmare MES_CONF
-se revine la pas 1
T2: -asteapta si preia in CP1 mesaj de sincro MES_SYNCRO
-transmite in CP2 mesaj de confirmare MES_CONF
-executa procedura P_T2

15. Comunicarea- caracterizare comunicare prin conducte,


implementare cu semafoare (fara figura).
Procesarea datelor in regim concurent multitasking implica pe langa
utilizarea de resurse in comun si schimbul de informatie intre taskuri
concretizat in operatia de comunicare.
Taskurile transfera uzual informatia sub forma de mesaje care pot fi:
- cu continut variabil (informationale)
- fix (mesaje simbolice)
Comunicarea se implementeaza prin mecanismul producator-consumator-
>:
- taskuri de tip producator
- taskuri de tip consumator
Pentru facilitarea comunicarii sist de operare trebuie sa puna la dispozitie
instrumente specifice, unul din ele fiind conducta (pipe).
O conducta= un tampon unidirectional gestionat conform principiului
FIFO, in care un task producator depune mesaje pe care le preia un task
consumator.
In situatia in care doua taskuri au atat rol de producator cat si de
consumator, vor trebui utilizate doua conducte. Mecanismul de comunicare
trebuie sa asigure blocarea taskului producator cand va scrie si conducta e
plina si de asemenea cand taskul producator vrea sa citeasca (preia) mesaj
din conducta goala.
In mod uzual semafoarele sunt utilizate pentru gestionarea operatiilor
de inscriere, respectiv citire a mesajelor din conducte

16. Comunicarea- caracterizare comunicare prin conducte,


implementare cu cutii postale (fara figura).
Procesarea datelor in regim concurent multitasking implica pe langa
utilizarea de resurse in comun si schimbul de informatie intre taskuri
concretizat in operatia de comunicare.
Taskurile transfera uzual informatia sub forma de mesaje care pot fi:
- cu continut variabil (informationale)
- fix (mesaje simbolice)
Comunicarea se implementeaza prin mecanismul producator-consumator-
>:
- taskuri de tip producator
- taskuri de tip consumator
Pentru facilitarea comunicarii sist de operare trebuie sa puna la dispozitie
instrumente specifice, unul din ele fiind conducta (pipe).
O conducta= un tampon unidirectional gestionat conform principiului
FIFO, in care un task producator depune mesaje pe care le preia un task
consumator.
In situatia in care doua taskuri au atat rol de producator cat si de
consumator, vor trebui utilizate doua conducte. Mecanismul de comunicare
trebuie sa asigure blocarea taskului producator cand va scrie si conducta e
plina si de asemenea cand taskul consumator vrea sa citeasca (preia) mesaj
din conducta goala.
Mesajele de trecere si cutiile postale reprezinta mijloace destinate
asigurarii comunicarii intre taskuri. Mesajele se trimit direct de la taskul
emitator catre cel receptor in timp ce cutiile postale reprezinta facilitati de
comunicare care pot fi utilizate de catre toate taskurile aferenta aplicatiei de
timp real
Trasmiterea unui mesaj de trecere este posibila daca taskul receptor este
gata sa-l primeasca. Receptorul se va bloca in asteptarea mesajului daca
taskul emitator nu e gata sa-l trimita.
In ceea ce priveste mesaju de confirmare, Taskul1 se va bloca pana la
depunerea acestuia de Taskul2 in cutia postala CP1.
17. Limbaje de programare in timp real LPTR: cerinte.
Limbajele de programare in timp real (LPTR) trebuie sa prezinta
caracteristici si sa ofere facilitati care sa raspunda in primul rand
problemelor ridicate de executia paralela sau pseudoparalela a taskurilor.
Cerintele unui LPTR:
- existenta de primitive (principala cerinta)
- fiabilitate:evitare erori si detectare automata in situatia cand nu pot fi
evitate
- eficienta: efort cat mai redus de dezvoltare si grad de utilizare cat mai
ridicat.
- flexibilitate: toate operatiile aferente apl.TR sa fie exprimate prin mijloace
ale limbajului
- claritate: existenta resurse pt elaborare, descriere, mod. prin mijloace ale
limbajului
- simplitate: reducerea posibilitatilor erorilor, volume mici dar complexe,
prg eficiente
- portabilitatei: independenta codului executabil fata de tipul masinii tinta

18. LPTR – caracteristici


Caracteristicile unui LPTR:
- structurare: se au in vedere aspecte legate de tipizare, abstractizare si
vizibilitate care se refera atat la date cat si la cod
- tipizare: descrierea datelor si operatiilor intr-o terminologie orientata
spre aplicatie si mai putin catre masina
- abstractizare: conferirea caracterului de generalitate pt operatii si
functii ale limbajului
- vizibilitate: precizeaza zonele de prg in care o entitate identificabila
printr-un nume poate fi vizibila
Structurile de date pot fi simple(real,intreg), compuse(siruri, matrici),
sau dinamice(pot fi create si distruse in timpul executiei).
Structurile de cod: instructiune, bloc sau procedura
- concurenta: are doua laturi: paralelismul si interactiunea
Programarea concurenta este acel stil de programare care permite
implementarea prelucrarii paralele sau pseudoparalele a datelor.In aceasta
programare taskul se bucura de proprietatile: indivizibilitate, secventialitate,
asincronism si dinamism
Excluderea mutuala interzice executia paralela a sectiunilor critice
referitoare la aceeasi resursa.
Sincronizarea taskurilor: coordonare a executiei in raport cu timpul
sau evenimentele externe
- sincronizare implicita
- sincronizare explicita
- sincronizare cu timpul
Comunicarea intre taskuri:
- prin transfer efectiv prin canale de comunicatie
- prin partajare printr-o zona comuna de memorie
- programare la nivel fizic: este aplicabila in primul rand pt realizarea
operatiilor I/E
- realizarea lejera a interactivitatii intre taskuri
- diversitatea perifericelor
- scaderea timpului de asteptare pt realizarea operatiilor I/E
- tratarea exceptiilor:Exceptiile reprezinta situatiile anormale aparute in
evolutia unui program.Mecanismele de tratarea exceptiilor trebuie sa
preezinte urmatoarele caract.:
- simplitate in utilizare
- sa nu incarce procedura de tratare decat la aparitia exceptiei
- sa trateze unitar toate tipurile de exceptii
- compilare separata:are in vedere compilarea separata a fiecarui modul
(modularizarea prg)
- se permite dezvoltarea de aplicatii complexe pe sisteme cu resurse
reduse
- la modificari se vor compila doar modulele la care s-a intervenit
- existenta unitatilor generice:Unitatile generice reprezinta matrite
pentru multimi de unitati de program. Din acestea se obtin unitatile de
program propriu-zise prin generare de exemplu (instantiere)

Intrebari fulger

1.Care sunt starile taskurilor in context RTK?


In RTK un task se poate gasi in urmatoarele stari:
1 CURRENT
2 READY
3 SUSPENDED
4 DELAYING
5 BLOCKED
6 TIMED
2. Cand se gaseste un task in starea SUSPENDED?
Un task se gaseste in aceasta stare atunci cand este sub actiunea
functiei RTKernel: RTKSuspend.

3. Cand se gaseste un task in starea TIMED?


Un task se gasesete in aceasta stare in cazul punerii in asteptare un
timp specificat pentru producerea unui eveniment. Starea expira cand taskul
devine READY sau timpul specificat a expirat.

4. Cand se gaseste un task in starea CURRENT?


Orice task in executie se gaseste in aceasta stare. Un singur task in
RTKernel este executat la un moment dat.

5. Cand se gaseste un task in starea READY?


Toate taskurile pregatite pentru executie sunt in aceasta stare. Toate
taskurile i READY au aceeasi sau prioritate mai mica decat cel in executie.

6. Cand se gaseste un task in starea DELAYING?


Taskul este blocat de el insusi pentru un timp determinat.

6.1. Cand se gaseste un task in starea BLOCKED?


Un task este in aceasta stare atunci cand nu poate rula fiind in
asteptarea unui evenimet (ex. semnal semafor sau un mesaj de la o cutie
postala). Poate fi pus in READY de un alt task sau de intrerupere handler.

7. Functia RTK pentru realizarea operatiei de tip P a unui semafor.(P-a trece)


RTKWait(S)

8. Functia RTK pentru realizarea operatiei de tip V a unui semafor.(V-a


elibera)
RTKSignal(S)

9. Functia RTK de depunere a unui mesaj intr-o cutie postala?


void RTKPut(Mailbox Box, void*Data)

10. Functia RTK de extragere a unui mesaj intr-o cutie postala?


void RTKGet(Mailbox Box, void*Data)

11. Functia RTK de trimitere a unui mesaj?


void RTKSend(TaskHandle Receiver, void*Data)

12. Functia RTK de receptie a unui mesaj?


void RTKReceive(void*Data, unsigned DataLen)

13. Definiti un sitem de taskuri.


Un sistem de taskuri Sτ este definit ca un dublet
ST= (τ,< ) in care τ = { T1, T2,...Tn}este o multime de taskuri iar
< reprezinta o relatie de ordine totala (precedenta) definita pe multimea τ

14. Ce este un graf de precedenta?


Este un graf orientat care are ca noduri elementele multimii τ, iar arcele
sunt asociate relatiei de dependenta.

15. Cand un sistem de taskuri este determinat?


Daca prin evolutia sa conduce la un rezultat unic, indiferent de ordinea
de executie a taskurilor sau de vitezele acestora, in conditiile respectarii
unor relatii de precedenta definite.

16. Care sunt operatiile aferente coordonarii unui sistem de taskuri?


A- determinarea taskurilor
B- blocarea taskurilor
C- excluderea mutuala a taskurilor
D- Sincronizarea taskurilor

17. Care sunt nivelurile de planificare a activitatilor intr-un SOTR?


- planificarea pe conditii de timp – time driven
- planificarea pe conditii de evenimente – event driven

18. Care sunt functiile automatizarii proceselor?


In contextul conducerii automate pot fi identificate patru categorii de
sisteme automate care permit realizarea urmatoarelor functii:
- monitorizarea automata
- reglare automata
- protectia automata
- optimizare automata
19. Care sunt tipurile de aplicatii in timp real?
- aplicatii de conducere
- aplicatii tranzactionale

20. Enumerati tipurile de gestionare a memoriei de catre un SOTR?


Pot fi identificate patru strategii de alocare a memoriei:
- strategia incarcarii in zone fixe ale memoriei
- strategia overlay (suprapunere si inlantuire)
- strategia planificatorului
- strategia coexistentei

21. Care sunt obiectivele ingineriei programarii?


- de adaptabilitate
- de eficienta
- de fiabilitate
- de perceptibilitate

22. Care sunt principiile IPTR?


- principiul modularitatii
- principiul abstractizarii
- principiul localizarii
- principiul uniformitatii
- principiul completitudinii
- principiul confirmabilitatii
- principiul acoperirii

23. Enumerati etapele din existenta unui program.


- analiza cerintelor
- elaborarea specificatiilor
- proiectarea sistemului de programe
- codificarea in program
- instalarea si testarea programelor
- intretinerea programelor

24. Ce este un task?


In contextul PTR unitatea functionala elementara de program,
independenta din punct de vedere logic se numeste task.
25. Care sunt starile unui task specifice primei abordari?
- necreat
- creat
- gata de executie
- executie
- blocat

26. Care sunt starile unui task specifice celei de-a doua abordari?
- neinstalat
- inactiv
- activ cu starile – executie
- gata de executie
- blocat

27. Definiti notiunea de dispecerizare.


Dispecerizare = ansamblul de actiuni prin care in cadrul unei sesiuni de
comutare este ales taskul care urmeaza a fi rulat . La baza acestui proces –
realizat de dispecer – sta un algoritm adoptat din faza de proiectare a
executivului de timp real.

28. Enumerati tipurile de dispecerizare.


- dispecerizarea prin rotatie
- dispecerizare prin prioritate
- dispecerizare prin prioritate si rotatie

29. Operatiile fundamentale multitasking:


- excluderea mutuala
- sincronizarea
- comunicarea

30. Definiti excluderea mutuala.


= Excluderea de catre un task aflat intr-o sectiune critica referitoare la
o resursa a accesului altor taskuri de a accesa propriile sectiuni critice
referitoare la aceeasi resursa

Excl. mutuala = Orice sectiune critica poate fi executata la un moment


dat de catre un singur task
31. Cand doua taskuri se considera sincronizate?
Doua taskuri se considera sincronizate daca se pot stabili relatii
predictibile intre anumite momente ale desfasurarii lor.

32. Care este diferenta dintre o cutie postala si un mesaj?


Mesajele se trimit direct de la taskul emitator catre cel receptor, in timp
ce cutiile postale reprezinta facilitati de comunicare care pot fi utilizate de
catre toate taskurile aferente aplicatiei de timp real.

33. Care sunt cerintele unui LPTR?


- existenta de primitive (principala cerinta)
- fiabilitate
- eficienta
- flexibilitate
- claritate
- simplitate
- portabilitate

34. Care sunt caracteristicile unui LPTR?


- structurare
- concurenta
- programare la nivel fizic
- tratarea exceptiilor
- compilare separata
- existenta unitatilor generice

35. Ce trebuie sa sigure un SGBD pentru o baza de date de proces?


Un SGBD trebuie sa:
a - procesare in timp real
b – securitatea datelor
c – integritatea datelor
d – independenta datelor

la fulger a dat 1,7,8,17,18,19,21,22,24,25,26,28,29,30,34,35,si inca doua


care e fct rtk cu intarziere 2 sec si op pt prel primara a datelor din proces

problema : cu sist numeric de mas debitului, cu cst patratica si cscan liniara


se cere: dom util al trad, rezolutia Can, ec de calcul al blocului BC

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