Sunteți pe pagina 1din 1

1. Se considera trei taskuri A, B, C preemptibile, cu prioritatile PB<PA<PC, A autostart.

A si C
pot ocupa aceeasi resursa externa Res1. Considerand fisierul sursa de mai jos, precizati in ce
ordine se vor executa taskurile, care este valoarea evenimentului pe durata executiei taskurilor si
cum este ocupata resursa Res1.
int main( void )
{StartOS( Mode );}
TASK( TASKA )
{ActivateTask( TASKB );
WaitEvent(EvA);
GetResource(Res1);
.
ReleaseResource(Res1);
TerminateTask( );}
TASK( TASKB )
{ SetEvent(EvA);
ActivateTask( TASKC );
TerminateTask(); }
TASK( TASKC )
{GetResource(Res1);
.
ReleaseResource(Res1);
TerminateTask(); }

2. Schitati programul (sursa si fisier *.oil): frontal pozitiv PortJ4 declanseaza intreruperi tratate
printr-un proces de tip ISR2. Acest proces ISR2 activeaza la final taskul A. Taskul A afla cate
tickuri mai sunt pana cand un contor va ajunge la valoarea 100 (contorul functioneaza cu
maxvalue =1000 si perioada prestabilita = 1 msec). Daca aceasta valoare este mai mare decat
200, se activeaza Taskul B care forteaza declansarea intreruperilor pe frontul descrescator PortJ4.
3. Un proces PR1 de tip ISR2 (periodic, cu perioada de 1 sec, prima cerere lansata dupa 1 sec)
seteaza un eveniment EV_1 pentru Task A. Un proces PR2 de tip ISR2 (periodic, cu perioada de
1 sec, prima cerere lansata dupa 1 sec) activeaza Taskul B care scrie 1 pe pinul PK0. Taskul A se
activeaza periodic (folosind o alarma autostart), cu perioada de 1 sec (prima activare dupa 600
msec) si asteapta setarea evenimentului EV_1, apoi scrie 0 la pinul PK0, dupa care se termina.
Se considera ca PR1 si PR2 sunt activate simultan (PR2 mai prioritar). Pinul PK0 este
initializat pe 0 printr-un task C autostart. Scrieti programul (C si *.oil) si indicate in ce ordine se
vor executa procesele daca taskurile sunt preemptibile, iar Task B este mai prioritar decat Task
A. Dar daca TaskB este mai putin prioritar decat Task A? Indicati valorile PK0 pe durata
executiei programului. In fisierul *.oil, pentru obiectele PR1 si PR2 nu trebuie indicate valorile
atributelor.

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