Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КНИЖКА_Моделювання систем у GPSS World.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
7.15 Mб
Скачать

5.5. Блоки статистичної категорії

У статистичній категорії GPSS використовуються два типи об’єктів: черги і таблиці. Вони вводяться для збирання та реєстрації статистичних даних. Статистичні дані про черги автоматично збираються у моменти вход­ження транзактів у блок QUEUE (Стати у чергу) або у блок DEPART (Вийти з черги). Необхідно зауважити, що блоки QUEUE і DEPART не моделюють чергу, а тільки дозволяють системі GPSS збирати інформацію про чергу.

Ця статистика повинна дати відповіді на наступні питання:

  • скільки разів транзакти надходили в чергу і яке максимальне значення її довжини;

  • скільки транзактів надійшли до черги й скільки їх відразу без черги потрапило на обслуговування в ОКП;

  • яке середнє число транзактів і середній час їх очікування.

Формат запису блоку QUEUE наступний:

QUEUE А,[В]

Операнд А задає номер або назву черги, в яку надходить транзакт. Значення поточної довжини черги зберігається в СЧА Q$<назва черги>. Транзакт, що приєднується до черги, запам’ятовує її назва. Також визначається довжина інтервалу часу, протягом якого довжина черги не змінюється. Операнд В визначає число одиниць, на яке збільшується поточна довжина черги з входом транзакта у блок. Якщо операнд В не використовується, то додається одиниця. Після цього порівнюється нова довжина черги з максимальною (вже досягнутою). Якщо нове значення більше від максимального, то попереднє максимальне значення замінюється на нове. Загальне число одиниць черги використовується для визначення середнього часу перебування транзактів у черзі.

Розглянемо приклади запису блоку QUEUE.

QUEUE Cher1

Із входом кожного транзакта в блок QUEUE збільшується довжина черги Cher1 на одиницю.

QUEUE P5,P12

Цей блок збільшує довжину черги, номер якої заданий у параметрі Р5 транзакта, на число одиниць, заданих у параметрі Р12.

Транзакт перестає бути елементом черги після того, як він переходить у блок DEPART відповідної черги. Формат запису блоку DEPART має вигляд:

DEPART А,[В]

Блок DEPART служить для зменшення довжини черги. Операнд А задає номер або назву черги, довжину якої треба зменшити. Операнд В задає число одиниць, на яке зменшується довжина черги. Це число не повинне перевищувати поточну довжину черги. Якщо операнд В не використовується, то за замовчуванням довжина черги зменшується на 1. Операнди А і В у блоках QUEUE і DEPART можуть бути назвою, додатним цілим числом, виразом у дужках, СЧА або СЧА*параметр.

Наведемо приклад використання блоку DEPART, що зменшує довжину черги Buf на одиницю:

DEPART Buf

Розглянемо використання блоків QUEUE і DEPART у моделі на прикладі, представленого на рис. 5.2 сегменту.

Рис. 5.2. Блок-діаграма використання блоків QUEUE, DEPART в моделі

Для збирання статистики про очікування у черзі через зайнятість ОКП з назвою KANAL введемо блок QUEUE з іменем NAK1. Якщо транзакт увій­­шов у сегмент у момент, коли ОКП KANAL не зайнятий, транзакт вхо­дить у блок QUEUE. Далі транзакт намагається ввійти в блок SEIZE і, ос­кільки KANAL вільний, ця спроба виявляється успішною. Стан KANAL змі­нюється на “зайнято”, і далі транзакт відразу потрапляє в блок DEPART. Ви­конується відповідна підпрограма й транзакт потрапляє в блок ADVANCE, де затриму­ється на час, обчислений відповідно до розподілу 20±3.

Нехай ОКП KANAL перебуває в зайнятому стані й наступний транзакт входить у сегмент моделі. Він проходить у блок QUEUE і одержує далі відмову, оскільки KANAL перебуває в зайнятому стані. Транзакт перестає рухатися, залишаючись у блоці QUEUE.

