A szemafor mikor nem használható?
Az üzenet küldője: Horváth Ágnes Fanni
Az üzenet címzettje: Ismeretlen válaszoló
Az elküldés időpontja: ma 11:21
Az üzenet oka: A kérdésre írt válasz: A szemafor mikor nem használható?
"Ha nem jön a vonat..."
Az üzenet szövege: Parasztfasz.
Te meg tudatlan vagy.
Melyik szemaforra gondolsz?
Csak mert van egy pár...
jó-jó tudom, hogy a kategória meg minden, de sokan írnak össze vissza kategóriákat nem figyelembe-véve, így konkretizálhattál volna.
Amúgy wikipedia leírja.
Na jó, nem volt igazam, utólag belátom, kategóriába tetted fel. bocsánat.
De a leveled paraszt volt.
Szerintem számtalan helyzet elképzelhető, amikor nem megfelelően működik. Legtöbbször ez esetben is megoldható természetesen valamiféle programozási trükkel a használat, de a hagyományos megoldások problémákat okozhatnak.
A szemafor lényege, hogy egy logikai reteszként meggátolja, hogy konkurrens folyamatok adott műveletet végrehajthassanak, míg azokat éppen más folyamat használja. Szemafor lehet egy fájlrendszer valamilyen eleme, vagy akár belső memória változó.
Ebből következik, hogy azokban az esetekben nincs értelme használni, ha a konkurrens folyamatok nem mindegyike kezeli a szemafort, vagy némelyike másképp kezeli, mint a többi. Akkor se mindig használható, ha a szemaforok kereszt reteszelődése miatt a rendszer holtpontra (végtelen ciklusba) juthat.
Pl. Első folyamat vár a második folyamat által reteszelt 'A'-szemaforra, miközben a második folyamat vár 'B'-szemaforra, amit viszont előzőleg valami okból kifolyólag az A reteszelt. Rókafogta csuka, egyik nem szabadulhat a másik miatt.
Szintén nem alkalmazható akkor, ha a szemafor változóját tároló statikus vagy dinamikus memóriaterület/fájl más folyamat által véletlenül felülíródhat.
(Pl. dinamikus szemafor változó esetén egy megszakítási rutinban vagy egy szubrutinban vagyunk. Ilyenkor a veremtármutató megváltozik, így a szemafor relatív helye is. Ha ezt a kérdéses folyamat nem tudja, akkor téves adatot módosít, miközben a valódi szemafor értéke változatlan marad.
Statikus változó esetén is szükséges a kellő körültekintés, hiszen pl. védett virtuális módban nem minden esetben a valódi memória tartalom látszik a megadott helyen. Ilyenkor a szemafor természetesen a konkurrens folyamatok egy része számára használhatatlan.
Jól értettem, hogy a kérdésed erre vonatkozott?
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!