Sunteți pe pagina 1din 4

1.Ce este un proces Logic?

Pentru a concepe modele de programare concurentă independente de hardware, se


asociază fiecărei entităţi executabile din program un procesor logic.
Fiecare processor logic este o masina secventiala care executa pe rand instructiunile din
procesul alocat.
Mai multe procesoare logice corespund unui procesor fizic ce are implementat
mecanismul de planificare pentru a da controlul procesoarelor logice aflate in gestiunea sa.
Nu se fac ipoteze cu privire la vitezele relative ale operatiilor corespunzatoare proceselor logice.

2.Ce se intelege prin semnal in context concurent?


semnal = procesul primeşte un anunţ din partea altui proces.
Semnalul poate fi asociat cu emiterea unei intreruperi adresate unui proces.
- De regula, procesul care primeste un semnal nu stie sursa acestuia, in schimb primeste
semnalul in maniera sincrona, imediat ce a fost emis.
Procesul poate:
- sa-si modifice functionarea imediat ce a primit semnalul,
- sa ignore semnalul primit;
- sa amane prelucrarea acestuia.
Sistemele de operare mai vechi au folosit ca suport pentru semnale chiar sistemul de
intreruperi.

3.Gestionarea fluxurilor de octeti scriere citire


Un flux de octeti este un canal unidirectional de date, de dimensiune limitata, asupra
caruia actioneaza doua categorii de procese: scriitorii si cititorii. Disciplina de acces la flux FIFO
iar octetii in care se scrie respectiv care sunt cititi avanseaza in maniera circular in buffer.
Sa presupunem ca avem de-a face cu un buffer de n octeti, numerotati de la 0 la n-1.
Pentru manevrarea eficienta a fluxului este necesara intretinerea permanenta a trei parametri
-s –pozitia curenta in care se poate scrie urmatorul acces
- c- pozitia curenta in care se poate citi urmatorul acces
-p- o variabila booleana cu valoare TRUE daca pozitia de scriere din buffer se afla inaintea
pozitiei de citire sau valoarea FALSE daca in urma unei citiri sau scrieri s-a depasit utimul loc din
buffer si s-a revenit la inceputul sau.
-daca bufferul este gol-nu contine nici un octet pentru citit atunci procesele cititori asteapta
pana cand un process scriitor depune cel putin un octet in flux
-daca bufferul este plin-nu mai este nici un loc pentru scriere atunci procesele scriitori asteapta
pana cand un cititor extrage cel putin un octet.
4.Ce se intelege prin tehnica swapping?
Mecanismul simplu al memoriei virtuale poate fi exploatat şi în alte moduri. De exemplu
se pot executa în time-sharing procese al căror total de memorie necesară depăşeşte cantitatea
existentă. Se intampla acest lucru când un proces este înlocuit cu altul, părţi din memoria
ocupată de el sunt mutate pe disc (de exemplu într-un fişier).
Când vine din nou la rând, acele părţi sunt aduse la loc în memoria fizică (discul, de
obicei, este mult mai mare decât memoria). Această tehnică se numeşte “swapping”. Aceasta
este cu două tăişuri, pentru că scrierea/citirea de pe disc este mult mai lentă decât cea din
memorie, şi nu-ţi poţi permite ca la fiecare zecime de secundă să te muţi la un alt program, iar
mutarea să dureze 10 secunde.
Izolarea proceselor în zone de memorie disjuncte face sarcina programatorului mai uşoară şi
calculatorul mai eficient: se pot rula simultan programe ale unor utilizatori diferiţi, care nu se
vor incomoda unul pe altul nicicum. Un program nu poate scrie/citi în/din memoria altuia.

5. Regiuni critice conditionale


Prin regiune critică condiţională se înţelege o secţiune critică plus o resursă critică plus
verificarea unei condiţii înainte de execuţia efectivă.
Fiecărei regiuni critice i se asociază o resursă constând din toate variabilele care trebuie
protejate în regiune. Declararea ei se face astfel:

unde r este numele resursei, iar v1 , ..., vn sunt numele variabilelor de protejat.
O regiune critică condiţională se specifică astfel:

- unde r este numele unei resurse declarate ca mai sus, B este o expresie booleană, iar S este
secvenţa de instrucţiuni corespunzătoare regiunii critice.
- dacă este prezentă opţiunea when, atunci S este executată numai dacă B este adevărată.
Descrierea prin semafoare a unei regiuni critice condiţionale este dată în figura 2.10. Pentru
descriere sunt necesare două semafoare şi un număr întreg.

