Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Kölcsönös kizárás (bináris és nembináris szemaforok) Több egymással párhuzamosan futó folyamat vagy szál gyakran kommunikál közösen használt memóriaterületek.

Hasonló előadás


Az előadások a következő témára: "Kölcsönös kizárás (bináris és nembináris szemaforok) Több egymással párhuzamosan futó folyamat vagy szál gyakran kommunikál közösen használt memóriaterületek."— Előadás másolata:

1 Kölcsönös kizárás (bináris és nembináris szemaforok) Több egymással párhuzamosan futó folyamat vagy szál gyakran kommunikál közösen használt memóriaterületek segítségével. Természetesen ez nem jelenti azt, hogy ezek a területek egyidejűleg is elérhetőek lennének a folyamatok számára, ez igen veszélyes lenne. A közös memória területek tehát non-preemptív erőforrásoknak tekinthetők. Az egyidejű hozzáférés kizárása szemaforok segítségével történik. A továbbiakban a szemaforok működését két klasszikus példával illusztráljuk: –Termelő-fogyasztó probléma –Postaláda kezelés

2 TERMELŐ - FOGYASZTÓ

3 Közösen használt erõforrások Kölcsönös kizárás Termelõ / fogyasztó probléma termelõ folyamat közös adat- terület fogyasztó folyamat

4 Közösen használt erõforrások Kölcsönös kizárás A közös adatterületet (KÖZÖS ERÕFORRÁS) egyszerre csak egy folyamat használhatja (KÖLCSÖNÖS KIZÁRÁS) termelõ folyamat közös adat- terület fogyasztó folyamat

5 Közösen használt erõforrások Kölcsönös kizárás A közös adatterületet (KÖZÖS ERÕFORRÁS) egyszerre csak egy folyamat használhatja (KÖLCSÖNÖS KIZÁRÁS) Vezérlés: SZEMAFOR segítségével Kölcsönös kizárás igénye nem csak közös memória esetén lép fel; pl. nyomtató közös használata termelõ folyamat közös adat- terület fogyasztó folyamat szemafor

6 Mielõtt a folyamat használni kezdené a közös erõforrást, ellenõriznie kell, hogy az szabad-e. (Ezt az adott közös erõforráshoz rendelt szemafor jelzi.) CSAK akkor kezdheti el használni, ha a szemafor szabadot jelzett, ellenkezõ esetben várakoznia kell! termelõ folyamat közös adat- terület fogyasztó folyamat szemafor

7 1. a szemafor olvasása termelõ folyamat közös adat- terület fogyasztó folyamat szemafor

8 1. a szemafor olvasása 2. a beolvasott érték vizsgálata termelõ folyamat közös adat- terület fogyasztó folyamat szemafor

9 1. a szemafor olvasása 2. a beolvasott érték vizsgálata 3. ha szabad: a szemafor foglaltra állítása termelõ folyamat közös adat- terület fogyasztó folyamat szemafor

10 1. a szemafor olvasása 2. a beolvasott érték vizsgálata 3. ha szabad: a szemafor foglaltra állítása 4. ha foglalt: vissza 1-re termelõ folyamat közös adat- terület fogyasztó folyamat szemafor

11 1. a szemafor olvasása 2. a beolvasott érték vizsgálata 3. ha szabad: a szemafor foglaltra állítása 4. ha foglalt: vissza 1-re 5. az erõforrás használata (írás a közös memóriába) termelõ folyamat közös adat- terület fogyasztó folyamat szemafor

12 1. a szemafor olvasása 2. a beolvasott érték vizsgálata 3. ha szabad: a szemafor foglaltra állítása 4. ha foglalt: vissza 1-re 5. az erõforrás használata (írás a közös memóriába) 6. a szemafor szabadra állítása termelõ folyamat közös adat- terület fogyasztó folyamat szemafor

