Пристрої GPSS FACILITY

Пристрій (FACILITY) у системі GPSS є об'єкт, у якому можуть виконуватися операції обробки транзакту (обслуговування заявок).

Особливість пристрою полягає в тому, що в будь-який момент часу він може бути зайнятий лише одним транзактом. Якщо пристрій зайнятий і поточний транзакт не може увійти до пристрою, то транзакт припиняє переміщення по моделі (стає заблокованим) і очікує на звільнення цього пристрою. Заняття та звільнення пристрою моделюють відповідно блоки

SEIZE A RELEASE А

де A – ім'я або номер пристрою.

Як правило, обробка пов'язана із витратами часу. У системі моделювання тривалість обробки відображається блоком затримки транзакту, що має вигляд:

де A – середній час затримки, що задається числом (ціле без знака) або ідентифікатором комірки, змінної, що містять ціле значення затримки; B – розкид часу затримки транзакту щодо середнього значення А з рівноймовірним розподілом в інтервалі (А-В, А+В). Очевидно, що повинно бути менше або дорівнює A.

Об'єкту FACILITY ДС можуть відповідати реальні пристрої обробки даних (процесори, ЕОМ, канали передачі даних), технічні засоби або будь-які компоненти системи, що забезпечують обслуговування заявок (у термінах теорії масового обслуговування пристрою відповідає одноканальна система масового обслуговування).

GPSS має можливість моделювати обслуговування заявок (транзактів)з урахуванням їх пріоритетів. Розрізняють два типи пріоритетів: відносний та абсолютний.

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

Заявки, що мають однакові пріоритети, обслуговуються у пристрої в порядку надходження до даного пристрою (дисципліна обслуговування FIFO – First-In-First-Out). GPSS має два способи завдання відносного пріоритету транзакту – в блоці GENERATE і в блоці PRIORITY.

При появі перед пристроєм заявки, яка має абсолютний пріоритет, ця заявка захоплює пристрій навіть якщо він зайнятий обслуговуванням деякої іншої заявки, що має відносний пріоритет або зовсім не має пріоритету. При цьому до захоплення пристрою відбувається переривання процесу обслуговування заявки, що увійшла до пристрою раніше. Перервана заявка надходить до списку переривань. Захоплення пристрою А транзактом з абсолютним пріоритетом та звільнення пристрою (зняття переривання) з подальшим дообслуговуванням раніше перерваного транзакту імітується відповідно блоками

PREEMРT A RETURN A

Таким чином, робота пристрою в GPSS-моделі відображається трьома блоками:

SEIZE A; зайняти пристрій ADVANCE A, B; затримати транзакт RELEASE A; звільнити пристрій

PREEMPT A; захопити пристрій з перериванням ADVANCE A,B; затримати транзакт RETURN A; звільнити пристрій із дообслуговуванням

З пристроями пов'язані такі ВЧА: SF$j – стан j-го пристрою: дорівнює 0, якщо пристрій вільний, і дорівнює 1, якщо пристрій зайнято; FR$j – коефіцієнт використання пристрою j; FC$j – число входів у пристрій j; FT$j – середній час використання j-го пристрою одним транзактом.

Пристрої мають також стандартні логічні атрибути, кожен з яких може набувати одного з двох значень: «істина» або «брехня»: U – пристрій зайнятий; NU - пристрій вільно; I - пристрій перервано; NI – не перервано.

Перевірка стану пристрою здійснюється блоком GATE, який залежно від значення СЛА, що перевіряється, або безперешкодно пропускає транзакти (якщо СЛА = «істина» ), або (якщо СЛА = «брехня») затримує їх – за відсутності поля С в блоці GATE або направляє транзакти по іншому маршруту – за міткою, вказаною у полі С.