Методические указания
|
|
Форма
Ф СО ПГУ 7.18.2/05
|
Қазақстан Республикасының Білім және ғылым министрлігі
С. Торайғыров атындағы Павлодар мемлекеттік университеті
Есептеу техникасы және бағдарламау кафедрасы
ӘДІСТЕМЕЛІК нұсқау
Имитациялық модельдеу пәні бойынша
практикалық жұмыстарды орындауға арналған 050704 – Есептеу техникасы және бағдарламалық қамтамасыз ету мамандығының студентеріне арналған
Павлодар
Лист утверждения к методическим указаниям
|
|
Форма
Ф СО ПГУ 7.18.1/05
|
БЕКІТЕМІН
ФМжАТ факультетінің деканы
_____________ Тлеукенов С.К
«____»_____________ 2010 ж.
Құрастырушы: аға оқытушы Исабеков Жанат Бейсембаевич
Есептеу техникасы және бағдарламау кафедрасы
050704 – Есептеу техникасы және бағдарламалық қамтамасыз ету мамандығының студентеріне арналған
Имитациялық модельдеу пәні бойынша
практикалық жұмыстарды орындауға арналған
ӘДІСТЕМЕЛІК нұсқау
Кафедра мәжілісінде ұсынылған «___» _______200_ ж № __ хаттамасы
Кафедра меңгерушісі ______________ О. Г. Потапенко
(қолы)
“Физика, математика және ақпараттық технологиялар” факультетінің оқу әдістемелік кеңесінде мақұлданды
«__» _________ 200_ ж. №__ хаттамасы
ӘК төрағасы _______________________ А.Т. Кишубаева
(қолы)
Имитациялық модельдеу
GPSS модельдеу жүйесі. GPSS – General Purpose Simulation System [Система моделирования общего назначения] Дискретті оқиғалы имитациялық модельдерді құру және ЭЕМ- де эксперименттер жүргізуге арналған модельдеу тілі.
GPSS тілі объектілі- бағдарлы тілдің принципі бойынша құрылған декларативті типтегі тілі.
Тілдің негізгі элементтері болып модельденетін жүйенің динамикалық және статикалық объектілерін сәйкесінше бейнелейтін транзактілер мен блоктар табылады.
Нақты модельде объектілерді таңдау модельденетін жүйенің мінездемесіне байланысты. Әрбір объекті бірнеше қасиеттерге ие болады, осы қасиеттер GPSS-те стандартты сандық атрибуттардеп аталады.(Стандартные числовые атрибуты - CRA). CRA- ның бөлігін ғана пайдаланушы қолдана алады, ал басқа қасиеттерінің мәндеріне сәйкес блоктарды қолданып етеді.
Әрбір GPSS- модель міндетті түрде блоктар мен транзактілерден құралады.
GPSS-те блоктан блокқа басқаруды беру концепциясы спецификалық ерекшеліктерге ие болады.
GPSS – модельдің блоктарының тізбегі элементтер қозғалатын бағыттарды көрсетеді. Әрбір осындай элемент транзакт деп аталады. Транзактілер GPSS- модельдің динамикалық элементтері.
GPSS тілінің блоктары макроассемблерде немесе Си тілінде жазылған ішкі бағдармалар және оларға қатынау үшін параметрлерді (операндалардың) жиынын құрайды.
Модельдеу тілдерінде, соның ішінде GPSS- те шынайы жүйелерде динамикалық процесстерді бейнелеуге мүмкіндік беретін модельдік уақытта жүзеге асатын басқаруды беретін (передача) ішкі механизм болады. GPSS- бағдарламаларда блоктан блокқа басқаруды беру модельдік уақытта транзактілер көмегімен жүзеге асады. Блоктардың ішкі бағдарламаларына қатынау транзактілер қозғалысы арқылы жүреді.
Транзактілердің мазмұнды мәндерін модельді әзірлеуші анықтайды. Модельнетін жүйенің транзактілері мен шынайы динамикалық элеметтерінің арасындағы аналогияны да қоятын сол әзірлеуші болып табылады. Осындай аналогия GPSS- тің трансляторына ешқашан көрсетілмейді, ол модельдерді әзірлеушінің қиялында ғана қалады.
Мысалы: Транзактілер мен шынайы жүйенің элементтерінің арасындағы аналогиялар.
Жүйе
|
Транзактілермен модельденетін жүйенің элеметтері
|
Магазин
Автомобиль шоссесі
Қойма
|
Сатушы
Автокөлік
Тапсырыс
|
Бағдарлама тұрғысынан алатын болсақ, транзакт дегеніміз мәліметтер құрылымы, онда мынандай өрістер болады:
1) транзакт аты немесе нөмері
2) транзактінің пайда болу уақыты;
3) ағымдағы модельдік уақыт;
4) транзакт бар болатын блок нөмері;
5) транзактінің жылжитын блогының нөмері.
6) қозғалыс басталатын уақыттың сәті;
7) транзакт приоритеті;
8) транзактілер параметрлері: Р1,Р2, ...
GPSS тілінде барлық транзактілер модельге келуі (пайда болуы) бойынша нөмерленеді. Транзактілер параметрлері модельденетін динамикалық объектінің қасиеттерін бейнелейді. Мысалы, егер жолдағы автокөліктің қозғалысы модельденетін болса, онда транзактінің (автокөліктің) параметрлері ретінде жылдамдық, тежегіш жол, габариттер және тағы басқа болуы мүмкін, бұл модельдеу мақсаттарына байланысты.
Әрбір транзакт компьютердің жадысынан қандай да бір көлемді алады. Транзактінің модельдің блоктары бойынша қозғалысы аяқталғаннан кейін оны жойып жіберу керек.
Сол себепті GPSS- модельде модельдеудің басталуында бірде бір транзакт болмайды. Модельдеу процесінде транзактілер модельденетін жүйенің қызмет жасау логикасына сәйкес модельге уақыттың нақты бір сәтінде кіреді. Осылайша модельдеудің спецификасына байланысты модельден транзактілер шығады. Жалпы алғанда модельде бірнеше транзактілер болады, бірақ уақыттың әрбір сәтінде олардың тек біреуі ғана қозғалады.
Егер транзакт өзінің қозғалысын бастаса, онда ол блоктан блокқа көрсетілген блок- схемаға сәйкес жылжиды. Транзакт блокқа кірген сәтте, осы блокқа сәйкес ішкі бағдарлама шақырылады. Ары қарай транзакт келесі блокқа кіруге әрекет жасайды. Оның жылжуы осылайша мынандай мүмкін шарттардың бірі орындамайы жалғаса береді. Мүмкін шарттар:
1) Транзактінің қызметі транзактіні қайсыбір уақытқа дейін ұстау болып табылатын блокқа кіруі;
2) «Транзактіні модельден жою» қызметі бар блокқа транзакті кіргенде;
3) Модельдің логикасына сәйкес транзакт келесі блокқа кіруге әрекет жасағанда, бірақ бұл блок транзактіні қабылдамаған сәтте. Осы жағдайда транзак қай блокта болса, сол блокта қалып қояды, кейінрек келесі блокқа кіруге қайтадан әрекет жасайды. Егер модельде шарттар өзгеретін болса, онда осы әрекеттердің біреуі нәтижелі болар еді. Осыдан кейін транзакт өзінің қозғалысын модель бойынша жалғастырады.
Егер аталған шарттардың біреуі орындалатын болса, онда транзакт орнында қалады да, ал модельде басқа транзактінің қозғалысы әрекеті жасалады.
GPSS- те шынайы жүйелердің қызмет көрсетуші құрылғыларының аналогтары болып «ресурстар» типіндегі объектілер табылады. Осындай типті объектілерге көп каналды құрылғылар мен логикалық кілттер сияқты құрылғылар жатады.
ОББ тілдеріндегідей GPSS тілінде де әрбір объектінің қасиеттері мен әдістері болады, объектілер өздерінің қасиеттерін өзгертіп отырады.
GPSS- те объектілер қасиеттері CCA(CRA) деп аталады. [басында айтылды].
Құрылғы (бір каналды құрылғы прибор) уақыттың кез келген сәтінде тек бір ғана транзактімен бос болмайтын ресурсты көрсетеді. Интерпретатор автоматты түрде құрылғының бос болмайтын жалпы уақыты, құрылғыда болған транзактілердің саны, құрылғыны қолдану коэффициентін, бір транзактімен құрылғының бос болмайтын орташа уақыты және тағы басқа сияқты ССА-ын есептейді.
Көп каналды құрылғылар (ККҚ) (бірнеше параллельді бірдей құрылғылар) параллельді өңдеу үшін объектілерді құрайды. Олар бірнеше транзактілермен бір уақытта қолданылуы мүмкін. Пайдаланушы модельде қолданылатын әрбір көп каналды құрылғының сыйымдылығын анықтайды, ал интерпретатор уақыттың әрбір сәтінде бос емес құрылғылардың санын есепке алады. Интерпретатор автоматты түрде мынандай ССА-ын санайды: ККҚ- ға кірген транзактілер санын, бір транзактімен бос болмайтын каналдардың орташа санын, транзактінің құрылғыда болатын орташа уақытын және тағы басқа.
Кейбір оқиғалар жүйеде транзактілердің қозғалысын жауып тастауы (заблокировать) немесе өзгертуі мүмкін.
Мысалы: Бірнеше кассасы бар кинотеатр немесе банкте, кассир «Түскі үзіліс» деген тақтайшаны касса терезесіне қоятын болса, онда кезектегі келесі клиенттер басқа кассаларға баруына тура келеді. Осындай жағдайларды модельдеу үшін логикалық кілттер енгізілген. Транзакт осы кілттерді «Іске қосылған (включено)» немесе «істен ажыратылған» (выключена) жағдайына қоюы мүмкін. Бірақ уақыттан соң кілттің жағдайы қозғалыстың 2 мүмкін жолының біреуін таңдау үшін немесе кілттің жағдайының өзгеру сәтін күту үшін басқа транзактілермен қолдануы мүмкін.
Арифметикалық айнымалылар объектілердің CCA (CRA)- ына қолданатын амалдардан тұратын арифметикалық өрнектерді есептеуге мүмкіндік береді. Өрнектерде функциялар (кітапханалық немесе пайдаланушының) қолдануы мүмкін. Бульдік айнымалылар пайдаланушыға объектілердің жағдайына немесе ССА(CRA) мәндеріне байланысты бірнеше шарттарды бір уақытта тексеруге мүмкіндік береді.
Функцияларды қолдана отырып, пайдаланушы функция аргументі мен оның мәндерінің арасындағы үздіксіз немесе дискретті функцияналдық тәуелділіктерді бере алады. GPSS-та функциялар функцияларды сипаттайтын операторлар көмегімен кестелік тәсілімен беріледі.
Сақталатын шамалардың ұяшықтары және матрицалар пайдаланушының қайсыбір сандық ақпараттарын сақтау үшін қолданылады, осы объектілерге жазуды транзактілер орындайды. Осы объектілерде жазылған ақпаратты кез келген транзакт оқи алады. Сонымен бұл объектілер ауқымды болып табылады және модельдің кез келген бөлігінен қатынауға болады.
Кез келген жүйеде ресурстар қатынау мүмкін еместігіне транзактілер ағынының қозғалысы кешігуі мүмкін. Қажет құрылғылар немесе ККҚ- лар бос болмауы мүмкін. Осы жағдайда кешіктірілген, ұсталған транзактілер кезекке тұрады.
Кезек – GPSS- тегі объектілердің типі. Осы кезектерді есепке алу интерпретатордың негізгі қызметтерінің бірі.
Пайдаланушы кезектер туралы статистиканы жинақтайтын модельдің нүктелерін анықтауы мүмкін, яғни кезек регистраторларын қоюы мүмкін. Сонда интерпретатор автоматты түрде кезектер туралы статистиканы жинайды. Мысалы: кезек ұзындығын, транзактінің кезекті болуының орташа уақытын және тағы басқа. Бұл ақпараттың барлығы ССА-ы болып табылады және пайдаланушыға модельдеу процесінде белгілі.
Интерпретатор автоматты түрде кезекте қызмет көрсетудің FIFO («бірінші келдің- бірінші кеттің») тәртібін ұстанады, және пайдаланушы осы кезектер туралы стандартты статистикалық ақпаратты ала алады. Егер пайдаланушыға транзактілерден қызмет көрсетілудің басқа тәтібімен кезекті ұйымдастырғысы келсе,(мыс, LIFO) онда пайдаланушылар тізімі қолданылады. Бұл тізімдер модель бойынша әртүрлі транзактілердің қозғалысының синхронизациясын жүзеге асыру көмектеседі.
«Кесте» объектісі пайдаланушымен берілген кездейсоқ шамалар туралы статистиканы жинауға арналған. Кесте нақты шамалардың дәл келуінің саны енгізілетін жиілікті кластардан тұрады. Әр кесте үшін математикалық күтулер және орта квадраттың ауытқулар есептеледі.
Сонымен GPSS- модельдің объектілері:
-
транзактілер;
-
блоктар;
-
«ресурстар»типіндегі объектілер;
-
Айнымалылар;
-
Функциялар;
-
Сақталатын шамалардың ұяшықтары мен матрицалары.
-
Кезектер;
-
кестелер
Модельдік уақыттың сағаттар.
Шынайы жүйелердің әртүрлі оқиғалары уақыттың қандай да мерзімінде болады. Мысалы, дүкенге келген сатып алушылар, олардың кезектері келгенде оларға қызмет көрсетіледі. Егер осы оқиғалардың барлығын модельде көрсететін болсақ, олардың пайда болуы модельдің уақыттың фонында өтуі керек. Интерпретатор автоматты түрде модельдік уақыттың сағатына қызмет көрсетеді.
Модельдеудің басталу сәтінде интерпретатор бірінші транзактінің пайда болуын жоспарлайды. Осыдан кейін модельдік уақыттың сағатын модельде 1-ші транзактінің пайда болу сәтіне сәйкес келетін уақыттың мәніне қояды. Осы транзакт (және басқа да транзактілер, егер олар осы сәтте келсе) модельге кіреді. Ары қарай ол өзіне кездесетін модельдің барлық мүмкін блоктары арқылы жылжиды.
Блоктар арқылы транзактінің жылжуы салдарынан пайда болған оқиғалары уақыттың алдағы сәттерінде жоспарланады.
Әрине, уақыттың белгіленген алғашқы сәтінде жүйеде ештеңе болмайды. GPSS интерпретатор сағаттың мәндерін келесі жақын оқиға жоспарланған уақыттың мәніне ары қарай жылжытады.
Егер сағатпен белгіленген уақыттың 2-ші сәтінде транзактілер болмаса, сағат тағы да алға жылжиды. Осылайша оқиғадан оқиғаға модельдік уақыттың ауысуы болады.
GPSS сағатының ерекшелігі.
-
GPSS- те сағат бүтін мәндерді тіркейді, яғни оқиғалар уақыттың бүтін сәттерінде ғана пайда болуы мүмкін. Бұл модельдеу процесін жылдамдату мақсатымен жасалған, себебі бүтін санды арифметика ЭЕМ процессорында тезірек орындалатындығында және жадыдан көп орын алмайды.
-
Модельдік уақыттың бірлік әзірлеуші мен анықталады. Модельдік уақыттың бірлігін барлық берілген уақыт бірлігінде болады.
-
GPSS жүйесі «келесі оқиғаның» интерпретаторы болып табылады.
Операторлар типтері.
GPSS операторлары 3 типке бөлінеді:
-
блоктар,
-
мәліметтерді сипаттау операторлар;
-
GPSS командалары.
GPSS- те сандарға, блоктар және объектілерге сілтеме үшін аттар (идентификаторлар) қолданады.
Аттар GPSS/РС – де 20 символға дейінгі ұзындықта алфавитті- цифрлы тізбекті, ал GPSS World- да 250 символға дейінгі тізбекті құрайды. Латын алфавитінің символдары, цифр және асты сызылған таңба ғана пайдаланылады.
GPSS- блоктарының форматы мынандай:
[жол нөмері][<белгі>]<амал(операция)><операндалар><коментарий>
Мұндағы:
жол нөмері: GPSS/РС үшін міндетті өрісі, ал GPSS World – та еленбейді (міндетті емес)
Жолдың 1-ші позициясынан басталады, ондық санды көрсетеді.
Белгі (блок аты): Өрістің мазмұны- ат болып табылады, әріптен басталатын символдардың тізбегі. Кейбір операторларда бұл өріс мінгдетті болып табылады.
Амал(операция): Блоктар операциясы ретінде блоктардың негізгі функционалды міндетін сипаттайтын етістіктер қолданылады. Блоктардың әрқайсысы өһзіне мншіктеліп бекітілген етістіктермен мінезделеді.
Операндалар: Блоктарда операндалар болуы мүмкін. Олар берілген блоктың өзіне тән әрекеті туралы ақпарат береді. Блоктың операндаларының саны блоктың типіне байланысты болады. Блоктарда 7 операндалардан артық қолданылмайды. Операндалар А,В,С,Д,Е,F,G символдармен белгіленеді. Операндалар мәні блоктың типімен анықталады.
Кейбір блоктардың бір операндалары үнемі анықталған болуы мүмкін, ал басқалары берілуі де, берілмеуі де мүмкін, яғни міндетті емес. Операндалар бірінен кейін бірі үтір арқылы немесе пробелмен жазылады. Егер операндалар қалдырылған болса, онда оның орнына үтір қойылады. Операндалардың арасында бір пробелден артық болмауы керек, себебі одан көп болған жағдайда операндалардың аяқталғанын білдіреді де, интерпретатор жолды оқуды аяқтайды.
Комментарийлер: міндетті емес өріс. Операндалар өрісінен «;» таңбасымен ерекшеленеді. Комментарийді жолдың басынан жазуға болады, бұл жағдайда жолдың 1- позициясына; немесе * таңбасымен қойылады.
GPSS/РС- де комментарий тек латын алфавитінің бас және кіші әріптерімен жазылады, ал GPSS World –та кириллица әріптері де қолданылады.
Блокты сипаттау жолы GPSS/РС – де 79 символға, ал GPSS World- та 250 символға дейін рұқсат етілген. Форматтарды сипаттауда [ ] (квадрат жақшалар) өрістің міндетті еместігін көрсетеді.
Аттар мен белгілер блоктардың, операторлардың, командалардың және ССА- ның атаулары немесе атауларының бастапқы символдары бола алмайды.
Модельге транзактілерді енгізу GENERATE блог.
GENERATE (Генерировать) блогы- транзактілердің модельге кіретін блогы. Бір модельде GENERATE әртүрлі блоктарының санына шектеулер жоқ.
GENERATE блогынан тізбектелген транзактілердің пайда болуының арасындағы уақыт аралығы түсу интервалы (интервал поступление) деп аталады. Транзакт модельге GENERATE блогы арқылы кіргенде интерпретатор сағаттың ағымдағы мәні мен ойнатылған мәнінің қосындысына тең уақытқа кездейсоқ санның ұтыс ойына жолымен келесі транзактінің түсу уақытын жоспарлайды.
Модельдік уақыттың осы уақытына жеткен кезде транзакт GENERATE блогы арқылы модельге кіреді.
Модельдеуші GENERATE блогында транзактілердің интервалдарының таратылған функциясын беруі қажет.
GPSS- ге транзактілердің түсуінің интервалдарының кездейсоқ таратылуының барлық мүмкін түрлері тең өлшемді (равномерное) таратулар және таратылудың басқа түрлеріне бөлінеді. Кездейсоқ тривналды емес таратулардың ең қарапайым түрі- тең өлшемді таратулар алдағы мысалдар қарастырылады.
Блоктың форматы:
GENERATE [A],[B],[C],[Д],[E]
Операндалар
|
Мәні
|
Бастапқыдағы мәні
|
А
|
Уақыттың орташа интервалы (сан,CCA)
|
0
|
В
|
Тең өлшемді таратылған интервалдың жіберу өрісінің жартысы
|
0
|
С
|
Интервалдардың смещениясы
|
Смещение жоқ
|
Д
|
Транзактілердің шектеушісі
|
шектеусіз
|
Е
|
Транзактінің приоритет деңгейі мүмкін мәндер 0-127
|
0
|
Модельден транзактілер жою. TERMINATE блогы.
Транзактілер TERMINATE (завершить) блогына түсіп, модельден жойылады. Осы сәтте транзактіге бөлінген жады босатылады. Осы блоктар модельден шыққысы келетін барлық транзактілерге шығуға мүмкіндік береді. Модельде TERMINATE блоктарының кез келген саны болуы мүмкін.
Блок форматы TERMINATE [А]
А операндасы арнайы есептелетін азаю шамасы болып табылады да, аяқтау есептегіші деп аталады. Бұл операнд транзактінің TERMINATE блогына транзакті кіргенде есептегіштен әр жолы азайтылатын шаманы береді. Бастапқы жағдайда А=0. TERMINATE блогына А операндасының 0-дік мәнімен транзактінің кіруі аяқталу есептегішіне азайтуды әкелмейді.
Аяқтау есептегіш- бүтін оң санды сақтайтын ЭЕМ- нің жадысындағы ұяшық. Есептегіштің бастапқы мәні модельдеудің басында қойылады. Ол START командасының А операндасының мәніне тең келеді. Модельдеу барсында транзактілер TERMINATE блогына түсіп, есептегіштің мәніне А опернадасының шамасына кемітеді. Модельдеу есептегіштің мәні 0 – ге немесе теріс санға тең болғанда аяқталады.
Қорытындылап айтқанда:
-
Модельде көптеген TERMINATE блоктары болуы мүмкін, бірақ аяқтау есептегіш- біреу , бастапқы мәні START командасында көрсетіледі.
-
Есептегіш – модельден шығатын транзактілердің санын береді.
Интерпретатор модельдеуді START командасымен бастайды. Оның форматы START [A],[B],[C],[Д]
А- операндасында аяқтау есептегішінің бастапқы мәні беріледі, яғни модельдің жүріп өтуінің аяқталу сәтін анықталады.
В- статистиканы шығару операндасы. Бұл операнд «NP» мәнін қабылдануы мүмкін немесе бос болуы мүмкін. В операндасына «NP» мәнің берілуі статистиканы шығаруды бұғаттауға (блокирование) әкеледі. Бастапқы жағдайда стандартты статистика шығарылады.
С- операндсы қолданылмайды және GPSS- тің алдыңғы версияларымен үйлесімділігі үшін сақталған.
Д- операндасы СТС және СБС мазмұнын шығарудың қажеттілігін береді. Д операндасы оң бүтін сан болуы сан болуы мүмкін.
Егер операнд Д = болса, онда СТС және СБС шығарылады.
Модельдеу процесінің ұзақтығын басқару
GPSS тілінде модельдеу 2 тәсілімен басқаруға болады:
-
модель анықталған типті транзактілердің берілген санын өтіп болғаннан кейін модельдеуді аяқтау;
-
модельдеуді уақыттың берілген интервалы аяқталғаннан кейін аяқтау
1- тәсіл бойынша:
1) START командасында А операндасына транзактілердің берілген санының мәні меншіктеледі.
2) Берілген типтің транзактілері модельден шыққан соң TЕRMINATE- тің барлық блоктарында А операндасына «1» немесе 0- ден өзгеше басқа мән беріледі.
3) TЕRMINATE – тің барлық басқа блоктарында А операндасының мәні бастапқы жағдайдағы мәнді қабылдайды (А=0). Аяқтау есептегіштің мәні бұл блоктарға тәуелді болмайды.
Мысалы: модельде 1000 транзакті өткеннен кейін модельдеуді аяқтау:
GENERATE 40,5
...
TЕRMINATE 1
START 1000
2- тәсілі: Модельдеуді әзірлеуші модельдік уақыттың бірлігі ретінде 1 мин таңдап алсын және 8 сағаттың ішінде жүйенің тәртібін модельдегісі келеді.
Мұны былай істеуге болады:
1) Модельге 2 блоктан тұратын таймер-сегменті енгізу.
GENERATE 480
TЕRMINATE 1
2) Модельдің барлық басқа TЕRMINATE блоктарында А операндасының бастапқы мәнін (А=0) қолдану. Бұл аяқтау есептегішімен анықталған модельдеуді тоқтату TЕRMINATE- тің басқа блоктарына тәуелді болмайтынын көрсетеді.
3) START командасында А=1 болды керек.
Сонымен, модельдеу процесінде TЕRMINATE- тің басқа блоктарындағы транзактілер қозғалысы аяқтау есептегішіне әсер етпейді.
Уақыттың 480 сәтінде транзакт GENERATE блогынан шығып, бірден TЕRMINATE блогына ауысады. Аяқтау есептегіші 1 бірлікке азайып, интерпретатор модельдеуді аяқтайды.
Бір каналды қызмет көрсететін құрылғыларды бейнелейтін элементтер.
Қызмет көрсететін құрылғыларды қолданылатын элементтерді қарастырайық. Қызмет көрсететін элементтердің аналогтары ретінде адамдар, механизмдер, байланыс желілер және шынайы жүйелердің басқа да объектілері қарастырылады.
Құрылғы негізгі екі қасиетімен мінезделеді:
-
Әрбір құрылғы уақыттың кез келген сәтінде тек бір транзактіге ғана қызмет етеді. Егер қызмет ету процесінде жаңа транзакт пайда болса, онда ол төмендегілердің біреуіне орындауы қажет:
-
өз кезегін күтуі;
-
басқа орынға баруы;
-
жаңа келген транзактінің приоритеті жоғары болса, құрылғы ағымдағы қызмет көрсетуін тоқтатады да, жаңа транзактіші қабылдайды
-
Транзакт құрылғыға түскен сәтте, ол қызмет көрсетілуі үшін біраз уақыт құрылғыда болуы керек.
Барлық құрылғыға ат беру қажет. Олар сандық немесе символдық болуы мүмкін. (Сандық болса оң бүтін сандарды ғана қабылдайды). Трансляция кезінде символдық аттарға транслятор өзі сандық мәндерінде таайындайды.
Бір каналды қызмет көрсету құрылғысын қолдану үшін транзакті мынадай қадамдарды орындалуы керек:
1- қадам: Егер қажет болса, өзінің кезегін күтуі керек. Күту уақыттың қайсыбір аралығында болады.
2- қадам: Кезегі келгенде құрылғыға келу. «Құрылғыны алу» оқиғасы модельдік уақыттың қайсыбір сәтінде өтеді.
3- қадам: Құрылғы қызмет көрсетіп болмайынша бос болмау жағдайында болады. Қызмет көрсету үшін уақыттың қайсыбір интервалы қажет.
4- қадам: Қызмет көрсету аяқталғаннан кейін құрылғыны босату. «Құрылғыны босату» оқиғасы модельдік уақыттың қайсыбір сәтінде өтеді.
Қадамдардың осы тізбегі құрылғыны қолдануды модельдеуде GPSS- те орындалады, 2- ші және 3- ші қадамдар SEIZE(занять) и RELEASE (освободить) блоктарымен жүзеге асады.
Блок форматы: SEIZE А
А операнда, мәні – құрылғының аты(сан немесе символ), бастапқы нәтижесі – қате;
Бұл блок мынандай қасиеттерге ие болады:
-
егер уақыттың ағымды сәтінде құрылғы болса, онда транзакт блокқа кіре алмайды және сол себептен өз кезегін күтуі күтуі керек;
-
егер құрылғы бос болса, транзакт блокқа кіре алады. Транзактінің блокқа кіруі осы блоктың өңделуінің ішкі бағдарламасының орындалуын шақырады.
Құрылғының жағдайы «бос» жағдайдан «бос емес» жағдайға өзгереді.
RELEASE блогы «бос емес» құрылғының жағдайының «бос емес»-тен «бос»
жағдайына өзгеруін көрсетуге арналған. Бұл блок транзактінің кіруіне ешқашан тыйым салмайды.
Достарыңызбен бөлісу: |