13 1. a szemafor olvasása 2. a beolvasott érték vizsgálata 3. ha szabad: a szemafor foglaltra állítása 4. ha foglalt: vissza 1-re 5. az erõforrás használata (írás a közös memóriába) 6. a szemafor szabadra állítása termelõ folyamat közös adat- terület fogyasztó folyamat szemafor

14 1. a szemafor olvasása 2. a beolvasott érték vizsgálata vizsgálata 3. ha szabad: a szemafor foglaltra állítása 4. ha foglalt: vissza 1-re 5. az erõforrás használata (írás a közös memóriába) 6. a szemafor szabadra állítása termelõ folyamat közös adat- terület fogyasztó folyamat szemafor

15 1. a szemafor olvasása 2. a beolvasott érték vizsgálata vizsgálata 3. ha szabad: a szemafor foglaltra állítása foglaltra állítása 4. ha foglalt: vissza 1-re 5. az erõforrás használata (írás a közös memóriába) 6. a szemafor szabadra állítása termelõ folyamat közös adat- terület fogyasztó folyamat szemafor

16 1. a szemafor olvasása 2. a beolvasott érték vizsgálata vizsgálata 3. ha szabad: a szemafor foglaltra állítása foglaltra állítása 4. ha foglalt: vissza 1-re 5. az erõforrás használata (írás a közös memóriába) 6. a szemafor szabadra állítása termelõ folyamat közös adat- terület fogyasztó folyamat szemafor

17 1. a szemafor olvasása 2. a beolvasott érték vizsgálata vizsgálata 3. ha szabad: a szemafor foglaltra állítása foglaltra állítása 4. ha foglalt: vissza 1-re 5. az erõforrás használata (írás a közös memóriába) (olv. a közös memóriából) 6. a szemafor szabadra állítása termelõ folyamat közös adat- terület fogyasztó folyamat szemafor

18 1. a szemafor olvasása 2. a beolvasott érték vizsgálata vizsgálata 3. ha szabad: a szemafor foglaltra állítása foglaltra állítása 4. ha foglalt: vissza 1-re 5. az erõforrás használata (írás a közös memóriába) (olv. a közös memóriából) 6. a szemafor szabadra állítása 6. a szemafor szabadra áll. termelõ folyamat közös adat- terület fogyasztó folyamat szemafor

19 1. a szemafor olvasása 2. a beolvasott érték vizsgálata vizsgálata 3. ha szabad: a szemafor foglaltra állítása foglaltra állítása 4. ha foglalt: vissza 1-re 5. az erõforrás használata (írás a közös memóriába) (olv. a közös memóriából) 6. a szemafor szabadra állítása 6. a szemafor szabadra áll. termelõ folyamat közös adat- terület fogyasztó folyamat szemafor

20 1. a szemafor olvasása 2. a beolvasott érték vizsgálata vizsgálata 3. ha szabad: a szemafor foglaltra állítása foglaltra állítása 4. ha foglalt: vissza 1-re 5. az erõforrás használata (írás a közös memóriába) (olv. a közös memóriából) 6. a szemafor szabadra állítása 6. a szemafor szabadra áll. JÓ EZ ?? termelõ folyamat közös adat- terület fogyasztó folyamat szemafor

21 termelõ folyamat közös adat- terület fogyasztó folyamat szemafor 1. a szemafor olvasása 1. a szemafor olvasása 2. a beolvasott érték 2. a beolvasott érték vizsgálata vizsgálata 3. ha szabad: a szemafor 3. ha szabad: a szemafor foglaltra állítása foglaltra állítása 4. ha foglalt: vissza 1-re 4. ha foglalt: vissza 1-re 5. az erõforrás használata 5. az erõforrás használata (írás a közös memóriába) (olv. a közös memóriából) 6. a szemafor szabadra állítása 6. a szemafor szabadra áll.

