Know-how, előadás, modellezés a gpss világban

A PREEMPT és a RETURN blokkok használata a 6.5.5 pontban található.

6.2.7.2. Megszakítás a "capture" módban

A "capture" módban, ha az OCU már használatban van, az aktív tranzakció a függőben lévő megszakítások listájába kerül vagy az "elfogja" az OKS-t. A szolgáltatás azonnali megszakítása, és az ügylet nem kerül a listára, amikor a függőben lévő megszakítások listája üres, és a szervizelt tranzakció maga nem "támadó".

A függőben lévő megszakítások listáján szereplő tranzakcióknak joguk van arra, hogy a megszüntetett tranzakciókat vagy tranzakciókat megelőzően megszerezzék az OCU-t az OCS késleltetési listájáról.

6.2.7.3. Elsőbbségi üzemmódban működő egycsatornás eszköz állapotának ellenőrzése

A PCC állapotának ellenőrzése a prioritási módban a GATE segítségével végezhető el. valamint a Boolean változó és a TEST blokk használatával.

Tekintsük át a GIC állapot ellenőrzését a GATE blokk segítségével.

A tesztállapotot az alábbi feltételes állítások határozzák meg:

  • I - az A. operandus által meghatározott PCU megszakad;
  • Az A-operandus által meghatározott NI-OKU nem szakad meg.

Az első példában a GATE blokk kihagyja az ügyletet, ha a Stan STC megszakad. A második példában Transact adja át a következő blokk, ha nem szakítják CCCH, amely számot úgy definiáljuk, mint az a számítás eredményét és az azt követő kerekítés akár a teljes kifejezést zárójelben (V $ reszelő-3). A harmadik példában, az OKC nyomtatás megszakadása esetén a tranzakciót a Udal nevű blokkhoz küldi.

Az első és a második példában a GATE blokk a meghibásodás módjában működik a bemenetben a feltétel teljesítésének elmulasztása esetén. Itt a 6.2.4. Pontban tett megjegyzés továbbra is érvényes: a B operandus hiánya a számítógépes szimulációs idő növeléséhez vezethet. Bizonyos esetekben azonban ez a mód valószínűleg használható.

6.2.8. Egycsatornás eszköz hozzáférhetetlensége

A DCS és más helyzetek GPSS World hibáinak modellezésére olyan blokkokat biztosítanak, amelyek észlelik a DCS elérhetetlenségét és rendelkezésre állását. E blokkok használata esetén az OCS statisztikák nem torzulnak. Itt a következőket tartjuk szem előtt. Például a hibák szimulálására a megszakítási üzemmódot (PREEMPT) is használhatja. Azonban bonyolít okozó megszakítása (szimuláló hibák KPSZ) rögzítik a statisztikában TRANSACT, gondoskodjanak a megfelelő működéséhez a KPSZ. És ez nem helyes, ezért az OCU statisztikái torzulnak.

6.2.8.1. Érvénytelen állapot- és rendelkezésre állás helyreállítás

A CMC megközelíthetetlenségét a FUNAVAIL blokk modellezi (az F jel azt jelenti, hogy OKU, UNAVAIL - nem érhető el). A blokk használata során az OCS-statisztikák nem torzulnak.

A blokk az operandus által jelzett névvel vagy számmal teszi elérhetővé az OKC-t (lásd a blokkdiagramot).

A FUNAVAIL blokk által feldolgozott összes tranzakció. három osztályra oszthatók, amelyek meghatározzák az operandusok célját:

  • az OKU-t (a SEIZE vagy a PREEMPT) elfoglaló tranzakciót, amikor átkerül egy nem hozzáférhető állapotba (B. C. D. operandusok);
  • korábban megszakított tranzakciók a megszakítási listában (E. F operandusok);
  • A függőben lévő megszakítások listáján szereplő tranzakciók és az OCS későbbi listájában (G. H operandusok).

A B operandus meghatározza a tranzakció feldolgozási módját, amely az OCU-t foglalja el, ha nem áll rendelkezésre:

  • CO - folytatás mód. az OCU által elfoglalt tranzakció feldolgozásának folytatása a rendelkezésre állás alatt;
  • RE - törlés mód. törölje és továbbítsa az elfoglalt ACS tranzakciót azon blokkhoz, amelynek címkéjét C operandával kell megjelölni;
  • alapértelmezés szerint - megszakítja a feldolgozást és elhelyezi a megszakítások listáját az OKU; Miután a rendelkezésre állás helyreállt, ez a tranzakció az OKS-t és a "pre-service" szolgáltatást igénybe veheti.

A C operandus a blokk címke, amelyre a törlési tranzakció módban kerül sor, amely az OCU-t átvette, amikor nem elérhetõ állapotba került.