Пізніше, коли транзакт, що перебуває на обслуговуванні в пристрої, залишає його, транзакт, що очікує, знову спробує ввійти в блок SEIZE. Цього разу спроба виявиться успішною. Рухаючись далі, транзакт увійде в блок DEPART, зменшуючи значення лічильника поточного вмісту черги на 1 і т.д.

Для накопичування та оброблення статистичних даних у процесі моделюван­ня використовуються GPSS-таблиці TABLE (Таблиця) i QTABLE. Інформація заноситься у таблиці за допомогою спеціального блоку TABULATE (Табулювати).

Оператор TABLE має такий формат

Name TABLE A,B,C,D

Мітка Name визначає назву таблиці (числове або символьне). Операндом А задається аргумент таблиці – елемент даних, частотний розподіл якого табулюється. Він може бути іменем, виразом у дужках або СЧА. Операнди В і С відповідно задають верхню границю першого інтервалу і ширину кожного частотного інтервалу (різницю між верхньою і нижньою границями). Операндом D задається число частотних інтервалів. Операнди B ,C, D можуть бути цілими додатніми числами.

Q-таблиці використовуються для отримання лише розподілу часу перебування транзактів у черзі. Для створення у моделі такої таблиці використовується оператор QTABLE у такому форматі

Name QTABLE A,B,C,D

Значення мітки та операндів у QTABLE є таким же як і для TABLE за винятком того, що операнд А задає назву черги.

Для збирання статистичних даних і занесення їх значень у таблицю транзакту необхідно увійти у блок TABULATE з тим же іменем таблиці, яке визначено TABLE

TABULATE A,[B]

Операнд А визначає назву таблиці у якій накопичується (табулюються) значення статистичної інформації. Одну таблицю можна використовувати у декількох блоках TABULATE моделі. Операнд В задає число одиниць, яке за­носиться у цей частотний інтервал, куди потрапило значення аргументу. Якщо операнд В не вказується, то це число дорівнює одиниці. Операнди А і В можуть бути назвою, виразом у дужках, СЧА або СЧА* параметр. Окрім того, операнд А може бути додатнім цілим числом, а операнд В – лише додатнім числом.

Зазначимо, що при використанні QTABLE занесення інформації у табли­цю здійснюється автоматично з входом транзакту у блоки QUEUE i DEPAPT. Тому у даному випадку блок TABULATE є непотрібним. Після завершення процесу моделювання наявна в таблиці інформація виводиться у стандартному звіті GPSSW.

Наведемо приклад використання статистичних таблиць

WRon TABLE P$Lv, 8.4,3.5,10

. . . . .

TABULATE WRon

Аргументом таблиці з іменем WRon є СЧА P$Lv з верхнею границею першого інтервалу 8.4, шириною 3.5 і числом інтервалів 10. Кожне значення аргументу P$Lv, яке є меншим або рівним 8.4, збільшує частоту першого частотного класу таблиці на 1. Якщо аргумент таблиці не попадає у перший частотний клас, тоді клас визначається діленням значення аргументу на операнд С оператора TABLE.

Розглянемо інші приклади використання блоку TABULATE

Time TABLE M1,150,30,8

. . . . . .

TABULATE Time

Стандартний числовий атрибут М1 має бути виведений у табличному виді. Нижня границя змінної (поле В) дорівнює 150. Ширина кожного час­тотного інтервалу (поле С) дорівнює 30, а число частотних інтервалів (поле D) дорівнює 8. Операнд Time визначає назву таблиці, у якій накопичується інформація про функціонування даної системи. Якщо такий об’єкт є відсут­нім, тоді виконання програми зупиняється. Пізніше таблиця поповнюється інформацією відповідно до заданих операторів команди TABLE.

Використання операнда В у блоці TABULATE

TABULATE Wron, 3

Число одиниць 3 додається до значення частоти класу.