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)

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)"— 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õ folyamat közös adat- terület fogyasztó folyamat Termelõ / fogyasztó probléma

4 Közösen használt erõforrások Kölcsönös kizárás
termelõ folyamat közös adat- terület fogyasztó folyamat 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)

5 Közösen használt erõforrások Kölcsönös kizárás
szemafor termelõ folyamat közös adat- terület fogyasztó folyamat 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

6 szemafor termelõ folyamat közös adat- terület fogyasztó folyamat 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!

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

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

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

10 szemafor termelõ folyamat közös adat- terület fogyasztó folyamat 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

11 szemafor termelõ folyamat közös adat- terület fogyasztó folyamat 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)

12 szemafor termelõ folyamat közös adat- terület fogyasztó folyamat 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

13 szemafor termelõ folyamat közös adat- terület fogyasztó folyamat 1. a szemafor olvasása 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

14 szemafor termelõ folyamat közös adat- terület fogyasztó folyamat 1. a szemafor olvasása a szemafor olvasása 2. a beolvasott érték 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

15 szemafor termelõ folyamat közös adat- terület fogyasztó folyamat 1. a szemafor olvasása a szemafor olvasása 2. a beolvasott érték a beolvasott érték vizsgálata vizsgálata 3. ha szabad: a szemafor 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

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

17 szemafor termelõ folyamat közös adat- terület fogyasztó folyamat 1. a szemafor olvasása a szemafor olvasása 2. a beolvasott érték a beolvasott érték vizsgálata vizsgálata 3. ha szabad: a szemafor ha szabad: a szemafor foglaltra állítása foglaltra állítása 4. ha foglalt: vissza 1-re ha foglalt: vissza 1-re 5. az erõforrás használata 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

18 szemafor termelõ folyamat közös adat- terület fogyasztó folyamat 1. a szemafor olvasása a szemafor olvasása 2. a beolvasott érték a beolvasott érték vizsgálata vizsgálata 3. ha szabad: a szemafor ha szabad: a szemafor foglaltra állítása foglaltra állítása 4. ha foglalt: vissza 1-re ha foglalt: vissza 1-re 5. az erõforrás használata 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 a szemafor szabadra áll.

19 szemafor termelõ folyamat közös adat- terület fogyasztó folyamat 1. a szemafor olvasása a szemafor olvasása 2. a beolvasott érték a beolvasott érték vizsgálata vizsgálata 3. ha szabad: a szemafor ha szabad: a szemafor foglaltra állítása foglaltra állítása 4. ha foglalt: vissza 1-re ha foglalt: vissza 1-re 5. az erõforrás használata 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 a szemafor szabadra áll.

20 JÓ EZ ?? szemafor termelõ folyamat közös adat- terület fogyasztó
1. a szemafor olvasása a szemafor olvasása 2. a beolvasott érték a beolvasott érték vizsgálata vizsgálata 3. ha szabad: a szemafor ha szabad: a szemafor foglaltra állítása foglaltra állítása 4. ha foglalt: vissza 1-re ha foglalt: vissza 1-re 5. az erõforrás használata 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 a szemafor szabadra áll. JÓ EZ ??

21 szemafor termelõ folyamat közös adat- terület fogyasztó folyamat 1. a szemafor olvasása a szemafor olvasása 2. a beolvasott érték a beolvasott érték vizsgálata vizsgálata 3. ha szabad: a szemafor ha szabad: a szemafor foglaltra állítása foglaltra állítása 4. ha foglalt: vissza 1-re ha foglalt: vissza 1-re 5. az erõforrás használata 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 a szemafor szabadra áll.

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

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 S termelõ folyamat közös adat- terület fogyasztó folyamat P(S);

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

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

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

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

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

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

31 POSTALÁDA

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

33 Postaláda kezelés S termelõ folyamat közös adat- terület fogyasztó folyamat TELE ÜRES 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

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 szemafor termelõ folyamat közös adat- terület fogyasztó folyamat 1. a szemafor olvasása a szemafor olvasása 2. a beolvasott érték a beolvasott érték vizsgálata vizsgálata 3. ha szabad: a szemafor ha szabad: a szemafor foglaltra állítása foglaltra állítása 4. ha foglalt: vissza 1-re ha foglalt: vissza 1-re 5. az erõforrás használata 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 a szemafor szabadra áll.

37 1. a szemafor olvasása 1. a szemafor olvasása
2. a beolvasott érték a beolvasott érték vizsgálata nagyobb-e 0-nál? 3. ha szabad: a szemafor ha igen: a szemafor foglaltra állítása értékének csökkentése 4. ha foglalt: vissza 1-re 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 S termelõ folyamat közös adat- terület fogyasztó folyamat TELE ÜRES

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

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

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

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

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

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

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

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

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

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

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


Letölteni ppt "Kölcsönös kizárás (bináris és nembináris szemaforok)"

Hasonló előadás


Google Hirdetések