A GPSS programozási nyelv

Időkezelés

A szimulációs modellekben az idő jelentése - bár általános, mindennapi fogalom - mégis egy kis tisztázásra szorul. Ebben a fejezetben megismerjük a számítógépes szimulációs modellel kapcsolatos különböző időfajtákat, új időfogalmakat vezetünk be, és részleteiben is tárgyaljuk a GPSS általános állapotrendezésének folyamatát.

Az idő a GPSS-szel leírt szimulációs modell - talán legfontosabb - alkotóelemei közé tartozik. Az alkotóelemek felsorolásában mégsem szerepelt, hiszen nem kimondottan GPSS-képződmény. Mégis, mivel jelentősége oly nagy, foglalkoznunk kell vele.

Ha tekintünk (vagy elképzelünk) egy valódi rendszert, amit majd szimulálni akarunk, láthatjuk, hogy benne a tranzakciók (munkadarabok, ügyiratok, ügyfelek, üzenetek, stb.) időben egymást követően (sorosan) és egymás mellett (párhuzamosan) mozognak a rendszerben. A rendszert kétfajta tényező alkotja: az elemek, és a közöttük húzódó utak, vagy (más szempontból nézve) a kapcsolatok. Az elemekben zajlik le az az elemre jellemző tevékenység, ami a tranzakció odairányításának értelmét adja, aminek végrehajtása a tranzakció futásában szükségszerű. Ez több-kevesebb időt vesz igénybe, és erőforrásokat foglal le.
A szimulációs modellben az elemeket egy-egy tevékenység, a szimulációs programban egy-egy blokk testesíti meg. Az utak pedig vagy a modell elemei közötti kapcsolatokban, a blokkdiagram összekötővonalaiban, vagy pedig speciális elemként jelennek meg. Ugyanis - az idő szempontjából - kétféle elem, és kétféle út van:

A tartós ideig tartó cselekvések és az azonnali cselekvések kezelése különböző módokon történik.

A valóság ideje először a szimulációs modell belső idejére transzformálódik át. A szimulációs modellben az idő nem telik. A szimulációs modell csak időpontokat ismer, és az ezen időpontok közötti időtartamokat. Egy időponthoz tartozó események számára ugyanabban az időpillanatban zajlanak le, függetlenül attól, hogy azok számszerűen hányan vannak és mit jelentenek a valóságban, és függetlenül attól is, hogy feldolgozásukhoz mennyi gépidő szükséges. A szimulációs modell ezt a "szakaszolt" időt úgy kezeli, hogy míg a jelenbeni események között levő tranzakciók mindegyike lehetőség szerint át nem kerül valamelyik listába, addig a belső órát megállítja, de ha már mind átkerült, akkor a belső órát egy pillanat alatt annyival előre állítja, amennyi a jövőbeni események között levő tranzakciók között az első blokk elhagyási ideje (azaz a legkisebb). Ezzel a taktikával a GPSS a való élet folyamatos idődimenzióját diszkrétté (szakaszossá) teszi. (Ugyanezt a taktikát alkalmazza az összes többi ún. diszkrét idejű szimulációs nyelv.)

Második lépésben a szimulációs idő (a modell GPSS programjának aktív közreműködésével) a gépidőre transzformálódik át, tehát újra folytonos lesz. Itt a két idő közötti kapcsolat már igen gyenge, korreláció talán ki sem mutatható. Amíg a szimulációs modell belső ideje szerint az idő nem múlik, addig a számítógép számtalan műveletet végrehajthat azon blokkoknak megfelelően, amelyeken a tranzakció vagy a tranzakciók keresztülhaladnak. Amíg a szimulációs modell belső ideje (nagyot vagy kicsit) ugrik, addig a számítógép csak az óra átállításához szükséges pár műveletet hajtja végre.

Egy szimulációnál míg a szimulációs modell egy időpontot észlel csak, addig percek is eltelhetnek a számítógépben, ami a valóságban esetleg ugyancsak perceket jelent. Ugyanezen szimulációnál a modell belső idejének néhány ugrása egy másodpercet sem vesz igénybe a számítógépen, míg a valóságban napokat jelenthet.

Ha akár az elem feladatának elvégzése, akár az út megtétele a valóságban időt vesz igénybe (l. az ábra a része), akkor:

Ha akár az elem feladatának elvégzése, akár az út megtétele pillanatnyinak tekinthető (l. az ábra b része), akkor:

Az ábra c jelű része ezeket az időtranszformációkat folyamatában mutatja be egy példán: egy vásárló bemegy egy üzletbe, sorban áll a pultnál, majd rákerül a sor. Az eladó leméri, amit kér, majd ezzel a pénztárhoz megy, ahol ismét sorban áll, rákerül a sor, fizet, majd távozik. Ez a folyamat a szimulációs modell belső idejében rendre megállásokat és ugrásokat jelent, míg a gépidőben folyamatos feldolgozást.

A szimuláció időhorizontjai

A következő ábrán pedig (az előbbiekben figyelmen kívül hagyott) párhuzamos tevékenységek feldolgozását szemléltetjük. Időben párhuzamosan, többé-kevésbé egyidejűleg négy tranzakció kerül feldolgozásra. A tranzakciók feldolgozásának kezdő- és végidőpontját a szimulációs modell sorba veszi, s ezek szerint végzi a belső óra ugratásait, nem pedig a tranzakciók szerint. A gépidő várhatóan (a blokkok típusától függően) aszerint alakul, hogy hány tranzakció kezelése esik ugyanarra az időpillanatra (a valóságban és a szimulációs modellben). Látható, hogy a tranzakciók való életbeni párhuzamos feldolgozását a szimulációs modell ugyanúgy kezeli, ez csak a gépidőben válik sorossá. A belső óra átállítását és a párhuzamos idők sorossá tételét az általános állapotrendezés intézi.

Párhuzamos tevékenységek feldolgozása