Documente Academic
Documente Profesional
Documente Cultură
Ilovepdf Merged PDF
Ilovepdf Merged PDF
prelucrare esantion
cu esantion
buffere comutate
buffere comutate
codec gsm codec gsm
4000
fir
fir
lift - c
lift - c
4000
4000
dtmf
DTMF
CONSULTATIE
consultatie
x,y
X,Y
graf
GRAF
compensator de
ecou compensator de ecou
lms lms
Lucrarea 2 - MC 10 decembrie 2019 (solutii propuse)
1.
Sa se realizeze din punct de vedere software blocul de comanda al unui lift cu 4 niveluri
(parter si 3 etaje) cu urmatoarele functii:
Exista un senzor, pe 8 biti, care indica la ce etaj se afla liftul in orice moment de
timp. Nu se cer functiile necesare actionarii electromecanice a liftului (aceste
functii vor fi considerate ca fiind date).
Se cer:
- Graful procesului secvential care implementeza blocul de comanda
- Codul in limbaj C, asociat grafului
- Toate explicatile necesare pentru implementarea propusa
Graful propus:
Codul propus:
switch (Q)
{
case 0:
{
// verificare daca s-a ajuns la un etaj (liftul nu se afla intre etaje)
// actionarea corespunzatoare a liftului in functie de comanda
// comenzile sint tratate la rind de la 0 la 3
if (senet>=0)
{
if (CDA[i]=1)
{
if ((i-senet) == 0) STOP();
if ((i-senet) > 0) UP();
if ((i-senet) < 0) DOWN();
CDA[i]=0;
out = (out | (~afis_CDA[i]); // CDA[i] in 1 logic
portout(ADROUT, out);
i=(i+1)%3;
}
}
// determinare alarma
// inregistrare comanda 0
case 2:
{
CDA[0]=1;
Q=12;
break;
}
// eliberare buton SW1
case 3:
{
if ((in & 0x02) !=0 ) Q=4;
break;
}
// inregistrare comanda 1
case 4:
{
CDA[1]=1;
Q=12;
break;
}
// inregistrare comanda 2
case 6:
{
CDA[2]=1;
Q=12;
break;
}
// inregistrare comanda 3
case 8:
{
CDA[3]=1;
Q=12;
break;
}
// afisare CDA
case 12:
{
afiseaza_CDA();
Q=0;
break;
}
}
}
// Functile utilizate
Daca ecoul devine sesizabil la o intirziere de peste 300ms, cit ar trebui sa fie frecventa de
esantionare?
Definirea constantelor:
// intirzierea maxima
#define N 4000
//0.125 in 1.15
#define a1 0x1000
//0.0625 in 1.15
#define a2 0x0800
Initializari
// linia de intirziere
i0=delay;
l0=N+1;
m0=1;
m1=1600; // 4000-2400
m2=-1600;
Secventa de prelucrare
// citeste x(n)
ay0=dm(input);
my0=a2;
my1=a1;
3.
a) Precizati rolul predictorului de salt intr-un microprocessor cu pipe-line si evaluati
utilitatea acestui predictor daca adincimea pipe-line este 3 sau 20.
b) Explicati rolul paginarii intr-o schema de adresare cu segmente paginate. De ce nu se
utilizeaza doar segmentarea?
Problema 1
prelucrări_1 - T/16
|
SC - T/4
|
prelucrări_2 - T/16
Se cer:
Rezolvare
a) Cazul cel mai defavorabil este atunci cînd procesul p4 (din procesorul P2) pierde
competiţia pentru ocuparea resursei comune (procesul p1 sau procesul p3 ocupă resursa) ca
în figura 2.
Datorită ordinii de planificare (p1,p2,p3 şi p4, p5) şi a timpilor maximi de execuţie
nu exista o situaţie mai defavorabilă din punct de vedere al aşteptării pentru procesul p4.
Din figura 2 rezultă timpul maxim de aşteptare tmax_aşteptare = t max_SC = T/4.
b) În cel mai favorabil caz toate cele 3 procese p1,p3 şi p4 pot ocupa resursa în
acelaşi ciclu, ca în figura 3 :
1
SISTEME DE TIMP REAL CU COMANDĂ PROGRAMATĂ . APLICAŢII
planificarea
P1 p1 p2 p3
prelucrare_1
max 3T/8 max T/8 max 3T/8
tranzitie
SC
p4 p5
max 3T/8 max T/8 prelucrare_2
P2
T
Figura 1
max T/4
P1 Prelucrare_1 SC Prelucrare_2
p4 pierde competitia
si asteapta la flag
Figura 2
T
max T/4 max T/4
P1 T/16 SC T/16 T/16 T/16 T/16 SC T/16
p1 p2 p3
max T/4 max T/4
P2 T/16 WAIT SC T/16 T/16 T/16
p4 p5
Figura 3
Problema 2
2
EXEMPLE DE PROBLEME
Ciclurile de planificare ale celor două procesoare sînt sinfazice.
În memoria comună există o secţiune critică (SC) cu acces exclusiv protejată printr-
o variabilă flag (aflată tot în MC). Anumite procese au acces la SC din memoria comună.
Planificarea se face cu suspendare forţată cu alocare egală a timpului pentru
procese.
Numai procesele p1 şi p4 au acces la memoria comună.
Procesele sînt descrise arbitrar.
Timpul maxim de execuţie al SC este T/4. Iniţiativele de acces la SC sînt la
momente de timp aleatoare.
Planificatorul întrerupe obligatoriu un proces, la expirarea intervalului de timp
alocat.
Se cer:
Rezolvare
T
T/3 T/3 T/3
P1 p1 p2 p3
T/2 T/2
P2 p4 p5
Figura 1.
3
SISTEME DE TIMP REAL CU COMANDĂ PROGRAMATĂ . APLICAŢII
Figura 2
Timpul de aşteptare va fi :
tasteptare = timpul ramas pînă la încheierea ciclului curent + timpul de utilizare a resursei
comune = 2T/3 + T/4 = 11T/12.
b) În cazul cel mai favorabil fiecare proces p1 şi p4 poate utiliza resursa comună, ca
în figura 3 :
T
max T/4 T/3
P1 p1:SC p2 p3
T/2
T/4
P2 p4 p4:SC
p4 asteapta
eliberarea resursei T/4 unitati de timp
Figura 3
Problema 3
Procesele sincrone sînt executate cu suspendare forţată. Fiecare proces sincron are
alocată pentru execuţie cîte o cuantă T.
Procesul asincron PA este lansat în execuţie prin apariţia unei întreruperi asincrone
IA, într-un moment oarecare. Dacă IA apare în intervalul cît se execută un proces sincron
4
EXEMPLE DE PROBLEME
atunci acesta este întrerupt pentru un interval de timp foarte mic, în care se execută servirea
IA. În această rutină se citeşte o intrare aferentă lui PA şi se planifică (prin informarea
planificatorului ) prelucrările PA pentru intervalul de timp alocat acestor prelucrări.
Prelucrările PA durează TPA cu T< TPA<5T, după care se generează un mesaj de
ieşire.
Se consideră că apare o singură întrerupere asincronă IA la momentul t1= 2.5T .
Se cere timpul de răspuns al procesului asincron PA, măsurat din momentul t1, în
cazul cel mai defavorabil.
Rezolvare
= 4.5T + 3T + 7T + 2T = 16.5T
PS1 PS2 PS3 PS4 PS5 PS6 PS7 PA PS1 PS2 PS3 PS4 PS5 PS6 PS7 PA
IA executie 3T executie 2T
planificare PA
se intrerupe PA de catre PS
se reia executia PA
timp de raspuns = 4.5T + 3T + 7T + 2T = 16.5T
Figura 1
5
SISTEME DE TIMP REAL CU COMANDĂ PROGRAMATĂ . APLICAŢII
Problema 4
Rezolvare
Cazul cel mai favorabil este atunci cînd toate procesele sincrone efectuează tranziţii
cu durata minimă, 0.25T. După intervalul de timp
TPS = 7.(0.25T) = 1,75 T toate procesele sincrone s-au terminat (pe durata ciclului de
planificare curent).
Întreruperea asincronă IA apare într-un moment de timp cînd planificatorul nu are
nici un proces (sincron) în execuţie, deci procesul asincron se exectă imediat. Procesul
asincron se va termina înainte de începerea ciclului de planificare următor.
Situaţia cea mai favorabilă este ilustrată în figura 1.
Timpul de răspuns va fi :
0 T 2T 3T 4T 5T 6T 7T 10T
IA 3.5T
1.75T
timp de raspuns = T
Figura 1
6
EXEMPLE DE PROBLEME
Problema 5
Durata ciclului de planificare este 2T. În CPU1 şi CPU2 ciclurile sînt sinfazice.
Execuţia proceselor este ilustrată în figura 1.
Activare
Autosuspendare
Procese cu suspendare fortata Procese cu suspendare fortata
Figura 1
Rezolvare
Cazul cel mai defavorabil este atunci cînd intrarea procesului P1 se modifică
imediat după terminarea citirii intrării. Prelucrarea asociată modificării intrării se va efectua
în următorul ciclu.
Procesul Q1 trebuie să aştepte terminarea execuţiei şi generarea ieşirii procesului
P1. Procesul Q1 nu sesizează modificarea intrării proprii în primul ciclu de activare imediat
după generarea ieşirii lui P1. Modificarea este sesizată în al doilea ciclu în care se
consideră timpul de execuţie al lui Q1 ca fiind maxim (pentru cazul cel mai defavorabil).
Situaţia este prezentată în figura 2.
7
SISTEME DE TIMP REAL CU COMANDĂ PROGRAMATĂ . APLICAŢII
CPU1 CPU2
e1'
i1 P1 e1 i1' Q1
2T se modifica imediat
citire intrare dupa citire genereaza
i1 (timp de citire aproximativ zero) iesirea
CPU1
P1 P2 P1 P2 P1 P2 P1 P2
τ τ timp max.
e1 T-τ de executie
CPU2 Q1 se termina inainte de modificarea
intrarii i1' Q1 Q2 Q1 Q2
e1'
se genereaza iesirea e1'
Timp de raspuns maxim
Figura 2
Timpul de răspuns va fi :
tR = τ + T + 2T + 2T + texQ1
Problema 6
- procesele P1 şi P2 se autosuspendă.
- procesele Q1 şi Q2 se execută cu suspendare forţată şi diviziune uniformă a
timpului.
Durata ciclului de planificare este 2T. În CPU1 şi CPU2 ciclurile sînt sinfazice.
Execuţia proceselor este ilustrată în figura 1.
8
EXEMPLE DE PROBLEME
Activare
Autosuspendare
Figura 1
Rezolvare
Cazul cel mai defavorabil este atunci cînd intrarea procesului P1 se modifică
imediat după terminarea citirii intrării. Prelucrarea asociată modificării intrării se va efectua
în următorul ciclu. Se consideră că timpul de execuţie pentru P1 este maxim (în cazul cel
mai defavorabil).
Procesul Q1 trebuie să aştepte terminarea execuţiei şi generarea ieşirii procesului
P1. Procesul Q1 sesizează modificarea intrării proprii la momentul de timp măsurat de la
începutul cuantei proprii de timp curente.
Situaţia este prezentată în figura 2.
Timpul de răspuns va fi :
tR = 2T + texP1 + T + T + T + (T -τ )
9
SISTEME DE TIMP REAL CU COMANDĂ PROGRAMATĂ . APLICAŢII
CPU1 CPU2
e1'
i1 P1 e1 i1' Q1
2T se modifica imediat
citire intrare dupa citire
i1 timp de prelucrare maxim
CPU1 genereaza
iesirea
P1 P2 P1 P2
e1
CPU2
Q1 Q2 Q1 Q2 Q1 Q2 Q1 Q2
τ T-τ T-τ
e1'
Figura 2
Problema 7
Fie un sistem multiproces care rulează ciclic, cu diviziune în timp, procesele p1,p2,
... p5,p6, în fiecare ciclu T = 6 ms.
Sistemul are un singur procesor.
Planificarea se efectuează cu suspendare forţată. Se alocă o cuantă de timp egală cu
T/6 pentru fiecare proces (diviziune uniformă în timp).
Există o secţiune critică (SC),asociată unei resurse comune, protejată prin flag.
Operaţia de testare şi modificare a flag-ului este indivizibilă (neinteruptibilă) şi are
un timp de execuţie aproximativ zero.
Procesele ce pot avea acces la secţiunea critică sînt : p1,p4 şi p5.
Fiecare proces execută cel mult o nouă cerere de acces la resursa comună în
intervalul T şi numai dacă în acel ciclu nu a mai executat SC sau o fracţiune din SC.
Timpul maxim de execuţie al secţiunii critice este de 0.9 ms.
a) Se cere timpul maxim de aşteptare al unui proces din momentul executării cererii
pînă ce se obţine accesul la SC. Se va construi o diagramă de timp care să justifice soluţia.
b) Calculaţi randamentul maxim de utilizare al SC ca raport dintre timpul efectiv de
utilizare şi timpul total (într-un ciclu T).
Rezolvare
a) Situaţia cea mai defavorabilă este atunci cînd unul din procesele care pot accesa
secţiunea critică (de exemplu p1) cere accesul şi ocupă resursa (fără
fără a o utiliza însă)
însă la
sfîrşitul cuantei de timp proprii şi celelalte procese ce accesează SC (p4 şi p5) doresc
ocuparea resursei comune la începutul cuantei de timp asociate. Aceste procese trebuie să
10
EXEMPLE DE PROBLEME
aştepte ciclul următor pentru ca p1 să utilizeze şi să elibereze resursa comună. S-a ţinut
seama de faptul că un proces nu poate cere accesul la SC decît o singură dată pe ciclu.
Figura 1 ilustrează cazul cel mai defavorabil.
Timpul maxim de aşteptare este de un ciclu de planificare (datorită faptului că
utilizarea resursei durează mai puţin de o cuantă de timp alocată unui proces) :
T maxim de aşteptare = T = 6 ms
b) Toate cele trei procese care au acces la secţiunea critică pot utiliza resursa
comună într-un ciclu de planificare în situaţia cea mai favorabilă (vezi figura 1).
Rezultă randamentul maxim de utilizare :
Planificare T = 6 ms
p1 p2 p3 p4 p5 p6 p1 p2 p3 p4 p5 p6
Figura 1
Problema 8
Fie un sistem multiproces care rulează ciclic, cu diviziune în timp, procesele p1,p2,
... p5,p6, în fiecare ciclu T = 6 ms.
Sistemul are două procesoare P1 şi P2.
Planificarea se efectuează cu autosuspendare. Procesele sînt descrise prin EFSM.
Fiecare proces execută o tranziţie pe graful propriu după care se autosuspendă pînă
în ciclul următor. Se presupune că sînt îndeplinite condiţiile de timp pentru planificarea cu
autosuspendare.
Procesele p1,p2 şi p3 se execută în procesorul P1.
Procesele p4,p5 şi p6 se execută în procesorul P2.
În memoria comună există o secţiune critică (SC),asociată unei resurse comune,
protejată prin flag.
Operaţia de testare şi modificare a flag-ului este indivizibilă (neinteruptibilă) şi are
un timp de execuţie aproximativ zero.
Procesele ce pot avea acces la secţiunea critică sînt : p1şi p4 .
Fiecare proces execută cel mult o nouă cerere de acces la resursa comună în
intervalul T şi numai dacă în acel ciclu nu a mai executat SC sau o fracţiune din SC.
11
SISTEME DE TIMP REAL CU COMANDĂ PROGRAMATĂ . APLICAŢII
a) Se cere timpul maxim de aşteptare al unui proces din momentul executării cererii
pînă ce se obţine accesul la SC. Se va construi o diagramă de timp care să justifice soluţia.
b) Calculaţi randamentul maxim de utilizare al SC ca raport dintre timpul efectiv de
utilizare şi timpul total (într-un ciclu T).
Rezolvare
a) Situaţia cea mai defavorabilă este atunci cînd unul din procesele care pot accesa
secţiunea critică (de exemplu procesul p1 din procesorul P1) cere accesul, ocupă şi
utilizează resursa. Procesul p4 din procesorul P2 aşteaptă eliberarea resursei. În mod
evident procesul care ocupă resursa nu va renunţa la utilizarea acesteia deoarece
planificarea este cu autosuspendare.
Figura 1 ilustrează această situaţie.
Procesor P1 T = 6 ms
p1 SC p1 p2 p3
p4 WAIT SC p4 p5 p6
Figura 1.
b) Ambele procese care au acces la secţiunea critică pot utiliza resursa comună într-
un ciclu de planificare, în cele două procesoare (vezi figura 1).
Rezultă randamentul maxim de utilizare :
12
EXEMPLE DE PROBLEME
Problema 9
while(1)
{
citeşte intrări (I); // timp de execuţie tI
Prelucrări (P); // timp de execuţie tPi
generează ieşiri (E); // timp de execuţie tE
}
∑ Ti = T
i=1
Care este timpul maxim de răspuns (în cazul cel mai defavorabil) la modificarea
unei intrări asociate unui proces oarecare pi ? Să se construiască o diagramă de timp care
să justifice rezultatul.
Rezolvare
13
SISTEME DE TIMP REAL CU COMANDĂ PROGRAMATĂ . APLICAŢII
T T-T t3 t4
i i
genereaza iesirea t2 sesizeaza modificarea genereaza iesirea
t1 asociata intrarii intrarii
anterioare
EI P P EI Pi Pi EI
i prelucreaza intrarea i
prelucrare intrare
citita anterior
modificare intrare curenta
modificare iesire
timp de raspuns t R
Figura 1
Problema 10
activare
|
citeşte intrări (I); // timp de execuţie tI
Prelucrări (P); // timp de execuţie tPi
generează ieşiri (E); // timp de execuţie tE
|
autosuspendare
Care este timpul maxim de răspuns (în cazul cel mai defavorabil) la modificarea
unei intrări asociate procesului pN ? Să se construiască o diagramă de timp care să
justifice rezultatul.
14
EXEMPLE DE PROBLEME
Rezolvare
executie procese
T
min = 0 p p p δ p
N 1 2 N-1
max = T max = T
executie p , p , ..., p
1 2 N-1
Procesul p sesizeaza modificarea intrarii
modificare intrare N
timp de raspuns t R
Figura 1
15