Documente Academic
Documente Profesional
Documente Cultură
e.g. sistemul de control al airbag-ului trebuie sa raspunda intr-un anumit interval de timp in
cazul producerii unui accident
unele deadline-uri sunt soft, altele hard, de aici si clasificarea sistemelor in timp-real
42
apar probleme specifice atunci cand intre actiunile care se executa concurent (in paralel) apar
interactiuni
interactiunile posibile intre actiuni pot fi de mai multe tipuri si pot fi exprimate prin operatii
specifice procesarii concurente
43
3 aspecte
multiprogramarea (managementul mai multor procese sau fire de executie intr-un sistem
uniprocesor)
executie cvasiparalela pe principiul
diviziunii timpului = alocarea procesorului
in felii de timp (e.g. time slice)
procesarea distribuita (managementul mai multor procese care se executa pe mai multe
calculatoare conectate intr-o retea, care pot avea sisteme de fisiere diferite sau arhitecturi
hardware diferite, e.g. Internet-ul)
44
partile componente ale aplicatiei software (programului), care vor fi executate in paralel, poarta
denumirea de taskuri
se sparge problema intr-un numar de actiuni = taskuri, care vor fi planificate apoi astfel
incat sa se incheie la momentul specificat (deadline)
45
Definitii - task:
taskul este cea mai mica unitate de prelucrare a informatiei careia i se atribuie o identitate,
reprezentand un program in forma executabila compus dintr-o succesiune de instructiuni
executate secvential
doua taskuri sunt paralele (concurente) daca prima instructiune a unui task incepe sa se
execute inainte ca ultima instructiune a celuilalt task sa fie completata;
doua sau mai multe taskuri se numesc disjuncte (independente) daca nu schimba
informatii intre ele sau daca nu utilizeaza resurse (zone de memorie, dispozitive periferice)
in comun. In caz contrar, taskurile interactioneaza.
semnalul de control care initiaza executia task-ului este furnizat de catre sistemul de operare
prin intermediul planificatorului de taskuri
46
intr-un sistem multi-user = un calculator care permite ca mai multi utilizatori sa lucreze
simultan, de la terminale diferite. Fiecare utilizator isi poate rula propriul program
independent de ceilalti si programele de aplicatie nu interactioneaza intre ele;
intr-o aplicatie multitasking - mai multe programe (taskuri) lucreaza impreuna pentru a
implementa global o anumita functionalitate
47
Sa se implementeze o aplicatie formata din 3 taskuri de tip A (tipareste litera a), B (tipareste
litera b) si C (tiparesc litera c).
48
aabcaaabc
aaaabcbc
ab
Secvente imposibile
49
27.02.2015
50
27.02.2015
51
27.02.2015
52
implementare Task 1
27.02.2015
53
implementare Task 2
27.02.2015
54
implementare Task 3
27.02.2015
55
System.out.println();
System.out.println("B=" + B + ", C=" + C + ", sum=" + sum);
System.exit(0);
}
}
27.02.2015
56
27.02.2015
57
27.02.2015
58
PROGRAMAREA APLICAIILOR
N
TIMP-REAL
Semestrul 2, 2015-2016
Monica Drgoicea
Departament Automatica si Ingineria Sistemelor
Partea a 2-a
4-Mar-16
Continutul cursului:
4-Mar-16
problema filozofilor
etc ...
4-Mar-16
Enunt:
4-Mar-16
fiecare filozof se aseaza la masa, ridica furculita din partea stanga, apoi pe cea din partea
dreapta dupa ce fiecare filozof a terminat de mancat, pune furculitele pe masa solutia aceasta
nu evita situatiile de deadlock - de ce ?
int i;
void filozof(int i){
while(1){
gandeste();
wait(furculita[i]);
wait(furculita[(i+1) mod 5]);
mananca();
signal(furculita[(i+1) mod 5]);
signal(furculita[i]);
}
}
4-Mar-16
4-Mar-16
4-Mar-16
4-Mar-16
4-Mar-16
10
Task algoritm de
conducere proces
4-Mar-16
11
4-Mar-16
12
sincronizarea taskurilor
aspecte colaterale:
deadlock
starvation
4-Mar-16
13
Sincronizarea = abilitatea mai multor taskuri de a-si coordona activitatile prin interschimbarea
informatiei
doua taskuri, Ti si Tj
monitoare
transmiterea de mesaje
4-Mar-16
14
Excluderea mutuala = abilitatea mai multor taskuri de a imparti resurse sau date in asa fel
incat un singur proces sa aiba acces la o resursa partajata (engl. shared resource) la un
moment dat
fiecare dintre taskurile care acceseaza resursa partajata executa o sectiune (zona) critica
(adica o secventa de instructiuni cu care se acceseaza resursele partajate Imprimanta, zone
de date comune, etc)
4-Mar-16
15
se refera la un set de mecanisme specifice prin care programele care formeaza o aplicatie
multitasking pot face transfer de date intre ele si isi pot sincroniza astfel activitatile
transmiterea de date implica si sincronizare
in mod frecvent, cele doua cerinte sunt combinate - un proces necesita date de la alt
proces si trebuie sa astepte pana cand aceste date sunt disponibile
anumite comunicatii intre procese pot fi
private - intre procese care stiu unul de existenta celuilalt si doresc sa comunice direct intre
ele
publice procesul emitator transmite informatia (engl. broadcasting), iar alte procese
receptioneaza ceea ce a fost transmis
4-Mar-16
16
4-Mar-16
17
cerinte
clasificare
abordari
4-Mar-16
18
4-Mar-16
19
4-Mar-16
20
4-Mar-16
21
4-Mar-16
22
PROCES
4-Mar-16
movement
work
time
... adica: a process performs actions over some interval of time in order to
achieve, or to progess to, some objective
23
in multe sisteme de operare moderne, conceptul traditional de proces a fost impartit in doua
concepte separate
proces si
fir de executie (engl. thread)
un proces poate contine mai multe fire de executie
4-Mar-16
24
Procese:
prin proces intelegem un un cod program care se afla intr-o anumit stare de executie (e.g.
RUNNING, READY, BLOCKED, etc)
are propriul sau spatiu de adresa si un singur fir de executie logica a operatiilor (engl. flow
of control)
contorul program al procesului contine adresa urmatoarei instructiuni care trebuie
executata
gestiunea memoriei in cazul unui proces:
Adresa
low
Zona de cod
Adresa
high
Heap
Date
(globale)
Stiva
la un moment dat pot fi incarcate in memorie mai multe procese, partajand CPU si resursele
fiecare proces are propriul sau spatiu de adresa, nu se pot suprapune
spatiul de adresa al unui proces este invizibilpentru celelalte procese incarcate in memorie
4-Mar-16
25
4-Mar-16
26
Procese:
sistemul de operare tine evidenta starii proceselor prin intermediul tabelei de procese
continutul registrilor CPU asociat ultimului moment in care procesul a detinut CPU
atunci cand procesul este scos din executie se face o comutare de context, adica se salveaza
contextul de executie
4-Mar-16
27
Thread 2
Thread n
CP
Registri
CP
Registri
CP
Registri
Stiva
Stiva
Stiva
Cod (shared)
4-Mar-16
28
4-Mar-16
29
4-Mar-16
30