означає, що якщо умова “довжина черги 1 більше 5” виконується, тоді активний транзакт передається наступному блоку, у протилежному випадку він блокується до того часу, поки дана умова не буде виконана.
Наведемо приклад використання блоку TEST для перевірки стану ОКП, у якому транзакти очікують обслуговування, якщо довжина черги є не більшою 4. У протилежному випадку обслуговування не здійснюється (транзакт направляеться в блок TERMINFTE помічений міткою LBL). Відповідний фрагмент програми може бути таким:
TEST LE Q$STR,4,LBL
QUEUE STR
SEIZE POINT
DEPART STR
ADVANCE 50,16
RELEASE POINT
...
LBL TERMINFTE 1
...
Блоки статистичної категорії
У статистичній категорії GPSS використовуються два типи об’єктів: черги і таблиці. Вони вводяться для збирання та реєстрації статистичних даних. Статистичні дані про черги автоматично збираються у моменти входження транзактів у блок QUEUE (Стати у чергу) або у блок DEPART (Вийти з черги). Необхідно зауважити, що блоки QUEUE і DEPART не моделюють чергу, а тільки дозволяють системі GPSS збирати інформацію про чергу.
|
|
Ця статистика повинна дати відповіді на наступні питання:
· скільки разів транзакти надходили в чергу і яке максимальне значення її довжини;
· скільки транзактів надійшли до черги й скільки їх відразу без черги потрапило на обслуговування в ОКП;
· яке середнє число транзактів і середній час їх очікування.
Формат запису блоку QUEUE наступний:
QUEUE А,[В]
Операнд А задає номер або назву черги, в яку надходить транзакт. Значення поточної довжини черги зберігається в СЧА Q$ <назва черги>. Транзакт, що приєднується до черги, запам’ятовує її назва. Також визначається довжина інтервалу часу, протягом якого довжина черги не змінюється. Операнд В визначає число одиниць, на яке збільшується поточна довжина черги з входом транзакта у блок. Якщо операнд В не використовується, то додається одиниця. Після цього порівнюється нова довжина черги з максимальною (вже досягнутою). Якщо нове значення більше від максимального, то попереднє максимальне значення замінюється на нове. Загальне число одиниць черги використовується для визначення середнього часу перебування транзактів у черзі.
Розглянемо приклади запису блоку QUEUE.
QUEUE Cher1
Із входом кожного транзакта в блок QUEUE збільшується довжина черги Cher1 на одиницю.