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

Kapcsolódó cikkek