Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
KiadtaGabi Hegedűsné Megváltozta több, mint 10 éve
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);
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.