Operand D - az OCU-t elfoglaló tranzakció paraméterének száma vagy neve, amikor nem hozzáférhető állapotba került; ha törli (RE mód), vagyis ki van zárva a BSS-ből, akkor ez a paraméter rögzíti a távoli tranzakcióhoz hátralévő időt a szolgáltatás végéig.

Operand E TRANSACT meghatározott feldolgozási módok, amelyek az átruházás időpontjában a KPSZ az elérhetetlen állapotban megszakítani a listán, vagyis azok TRANSACT javítható ezen Oku korábban megszakadt ..:

  • CO - folytatás mód. az OKU továbbra is működik a rendelkezésre állás alatt - a tranzakciók szolgáltatása a megszakítások listájáról;
  • RE - törlés mód. törölni és továbbítani a tranzakciókat a megszakítási listáról az új blokkra, amelynek címkéjét az F operandában kell megadni;
  • alapértelmezés szerint - hagyja el az előzőleg megszakított tranzakciókat az OCU megszakítások listáján, és ne akadályozza meg őket abban, hogy elfoglalják a hozzáférést.

Operand F jelöli a blokk címkét, amely fogják irányítani tranzakciókat bonyolít CMO megszakítja a listán, ezért azokat nem lehet az SBS, így nem kell a belépés lehetőségét a maguk idejében beállítások végéig hátralévő szolgáltatást.

Az F operandus akkor is használható, ha nincs operandus (alapértelmezés szerint). Ebben az esetben az átadott tranzakciókra az új blokkra megmarad a szolgáltatás megszakadása.

Operand G TRANSACT meghatározott feldolgozási módok, amelyek az átruházás időpontjában a KPSZ az elérhetetlen állapotban megszakítani a listát függőben van, vagyis arra vár, hogy a megszakítás és késedelem a listában ..:

  • CO - folytatás mód. továbbra is működjenek az OKS alatt, amikor nem érhető el - a folyamatban lévő megszakítások és a késleltetési lista listáján szereplő tranzakciók szolgáltatása;
  • RE - törlés mód. törölje és továbbítsa a tranzakciókat a függőben lévő megszakítások listájáról és a késleltetési listát az új blokkra, amelynek címkéjét a H operandus jelöli;
  • alapértelmezés szerint hagyja el a tranzakciót a függőben lévő megszakítások listáján és a késleltetett OCU listáján, és ne akadályozza meg őket a rendelkezésre állás alatt.

Az operandus H meghatározza az új blokk címkéjét, amelyhez a törlési módban (RE) a tranzakciókat a függőben lévő megszakítások listájáról és a késleltetési listáról kell elküldeni. Ha a G operandust nem használjuk, az H operandus nem használható.

Az OCS hozzáférhetetlenségét mindaddig megőrzi, amíg a tranzakciót, amely a nem elérhetõ állapotba való átmenetet okozta, bejut a blokkba

A FAVAIL blokk megváltoztatja az OCU állapotát a rendelkezésre álló értékre, vagyis visszaállítja a tranzakciók CMC-be történő bevitelének normális módját. Az A-operandus által meghatározott CMC rendelkezésre álló állapotát várakozó összes tranzakció aktiválódik és megpróbálhatja elfoglalni.

A FUNAVAIL és a FAVAIL egységek alkalmazását a 6.7.5.

1. megjegyzés: A B ... H operandusok csak a korábban említett három osztály tranzakcióira vonatkoznak. Azok az egyéb tranzakciók, amelyek megpróbálják megszakítani az OKS-t már nem elérhető állapotban, nem tartalmazzák ezeket az osztályokat, és a B ... H operandusoknak semmi közük sincsük.

Megjegyzések 2. Az OKU átadása megközelíthetetlen állapotba, és lehetővé teszi a tranzakciók feldolgozását a felsorolt ​​három osztályból, lehetővé téve a hibák kipróbálását, de különböző karbantartási szekvenciákat is.

6.2.8.2. Az egycsatornás eszköz rendelkezésre állásának és rendelkezésre állásának ellenőrzése

Az OKC állapotának ellenőrzése a nem elérhető üzemmódban a GATE blokk segítségével történik. A blokk formátumát lásd a 6.2.4 blokkban.

A tesztállapotot az alábbi feltételes állítások határozzák meg:

Az A operandus által meghatározott FNV - OKS nem áll rendelkezésre;

Az A-operandus által megadott FV - OKC elérhető.

Az első példában a GATE blokk kihagyja a tranzakciót, amikor Stan STC nem érhető el.

