Категорії | Типи об’єктів |
Динамічна | ● Транзакти |
Операційна | ● Блоки |
Апаратна | ● Одноканальні пристрої ● Багатоканальрні пристрої ● Логічні ключі |
Обчислювальна | ● Змінні ● Функції ● Генератори випадкових чисел |
Статистична | ● Черги ● Таблиці |
Запам’ятовуюча | ● Комірки ● Матриці комірок |
Групуюча | ● Числові групи ● Групи транзактів ● Списки |
Події, що відбувалися у системі раніше, можуть заблокувати, змінити рух транзактів і настання наступних подій. Для моделювання таких ситуацій введені логічні ключі. Транзакт може встановлювати ці ключі в положення “включено” або “виключено”. Згодом стан ключів може бути перевірено іншими транзактами для визначення шляху їхнього подальшого проходження.
Операційні об'єкти(блоки) задають логіку функціонування моделі системи й визначають шляхи руху транзактів між об'єктами апаратної категорії. У блоках можуть відбуватися події чотирьох основних типів:
1) створення або знищення транзактів;
|
|
2) зміна числового атрибута об'єкта;
3) затримування транзакту на певний період часу;
4) зміна маршруту руху транзакту в моделі.
У системі GPSS World використовуються 53 типи блоків. Залежно від функціонального призначення блоки поділяються на такі групи.
1. Блоки, що здійснюють модифікацію атрибутів транзактів:
а) генерування й знищення транзактів – GENERATE, SPLIT, TERMINATE, ASSEMBLE;
б) тимчасове затримування транзактів – ADVANCE;
в) синхронізація руху двох MATCH і декількох GATHER транзактів;
г) зміна параметрів транзактів ASSIGN, INDEX, MARK, PLUS;
д) зміна пріоритету транзакта PRIORITY.
2. Блоки, що змінюють послідовність руху транзактів (блоки передачі керування): DISPLACE, TRANSFER, LOOP, TEST, GATE.
3. Блоки, пов'язані з групуванням: ADOPT, ALTER, EXAMINE, JOIN, REMOVE, SCAN.
4. Блоки, що описують об'єкти апаратної категорії:
а) одноканальні пристрої – SEIZE, RELEASE, PREEMPT, RETURN, FUNAVAIL, FAVAIL;
б) багатоканальні пристрої – ENTER, LEAVE, SAVAIL, SUNAVAIL;
в) ключі (логічні перемикачі) – LOGIC.
5. Блоки, що зберігають необхідні значення для подальшого використання: SAVEVALUE, MSAVEVALUE.
6. Блоки, що забезпечують одержання статистичних результатів:
а) черги QUEUE, DEPART;
б) таблиці TABULATE.
7. Блоки для організації списку користувача: LINK, UNLINK.
8. Блоки для організації введення-виведення:
а) відкриття/закриття файлу: OPEN / CLOSE;
б) зчитування/запис у файл: READ / WRITE;
в) встановлення позиції поточного рядка: SEEK.
9. Спеціальні блоки: BUFFER, COUNT, EXECUTE, INTEGRATION, SELECT, TRACE, UNTRACE.
Об’єкти обчислювальної категорії використовуються у процесі моделювання, коли зв'язки між компонентами системи виражаються у вигляді математичних (аналітичних і логічних) співвідношень. Для цього до об'єктів обчислювальної категорії введені арифметичні та булеві змінні й функції.
|
|
Змінні є складними виразами, які включають константи, системні числові атрибути (СЧА), бібліотечні арифметичні функції, арифметичні й логічні операції.
Кожному об'єкту відповідають атрибути, що описують його стан у цей момент часу. Атрибути можуть використовуватися в операндах операторів GPSS та у виразах. Вони доступні для використання протягом усього процесу моделювання й називаються системними числовими атрибутами (СЧА) (System Numerical Attributes – SNA). У GPSSW використовуються СЧА трьох типів:
· СЧА об’єктів, які описують стан об’єктів GPSS-моделі;
· СЧА системи, які описують стан системи в цілому;
· СЧА транзактів, які описують їх властивості і параметри. Усього в GPSS World є понад 50 СЧА.
Булеві змінні дозволяють користувачеві перевіряти в одному блоці GPSS одночасно декілька умов, виходячи зі стану або значення цих умов і їхніх атрибутів. Тому в даному блоці здійснюється звертання до булевої змінної, вираз якої містить у собі перевірку декількох умов. Булеві змінні можуть бути представлені комбінаціями стандартних числових атрибутів, пов'язаних між собою за допомогою булевих операторів, включаючи й інші змінні. Булеві змінні визначаються так само, як і арифметичні, але замість арифметичних операцій перевіряються різні логічні умови.
За допомогою функцій користувач може здійснювати обчислення неперервних або дискретних функціональних залежностей між аргументом функції (незалежна величина) і залежним значенням функції. Всі функції в GPSS задаються табличним способом за допомогою команд опису функцій. Як і змінні, функції не пов'язані з певними блоками.
Об'єкти запам'ятовуючої категорії забезпечують звертання до значень, що зберігаються. Комірки величин, що зберігаються, і матриці комірок величин, що зберігаються, використовуються для збереження деякої числової інформації. Розмірність матриці не може перевищувати шести.
До статистичних об'єктів належать черги й таблиці. У будь-якій системі рух потоку транзактів може бути затриманий через недоступність пристроїв. У цьому випадку затримані транзакти стають в чергу. Це ще один тип об'єктів GPSS. Облік цих черг становить одну з основних функцій інтерпретатора. Інтерпретатор автоматично накопичує певну статистику щодо пристроїв і чергу вказаних розробником місцях моделі. Вся ця інформація є доступною користувачеві у процесі моделювання.
Генератори випадкових (точніше, псевдовипадкових) чисел є об’єктами GPSS-моделі. Їх можна розділити на три групи:
· вбудовані генератори рівномірно розділених в інтервалі (0, 1) випадкових чисел, що будуються на мультиплікативному конгруентному методі; звертання до генератора за допомогою системного числового атрибута RNj, де j – номер генератора, дозволяє створювати цілочисельні випадкові величини в інтервалі (0; 999);
· бібліотечні генератори випадкових чисел, реалізовані у вигляді вбудованих бібліотечних процедур мови PLUS, з конкретними законами розподілу;
· табличні генератори випадкових чисел з довільними законами розподілів, які реалізуються користувачем у вигляді таблиць.
Для полегшення табулювання статистичної інформації в GPSS передбачений спеціальний об'єкт – таблиця. Вони використовуються для одержання вибіркових розподілів деяких випадкових величин. Таблиця складається із частотних класів (діапазонів значень), куди заноситься число попадань конкретного числового атрибута в той чи інший частотний клас. Для кожної таблиці обчислюється також математичне сподівання й середньоквадратичне відхилення. Наприкінці експерименту з моделлю результати, що містяться в таблицях, можуть виводитися або на дисплей, або на друк.
|
|
До групуючої категорії належать три типи об'єктів: числова група, група транзактів і списки.
Під час моделювання у будь-який момент модельного часу транзакти, які знаходяться у моделі, зберігаються в одному із списків. Списки є структурами даних для зберігання інформації про транзакти. Вони відносяться до внутрішньої організації GPSS і забезпечують логіку процесу моделювання структури.
У будь-який момент часу транзакт може перебувати в одному з таких видів списків: 1) поточних подій; 2) майбутніх подій; 3) затримки ОКП або БКП; 4) відкладених переривань ОКП; 5) користувача. Загальна структура списків наведена на рис. 4.1.
У списку поточних подій (СПП) перебувають транзакти, що відповідають подіям, час настання яких є меншим або дорівнює поточному часу. Транзакти зі СПП готові до входу в блоки й повинні ввійти в них до чергової зміни модельного часу. У СПП транзакти розташовані в порядку зменшення пріоритету, а транзакти з однаковими пріоритетами розташовуються в порядку надходження їх у список.
Номер транзакта | Номер поточного блоку | Номер наступного блоку | Час виходу із списку | Пріоритет | Час розміщення у списку |
Рис.4.1. Структура списку GPSS
Список майбутніх подій (СМП) містить транзакти, що відповідають подіям, час настання яких повинен відбутися в майбутньому. Такі транзакти розміщуються в списку строго в порядку зростання часу початку руху. Пріоритети не впливають на порядок руху в цьому списку.
У список повторних спроб надходять транзакти, для яких не виконані умови входу в наступний блок TRANSFER. Транзакти зі списку повторних спроб очікують зміну СЧА. Це зумовлює активізацію транзакту і перевірку умови його входження в наступний блок. Якщо умови виконуються, транзакт надходить у наступний блок і автоматично виключається зі списку повторних спроб. Кожний об’єкт GPSS має свій список повторних подій.
Одноканальний пристрій має:
· список відкладених переривань — список транзактів, що очікує заняття ОКП за пріоритетом;
· список переривань –список транзактів, обслуговування яких даним ОКП було перервано;
|
|
· список затримування – список транзактів, що очікує заняття ОКП в порядку пріоритету;
· список повторних спроб – список транзактів, що очікує зміни стану ОКП.
Багатоканальний пристрій має:
· список затримування – список транзактіов у порядку пріоритету, що очікують можливості зайняти канали БКП, що звільнилися;
· список повторних спроб – список транзактів, що очікує зміни стану БКП.
Список синхронізуючих транзактів містить транзакти, що перебувають у даний момент часу в стані порівняння.
Список користувача містить транзакти, вилучені користувачем зі списку поточних подій і надіслані в список користувача як тимчасово неактивні. Списки користувача використовуються для організації черг з дисциплінами, відмінними від дисципліни “першим прийшов - першим обслужений”.
Більш детальне використання списків транзактів буде викладене надалі під час побудови моделей з використанням блоків GPSS World.
Після того як система, модель якої потрібно розробити, формалізована, її потрібно описати мовою GPSS, використовуючи блоки, які виконують відповідні операції в моделі.