Kezdőoldal » Számítástechnika » Programozás » A szemafor mikor nem használható?

A szemafor mikor nem használható?

Figyelt kérdés
2013. ápr. 20. 11:00
 1/7 anonim ***** válasza:
0%
Ha nem jön a vonat...
2013. ápr. 20. 11:09
Hasznos számodra ez a válasz?
 2/7 anonim ***** válasza:

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

[link]


[link]

2013. ápr. 20. 11:24
Hasznos számodra ez a válasz?
 3/7 anonim ***** válasza:

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.

2013. ápr. 20. 11:29
Hasznos számodra ez a válasz?
 4/7 anonim ***** válasza:

Na jó, nem volt igazam, utólag belátom, kategóriába tetted fel. bocsánat.

De a leveled paraszt volt.

2013. ápr. 20. 11:35
Hasznos számodra ez a válasz?
 5/7 anonim ***** válasza:
A szemafor a párhuzamos programozás egy eszköze. Ha szekvenciális programot írsz, akkor nincs rá szükséged.
2013. ápr. 20. 20:07
Hasznos számodra ez a válasz?
 6/7 anonim válasza:
Gyv?
2013. ápr. 22. 17:54
Hasznos számodra ez a válasz?
 7/7 anonim ***** válasza:

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?

2013. ápr. 27. 18:11
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!