A második példában Transact adja át a következő blokkot, amikor CCCH elérhető, amelyek száma kerül meghatározásra a számítás eredménye, majd kerekítés integer kifejezése zárójelben (FN $ reszelő-X $ Col).

A harmadik példában, ha az OK elérhető Nyomtatás. azaz ha a GATE blokkban megadott feltétel nem teljesül, akkor a tranzakciót elküldi a Udal nevű blokknak.

Az első és a második példában a GATE blokk meghibásodási módban működik, ha a feltételek nem teljesülnek. Itt a 6.2.4. Pontban tett megjegyzés is igaz: a B operandus hiánya a szimulációs idő növekedéséhez vezethet.

6.2.9. A számítógépes idő csökkentése és a szolgáltatási tudományok megváltoztatása a felhasználói listák használatával

A számítógépes idő megóvása érdekében célszerű tiltott tranzakciókat elhelyezni a felhasználói listákon, és ott hagyni azokat addig, amíg a tranzakciók további előmozdítását lehetővé tévő feltételek nem teljesülnek. Ezenkívül lehetőséget nyújt arra is, hogy az aktuális események listáján végrehajtott, a FIFO-fegyelemtől különböző sorok sorrendjét megszervezzék.

A felhasználói lista egy puffer, amelybe ideiglenesen elhelyezhetők az ITS-ből származó tranzakciók. A jelenlegi és a jövőbeli események listáitól eltérően a tranzakciók a felhasználói listába kerülnek, és nem automatikusan, hanem a felhasználó saját döntése alapján, a modell logikáján alapulnak, speciális blokkok használatával.

Tranzakciók beviteléhez a felhasználói listához használja a LINK (enter to the list) blokkot, amely a következő módokban használható:

6.2.9.1. A bevitel a feltétel nélküli üzemmódba kerül a felhasználói listába

Feltétlen módban. a LINK blokknak a rekord formátuma van: [név] LINK A, B

Az operandus A meghatározza a felhasználó listájának nevét vagy számát, amelyben a LINK blokkba bevitt tranzakció egyértelműen el van helyezve.

A B operandert meghatározza, hogy a felhasználó bejegyzését hol kell a bevitt tranzakcióra helyezni. Érvényes értékek:

  • A FIFO - ügylet a lista végén található;
  • A LIFO - ügylet a lista tetején helyezkedik el;
  • PR - a tranzakciók a prioritás csökkenő sorrendjében helyezkednek el;
  • A P-tranzakciókat azok a tranzakciók mögé helyezik, amelyeknek a megfelelő paraméter értéke kisebb (a paraméterérték növekvő sorrendjében);
  • M1 - A tranzakciók a modellben való tartózkodásuk növekvő relatív idejének sorrendjében helyezkednek el.

A B operandusként más NAV használható, kivéve a korábban megadott NAC tranzakciókat: egy aritmetikai változót, egy függvényt és egy zárójeles kifejezést. Ebben az esetben a számítást az operandus B végzi az aktív tranzakcióhoz és a már a felhasználói listán szereplő összes többi tranzakcióhoz, amely a sor kezdetétől kezdődik. Ezt követően a felhasználói listában szereplő tranzakciók sorrendje a számított érték csökkenő sorrendjében történik. Például egy blokk

a felhasználó számlistáján végzi a tranzakciókat a 3. számmal a blokkba való érkezésük sorrendjében. tömb

az Otst névvel kezeli a tranzakciókat a felhasználói listában. megrendelésük a Pol nevű paraméter növelésével.

Azon feltételek, amelyek között az ügyletet a felhasználói listára helyezzük, feltétel nélküli módban ellenőrizzük a modell fejlesztő által biztosított módon. Például, az alábbiakban részletezett forgalmú ügyfelek esetében a tranzakciót elküldheti a felhasználói listára.

Ha a CMU Rem1 foglalt, a GATE blokk nem engedélyezi az ügyletet a SEIZE blokkra. de elküldi a Wait nevű LINK blokknak. és az ügylet az Otst névvel a felhasználó listájának végén kerül beírásra.

A modell ugyanazon töredékében a felhasználói listát más módon lehet elhelyezni.

Itt a CMU Rem1-et ellenőrzik a foglalkoztatásra. Ha a CMC foglalt, a tranzakció a következő LINK blokkba kerül, és az Otst névvel rendelkező felhasználói listába kerül. Felfüggesztett OCS esetén az ügylet a MET1 jelzésű SEIZE blokkra megy, és egy szabad OCU-t foglal el.

Az itt tárgyalt példákban feltételezzük, hogy a felhasználói listák korlátlanok, azaz a tranzakciók száma tetszőleges számú lehet. Valódi rendszerek szimulálása során a felhasználói listák szimulálhatók például egy olyan bemeneti meghajtóval, amelynek kapacitása általában korlátozott. Ez a korlátozás az alábbiak szerint hajtható végre.

