де Name – назва БКП. Для звертання до декількох БКП символічному імені ставиться у відповідність номер за допомогою команди EQU. Операнд А є тільки цілим додатним числом.
У процесі моделювання БКП події відбуваються у такій послідовності:
· транзакт очікує своєї черги у випадку необхідності;
· транзакт займає пристрій;
· пристрій обслуговує протягом деякого інтервалу часу;
· транзакт звільняє пристрій.
Зайняття й звільнення БКП моделюється блоками ENTER (Ввійти) і LEAVE (Вийти). Формати блоків:
ENTER А,[В]
LEAVE А,[В]
Операнд А в блоках вказує на назву БКП. Він використовується для пошуку БКП із зазначеною назвою, коли транзакт входить у блок ENTER. Якщо такого БКП немає, відбувається зупинка процесу моделювання. Операнд В задає число одночасно зайнятих пристроїв (елементів пам’яті) в блоці ENTER або звільнених в блоці LEAVE. За замовчуванням операнд В = 1 (для В = 0 блок вважається нефункціонуючим).
Транзакт може ввійти в блок ENTER, якщо БКП перебуває в доступному стані і містить достатню ємність для обслуговування. У протилежному випадку транзакт потрапляє в список затримування пристрою відповідно до пріоритету.
|
|
Під час входження транзакту у блок ENTER виконуються наступні дії:
· збільшується на значення операнда В лічильник входів БКП;
· збільшується на значення операнда В (за замовчуванням на 1) поточний вміст БКП;
· зменшується на значення операнда В (за замовчуванням на 1) доступна ємність БКП.
БКП ніколи не може бути вилучений з поточної моделі, навіть якщо команда STORAGE видаляється з програми. БКП можна перевизначити, тобто змінити його ємність іншою командою STORAGE із тією ж самою назвою. Наприклад:
Buf STORAGE 8
Повторний опис
Buf STORAGE 12
Імітація обслуговування протягом певного проміжку часу також здійснюється блоком ADVANCE. Наприклад:
Nak1 STORAGE 10
...
ENTER Nak1,2
ADVANCE 80,5
LEAVE Nak1,2
...
Командою STORAGE визначається БКП з назвою Nak1 ємністю 10 одиниць. Під час входу транзакта в блок ENTER займається 2 одиниці й стільки ж звільняється в блоці LEAVE з виходом із БКП.
Якщо транзактом здійснюється запит на більшу кількість пристроїв (елементів пам'яті), ніж визначено командою STORAGE, (значення операнду А команди STORAGEC є меншим за значення операнда В блоку ENTER), тоді виникає помилка “Запит елементів пам'яті перевищує її загальну ємність”. Наприклад:
Nak2 STORAGE 10
...
ENTER Nak2,15
ADVANCE 80,5
LEAVE Nak2,15
...
Оскільки транзакт з входом в блок ENTER намагається зайняти більше каналів (15), ніж визначено (10) командою STORAGE, то відбудеться зупинка програми. Tе ж саме відбудеться з виходом із блоку LEAVE. Транзакт намагається звільнити каналів більше (15), ніж визначено командою STORAGE.
|
|
Якщо операнд В у блоках ENTER і LEAVE не використовується, тоді транзактом займається й звільняється одна одиниця ємності БКП. Наприклад: