8
APD C1+2 3.2 Executivul de timp real RTK - Dezvoltat de o firma germana OnTimeCompany Caracteristici: -necesita spatii modeste de memorie(16kb cod, 6 kb date) -poate opera cu un nr. teoretic nelimitat de task-uri. Task-urilor li se pot asocia prioritati care reprez. un nr. int reg intre 1 si 64(p1<p2<...<p64). -aceeasi prioritate poate fi alocata mai multor task-uri -timp de comutare a starii unui task: 6µs. -in orice moment de timp comutarile se pot realiza -programatorul are la dispozitie sema., CP si mesaje pt implem. op. multitask. -programatorul are la dispozitie drivere specializate pt ecran, tastatura, port serial, port paralel si retea. Task(in context RTK ) reprez. o fct. C/C++ sau o  procedura Pascal fara parmaetri si cu stiva propr ie. Structura RTK: Fct. C la care se adauga fct RTK. Task-ul(in context RTK) se poate gasi in una din starile: *Current; *Ready; * Suspend; *Delaying; *Blocked; *Timed Stari: 1)St. Current: corespunde starii de executie. Un task e in starea Current daca in acel moment este rulat/executat. In st. Current se ajunge numai din st. Ready. 2)St. Ready.  Aici se gasesc toate task-urile care in deplinesc toate conditiile pt rulare 3)St. Suspended. Aici se gasesc task-uri care au fost oprite explicit printr-o fct. RTKSuspend ele putand fi reactivate oricand prin fct. RTKResume. 4)St. Delaying. un task in aceasta stare este un task intarziat acesta cedand controlul CPU in urma fct. RTKDelay. Dupa expirarea timpului are loc tranzitia din starea Delaying in starea Ready. 5)St. Blocked. un task este in aceasta stare atunci cand este blo cat in asteptarea unui even. extern (semnal de la un sema., un msg. dintr-o CP, msg de trecere etc) Dpdv al timpului asteptarea este indefinita. Trecerea din st. Blocked in st. Ready se face numai daca evenimentul s-a produs. Functie de natura even la care se ast eapta exista mai multe substari: -Blocked Wait: legat de un sema; -Bl ocked Put : leg at de depunerea unui msg in CP -Blocked Get: preluarea unui msg din CP; Blocked Send: legat de trasferul unui mesaj intre task-uri; -Blocked Receive:legat de receptionarea unui mesaj. 6)St. Timed este apropiata de st. Blocked diferenta fiindca se specifica si un interval de timp in care sa aiba loc blocarea(asteptarea unui eveniment este temporizata). Iesirea din aceasta stare se face fie la pro ducerea even. fie la expirarea intervalului de timp alocat. Substari: *Timed Wait; Timed Send; Timed Put; Timed Receive; Timed Get; Cu exceptia st. Current pt celelalte stari se creaza cozi de task -uri. Clase de functii: 3.2.3 Functii de initializare Toate antetele prototipurilor fct. se gasesc in fisierul "rtKernel.h", care trebuie inclus in prog sursa printr-o d irectiva de includere: # include "rtKernel.h" Pt driverele co nsolei se include fisierul antet “rtkbeybrd.h”:#include “rtkeybrd.h” Program RTK: contine fct. C/C++ cu prefixul RTK. Pt exe. va trebui construit un  proiect C care include codul sursa si b iblioteca “rtKernel.lib”. Fct. se impart in urmatoarele categorii: -fct de initializare a nu cleului; fct pt administrarea task urilor; -fct pt. gestionarea timpului ; -fct pt gestionarea semafoarelor -fct. pt gestionarea CP; - fct pt gestionarea msg. Fct de init. a nucleului RTKernelInit In urma exe f. RTKerneInit sunt reaizate urm. op: -initializarea struct. interne de date -convertirea fct Main in task ul Main si alocarea prioritatii specificate -crearea task-ului Idle si alocarea pentru acesta a prioritatii 0 -initializarea ceasului intern cu val 0. Task Idle ia controlul UCP atunci cand nici un task nu e in st. Current Fct. pt init. driver de consola RTKeybrdInit: void RTKeybrdInit(vo id); Se poate folosi si forma condensata RTKernelInit(3). Iesirea din RTKern el se face cu fct. C exit(0); 3.2.4 Fct. pt administrarea task-urilor.  Se impart in: -fct. pt crearea, terminarea, activarea si dezactivarea task-urilor; -fct. care furnizeaza info. privind caracteristicile si evolutia task-urilor RTKCreateTask-cu ajutor ei se creaza un task nou din task Main sau din alt task. FG: TaskHandle RTKCreateTask(void+TaskCode(void), unsigned Priority, unsigned stack,char *Name); TaskCode-reprez o fct C care contine codul ce urmeaza a fi exe. in noul task Priority-este prioritatea pe care o alocam noului task(intreg fara semn) Stack -marimea in octeti a stivei(intreg fara semn); Name- pointer de max 15 car la numele noului task. Task-ului i se poate asocia si o var. de tip TaskHandle RTKSuspend-  permite dezactivarea unui task, respectiv trecerea in st. Suspend. FG: void RTKSuspend(T askHandlehandler); Param Handler refera task ul ce urmeaza a fi suspendat. Daca task ul e deja suspendat fct. nu se executa. RTKResume-  permite activare task respectiv tranzitia Suspended=>Ready. FG: void RTKResume(TaskHandle Handler); Daca task e suspendat f. nu are efect RTKSetPriority-utiliz. la schimbarea prioritatii task ului referit. FG: void RTKSetPriority(TaskHandle Handler, unsigned New_Priority); Param. Handler refera task ul a carei prio se modifica; New_Priority:noua prioritate. RTKGetTaskPrio-returneaza intr-o variabila de tip unsigned prio. task ului referit. FG: unsigned RTKGetTaskPrio(TaskHandle Handler); RtkGetTaskStack -returneaza intr-o variabila de tip unsigned spatiul liber (in octeti) din stiva task-ului referit. FG: unsigned RTKGetTaskStack(TaskHandle Handler) APD C3+4 RTKGetTaskState -returneaza intr-o var Task State starea task-ului referit prin Handler, FG: TaskState RTKGetTaskState (TaskHandle Handler); 3.2.5 Fct de gestionare a timpului  Timp=resursa esentiala. cuanta de timp(timer tick) =unitatea de masura a timp in RTK(55ms). Timer hardware genereaza  intreruperi/h =>13,2 intreruperi/sec 18 intr./sec=1/18=55ms(durata unui tick). Variabile pt. gestionarea timp in RTK: -Time(pt timpul absolut); -Duration pt intervale de timp. In C ele corespund tipului de date unsigned long. Functii: RTKSetTime -seteaza originea timpului la o valoare dorita. FG: void RTKSetTime(new_time); La initializarea RTKernel, se ve executa fct. RTKSetTime(0). RTKGetTime-preia valoarea ceasului intern in cuante de timp. FG: time RTKGetTime(void); RTKDelay-intarzie task-ul pt care se utilizeaza cu un interval de timp. FG: void RT KDelay(Duration interval); interv al=18*Δt tick/s x s = tick  RTKDelayUntil-continua exe task ului apelat pana la un moment cantificat intr-un nr de tick uri. FG: void RTKDelayUntil(Time moment); Time:e exprimat in tick-uri 3.2.6 Fct de gestionare a semafoarelor Semafor: numarator de even. in care se inscriu sau se extrag evenimente avand continul mereu pozitiv. Incrementare: se inscrie un eveniment. Decrementare: se extrage un eveniment. RTK recunoaste tipul de data semafor: Semaphore S; Tipuri: -binar(binary):{0,1}; -counting(semafor gener al):{0,1,2...,65535} Un sema poate folosi un nr nelimitat de task-uri iar un task poate folosi un nr nelim de sema. Functii: RTKCreateSemaphore:  crearea si initializarea unui semafor. FG: Semaphore RTKCreateSemaphore(SemaType Tip_S, unsigned Val.init, char *Name);  RTKSemaValue-returneaza intr-o var. intreaga fara semn nr. de evenimente memorate intr-o var de ti p semafor. FG: unsigned RTKSemaValue(Semaphore S); RTKSignal: permite inscrierea unui even in sema(sema este incremenat). FG: void RTKSignal(Semaphore S); RTKWait: fct. de extragere a unui even. Are 3 variante: cond itionata, neconditionata, temporizata

Apd Rezumat

Embed Size (px)

Citation preview

Page 1: Apd Rezumat

7/22/2019 Apd Rezumat

http://slidepdf.com/reader/full/apd-rezumat 1/8

APD C1+2

3.2 Executivul de timp real RTK

- Dezvoltat de o firma germana OnTimeCompany

Caracteristici:

-necesita spatii modeste de memorie(16kb cod, 6 kb date)

-poate opera cu un nr. teoretic nelimitat de task-uri. Task-urilor li se pot asocia

prioritati care reprez. un nr. intreg intre 1 si 64(p1<p2<...<p64).

-aceeasi prioritate poate fi alocata mai multor task-uri

-timp de comutare a starii unui task: 6µs.

-in orice moment de timp comutarile se pot realiza

-programatorul are la dispozitie sema., CP si mesaje pt implem. op. multitask.

-programatorul are la dispozitie drivere specializate pt

ecran, tastatura, port serial, port paralel si retea.

Task(in context RTK ) reprez. o fct. C/C++ sau o

 procedura Pascal fara parmaetri si cu stiva proprie.

Structura RTK: Fct. C la care se adauga fct RTK.

Task-ul(in context RTK) se poate gasi in una din starile:

*Current; *Ready; * Suspend; *Delaying; *Blocked; *Timed

Stari:

1)St. Current: corespunde starii de

executie. Un task e in starea Current daca

in acel moment este rulat/executat. In st. Current se ajunge numai din st. Ready.

2)St. Ready. Aici se gasesc toate task-urile care indeplinesc toate conditiile pt rulare

3)St. Suspended. Aici se gasesc task-uri care au fost oprite explicit printr-o fct.

RTKSuspend ele putand fi reactivate oricand prin fct. RTKResume.

4)St. Delaying. un task in aceasta stare este un task intarziat acesta cedand

controlul CPU in urma fct. RTKDelay. Dupa expirarea timpului are loc tranzitia dinstarea Delaying in starea Ready.

5)St. Blocked. un task este in aceasta stare atunci cand este blocat in asteptarea

unui even. extern (semnal de la un sema., un msg. dintr-o CP, msg de trecere etc)

Dpdv al timpului asteptarea este indefinita. Trecerea din st. Blocked in st. Ready se

face numai daca evenimentul s-a produs.

Functie de natura even la care se asteapta  exista mai multe substari:

-Blocked Wait: legat de un sema; -Blocked Put : legat de depunerea unui msg in CP

-Blocked Get: preluarea unui msg din CP; Blocked Send: legat de trasferul unui

mesaj intre task-uri; -Blocked Receive:legat de receptionarea unui mesaj.

6)St. Timed este apropiata de st. Blocked diferenta fiindca se specifica si un

interval de timp in care sa aiba loc blocarea(asteptarea unui eveniment este

temporizata). Iesirea din aceasta stare se face fie la producerea even. fie la

expirarea intervalului de timp alocat.

Substari: *Timed Wait; Timed Send; Timed Put; Timed Receive; Timed Get;

Cu exceptia st. Current pt celelalte stari se creaza cozi de task -uri.

Clase de functii: 3.2.3 Functii de initializare 

Toate antetele prototipurilor fct. se gasesc in fisierul "rtKernel.h", care trebuie

inclus in prog sursa printr-o directiva de includere: # include "rtKernel.h"

Pt driverele consolei se include fisierul antet “rtkbeybrd.h”:#include “rtkeybrd.h” 

Program RTK: contine fct. C/C++ cu prefixul RTK. Pt exe. va trebui construit un

 proiect C care include codul sursa si biblioteca “rtKernel.lib”. 

Fct. se impart in urmatoarele categorii:

-fct de initializare a nucleului; fct pt administrarea task urilor;

-fct pt. gestionarea timpului ; -fct pt gestionarea semafoarelor

-fct. pt gestionarea CP; - fct pt gestionarea msg.

Fct de init. a nucleului RTKernelInit

In urma exe f. RTKerneInit sunt reaizate urm. op:

-initializarea struct. interne de date

-convertirea fct Main in task ul Main si alocarea prioritatii specificate-crearea task-ului Idle si alocarea pentru acesta a prioritatii 0

-initializarea ceasului intern cu val 0.

Task Idle ia controlul UCP atunci cand nici un task nu e in st. Current

Fct. pt init. driver de consola RTKeybrdInit: void RTKeybrdInit(void);

Se poate folosi si forma condensata RTKernelInit(3).

Iesirea din RTKernel se face cu fct. C exit(0);

3.2.4 Fct. pt administrarea task-urilor. Se impart in:

-fct. pt crearea, terminarea, activarea si dezactivarea task-urilor;

-fct. care furnizeaza info. privind caracteristicile si evolutia task-urilor

RTKCreateTask-cu ajutor ei se creaza un task nou din task Main sau din alt task.

FG: TaskHandle RTKCreateTask(void+TaskCode(void), unsigned Priority,

unsigned stack,char *Name);

TaskCode-reprez o fct C care contine codul ce urmeaza a fi exe. in noul task

Priority-este prioritatea pe care o alocam noului task(intreg fara semn)

Stack -marimea in octeti a stivei(intreg fara semn);Name- pointer de max 15 car la

numele noului task. Task-ului i se poate asocia si o var. de tip TaskHandle

RTKSuspend- permite dezactivarea unui task, respectiv trecerea in st. Suspend.

FG: void RTKSuspend(TaskHandlehandler); Param Handler refera task ul ce

urmeaza a fi suspendat. Daca task ul e deja suspendat fct. nu se executa.

RTKResume- permite activare task respectiv tranzitia Suspended=>Ready.

FG: void RTKResume(TaskHandle Handler); Daca task e suspendat f. nu are efect

RTKSetPriority-utiliz. la schimbarea prioritatii task ului referit.

FG: void RTKSetPriority(TaskHandle Handler, unsigned New_Priority); Param.

Handler refera task ul a carei prio se modifica; New_Priority:noua prioritate.

RTKGetTaskPrio-returneaza intr-o variabila de tip unsigned prio. task ului referit

FG: unsigned RTKGetTaskPrio(TaskHandle Handler);

RtkGetTaskStack -returneaza intr-o variabila de tip unsigned spatiul liber (in octeti) din stiva

task-ului referit. FG: unsigned RTKGetTaskStack(TaskHandle Handler)

APD C3+4

RTKGetTaskState -returneaza intr-o var Task State starea task-ului referit prin

Handler, FG: TaskState RTKGetTaskState (TaskHandle Handler);

3.2.5 Fct de gestionare a timpului  

Timp=resursa esentiala. cuanta de timp(timer tick) =unitatea de masura a timp in

RTK(55ms). Timer hardware genereaza  intreruperi/h =>13,2 intreruperi/sec

18 intr./sec=1/18=55ms(durata unui tick). Variabile pt. gestionarea timp in RTK:

-Time(pt timpul absolut); -Duration pt intervale de timp. In C ele corespund tipului

de date unsigned long. Functii:

RTKSetTime -seteaza originea timpului la o valoare dorita. FG: void

RTKSetTime(new_time); La initializarea RTKernel, se ve executa fct. RTKSetTime(0).

RTKGetTime-preia valoarea ceasului intern in cuante de timp. FG:

time RTKGetTime(void);

RTKDelay-intarzie task-ul pt care se utilizeaza cu un interval de timp. FG:

void RTKDelay(Duration interval); interval=18*Δt tick/s x s = tick  

RTKDelayUntil-continua exe task ului apelat pana la un moment cantificat intr-un

nr de tick uri. FG: void RTKDelayUntil(Time moment); Time:e exprimat in tick-ur

3.2.6 Fct de gestionare a semafoarelor 

Semafor: numarator de even. in care se inscriu sau se extrag evenimente avandcontinul mereu pozitiv. Incrementare: se inscrie un eveniment. Decrementare: se

extrage un eveniment. RTK recunoaste tipul de data semafor: Semaphore S;

Tipuri: -binar(binary):{0,1}; -counting(semafor general):{0,1,2...,65535}

Un sema poate folosi un nr nelimitat de task-uri iar un task poate folosi un nr nelim de sema.

Functii: RTKCreateSemaphore: crearea si initializarea unui semafor. FG:

Semaphore RTKCreateSemaphore(SemaType Tip_S, unsigned Val.init, char *Name);  

RTKSemaValue-returneaza intr-o var. intreaga fara semn nr. de evenimente

memorate intr-o var de tip semafor. FG: unsigned RTKSemaValue(Semaphore S);

RTKSignal: permite inscrierea unui even in sema(sema este incremenat). FG:

void RTKSignal(Semaphore S);

RTKWait: fct. de extragere a unui even. Are 3 variante: conditionata,

neconditionata, temporizata

Page 2: Apd Rezumat

7/22/2019 Apd Rezumat

http://slidepdf.com/reader/full/apd-rezumat 2/8

*var neconditionata: RTKWait. FG: void RTKWait(Semaphore S);Daca exista cel putin un even. disponibil in sema. atunci fct. se exe si task isi

