A számítástechnikában a párhuzamosság a rendszerek azon tulajdonsága, amelyekben egyszerre több számítást hajtanak végre, és ennek során esetleg kölcsönhatásba lépnek egymással. A számítások futhatnak több magon ugyanazon a chipen , megelőző időmegosztási szálakkal ugyanazon a processzoron, vagy futhatnak fizikailag különálló processzorokon . Számos matematikai modellt fejlesztettek ki párhuzamos számítások elvégzésére, beleértve a Petri-hálókat , a folyamatszámítást , a párhuzamos véletlen hozzáférésű számítási modelleket és a szereplőmodelleket .
Megjegyzés - Az orosz nyelvű irodalomban a "párhuzamosság" és a "versenyképesség" kifejezéseket gyakran összekeverik. . Mindkét a kifejezések a folyamatok egyidejűségét jelentik, de az első fizikai szintű (több folyamat párhuzamos végrehajtása, amely csak a végrehajtás sebességének növelését célozza megfelelő hardveres támogatás használatával), a második pedig az egyik a logikai szint (a folyamatokat függetlenként azonosító rendszertervezési paradigma , amely többek között lehetővé teszi azok párhuzamos fizikai végrehajtását, de elsősorban a többszálú programok írásának egyszerűsítését és stabilitásának növelését célozza).
Mivel a párhuzamos rendszerekben végzett számítások kölcsönhatásba lépnek egymással, a lehetséges végrehajtási utak száma rendkívül nagy lehet, és a kapott eredmény nem-determinisztikussá (meghatározatlanná) válhat. A megosztott erőforrások egyidejű használata a nem-determinizmus egyik forrása lehet, ami olyan problémákhoz vezethet, mint például a holtpont vagy az erőforrás-éhezés. [egy]
A párhuzamos rendszerek felépítéséhez megbízható módszereket kell találni a futó folyamatok koordinálására, a kommunikációra, a memória lefoglalására és az ütemezésre a válaszidő minimalizálása és az átviteli sebesség növelése érdekében.
A párhuzamos számítástechnika elmélete az elméleti számítástechnika aktív kutatási területe . Az egyik első ilyen irányú javaslat Carl Adam Petri alapműve volt a Petri- hálókkal kapcsolatban az 1960-as évek elején. A következő években a formalizmusok széles skáláját fejlesztették ki párhuzamos rendszerek modellezésére és leírására.
A párhuzamos rendszerek működésének modellezésére és megértésére már számos formális módszert fejlesztettek ki, többek között: [2]
Ezen párhuzamossági modellek némelyike elsősorban következtetések és specifikációk leírására szolgál, míg mások a fejlesztési ciklus során használhatók, beleértve a tervezést, a megvalósítást, az eredmények igazolását, a tesztelést és a párhuzamos rendszerek szimulációját.
A különböző párhuzamossági modellek elterjedése arra késztetett néhány kutatót, hogy módszereket dolgozzanak ki ezen elméleti modellek kombinálására. Például Lee és Sangiovanni-Vincentelli kimutatta, hogy az úgynevezett "címkézett jelek" modellje közös keretet biztosíthat különböző párhuzamossági modellek denotációs szemantikájának leírására [4] , Nielsen, Sassoon és Winskle pedig kimutatta. hogy a kategóriaelmélet felhasználható a különböző modellek közös megértésére. [5]
Az aktormodell egyidejű reprezentációs tétele meglehetősen általános módot ad a párhuzamos rendszerek leírására, amelyek zártak abban az értelemben, hogy nem kapnak üzenetet kívülről. A párhuzamosság leírásának más módszerei, mint például a folyamatszámítás , leírhatók a kétfázisú véglegesítési protokollt használó aktormodellben. [6] Az S zárt rendszer leírására használt matematikai jelölés jobb közelítést ad, ha egy kezdeti viselkedésből épül fel, amelyet ⊥ S -vel jelölünk , S közelítő viselkedési függvényprogresszív felhasználásával . [7] Ekkor az S jelölése a következőképpen épül fel:
Jelölje S ≡ ⊔ i∈ω progresszió S i (⊥ S )Így S matematikailag kifejezhető az összes lehetséges viselkedésével.
A párhuzamos rendszerek logikai érvelésének biztosítására különféle időbeli logikák használhatók [8] . Némelyikük, mint például a lineáris időbeli logika vagy a számítási fa logika, lehetővé teszi állítások készítését az állapotok sorozatáról, amelyen egy párhuzamos rendszer át tud menni. Mások, mint például a számítási fa cselekvési logikája, a Hennessy-Milner logika vagy a Lamport-féle időbeli cselekvési logika, műveletek sorozatából (állapotváltozásokból) építik fel állításaikat . E logikák fő felhasználása a párhuzamos rendszerek specifikációinak írása. [egy]
Ebben a részben a párhuzamosság két, az angol irodalomban elterjedt fogalmát fogjuk használni, mivel ezek egymással való összehasonlításáról lesz szó. A Concurrency kifejezést "egyidejűségnek", a párhuzamosság kifejezést pedig "párhuzamosságnak" fordítják.
A szimultán programozás magában foglalja a programozási nyelveket és az egyidejű rendszerek megvalósítására használt algoritmusokat. A szimultán programozást általában általánosabbnak tekintik, mint a párhuzamos programozást, mivel tetszőleges dinamikus kommunikációs és interakciós mintákat foglalhat magában, míg a párhuzamos rendszerek leggyakrabban előre meghatározott és jól strukturált kommunikációs mintákat valósítanak meg. A párhuzamos programozás fő céljai a helyesség , hatékonyság , stabilitás . A párhuzamos rendszereket, például az operációs rendszereket és az adatbázis-kezelő rendszereket elsősorban bizonytalan körülmények közötti működésre tervezték, ideértve a hiba utáni automatikus helyreállítást is, ezért nem szabad váratlanul leállniuk. Egyes párhuzamos rendszerek transzparens szimultanitás formájában működnek, amelyben párhuzamos számítási entitások versenyezhetnek ugyanannak az erőforrásnak a használatáért, de ennek a versengésnek a lényege rejtve marad a programozó előtt.
Mivel a párhuzamos rendszerek megosztják az erőforrásokat, jellemzően valamilyen döntőbíróra van szükségük, amely be van építve a megvalósításukba (gyakran a mögöttes hardverbe) az erőforrásokhoz való hozzáférés szabályozásához. A döntőbírók alkalmazása megteremti a bizonytalanság lehetőségét az egyidejű számításoknál, ami a gyakorlat szempontjából nagy jelentőséggel bír, így a helyesség és a hatékonyság biztosítása szempontjából is. Például az arbitrázs nem zárja ki a korlátlan indeterminizmust, amely a modellellenőrzési problémához kapcsolódik , amely az állapottér robbanékonyságának oka, és akár egy végtelen számú állapotú modell kialakulásához is vezethet.
Egyes párhuzamos programozási modellek magukban foglalják a társfolyamatok létrehozását és a determinisztikus szimultanitást . Ezekben a modellekben a folyamatvezérlő szálak kifejezetten megadják időszeleteiket vagy a rendszernek, vagy egy másik folyamatnak.
![]() |
---|