1 / 23

PARTEA II SISTEME DE OPERARE

Ştefan Stăncescu. PARTEA II SISTEME DE OPERARE. CURSUL 7 COMUNICATIA INTRE PROCESE SI EXCLUDEREA RECIPROCA. COMUNICATIA INTRE PROCESE SI EXCLUDEREA RECIPROCA. SISTEM DE CALCUL = resurse PROCESELE = consumatori MULTIPROCESAREA = mai multe procese

gizi
Download Presentation

PARTEA II SISTEME DE OPERARE

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Ştefan Stăncescu PARTEA II SISTEME DE OPERARE CURSUL 7 COMUNICATIA INTRE PROCESE SI EXCLUDEREA RECIPROCA

  2. COMUNICATIA INTRE PROCESE SI EXCLUDEREA RECIPROCA • SISTEM DE CALCUL = resurse • PROCESELE = consumatori • MULTIPROCESAREA = • mai multe procese • pe aceleasi resurse de calcul • MULTIPROGRAMAREA = • comunicatia intre procese ruland simultan • aparent independente

  3. COMUNICATIA INTRE PROCESE SI EXCLUDEREA RECIPROCA • MULTIPROGRAMAREA = • comunicatia intre procese independente • dar concurand pe aceleasi resurse • procesele se pot influenta reciproc • NECESARE MECANISME • DE COMUNICARE INTRE PROCESE

  4. COMUNICATIA INTRE PROCESE SI EXCLUDEREA RECIPROCA • RULAREA DETERMINATA = • obtinerea acelorasi rezultate • independent deconditiile rularii • (pentru aceleasi date de intrare) • ORICE RELUARE A RULARII = • ACELEASI REZULTATE

  5. COMUNICATIA INTRE PROCESE SI EXCLUDEREA RECIPROCA • IN MULTIPROGRAMARE • orice fac celelalte progame, • programul curent ruleaza identic • FOLOSIREA RESURSELOR COMUNE • perturba rularea proprie • resursele pot pastra memoria • din alte procese

  6. COMUNICATIA INTRE PROCESE SI EXCLUDEREA RECIPROCA • PREVENIREA INTERFERENTEI • prin mecanisme de comunicare • intre procese • care folosesc resurse comune • MECANISME DE • EXCLUDERE MUTUALA • (dialog civilizat intre procese pentru coordonarea folosirii resurselor comune)

  7. COMUNICATIA INTRE PROCESE SI EXCLUDEREA RECIPROCA • Printer spooler (PRIM = 1) • A: • FINE=3 FINE=4 • B: • FINE=3 FINE=4

  8. COMUNICATIA INTRE PROCESE SI EXCLUDEREA RECIPROCA • ZONA CRITICA • zona de program • care exploateaza o sursa comuna • Inainte de a ajunge in zona critica • programele trebuie sa comunice intre ele pentru a-si coordona • folosirea resursei comune • DIN PROPRIA ZONA CRITICA

  9. COMUNICATIA INTRE PROCESE SI EXCLUDEREA RECIPROCA • REGULI DE ACCES IN ZONA CRITICA • Să nu existe 2 procese simultan în propriile secţiuni critice. • Procesele să fie determinate, adică să producă rezultate identice, indiferent de împrejurările de rulare, referitoare la caracteristici hardware sau număr şi caracteristici de procese concurente. • Nici un proces care rulează în afara secţiunii critice să nu blocheze alte procese de a folosi zona critică. • Nici un proces să nu aştepte arbitrar de mult până la intrarea în secţiunea critică proprie.

  10. COMUNICATIA INTRE PROCESE SI EXCLUDEREA RECIPROCA • REGULA CEA MAI SIMPLA (?) • Desfiintarea mecanismului de intrerupere (H/W) • Procesul curent impiedica intreruperea sa • de catre alte procese • inainte de a intra in ZC => blocare IT • dupa folosirea ZC => deblocare IT • Dezavantaj – nedeblocarea la iesire din ZC! • nu respecta regulile 3 si 4

  11. COMUNICATIA INTRE PROCESE SI EXCLUDEREA RECIPROCAMECANISME CU TESTARE - POLLING • VARIABILE DE ÎNCHIDERE-POARTĂ • PROCES A PROCES B • EROARE: • B intrerupe A inainte ca A sa faca LOCK=1 => Regula 1 cade

  12. COMUNICATIA INTRE PROCESE SI EXCLUDEREA RECIPROCAMECANISME CU TESTARE - POLLING • ALTERNARE FORŢATĂ CU VARIABILĂ COMUTATOR COMUNĂ • PROCES A PROCES B • EROARE: • A pune comutator=2 si sta mult in ZNC • B trece rapid ZC si vrea iar ZC => Regula 3 cade

  13. COMUNICATIA INTRE PROCESE SI EXCLUDEREA RECIPROCAMECANISME CU TESTARE - POLLING • ALTERNARE CU VARIABILĂ LOCALĂ VIZIBILĂ • PROCES A PROCES B • EROARE: • A si B trec simultan task_1=INT si task_2=INT • A si B blocate reciproc => Regula 4 cade

  14. COMUNICATIA INTRE PROCESE SI EXCLUDEREA RECIPROCAMECANISME CU TESTARE - POLLING • ALTERNARE CU VARIABILĂ LOCALĂ VIZIBILĂ • PROCES A PROCES B(12) • EROARE: • A si B sincrone • A si B blocate reciproc => Regula 4 cade

  15. COMUNICATIA INTRE PROCESE SI EXCLUDEREA RECIPROCAMECANISME CU TESTARE - POLLING • METODA DEKKER • PROCES A

  16. COMUNICATIA INTRE PROCESE SI EXCLUDEREA RECIPROCAMECANISME CU TESTARE - POLLING • METODA PETERSON • Enter_region: • {/*2 constante cu ordinea proceselor • alt_proces=not ast_proces; • vreau(ast_proces)="1"; • /* procesul curent doreste să intre în zona critică */ • activ=ast_proces; • /* sunt pe cale să intru şi altul vrea să intre */ • while((activ==ast_proces) && (vreau(alt_proces)==1)) • {} /* ZC • } • Leave_region: •  { vreau[ast_proces]=0; } /* indică ieşirea din zona critică */

  17. COMUNICATIA INTRE PROCESE SI EXCLUDEREA RECIPROCAMECANISME CU TESTARE - POLLING • METODA H/W CU TEST & SET LOCK - TSL • enter_region: • CHECK: MOV AL,1 ; prevede interzicerea altor procese • LOCK: XCHG FLAG,AL ; TSL pentru XCHG • TEST AL,AL ; examinează starea „0” a variabile FLAG • JNZ CHECK ; aşteaptă dacă alt procesor deţine resurs • zonă critică, în care se exploatează o resursă comună protejată de variabila FLAG • leave_region: • MOV FLAG,#0 ; iniţializează FLAG

  18. COMUNICATIA INTRE PROCESE SI EXCLUDEREA RECIPROCAMECANISME CU BLOCARE • EXCLUDEREA PRIN SLEEP-WAKEUP • SLEEP - blocheaza proces curent • WAKEUP(p) - trezeste proces p • EXE BENEF • EXE produce 1 produs <----- • SLEEP <--------(DA) Magazia plina? | -> Magazia goala? (DA) -----------------> SLEEP • 1 produs => magazie | | 1 produs <= magazie • Actualizare stare magazie | | Actualizare stare magazie • WAKEUP(BENEF)I-a intrare in magazia goala? | | I-a iesire din magazia plina?-WAKEUP(EXE) • NU? -----------------> | NU? • <--- BENEF consuma 1 produs

  19. COMUNICATIA INTRE PROCESE SI EXCLUDEREA RECIPROCAMECANISME CU BLOCARE • EXCLUDEREA RECIPROCA PRIN SEMAFOARE • Semafor: variabila care numără trezirile • pentru a ţine cont de ele apoi (le memoreaza). • de fapt, un contor. • Asupra unui semafor acţionează două funcţii : • DOWN(s) : testează semaforul s : • - dacă s>0 decrementează semaforul s şi continuă procesul • - dacă s=0 blochează procesul curent • UP(s) : incrementează semaforul s.

  20. COMUNICATIA INTRE PROCESE SI EXCLUDEREA RECIPROCAMECANISME CU BLOCARE • EXCLUDEREA RECIPROCA PRIN SEMAFOARE • Exemplu : o magazie cu un producător şi un beneficiar. • Vom folosi 3 semafoare: • full : număr de locuri ocupate în magazie. Initial full=0 ;magazia goală • empty : număr de locuri libere în magazie. Initial empty=n ;capacitatea magaziei • mutex : asigura accesul exclusiv la magazie. Initial mutex=1 ;permite accesul în zona critică

  21. COMUNICATIA INTRE PROCESE SI EXCLUDEREA RECIPROCAMECANISME CU BLOCARE • EXCLUDEREA RECIPROCA PRIN MONITOARE

  22. COMUNICATIA INTRE PROCESE SI EXCLUDEREA RECIPROCAMECANISME CU BLOCARE EXCLUDEREA RECIPROCA EXEMPLU 22

  23. COMUNICATIA INTRE PROCESE SI EXCLUDEREA RECIPROCAMECANISME CU BLOCARE EXCLUDEREA RECIPROCA PRIN EXEMPLE Dining philosophers (Dijkstra): http://www.isi.edu/~faber/cs402/notes/lecture8.pdf 23

More Related