continua rularea. Daca nu e disponibil un even task trece in starea Blocked_Wait

 pt un timp indefinit (sta blocat pana cand in sema se inscrie un even)*var conditionata: RTKWaitCond  FG: bool RTKWaitCond(Semaphore S);

Fct. intoarce o val de tip bool(T or F). IF in sema exista un even disp. => f. se exe.

(even. e extras), task-ul isi reia rularea, iar in bool se inscrie TRUE.IF in sema nu e inscris nici un even=> in bool se inscrie FALSE f. nu se exe.(nu se

extrage nimic) si task ul isi continua rularea.

*var temporizata: RTKWaitTimed

FG: bool RTKWaitTimed(Semaphore S, Duration int_Temp);

IF exista un even disp, acesta e extras fct. se exe, in bool se insrie TRUE si task ul

isi continua rularea. IF nu exista even disp, task trece in starea Timed_Wait, underamane un interval de max int_Temp. If in acest interval in sema se inscrie un even.

atunci f. se exe, in bool se inscrie TRUE si task isi reia rularea. IF in acest interv. in

sema nu se inscrie nici un even atunci in bool se inscrie FALSE si task isi reiarularea fara ca fct. sa se exe.

APD C5+6

3.2.7 Fct pt gestionarea CP (Cutiilor Postale)CP= instrument oferit de RTK pt implementarea op. multitasking.

CP(in context RTK) = zona de memorie tampon in care poate fi stocat un nr

 prefixat de mesaje de lungime definita. Un nr nelim de CP pot utiliza un task si unnr nelim. de task uri pot utililza o CP.

Task-urile pot depune/extrage msg din CP. Situatii critice: -CP plina; -CP goala

Blocarea task urilor se produce atunci cand se extrage msg dintr-o CP goala sau se

introduce msg intr-o CP plina. CP foloseste tipul de date Mailbox CP. Functii:

RTKCreateMailBox-creaza si initializeaza CP. FG:Mailbox RTKCreateMailbox(unsigned Lung_mesaj, unsigned Nr_mesaje,

char*Nume);

-Lung_mesaj=lung. in octeti a unui msg; -Nr_mesaje=nr de mesaje ce pot fi stocate

-Nume=pointer la numle CP de max 15 car. Fct. intoarce o val intro var. de tipMailbox care va fi referita in leg. cu CP.

RTKMessages=returneaza nr de msg dintr-o CP. FG: unsigned RTKMessages(MailboxCP) RTKClearMailbox-realizeaza stergerea CP. FG: void RTKClearMailbox(MailboxCP);

Fct. de depunere msg in CP: *neconditionata: RTKPut FG:

void RTKPut(MailboxCP, void*Mesaj);.IF exista spatiu disponibil, fct. se exe. msg e depus, iar task isi continua rularea.

IF nu exista spatiu disp. task trece in st. Blocked_Put si ramane in aceasta stare

 pana cand se creeaza spatiu. Blocarea e pe o durata indefinita.*conditionata: RTKPutCond. FG: bool RTKPutCond(Mailbox CP, void + Mesaj);

Intoarce o val. intr-o var de tip bool(T or F). IF exista spatiu THEN fct. se exe. msg

este depus in bool se inscrie T. (succes depunere) si task isi continua rularea.IF nu exista spatiu disponibil, fct nu se exe. in bool se inscrie val. F(indica esecul

operatiunii) dar task nu se blocheaza.

*temporizata: RTKPutTimed. FG:

 bool RTKPutTimed(MailboxCP, void+Mesaj, Duration Interval_asteptare);

IF spatiu disponibil THEN bool=TRUE, AND msd e depus.

IF sp. nedisponibil task intra in st. Timed_Put. Daca intr-un intervalΔt≤interv._astept se creeaza sp liber THEN fct. se exe bool=T AND task isi reia

rularea. ELSE IF dupa trecerea unui timp= interv_astept nu se creeaza sp. liber,

 bool=F, AND fct nu se exe. BUT task reia rularea.

Fct. de extragere a mesajelor din CP:

*necond.: RTKGet. FG: void RTKGet(Mailbox CP, void *Var);

Mailbox CP - CP din care se face extragerea; *Var-pointer la variabila in care sedepune msg. IF exista cel putin 1 msg in CP THEN este extras fct. se exe. AND

task continua rularea. IF nu exista un msg disp., THEN task se blocheaza pt un

timp indefinit(trece in st.Blocked_Get) UNTIL apare un msg.*cond.: RTKGetCond. FG: bool RTKGetCond(MailboxCP, void*Var); 

Conditie: existenta a cel putin unui mesaj. IF exista 1 msg disp THEN este preluat,

fct. se exe, bool = T(succes functie). IF nu exista msg disp. THEN fct. nu se exe.,

 bool=F AND task isi continua rularea.

*temporiz.: RTK GetTimed

FG: bool RTKGetTimed(MailboxCP, void*Var, Duration interv_ast);

IF exista msg. disp. THEN msg e preluat AND bool = T. ELSE if nu exista msgdisp, task se blocheaza(trece in starea Timed_Get). IF intr-un interv Δt<interv_ast.

nu apare un msg in CP , THEN bool=F si task isi reia exe.

3.2.8Fct. de gestionare a msg de trecere(Passing messages)

Reprez o modalitate de comunicare in cadrul RTK aceasta fiind directa intre task-

uri. Spre deosebire de CP nu exista predefinit un tip. Singurele fct. asociatemesajelor sunt fct. de trimitere si primire a msg (Send si Receive). Si in getionarea

msg exista situatii critice: -task nepregatit sa primeasca mesaj;

-task nepregatit sa transmita msg

Expediarea mesajelor 

*necond: RTKSend FG: void RTKSend(TaskHandle Handler_Rec, void *Data);

IF task destinatar desemnat e in st. Blocked_Receive sau Timed_Receive(adica pregatit pt receptie) THEN fct. se exe. iar task exped isi continua rularea. IF not,

THEN exped. trece in st. Blocked_Send AND ramane astfel UNTIL task destinatare pregatit sa primeasca msg.

*cond.: RTKSendCondFG: bool RTKSendCond(TaskHandle Handler_Rec, void*Data);

IF destinatar este pregatit(starile Blocked_Receive, Timed_Receive), THEN msg se

transmite AND bool=T. IF dest. nu e pregatit, THEN bool=F, msg nu se transmite,fct. nu se exe. si task exped isi continua rularea.

*temporiz.: RTKSendTimed. FG: bool RTKSendTimed(TaskHandle

Handler_Rec, void*Data, Duration interv_ast);IF destinatar e pregatit(Blocked_Receive sau Timed Receive), msg se transmite,

AND bool=T. ELSE IF dest. nu e pregatit, THEN fct. se exe, msg se transmite

 bool=T AND, si task ul isi reia rularea. ELSE IF interv_ast. a trecut AND dest. esteinca nepregatit THEN bool=F, fct. nu se exe. iar task isi reia rularea.

Receptia mesajelor:

*neconditionata: RTKReceive.FG:void RTKReceive(void*Data, unsigned Lung_mesaj)

IF un task expeditor este pregatit(starile Blocked_Send sau Timed_Send), THEN

fct. se exe. msg e receptionat AND task continua rularea. IF nu exista taskexpeditor pregatitTHEN receptorul trece pe st Blocked_Receive AND ramane asa

un timp nedefinit.

*conditionata: RTKReceiveCondFG: bool RTKReceiveCond(void*Data, unsigned Lung_mesaj);

IF un expeditor este pregatit(blocked_Send, Timed_Send) THEN bool=T AND fct.

se exe. IF nu exista un exped pregatit THEN bool=F, AND fct. nu se exe. dar taskul receptor nu se blocheaza.

*temporizata: RTKReceiveTimed

FG: bool RTKReceiveTimed(void*Data, unsigned Lung_mesaj, Duration

Interv_ast); IF un exped e pregatit(Blocked_Send, Timed_Send), THEN bool=T

and fct. se exe. IF nu exista cel putin un expeditor pregatit,THEN task receptortrece in st. Timed_Receive. IF in Δt≤interv_ast, un exped devine pregatit, THEN

 bool= T, si task isi reia rularea. IF dupa expirarea acestui interval, nu exista un

expeditor pregatit, THEN bool=F fct. nu se exe. iar task isi reia rularea.

APD C7+8Cap1 Metodologii si Mijloace de conducere

1.1 Functiile automatizarii proceselorProces: succesiune de transformari asociate evolutiei spat io-temporale a diverselor obiecte. Oricarui proces ii sunt asociate 3 categ. de obiective: calitate, eficienta, securitate.Conducere: dirijarea unui proces pt rezlizarea unui/mai multor obiective.