22 1. a szemafor olvasása 1. a szemafor olvasása 2. a beolvasott érték 2. a beolvasott érték vizsgálata vizsgálata 3. ha szabad: a szemafor 3. ha szabad: a szemafor foglaltra állítása foglaltra állítása 4. ha foglalt: vissza 1-re 4. ha foglalt: vissza 1-re 5. az erõforrás használata 5. az erõforrás használata (írás a közös memóriába) (olv. a közös memóriából) 6. a szemafor szabadra állítása 6. a szemafor szabadra áll. KRITIKUS SZEKCIÓ, kritikus szakasz, kritikus régió OSZTHATATLAN MÛVELET (PRIMITÍV) termelõ folyamat közös adat- terület fogyasztó folyamat szemafor

23 P és V primitívek Primitív: megszakíthatatlan (oszthatatlan) mûvelet P primitív: FOGLALTTÁ ÁLLÍTÁS V primitív: SZABADDÁ ÁLLÍTÁS

24 P(S); termelõ folyamat közös adat- terület fogyasztó folyamat S

25 P(S); ÍRÁS A MEMÓRIÁBA termelõ folyamat közös adat- terület fogyasztó folyamat S

26 P(S); ÍRÁS A MEMÓRIÁBA V(S); termelõ folyamat közös adat- terület fogyasztó folyamat S

27 P(S);P(S); ÍRÁS A MEMÓRIÁBA V(S); termelõ folyamat közös adat- terület fogyasztó folyamat S

28 P(S);P(S); ÍRÁS A MEMÓRIÁBAOLV. A MEMÓRIÁBÓL V(S); termelõ folyamat közös adat- terület fogyasztó folyamat S

29 P(S);P(S); ÍRÁS A MEMÓRIÁBAOLV. A MEMÓRIÁBÓL V(S);V(S); termelõ folyamat közös adat- terület fogyasztó folyamat S

30 P(S);P(S); ÍRÁS A MEMÓRIÁBAOLV. A MEMÓRIÁBÓL V(S);V(S); termelõ folyamat közös adat- terület fogyasztó folyamat S

31 POSTALÁDA

32 Postaláda kezelés Postaláda: olyan közös adatterület, ahová EGYNÉL TÖBB (pl. N db.) üzenet írható termelõ folyamat közös adat- terület fogyasztó folyamat S

33 Postaláda: olyan közös adatterület, ahová EGYNÉL TÖBB (pl. N db.) üzenet írható Újabb szemaforok a vezérléshez: TELE ÜRES Postaláda kezelés termelõ folyamat közös adat- terület fogyasztó folyamat S TELEÜRES

34 Postaláda kezelés Postaláda: olyan közös adatterület, ahová EGYNÉL TÖBB (pl. N db.) üzenet írható 3 db. szemafor kell a vezérléséhez –S: a kölcsönös kizárást megvalósító szemafor (bináris; 0=foglalt; 1=szabad; kezdeti értéke: szabad) –TELE: a tele helyek száma (nem bináris; értéke 0 és N között lehet; kezdeti értéke:0) –ÜRES: az üres helyek száma (nem bináris; értéke 0 és N között lehet; kezdeti értéke:N)

35 P és V primitívek Primitív: megszakíthatatlan (oszthatatlan) mûvelet P primitív: a paraméterül kapott szemafor értékének EGGYEL CSÖKKENTÉSE (bináris szemafor esetén ez a FOGLALTTÁ ÁLLÍTÁS) V primitív: a paraméterül kapott szemafor értékének EGGYEL NÖVELÉSE (bináris szemafor esetén ez a SZABADDÁ ÁLLÍTÁS) Feltétel: –SZABAD = 1 –FOGLALT = 0

