1 / 50

Kölcsönös kizárás (bináris és nembináris szemaforok)

Kölcsönös kizárás (bináris és nembináris szemaforok).

eagan-oneil
Download Presentation

Kölcsönös kizárás (bináris és nembináris szemaforok)

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. 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ásokKö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ásokKö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ásokKölcsönös kizárás szemafor • 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

  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 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

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

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

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

  20. szemafor termelõ folyamat közös adat- terület fogyasztó folyamat 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. JÓ EZ ??

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

  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 • 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 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 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. 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 P(ÜRES); TELE ÜRES

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

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

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

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

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

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

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

  48. S termelõ folyamat közös adat- terület fogyasztó folyamat 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); TELE ÜRES

  49. S termelõ folyamat közös adat- terület fogyasztó folyamat 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); TELE ÜRES

  50. S termelõ folyamat közös adat- terület fogyasztó folyamat 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); TELE ÜRES

More Related