Semaphore (programozás)
Szemáram meghatározása
A szemafor olyan tárgy, amellyel három műveletet végezhet el.
Tegyük fel, hogy létezik egy ilyen kódszelvény:
Ezután legfeljebb öt szál egyszerre végezheti el a DoSomething () függvényt.
Bonyolultabb szemaforákban egy sor használható; míg a szemaforból kiszabaduló szálak pontosan azon a sorrenden mennek át a szemaforon, amelyben az enter () nevet nevezik.
A szemaforák használata
Íme néhány olyan probléma, amelyet a szemaforák megoldhatnak.
- a kód meghatározott szakaszainak egyidejű végrehajtásának tilalma;
- alternatív hozzáférés egy kritikus erőforráshoz (olyan fontos erőforrás, amelyhez egyidejű hozzáférés nem lehetséges).
A következő példa bemutatja, hogyan kell konfigurálni az alternatív hozzáférést a konzolhoz.
Ez a kód segít elkerülni a jegyzéket
Szemaforproblémák
Először írhatsz egy programot "szemafor szivárgással" az enter () meghívásával, és elfelejtve a hívás () meghívását. Kevésbé gyakori hibák fordulnak elő, ha kétszer a szabadságot () hívják.
Másodszor, a szemaforák tele vannak a szálak kölcsönös blokkolásával. Ez a kód különösen veszélyes:
Harmadszor, továbbra is fennáll a probléma a szemaforok eljárásainak szinkronizálásával. Például a következő helyzet lehetséges: két folyamat várja a szemafor kiadását. Miután a szemafor megszabadult, az első folyamat "megtanulja" erről, de nincs ideje csökkenteni a számlálót, hogy az ellenőrzés átkerül a második folyamatba. A második folyamat is megtudja a szemafor megjelenését, csökkenti a számlálót, és belép a kód védett részébe. Itt a vezérlés átkerül az első folyamatba, az egyik ismét csökkenti a számlálót, és belép a kód védett területébe. Ennek eredményeképpen a megengedett számú folyamatot meghaladjuk.
Ez a probléma nem rendelkezik algoritmikus megoldással. Ez lehetővé tette, hogy keresse meg a várakozási eljárás egy kritikus szakaszban, ami nem engedélyezett váltani a folyamat egy folyamat bármelyik programozási technikák, mint például ellenőrzése a zászlót, és hogy növelje meg egyetlen gépi utasítás.
Külső linkek
Nézd meg, mi a "Semaphore (programming)" a következő szótárakban:
Párhuzamos programozás - szekció programozással kapcsolatos tanulmány és fejlesztési módszerek és eszközök: a) megfelelő leírását természetes párhuzamossága programok mintájára a számítógép és számítógép-vezérelt rendszerek és folyamatok, b) az információfeldolgozás párhuzamosítását ... Encyclopaedia of Mathematics
Osztály (programozás) - Ez a kifejezés más jelentésekkel rendelkezik, lásd Osztály. A programozás egy osztálya módszerek és funkciók egy csoportja. Más absztrakt metaclass adattípusok, interfészek, struktúrák, számlálások jellemzik a saját, mások ... ... Wikipedia
Interfész (objektum-orientált programozás) - Ez a kifejezés más jelentésekkel rendelkezik, lásd: Interfész (értékek). Az interfész (a latin inter "between" és az arc "felülete") szemantikus és szintaktikai konstrukciója a program kódjában, amelyet meg kell adni ... ... Wikipedia
Objektum (programozás) - Ez a kifejezés más jelentésekkel rendelkezik, lásd Objektum (értékek). Egy programozási objektum egy virtuális térben lévő entitás, amelynek bizonyos állapota és viselkedése adott tulajdonságok tulajdonságait (attribútumokat) és ... ... Wikipedia
Struktúra (programozás) - Ez a kifejezés más jelentésekkel rendelkezik, lásd: Struktúra (értékek). A struktúra a legtöbb programozási nyelv megtervezése, lehetővé téve a különböző típusú változók elhelyezését. A Pascal család szerkezetének nyelvén ... ... Wikipedia
Blokkolás (programozás) - Ez a kifejezés más jelentésekkel rendelkezik, lásd: Zárolás. A számítástechnikában a lezárás olyan szinkronizáló mechanizmus, amely lehetővé teszi a megosztott erőforráshoz való kizárólagos hozzáférést több szál között. Zárak egyirányban ... ... Wikipedia
GOST 19781-90: Információfeldolgozó szoftver nyújtása. Feltételek és fogalommeghatározások - Terminológia GOST 19781 90: Információfeldolgozó szoftver nyújtása. Feltételek és fogalmak A dokumentum eredeti példánya: 9. Abszolút program Nem áthelyezhető program Gépi nyelvű program, amelynek végrehajtása attól függ ... ... A normatív és műszaki dokumentáció feltételeinek szótárai
Az interprocess kommunikáció (IP) egy olyan módszer, amely egy vagy több folyamatban több szál közötti adatcserére szolgál. A folyamatok egy vagy több hálózat által csatlakoztatott számítógépen futtathatók. Az IPC módjai megosztottak ... ... Wikipedia