Ha a CMU Rem1 foglalt, a GATE blokk nem engedélyezi az ügyletet a SEIZE blokkra. de elküldi a Wait feliratú TEST blokknak. a LINK blokk előtt található. Ha az Otst névvel rendelkező felhasználói lista aktuális tartalma kisebb, mint a megadott kapacitás, az Emk. a transz-pass megy a felhasználói listához, ellenkező esetben a Term1 jelzésű blokkhoz lép.

A modell egy másik lehetséges változatát adjuk meg.

Ha a CMU Rem1 foglalt, a GATE blokk átugrik az ügyletre a TEST blokkra. Ha az Otst névvel rendelkező felhasználói lista aktuális tartalma kisebb, mint a megadott kapacitás, az Emk. A Transact megy a felhasználói listához, ellenkező esetben a Term1 jelzésű blokkhoz lép. Ha az OCS nem üres, akkor a tranzakció a Met1 jelzésű SEIZE blokkra megy és elfoglalja az ingyenes OKU Rem1-et.

6.2.9.2. Tranzakciók kibocsátása a felhasználói listáról a feltételes üzemmódban

Ha egy vagy több tranzakciót kíván kiadni a felhasználói listáról, és visszaállítja az aktuális események listájába, használja az UNLINK (lista a listából) blokkot az alábbi formátumban:

Az Operand A megadja a felhasználói listát vagy a számlistát.

A B operandus a blokk címke, amelybe az átkattintott felhasználó által definiált átmenetek átkerülnek.

Az operandus C meghatározza a kimeneti tranzakciók számát vagy az ALL kulcsszót, hogy megjelenítse a lista összes tranzakcióját. Alapértelmezés szerint, azaz amikor a C operátort nem használják, az ALL szót fogják venni.

A D és E operandusok az X feltételes operátorral együtt meghatározzák a tranzakciók kimeneti módját és feltételeit a felhasználói listáról. Az X operátor értékei megegyeznek a TEST blokk értékeivel. Abban az esetben, ha az X feltételes operátort kell használni, de nem kell megadni, akkor alapértelmezés szerint az E (egyenlőség) értékét veszi figyelembe. Ha a D és az E operandort nem használják, az X feltételes operátor nincs megadva, ebben az esetben a tranzakciók a lista elejétől származnak, és a kiszámítható tranzakciók számát a kötelező C operandus határozza meg.

Az operandus D lehet:

  • Logikai változó;
  • tranzakciós paraméter száma;
  • a BACK kulcsszó.

Ha a D operandus Boole-változó, akkor az E operandust és az X operátort nem használjuk. Egy logikai változót értékelnek a felhasználó listán szereplő tranzakcióhoz képest. Ha az eredmény nem nulla, vagyis a kimeneti feltétel teljesül, akkor a tranzakció kimeneti. A kiszámítható tranzakciók számát a C operandus határozza meg. A kimenet azonban kisebb lehet, mint amit a C. operandus jelez, a boole-változó nem nullázott eredményeinek számában. Ezenkívül a felhasználói listában szereplő tranzakciók kisebbek lehetnek, mint a C. operandus.

Ha a D művelet megadja a BACK kulcsszót. Továbbá az E operandust és az X feltételes szolgáltatót nem használják, és a tranzakciók a lista végéről a kötelező C operandum által meghatározott összegben kerülnek kibocsátásra.

Ha a D operandus nem logikai változó, és nem egy BACK kulcsszó. meg kell határozni az E operandust és az X feltételes operátort, a D műveletet a felhasználói listán szereplő tranzakcióhoz viszonyítva kell kiszámítani, és paraméterszámként kell használni, amelynek értékét az E operandus kiszámításának eredményével hasonlítjuk össze.

Ha a D operandert egy paraméter határozza meg, és az E operandert nem használják, akkor a felhasználói listáról a tranzakciós paraméter értékét összehasonlítjuk a kimeneti tranzakció ugyanazon paraméterével. Ha egyenlőek, a tranzakció megjelenik a felhasználói listából. És ebben az esetben a kimeneti tranzakciók számát a C. operandus határozza meg.

Az F operandus adja meg annak a blokknak a nevét, ahol az UNLINK blokk elhagyó tranzakciója elhalad. ha nem szerepel a tranzakciók a felhasználói listáról. Ha az F operandert nem használjuk, akkor a kimenő tranzakció a következő blokkra vált át, függetlenül attól, hogy hány kimenő tranzakció van.

Kapcsolódó cikkek