36 termelõ folyamat közös adat- terület fogyasztó folyamat szemafor 1. a szemafor olvasása 1. a szemafor olvasása 2. a beolvasott érték 2. a beolvasott érték vizsgálata vizsgálata 3. ha szabad: a szemafor 3. ha szabad: a szemafor foglaltra állítása foglaltra állítása 4. ha foglalt: vissza 1-re 4. ha foglalt: vissza 1-re 5. az erõforrás használata 5. az erõforrás használata (írás a közös memóriába) (olv. a közös memóriából) 6. a szemafor szabadra állítása 6. a szemafor szabadra áll.

37 1. a szemafor olvasása 1. a szemafor olvasása 2. a beolvasott érték 2. a beolvasott érték vizsgálata nagyobb-e 0-nál? 3. ha szabad: a szemafor 3. ha igen: a szemafor foglaltra állításaértékének csökkentése 4. ha foglalt: vissza 1-re 4. ha nem: vissza 1-re

38 P és V primitívek Primitív: megszakíthatatlan (oszthatatlan) mûvelet P primitív: a paraméterül kapott szemafor értékének EGGYEL CSÖKKENTÉSE (bináris szemafor esetén ez a FOGLALTTÁ ÁLLÍTÁS) V primitív: a paraméterül kapott szemafor értékének EGGYEL NÖVELÉSE (bináris szemafor esetén ez a SZABADDÁ ÁLLÍTÁS) Feltétel: –SZABAD = 1 –FOGLALT = 0

39 termelõ folyamat közös adat- terület fogyasztó folyamat S TELEÜRES

40 P(ÜRES); termelõ folyamat közös adat- terület fogyasztó folyamat S TELEÜRES

41 P(ÜRES); P(S); termelõ folyamat közös adat- terület fogyasztó folyamat S TELEÜRES

42 P(ÜRES); P(S); ÍRÁS A MEMÓRIÁBA termelõ folyamat közös adat- terület fogyasztó folyamat S TELEÜRES

43 P(ÜRES); P(S); ÍRÁS A MEMÓRIÁBA V(S); termelõ folyamat közös adat- terület fogyasztó folyamat S TELEÜRES

44 P(ÜRES); P(S); ÍRÁS A MEMÓRIÁBA V(S); V(TELE); termelõ folyamat közös adat- terület fogyasztó folyamat S TELEÜRES

45 P(ÜRES);P(TELE); P(S); ÍRÁS A MEMÓRIÁBA V(S); V(TELE); termelõ folyamat közös adat- terület fogyasztó folyamat S TELEÜRES

46 P(ÜRES);P(TELE); P(S);P(S); ÍRÁS A MEMÓRIÁBA V(S); V(TELE); termelõ folyamat közös adat- terület fogyasztó folyamat S TELEÜRES

47 P(ÜRES);P(TELE); P(S);P(S); ÍRÁS A MEMÓRIÁBAOLV. A MEMÓRIÁBÓL V(S); V(TELE); termelõ folyamat közös adat- terület fogyasztó folyamat S TELEÜRES

48 P(ÜRES);P(TELE); P(S);P(S); ÍRÁS A MEMÓRIÁBAOLV. A MEMÓRIÁBÓL V(S);V(S); V(TELE); termelõ folyamat közös adat- terület fogyasztó folyamat S TELEÜRES

49 P(ÜRES);P(TELE); P(S);P(S); ÍRÁS A MEMÓRIÁBAOLV. A MEMÓRIÁBÓL V(S);V(S); V(TELE);V(ÜRES); termelõ folyamat közös adat- terület fogyasztó folyamat S TELEÜRES

50 P(ÜRES);P(TELE); P(S);P(S); ÍRÁS A MEMÓRIÁBAOLV. A MEMÓRIÁBÓL V(S);V(S); V(TELE);V(ÜRES); termelõ folyamat közös adat- terület fogyasztó folyamat S TELEÜRES


Letölteni ppt "Kölcsönös kizárás (bináris és nembináris szemaforok) Több egymással párhuzamosan futó folyamat vagy szál gyakran kommunikál közösen használt memóriaterületek."

Hasonló előadás


Google Hirdetések