Sist de conducere presupune existenta unui mijloc de conducere(are trasate

obiectivele) si a unui obiect condus(ofera rezultate) acestea fiind interconectate prin comenzi.

Perturbatiile: factori externi care actioneaza negativ asupra stabilitatii sistemului.

Daca excludem omul sist are conducere automata.

Functie de obiective automatiz. proceselor i se pot asocia 4 fct importante: *monitorizarea automata; *reglarea automata;

*protectia automata; *optimizarea automata

1.1.1 Monitorizarea automataMonitorizare automata: recunoasterea completa a starii unui proces.

Fct. de monitoriz. se realiz. cu ajut. sist automat de masurat.  Componente:

traductor; linie de transmisie (LT); instrument de vizualizare(IV)

Traductor(T): senzor+adaptor. Senzorul vizualizeaza variatiile mar x si transmite

o marime intermediara la cerintele LT.

Instrum. de vizualiz. (iV): *reale: instr. fizice, cu indicare si inregistrare.*virtuale: instr. programate, operatorul are la dispozitie o interfata

L=5 mar; M=2 relatii( de calcul pt 2 marimi); F=L-M=3 mar. care se masoara

Pt un proc. caracterizat de L marimi, in care se identifica M relatii, trebuie masurateF marimi, F=L-M. F-nr minim de marimi ce trebui masurate pt a cunoaste starea sist. 

1.1.2Reglarea automata

Proces reglabil: proces ce poate fi adus si mentinut cat mai aproape de o stare dereferinta. Reglarea se realiz. prin intermediul SRA. SRA=D.A.+ proces.

DA=T(trad)+ RA(reglator automat)+ EE(elem.exe.) care indeplinesc functiile demasurare (trad), comanda(RA) si executie(EE). O alta struct a SRA este: SRA = PV + PF PV:parte variabila; PF: parte fixa

PV include RA si se numeste asa deoarece prin intermediul param de acordare se

 poate modifica functionarea regulatorului.

Page 3: Apd Rezumat

7/22/2019 Apd Rezumat

http://slidepdf.com/reader/full/apd-rezumat 3/8

Functionarea SRA impune existenta unei marimi de exe(agent de reglare - m) caretrebuie sa deserveasca unui singur SRA. Nr. max de SRA asociate unui proces =

nr. mar de exe. disponibile.

1.1.3 Protectia automata

Monitorizare+calitate= cerinta de calitate. Protectia = cerinta de securitate a

 personalului de operare, a mediului si a instalatiei in care se desfasoara procesul.

Fct. de protectie ii putem asocia 3 categorii de sist.:- sist. automate de avertizare (SAA); - sist. automate de blocare (SAB);

-sist. automate de comanda (SAC).

SAA: informeaza in legatura cu starea momentana a mediului supravegheat saurepoducerea unui eveniment. Nu intervin in derularea procesului.

Categorii de avertizari: 1) Avertizare de pozitie. semnaleaza pe cale optica starea

de functionare/nefunctionare a unui utilaj  2) Avertizare de prevenire semnaleaza pe cale optica si acustica aparitia une situatii

in care se impune o actiune de interventie pt a nu se produce o avarie

3) Avertizare de avarie semnalizaza producerea unei avarii.

SAB: intra in actiune dupa avertizarea de prevenire, in situatia in care nu s-a

intervenit in timp util pt. a preveni situatia periculoasa. SAB scoate din functiune

un utilaj, o secventa de instalatie, sau intregul sistem de instalatii, daca situatia o

impune.

SAC: au 2 fct. imporante: - oprirea controlata-pornirea conditionata a unui utilaj sau secvente de instalatie

BLC verifica respectarea conditiilor de pornire si in cazul in care sunt indeplinite

toate conditiile are loc o avertizare de pozitie care anunta ca instalatia poate fi

 pornita. Dupa blocare sist. e pornit numai prin fct. de comanda

1.1.4 Optmizarea automataPrin conducere optimala se aplica sis de regl. acea referinta care satisface o

conditie de optim. Pt. a determina acea referinta se rezolva o pb de optimizare.

1.2 Cerinte impuse echipamentelor numerice pt. conducerea proceselor.

Cerinte: - siguranta marita in functionare; -procesarea informatiei in timp real;

-posibilitatea schimbului de informatii cu perifericele de proces;

-posibilitatea operarii de catre operatorii procesului

1.2.1 Siguranta de functionare a echipamentelor numerice pt. conducerea

proceselor.

Calitatea= totalitatea proprietatilor si caracteristicilor unui prod/serv care-i condera

acestuia aptitudinea de a-si satisface anumite cerinte exprimate sau implicite.

Siguranta in funct. are 3 elemente: fiabilitate, mentenabilitate, disponibilitate.

A FiabilitateaDpdv calitativ fiabilitatea reprez aptitudinea unui echipament de a-si indeplini

corect functiile prevazute cel putin un timp egal cu o durata specificata in conditii

de exploatare prevazute.Dpdv cantitativ fiabilitatea reprez. probabilitatea ca un echipament sa-si

indeplineasca functiile prevazute cel putin un timp egal cu o durata specificata in

conditii prevazute.

Fiabilitatea e apreciata

si prin anumiti

indicatori: -fct. de frecventa- f(t)

(frecv. deformarilor intr-un anumit interval de timp).

-intensitatea defectarilor z(t) se cuantifica prin raportul f(t)/R(t)Redundanta:Metoda de crestere a fiabillitatii. Redundanta statica: componentele

de rezerva functioneaza in paralel cu cele active. Redundanta dinamica: comp. derezerva intra in functiune dupa defectarea celor active.

B Mentenabilitatea Dpdv calitativ reprez. aptitudinea unui echipament de a fi mentinut si repus in

functiune prin mijloace precise.

Dpdv cantitativ, mentenanta reprez probabilitatea ca un echip sa fie repus in

functiune intr-un interv precizat.

Indicator principal: MTR(Mean Time Reparation)-timp mediu de reparare.

C Disponibilitatea Calitativ reprez. aptitudinea unui echip de a-si indeplini fct. specificate sub aspectul

combinat al fiab. si ment. la un moment dat sau intr-un interval specificat.Cantitativ reprez prob. ca un echip sa-si indeplineasca fct. specificate sub aspectul

combinat al fiab. si ment. pe intreaga durata de serviciu.

1.2.2 Prelucrarea info in timp realUn echip e in timp real daca reactia sa la schimbarile din proces este in

conformitate cu inertia procesului. Comportarea in TR la achiz datelor impune

detinerea informatiei in interv de valabilitate al datelor primare

Comportarea in TR la transmiterea comenzii = transmiterea comenzi catre proces ininterv de valabilitate al marimii pe baza careia aceasta comanda a fost determinata

La achiz datelor precum si la transm. comenzii cuantificam componenta in timp

real prin frecv de achiz. a datelor respectiv frecv de generare a comenzilor.

Aceasta frecv. e data de Th lui Shanon:   ≥  2  

  - frecv de esantionare;   - frecv de variatie a mar. proces

1.2.3 Posibilitatea conectarii la echip periferice de proces.Este posibila prin existenta unui sist. de interfata cu procesul(SIP=T+EE) format

din 2 susbsisteme: -SAD - sist. de achiz. a datelor de la traductor

-SDC -sist de distributie a comenzilor catre EE1)SAD: - SADA(Sis. de Achiz. a Datelor de la trad. Analogice);

- SADN(Sis. de Achiz a Datelor de la trad. Numerice);

2)SDC: -SDCA-sist de distribute a comenzii catre EE analogice;-SDCN-sist de distrib a comenzii catre EE numerice;

1.2.4 Dialogul cu personalul de operare al procesului La dispoz operator trebuie sa se gaseasca o consola a operat. de proces , tastaturacu taste functionale de culori si marimi diferite, mouse fix incastrat in consola

(trackbal), ecran cu puternice facilitati grafice rezolutie mare, senzitiv etc..

APD 9+10

1.3 Structuri principale pt conducerea proceselor

Conducere: aplicare de comenzi catre proces. Structuri de conducere:

-struct total distribuita; -struct. total concentrata; - struct. partial distribuita.1.3.1 Struct. total distribuita. In acest caz nr de regulatoare = nr de param reglati.

a)reg. specifice acestei struct au implemetate un singur alg de reglare.

 b)reg. sunt montate pe panouri de comanda care sunt amplasate in camerele de

comanda aferente fiecarei instalatii.

c)obiectivele sunt cele ale unei bucle de reglare = mentin. unui param la val. de ref.

d)nu se pune prob obtinerii unei inf. de sinteza privind ansamblul procesuluie)nu se pune probl. regl. unor variabile calculate

f)necesita o atentie distribuita considerabila din partea operatorului. 