6.Ce se intelege prin apel system?


Apelarea din programe a unei functii realizata de SO=apel system
Functiile de system se mai numesc si apeluri system
Functiile realizeaza:
-operatii cu fisiere=creare, citire, adaugare, scriere, stergere
-alocare/eliberarea spatiului de memorie
-administrarea memoriei neutilizate
-asigurarea identificarii si protectiei fisierelor
-schimbarea structurii sistemului de fisiere prin montarea sau demontarea unui dispozitiv
7. Mecanisme de control asincron sau parţial sincron. Memoria partajata
Conceptul de memorie partajată reprezintă o modalitate utilă de a separa fluxul de
control al execuţiei unei aplicaţii de comunicare a datelor dintre entităţile implicate (procese,
care se execută pe acelaşi sistem (uniprocesor sau multiprocesor) sau pe sisteme diferite).
Procesele se află pe acelaşi sistem
- segmentul de memorie partajată face parte din spaţiul global de memorie al sistemului.

8.Starile task-urilor

Un task se poate găsi la un moment dat într-una din următoarele patru stări:
• a) în execuţie (RUN): utilizează CPU în acel moment; într-un system monoprocesor un singur
task se poate găsi la un moment dat în această stare;
• b) gata de execuţie (READY): are toate resursele necesare rulării, mai puţin procesorul;
aşteaptă, într-un şir de aşteptare pentru a i se aloca CPU spre a fi executat;
• c) blocat (WAIT): are nevoie şi de alte resurse; aşteaptă să i se aloce memorie, sau terminarea
unei operaţii I/O, producerea unui eveniment extern, trecerea unui anumit interval de timp,
etc.
• d) inactiv: procesului i s-au atribuit de catre sistemul de operare doar un identificator (nume),
o zona de cod si o zona pentru memoria stiva.
9.Mecanisme de control a concurentei.Semafoare
In practica aplicatiile concurente atat la nivel de system de operare cat si de nivel
program s-au proiectat si implementat folosindu-se diverse mecanisme de control al
concurentei.
Conceptul de semafor a fost introdus de Dijkstra, pentru a facilita sincronizarea
proceselor prin protejarea sectiunilor critice si asigurarea accesului exclusive la resursele pe
care procesele le acceseaza.
Sectiunile critice sunt secvente de instructiuni care pot genera race-condition si a caror executie
de catre mai multe procese trebuie controlata:
Formal un semafor se poate defini ca o pereche (v(s),C(s)) unde:
-v(s) este valoarea semaforului –un numar intreg a carui valoare poate varia pe durata
executiei, initializabil cu 1 sau 0 (TRUE sau FALSE)
-c(s) este o coada de asteptare la semafor –contine referinte la procesele care asteapta la
semafor s; initial coada este vida, iar disciplina cozii depinde de sistemul de operare (LIFO, FIFO,
prioritati, etc)
Fiecarei sectiuni critice trebuie sa I se aloce un semafor
In UNIX notiunea de semafor a fost generalizata prin posibilitatea de a executa mai multe
operatii asupra unui semafor, inclusiv incrementare-decrementare cu valori diferite de 1.
Notatie adaptata pentru definirea si atribuirea valorilor unui semafor:
Var semaphore s==x
-daca este prezenta optiunea when atunci s este executata numai daca B este adevarata

10. Ce se intelege prin eveniment in context concurent ?


eveniment - generat de o interfaţă grafică sau de un ceas.
Eveniment este utilizat mai ales în legătură cu funcţionarea interfeţelor grafice utilizator
(GUI – Graphics User Interface). Sunt bine cunoscute exemplele:
-interfeţele grafice (platformele Microsoft Windows)
- interfeţele de tip X-window (platforme din familia Unix);
- platformele Java
Utilizatorul unui GUI provoacă un eveniment atunci când acţionează din exterior asupra
lui prin intermediul tastaturii, a mouse-ului, track-ball-ului sau a altor periferice specifice.

Efecte:
- modificarea conţinutului informaţiei unuia dintre obiectele grafice de
pe monitor;
- redimensionarea unei ferestre;
- închiderea unei aplicaţii prin distrugerea ferestrei ei principale, etc.
Aceste evenimente sunt prelucrate, de către sistemul de programe aferent,
într-o manieră asincronă.
• Conceptul principal în jurul căruia gravitează tratarea evenimentelor este
coada de evenimente.
• Prelucrarea acestei cozi se face prin intermediul buclei de evenimente.

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