1.3.2 Struct total concentrata (STC) reg=regulator

a)struct e caracteriz sub forma unui reg. unic realiz. sub forma unui calc. de proces

 b)CP(calc. proc) concentreaza toate info de la proces si distribuie totalitateacomenzilor catre acesta.

c)utiliz are la dispozitie o biblioteca de algoritmi

d)reg. ii mai pot fi asociate obiective ce privesc ansamblul procesuluie)CP isi asuma sarcinile de conducere si supraveghere a procesului.

f)se poate obtine info. de sinteza si reglarea de var. calculateg)fiecare trad si EE are asociata cate o adrese iar conexiunile sunt logice

h)operatorul dispune de o consola de operare a.i => atentia distribuita nu e

necesara ca in cazul STD

Dezavantaje:* nu avem paralelism=> procesarea in timp real e dificila*fiind conducator si supraveghetor isi asuma riscurile asociate.

1.3.3 Struct partial distribuita (SPD)

1) SPD: struct. ierarhizata pe 2 niveluri (niv 1 e distribuit)2) procesul e divizat pe criterii functionale si geografice in subprocese fiecare

avand o unitate de conducere(UDC)

3) UDC isi asuma in totalitate sarcinile de conducere si supraveghere aferentesubprocesului deservit.4) mai multe UDC=procesare paralela=cresc disponibilitatile de procesare in timp real

5) obiectivele sunt specifice fiecarui subproces fiind posibila obtinerea de info desinteza si reglare a variabilelor calculate

6)Niv2 = calulatorul superior (CS) si are obiective aferente fiecarui proces si care

 primeste marimi de informare  de la niv. inf. si transmite catre acesta masuri de

coordonare   . Mar. de coordonare C pot contine si referintele si param reglati.7)Cele 2 niv comunica prin intermediul magistralei sist distribuit(MSD)

8) sist este deschis putand fi integrat intr-un sist informatic

9)Pb. redundantei apare doar la niv 1 si presupune obtinerea uneia sau a doua unit

de comanda ca unit de rezerva.

Page 4: Apd Rezumat

7/22/2019 Apd Rezumat

http://slidepdf.com/reader/full/apd-rezumat 4/8

1.4Integrarea calculatoarelor in automatizarea proceselor1.4.1 Justificarea introducerii resurselor de calcul in dispoz. de automatizare

Fiecare op. de automatiz. presupune op. de calcul complexe avand in vedere

complexitatea obiectivelor si pe de alta parte a condensarii de personal.Fct. de Monitorizare: in acest puterea de calcul e necesara pt a determina val

marimilor care nu se pot masura.

Fct. de Comanda: In acest caz sunt implementati (alg de reglare dupa abatere si inspecial dupa perturbatie) de echip. numerice.

Sist. de protectie: aici blocurile logice de com. sunt implem. in totalitale si

importante sectiuni ale echipamentelor de automatizare sunt destinate fct. de protectie.

Fct de optimizare: implica solutionarea problemei de optimizare

Caracteristica dominanta a sis. de conducere: echip numerice proceseaza cantitatimari de info intr-un timp acceptabil dpdv al procesului condus.

1.4.2 Modalitati de conectare a unui calc la proces

Exista 2 aspecte: conectare informationala si conectare fizica1)Conectare OFFLINE(Conectare logica)

2)conectare ONLINE:- numai pe intrari; -ghid operator; -integrala

a)comunicarea numai pe intrari: -procesul vazut numai prin intermeiul

traductoarelor; calculataotul vazut prin intermediul porturilor

 b) conexiunea ghid operator:

exista sectiunea de achiztie, sunt calculate comenzi daracestea nu se aplica direct ci sunt afisate operatorului care

le aplica direct

c)conexiunea integrala. in acest caz calc. intervine asupra

 procesului. Se achiz semnale de la trad, se exe. alg si se transmit comenzi. Dacaaceste comenzi se aplica direct EE avem de a face cu Direct Digital Control(DDC) 

Daca comenzile se aplica in calitate de referinte unor reg. situate in niv. inf. avem

regimul SetPointControl(SPC)

Cap2 Sistemul de interfata proceselor

2.1 Struct generala a unui SIPC.

In cadrul procesului de achiz a datelor , proc. reprezentat prin traductorindeplineste rolul de producator, iar calc. reprez. prin porturile de intrare

indeplineaste rolul de consumator. transferul este de la prod la cons si reprez

 procesul de achizitie a datelor.

Se observea un dublu transefer si =>: -subsist de achiz date(SAD)

-subsist distributie comenzi(SDC)

Principala misiune a SIPC este compatibilizarea echip. analogice si cele numericeSPIC-CAD- SADA; -SADN

-SDC-SDCA; -SDCN.

 Noua struct a SIPC:

2.2Subsist de achiz a datelor analogice(SADA)

2.2.1 Structuri principale SADASe pp. un sist cu mai multe trad. care au domenii diferite => 2 structuri principale

de SADA: -SADA cu un singur lant de conexiune si multiplexare analogica

-SADA cu mai multe lanturi de conversie si multiplexare numerica

EJ: elem. de jonctiune; EPP: ele. de prelucrare primara; MUX A: multiplexoranalogic; AFAP: amplif. cu factor de amplificare programabil;

DER:dispozitiv de esantionare si retinere;CAN-convertor analog numeric;

AFAP+DER+CAN=lantul de conversie; RT-reg. tampon; PI-port intrare; PE-portiesire; BC-bloc de comanda;

Semnale: k- canalul de pe care se achizitioneaza; Δk -amplificarea asociata semnal k;

ESANT -semnal de retinere; RET - semnal de retinere;STC - semnal start conversie, SFC- semnal sfarsit conversie.

MEM- semnal memorare

 - : secunde analogice furnizate de traductor; -...

:secundele prelucrate

 primare; : semnal prelucrat selectat;

: semnal prelucrat selectat amplificat;

:secund esantionat; Nk: nr de unit. CAN(cuante)

A0...An-1 -amplif cu factor de amplif. fix MUX N - multiplexor numericIndiferent de struct A sau B unui SADA ii sunt specifice urm fct.:

a)selectarea canalului de la care urmeaza a se face transferul conform unor adrese K

furnizate pe unul din porturile de iesire; b)eventuale prelucrari primare;c)transformarea semnalelor in vederea compatibilizarii cu dispoz de conv. A-N

d)conv din forma A in forma N; e) transferul info in format numeric la calc prin

intermediul podului de intrare. Secventierea acestor faze este asigurata de blocul decomanda.

2.2.2Elem. aferente SADA

A. Elem de jonctiune. E j asigura conectarea nemijlocita a semnalelor de latraductor la sist de interfata. exista 3 modalitati importante de realizare a elem de

 jonctiune: -Ej realizat cu cleme; -Ej realizat cu conectori; Ej realizat prin lipire

Pt aceasta se doreste sa fie o rezist. de contacte cat mai mica si stabila in timp.

Acest lucru este indeplinit de conexiunea prin lipire, cuple, cleme. 

B. Elem de prelucrare primara. Categorii: -filtrare; -conversie curent-

tensiune; -atenuare; formare de impulsuri etc.

Filtrarea: op prin care se indeparteaza componenete ale semnal cu frecv nedorite. DPDV hardware pot fi folosite filtre cu elem

 pasive(rezist. cond. etc)

filtrul RC

C.Conv. Curent-Tensiune. CAN accepta semnale in tensiune. Cel mai simplu

mod de conversie este de a inchide circuitul printr-o rezistenta.

Multiplexorul analogic. MUX:dispoz care conecteaza o intrare selectata la o iesire unica

Un MUX A poate fi vazut ca o retea de comutatoare.

Daca MUX are intrare de ENABLE nr biti al cuv de comanda este: n=  Daca MUX nu are intrare de ENALBLE cuv de com. este: n= 

Page 5: Apd Rezumat

7/22/2019 Apd Rezumat

http://slidepdf.com/reader/full/apd-rezumat 5/8

APD C11+12

D. Amplificatorul cu factor de amplif programabil

Pt. a modifica amplificarea putem modifica fie R1 fie R2. La inchiderea unui

comutator sa includem in circuit o rezistenta sau la includerea unui comutator sascoatem din circuit o rezistenta.

La amlificarea unitara amplif e utilizat ca adaptor de impedanta intre MUX si etajul

urmator (dispoz. de esantionare si retinere)Dpdv functional un amplif cu factor de amplif programat poate fi util si in calitate de CNA

E. Dispoz de esantionare si retinere

Este necesar in conv A-N pentru mentinerea pt mentinerea constanta a semnalului

de la intrarea CAN. Acest dispozitiv functioneaza in 2 faze: - esantionare- retinere(memorare). Schema Principala:

k repr. esantionarul;   - condensatorul de memorare;  =  

Tens de memorare nu se aplica direct convertorului ci avem un repetor cu oimpedanta foarte mare. Timpul de memorare depinde de 1.curentul rezidual prin

comutatorul K(deschis), 2.impedanta de intrare in repetor, 3.rez. de pierderi a  .

Timpul de incarcare al cond.   : TMC= (R s+ ) *  

R S =rez. sursei de semnal;   - rez. comutatorului k in starea inschis;

  - val. condens. de mem.Etapa de esant. decurge cat timp comut k e inchis. Etapa de mem. comut. k inchis

F Convertoare analog-numerice.

F1)Terminologie si parametrii caracteristici

CAN sist ce converteste o mar cu cariatie continua(analigica) intr-o alta marime denatura numerica.Diapazon: domeniul in care ia valori marimea analogica. Rezolutie: nr de biti ai

cuv. convertit. Cuv de la iesirea CAN are asociata o anumita pondere din diapazon.

Bitul din extrema stanga s.n. bit. cu semnificatie maxima(BSMax) si are pondereaD/2.(este bitul cel mai stabil). In extrema dr. se gaseste bitul de semnificatie

minima(BSMin) a carui pondere e D/ Proc. de conv A-N fac e trecerea de la un dom cu val

infinite la un dom. cu valori finite.

conv A-N se mai numeste si cuantificare. 

Proc de cuantificare repartizeaza o val analog. unei clase sau canal.

 Nr. clase = . Daca avem CAN cu rez pe 8 biti => nr. clase:  =256

In acest caz variabilei analogice i se poate asocia un cuprins intre 0 si 255.

Unei val analogice i se poate asocia un nr cuprins intre 0 si  

Car. statica a unui CAN

CAN e elem nelinar => car. statica e caracterizata in trepte. marimea unei trepte

reprez latimea unui canal

Crestrea rezolutiei=>micsorarea semnalelor dar si distanta intre canale.

F2)Tipuri de CAN

CAN paralel( bitii se determina simultan): unei val anal. i se asociaza un canal inurma unei comparatii. La CAN paralele se exe. simultan un nr de comp. =nr de canale-1.

CAN seriale(cu reactie): la un moment dat se efectueaza 1 comparatie.CAN cu aproximatii succesive: Face parte din clasa conv. cu reactie. Are 3 comp:- un comparator; - registru cu aproxiamtii succesive; - CNA amplasat pe calea de reactie

COMP-comparator. Tact semnal de sincronizare

Cand incepem conv toti bitii sunt pusi cu 0 in afara de bitul de semnif. max care e 1

APD C13+14

2.3 Subsist. de distribuire a comenzilor analogice (SDCA)

SDCA asigura conv comenzi din N in A si transmitere catre el. de exe. destinatare

Element. central SDCA este CNA. Tipuri de struct:

a)SDCA cu 1 CNA si demultiplexare analogica

PE1 transm val. num. a com. Nk, PE2 adr. EE destinatar(k) => BC comanda

inscrierea comenzii Nk  in reg tampon RT => BC comanda declansarea conv. N-A(activare semnal STC) => dupa receptia semnalului de sfarsit conv. SFC, BC

comanda pozitionarea demux pe canal k => comanda in forma A e inscrisa in mem

A MAn si in consecinta e disponibila pt EEn

b)SDCA cu 1 CNA pt fiecare EE si demux numerica.

DemultiplexorulEste un dispoz. care transfera intrarea la o iesire selectata.

 N(nr de iesiri) este o putere a lui 2.Mem analogice. Sunt specifice SDCA cu 1 CNA si demultiplexare analogica

si au scopul de a pastra valoarea comenzi la intrarea unui EE intre 2 momente aleelaborarii acesteia. Cele mai folosite sunt mem anal. cu cond

2.4 probleme ala conectarii echip la sist de achiz:

*rejectia erorilor de mod comun. Acestea apar datorita diferentei de potential

dintre pct. de impamantare ale sursei de semnal si ale SADA

*  protectia la zgomote. Are rol de a miscsora pe cat posibil a influentei factorilor

 perturbatori externi( de nat electrica si magnetica) asupra semnale care se transfera

Metode: -ecranarea: camasa metalica impamantata intr-un singur punct-torsadarea: : protectie la campuri magnetice.

*impamatarea. Inseamna definirea potentialului de referinta. Dpdv al

impamantarii sunt identificate 4 subsist: subsist analog, subsist numeric, subsistsurse de alim, subsist constructie metalica.

*separarea galvanica. Permite protectia sectiunii numerice(interfata +calc) de

tens. periculoase care ar putea fi generate de catre sursele de semnal.Solutii: Amplificarea cu izolare 

Page 6: Apd Rezumat

7/22/2019 Apd Rezumat

http://slidepdf.com/reader/full/apd-rezumat 6/8

 

Cap 4. Mecanismele programarii concurente in timp realSO=colectie de prog cu 2 fct. gestionarea resurselor masinii si punerea la dispozitia

utiliz a unei interfete adecvate. Gestionarea res: gest. UC; gest. mem; gest spatiu I/O

SOTR trasatura pricipala: asigura o rulare a programelor, rulare conditionata fie

de timp fie de evenimente externe. Astfel principala componenta a unui sist in timp

real este reprezentata de planificator. Planif. executiei programelor se poate face pe  2nivele: -pe conditii de timp ("Time driven");-pe conditii de evenimente externe ("event driven")

Planificator: reprezinta politica de alocare a UC diverselor aplicatii aceste politici

incadrand notiunea de dispecerizare. Tipuri de politici de dipecerizare:

-dispecerizarea prin rotatie (task-urile formeaza o coada)

-dispecerizarea prin prioritizare( alocarea UC se face functie de prioritati)

-dispecerizarea prin prioritizare si rotatieTask : in contextul programarii in timp real reprezinta unit elementara de program

independenta dpdv logic.Un SOTR care e capabil sa asigure o executie paralela sau pseudoparalela a task

urilor sn SO multitasking.

4.2 Obiectivele si principiile ingineriei programarii in timp real(IPTR)

IPTR  incadreaza o mutime de concepte, principii, metode si instrumente de

dezvoltare a programelor destinate aplicatiilor de timp real.

IPTR urmareste rezovarea a 3 tipuri importante de probleme:a)stabilirea etapelor in cadrul acestora a fazelor prin care trece un produs

informatic pe durata existentei sale.

 b)elaborarea unor metode si instrumeste pt asistarea elaboratorului in fiecare faza de dezv

c)elab pe baza stiintifica a unor metodologii pentru organizarea si coord.

activitatilor specifice dezvoltarii in stil industrial a prod. informatic.

PT rez acesto prob IPTR isi propune urm ob:-ob. de adaptabilitate; -ob de eficienta; -ob de fiabilitate; -ob de perceptibilitate

Ob. de eficienta se refera la: a)minimiz. necesarului de resurse pt exe. programului

 b)minimizarea efortului pt. dezv. programului;

c)minimizarea timpului pentru dezvoltarea prog.Ob. de fiabiliatate: dezv. unor facilitati a.i. produsul sa-si poata indeplini sarcinile

intr-un interval de lucru prestabilit si in conditii specificateOb de perceptibilitate: capacitatea unui produs de a fi inteles de altii dar si de

autor dupa trecerea unui anumit timp de la proiectare. Perceptibilitatea se poate

realiza prin adaugarea de comantarii in program.Principiul modularitatii: cu cat grad de modularizare e mai > cu atat produsul este

mai usor de gandit.

Principiul abstractizarii: este util pt obtinerea unei eficiente marite

Princ. uniformizarii: pt lucrul in echipa se stabilesc anumite reguli

Princ. confirmabilitatii: obliga dezvolatatorul sa descrie si sa puna la dispozitiautilizatorului un set de metode si proceduri pt. verificarea corectitudinii programului.

Fazele din existenta unui produs informatic1.Analiza cerintelor; 2. Elab. specificatiilor; 3. Proiectarea sist de programe;

4.Codificarea cu utilizarea unui limbaj; 5. Instalarea si testarea prog. 6. Intretnerea progr.

Analiza cerintelor. In aceasta etapa viitorul benefiiar al prod informaticcolaboreaza cu echipa de analisti ai dezvoltatorului in vederea identificarii

 particularitatilor problemei care urmeaza a se rezolva prin prod. inf. finalizandu-secu tema de proiectare in care sunt formulate cerintele si restrictiile aplicatiei.Elab. specificatiilor: Acestea urmeaza dupa tema de proiect si presupuneformularea unui set de specificatii care includ resursele functionale si restrictiile de operare.

Proiectarea: etapa in care se stabilesc: * struct. pe modula functionale ale prog.

*relatiile intre module, componente si modalitatile de comunicare*datele de intrare si rezulatele pentru fiecare modul.

*alg. care vor fi utiliz. pt

implementarea cerintelor dintema de proiectare.

Codificarea presupune generarea

 prog. utilizand un meniu de programare pt modulele definite

in et. de proiectare si rularea lor

 pe un calc gazda.Instalarea si testarea prog. in

aceasta etapa se transfera prog

 pe masina tinta, sau pe masina pecare urmeaza sa ruleze putandu-

se astfel corecta eventualele eroricare nu au putut fi depistate in

fazele anterioare.

Intretinerea prog. in aceastaetapa se fac anumite corectii

impuse fie de neconcordantele cu

tema de proiect  fie derecomandari ale beneficiarului.

APD Curs 15+16

Starile si evolutia task-urilor.

St. neinstalat: ii corespunde un task rezident in memorie(interna sau externa) dar

care nu a fost adus la cunostinta executivului (a SO in timp real).

St. inactiv: in aceasta stare se gaseste un task instalat pt care fie nu s-a facut nici un

apel pt exe. fie si-a incheiat exe fie si-a oprit exe datorita unei directive de stop

natural sau fortat.Subst. executie: reprez corespunde unui task ce contine controlul UC.

Subst. gata de exe.: corespunde task urilor ce ce asteapta sa preia controlul UC

Task urile sunt asezate in ordinea sosirii in cozi FIFO sau dupa prioritati.Subst. Blocat: un task in aceasta stare se gaseste in una din situatiile:

- asteapta alocarea de resurse in special mem. pe stiva

-asteapta producerea unui even. extern; -asteapta realizarea unei conditii de timp 

Evolutia unui task se poate reprez cu ajutorul unui graf orientat(nodurile fiind

reprez de st. si subst. iar arcele de tranzitii).

Tranzitii:

Neinstalat=>Inactiv: se face cu directiva Instalare care aduce la cunoastinta

existenta task-ului si permite crearea blocului descriptor al task ului(BDT) care ar putea contine urm elemente: parametrii task ului; marimea stivei task; eventuali

indicatori catre alte task uri

Inactiv=>Activ:se realiz prin directiva Stergere care elimina task-ul din randultask cunoscute de executiv si dezactiveaza BDT

Gata de exe=>Exe: se face prin directiva Preluare si presupune preluarea

controlului UCP de respectivul taskGata de exe=>Blocat: se realiz. cu directiva Asteptare si are loc cand task ului

respectiv nu i se mai pot aloca resurse .

Gata de exe=>Inactiv:  se realiz. cu directiva de Stop fortat trimisa dintr-un alt taskExe=>Gata de exe.: se reazliz printr-o directiva de Eliberare si presupune cedarea

controlului in UCP atunci cand cuanta de timp alocata task-ului a expirat sau un task cu prioritate superioara a devenit gata de executie.

Exe=>Blocat: se realiz printr- directiva de asteptare. atunci cand continuarea exe task

este conditionata de un even extern sau de trecerea unui interv de timp.Exe=>Inactiv: se reazliz prin direct. Stop normal atunci cand task-ul si-a incheiat exe.Blocat=>Gata de exe: se realiz prin direct. de Continuare conditia ce a determinat

 blocarea a disparut.

Blocat=>Inactiv se realiz prin directiva de Stop fortat transmisa de regula din task ul aflat in exe.

Dispecerizarea task-urilor:  se face prin rotatie, prioritizare, prioritizare+rotatie.

4.4 Conflicte potentiale in sisteme multitasking

4.4.1 Resurse si sectiuni critice

Resurse: fizice(hardware), logice(software)Res comune ce pot fi utilizate de mai multe task-uri: critice, partajabile, reentrante

Res. critica: res care poate admite la un moment dat desfasurarea unei singure sesiuni

asupra sa(locatie de mem, ; dipoz. de I/E)Res. partajabila: res ce permite derularea la un moment dat a mai multor sesiuni de

lucru dar in nr. finit.

Res. reentrante: res. care permit derularea oricaror sesiuni de lucru asupra lor la unmoment dat.

Utiliz. non-coflictuala a res criticeSectiune critica: sectiunea dintr un task in care e utiliz o res. critica.Excluderea mutuala: OP. multitasking care permite accesul unui singur task in propria

sect. critica referitoare la o resursa.

Recomandarile Tonenbaum legate de excludera mutuala:-orice sect critica poate fi executata de un task la un moment dat- la implem excluderii mutuale nu se face referire la frecv. relativa sau viteza de exe a task-

urilor

-orice task poate accesa sectiunea sa critica referitoare la o anumita res. dupa un anumit interv

de timp

-task urile nu se pot bloca in interiorul unei sectiuni critice.

Page 7: Apd Rezumat

7/22/2019 Apd Rezumat

http://slidepdf.com/reader/full/apd-rezumat 7/8

4.4.2 Implem excluderii mutuale cu semafoareSemaf. reprez. un dublet S=(i,C); i=var de tip intreg; C=coada de asteptare

La initializare i se atribuie o val >0 iar coada este vida. Daca i € {0,1}=> sema binar  

Daza i € Z=> sema general. Tipuri de op ce se pot executa asupra sema: *P(S)-decrementare; i<=i-1(Passeren a trece); *V(S)-increm.; i<=i+1(Vrigeven- a elibera)

Daca i>o op P e posibila. La un sema binar op P se exe daca i=1, altfel task-ul este

 blocat, iar indexul sau este inscris in coada C. Op. V nu poate determ blocarea unui task

Coada C contine handler-ele task urilor care asteapta la semafor

Pt implementarea excluderii mutuale utilizam un sema binar care e initilizat cu 1 in

toate task urile care trebuie sa se excluda. Inainte de intrarea in sect critica asupra

respectivului semafor se efectueaza o op. de tip P, iar dupa iesirea din sectiuneacritica o op de tip V.

4.4.3 Implementarea excluderii mutuale cu var de tip eveniment

o var de tip even. e o var logica. In consecinta ia 2 valori(Adevarat sau Fals) si

asupra ei pot actiona 3 tipuri de directive: inscrie, sterge, Astepata.E = {Adevarat, Fals}

INSCRIE (E) E<= ADEVARAT; STERGE(E) E<=FALSASTEAPTA(E): blocheaza task-ul daca e=FALS; continua exe. daca E=ADEVARAT;

Excludrea mutuala cu variabila de tip eveniment presupune utilizarea unei singure

variabile care se initializeaza in toate task-urile cu valoarea ADEVARAT.

4.4.4 Implem excluderii mutuale cu CP si mesaje

O CP este o struct al carui element central este un tampon circular gestionat potrivit

strategiei FIFO. Task urile pot depune msg in CP msg accesibile oricarui alt task.

Mesajele sunt volume de date transferate pe parcursul evolutiei unui task.

Acestea pot i cu lungime fixa sau sau variabila. Msg se depun in CP cu instr. Put si

se extrag cu inst. Get. Pt transmitere folosim instructiunea Send si pt. receptionareReceive. Avem 2 situatii critice: -functia de depunere in CP(task ul se blocheazadaca CP e plina); -functia de extragere din CP(task ul se blocheaza daca CP e goala)

Excluderea mutuala cu CP presupune utilizarea unei singure CP destinate numai

acestui scop si a unui mesaj simbolic. primul task care se initializeaza depune in CPmesajul simbolic. Inainte de intrarea in sectiunea critica se extrage msg simbolic

din CP(daca msg exista). Dupa iesirea din sect critica se depune msg simb in CP.

In interv inc are un task se afla in propria sect critica CPEX este vida si prin urmare

nici un alt tak nu poate accesa propria sect cr. referitoare la aceeasi resursa.

Conditia ca un task sa-si poata accesa sect. critica este ca MESEX sa se afle in CPEX

APD curs 17+18

4.5 Sincronizarea task-urilor

Sincronizare: Procesul prin care un task este pus in relatie cu alt task cu timpulsau cu un eveniment extern. 2 task-uri sunt sincronizate daca se pot stabili relatii

 predictibile intre anumite momente ale dezvoltarii lor, iar sensul general al notiunii

de sincronizare este acela de coordonare, corelare.

4.5.1 Sincronizarea realizata cu semafoare Sincronizarea a 2 task uri. Dorim ca T1 si T2 sa se sincronizeze reciproc. Vom

defini pentru fiecare task cate un punct de sincronizare: PS1 pt T1 si PS2 pt T2.Regula de sincronizare este urm: task-ul Ti sa nu poata trece de pct. sau de

sincronizare PSi pana cand task-ul Tj nu a ajuns in punctul sa de sincronizare PSj:

Sema binare SEMSYNC1si SEMSYNC2 realizeaza sincronizarea in task urile 1 si

2 luand valorile 1 respectiv 0. In pct de sincr. ale task ului i se exe secv.P(SEMSYNC1), V(SEMSYNC). Un task nu-si poate executa procedura P2 pana

cand celalat task nu si-a executat procedura P1. Daca T2 ajnge in PS2 inainte ca T1

sa-si execute procedura P1, acesta se va bloca deoarece SEMSYNC2<0 T2 se vadebloca dupa ce T1 depaseste punctul de sincronizare si SEMSYNC2 devine 1 prin

aplicarea operatiei V.

Sincronizarea cu un even. externAvem 2 task uri: unul supravegheaza producerea unui eveniment extern, iar cel de-

al II-lea asteapta la un sem. SEMSYNC. Asupra acestui se exe o functie V dupa ce

even extern s-a produs.

4.5.2 Sincr. cu var de tip even. Avem un sist de 3 task uri T1,T2 asteptand producerea unui even , task ul T3trebuie sincronizat cu ansamblul celor 2 elem. Pt. sincronizare utilizam variabila de

tip even VTE1 si VTE2 ca se initialzeaza in task-urile T1si T2 cu valoarea FALS.

Se utilizeaza o fct de tip even F=VTE1∩VTE2 care se init. cu val FALS in T3.  

4.5.3 Sincr. cu CPPt sinc cu timpul se utilizeaza asteptarea temporizata pe o CP vida. Mesajele care

se transmit sunt mesaje simbolice. Presupunem ca avem un task care trebui sa

execute la intervale prestabilite T2. Pt aceasta se utilizeza task T1 cu rol de

 planificator. Pt sync se folosesc 3 CP: C0 destinata asteptarii temporizate;C1 destinate asteptarii mesajului de sinconizare; C2 destinata msg de confirmare.

APD curs 19+20

4.6 Comunicarea intre task-uri

Exista 2 categorii de task uri: disjunctive, interactive

Task uri disjunctive: Task uri care pe parcursul evolutiei lor nu utilizeaza resursein comun si nu fac schimb de date.

Task uri interactive: Task uri care utilizeaza resurse in comun si fac schimb de date.Metode de comunicare: - prin condute; - prin transferul direct de mesaje intre task uri

Dpdv al continutului msg pot fi: -cu continut variabil (informationale)-cu continut fix (msg. simbolice).

Dpdv al marimii msg pot fi de marime fixa sau variabila

Comunicare prin "conducte". O conducta se specifica prin nr. de msg care pot fi

stocate si marimea unui mesaj. Comunicarea se face conform strategiei producatorconsumator. daca un task este atat

 producator cat si consumator atunci suntnecesare 2 conducte.

Conducta 1 este deschisa la scriere

 pentru task ul i si la citire pt. task ul j.

In cazul conductei 2 aceasta este

deschisa la scriere pentru task ul j si la

citire pt task-ul i.

Conductele pot fi gestionate in conditii

foarte buna cu ajutoul semafoarelor

generale. Msg informationale sunt

mesaje de trecere, iar pentru confirmare

se folosesc cutii postale deci sunt

mesaje simbolice.

Page 8: Apd Rezumat

7/22/2019 Apd Rezumat

http://slidepdf.com/reader/full/apd-rezumat 8/8

Cap 5 Prelucrarea in timp real a informatiei

5.1 Fluxul informational intr-o aplicatie de conducere in timp real

In cadrul unui sistem automat se proceseaza info. fiind transmisa cu ajutorul unui

suport fizic(semnal etc). Semnale: -cu variatie continua (analogice) ce au domeniiunificate(ex:4...20mA); -digitale(iau valori la anumite momente de timp)

Un sist de conducere are 2 entitati: -mijloc de conducere; -proces condus;

Procesul e vazut prin echipamente periferice(traductoare, elem de exe). Calc evazut prin porturi de in trare (PI) si de iesire (PE).

Vom identifica 2 frontiere: pe front. F1 pe achiz se schimba semnalul din A in N.

 pe front F2 se pastreaza forma dar se schimba continutul (din unitati CAN in unitati

ingineresti). comenzile se genereaza in forma numerica (in unitati ingineresti). Lanivelul Frontierei F2(prin blocul de calcul BC2) semnalul isi schimba continutul

(din unit. ingineresti in unitati CNA). La niv F1, semnalul isi schimba forma

(N=>A) printr-un CNA.

5.2 Conversia mar achizitionate in unitati ingineresti.

Consideram blocul BC1 ca fiind integrat intr-un sistem numeric de masurat la

distanta (SNMD).

Pt. o marime Z € [Zmin, Zmax] o variatie curenta ΔZ =Z -Zmin si ΔZmax =

Zmax-Zmin este var maxima. Pt SNMD se impune o caracteristica statica liniara.

Cea care influenteaza cel mai mult caracteristica lui BC1 este caracteristica

traductorului

5.3 Conversia comenzilor generate din unitati ingineresti

5.4 Filtrarea marimilor achizitionate

Filtru: Bloc functional cu proprietati selective pt. diferite frecvente

Comparativ cu filtrele analogice(I & O alcatuita din semnale analogice) filtreleanalogice ai I & O constituite din secv. de numere

Filtru numeric: Este un algoritm care produce la iesire o secv. y[n] pornind de la osecv. de intrare x[n] si are ca obiectiv o comportare selectiva fata de anumite val. de

la intrare. filtrele numerice (clasificare):

- recursive(Y[n] se calculeaza pe baza ultimelor N valori din secv. de instr dar seiau in considerare si un nr. de val din iesirea anterioara)

-nerecursive(val filtrata y[n] depinde numai de valori ale intrarii).

5.4Testarea incadrarii intre limite

Pt: -marimi achizitionate; -comenzi;

Val. unei mar. achiz presupune testarea incadrarii valorii rezultate (unit. ingineresti)

in domeniul declarat pt respectiva marime. Neincadrarea in domeniu a valorii va fideclarata ca even semnificativ => activarea unei rutine de avertizare si testare a

integritatii SNMD.In afara testarii incadrarii in domeniu mai pot fi prestate si alte

limite asociate diferitelor tipuri de avertizari cum ar fi avertizarea de prevenire sau

avarie. La incarcarea acestor limite se executa task-uri sincronizate cu aceste

evenimente care determina pe langa avertizari, actiuni de blocare, neutralizare,

izolare etc.

In cazul comenzilor inaintea aplicarii unei comenzi SNTD testeaza incadrareaacesteia in domeniul specificat si eventual incadrarea intre limite tehnologice sigure

care de regula se gasesc in interiorul domeniului specificat.

5.6 Baza de date de proces.

BD: Mutime de date organizate dupa anumite criterii in scopul de a facilita prelucrarea acestora intr-un anumit tip de aplicatii.

Aplicatiile de conducere in timp real impun prezenta intr-o BD aferenta conducerii

a datelor ce se refera la: a)cunoasterea starii procesului; b) elaborarea marimilor de

comanda; c) adoptarea unor decizii de natura tehnico-eonomica legate de proces.

Baza de date de proces: Este o BD care contine date organizate in scopul

uztilizarii acestora in aplicatii de conducere in timp real.Un sistem de gestiune al bazei de date (SGBD) pt o BDP trebuie sa raspunda

urmatoarelor cerinte importante: -sa asigure securitatea datelor

-sa asigure integritatea datelor; - sa asigure independenta datelorCerinta de securitate: accesul la date sa se face numai persoanelor si/sau

 persoanelor autorizate. Securitatea se poate realiza prin criptare/decriptare, parole.Cerinta de integritate: Presupune protectia datelor la o functionalitate necorespunzatoare a

echipamentelor pe care lucreaza aplicatia sau chiar a programelor aferente aplicatiei. Acestei

cerinte i se raspunde prin crearea de back up.

Cerinta de independenta: Implica adoptarea unor structuri de descriere a datelor

care sa nu implice schimbari ale acestora la inlocuirea sau modificarea aplicatiei de

conducere.

Intro BDP sunt cuprinse urmatoarele categorii de date:

-date din proces in cadrul fisierelor istorice ale comenzilor-evenimente semnificative din proces in cadrul jurnalului eveniment

-adrese ale perifericelor de proces

-referinte si parametrii de acordare pentru regulatoare PID dupa abatere

-diversi parametrii asociati regulatoarelor avansate-diverse categorii de limite-domenii valide si domanii sigure pt. mar. de comanda

-interventii ale personalului de operare in cadrul jurnalului de interventii

-date privind functionalitatea sist. de conducere in timp realIn evolutia BDP se succed urmatoarele etape:

-structurarea BD

-incarcarea datelor in BD

-actualizarea datelor in BD.