1.2.1 Створення та видалення потоку транзактів у моделі
Потік транзактів створюється та вводиться до моделі блоком
GENERATE A,B,C,D,E
де A, B, C, D, E – операнди блоку. Блоком у мові GPSS є оператор, або команда мови. Кожен блок має вхідні параметри (операнди), що дозволяють налаштувати функціонування блоку відповідно до вимог задачі.
Операнди A і B задають розподіл інтервалів надходження транзактів до моделі. Для завдання рівномірного розподілу операнди A і B задаються ненегативними цілими числами й призначають відповідно середнє значення та половину розмаху інтервалу надходження транзактів. Операнд A має бути більше B. Для задання інших видів розподілів в GPSS використовуються функції.
Операнд C визначає момент модельного часу, в який з блоку GENERATE у моделі повинен з'явитися перший транзакт. Крім першого, всі наступні транзакти заходять до моделі відповідно до розподілу інтервалу часу, заданого операндами A і B. За замовчуванням С = 0.
Операнд D – це максимальна кількість транзактів, що мають увійти до моделі через даний блок GENERATE. За замовчуванням кількість транзактів не обмежена.
Операнд E встановлює рівень пріоритету кожного з генерованих транзактів. За замовчуванням транзактам надається найменший рівень пріоритету, який дорівнює нулю. Усього в GPSS існує 128 різних рівнів пріоритетів: 0, 1, ..., 127. Чим більше число, тим більший пріоритет.
Наприклад, блок
GENERATE 5,3,10,5
забезпечує надходження до моделі потоку транзактів через такі інтервали часу, які є випадковими цілими числами з множини {2, 3, 4, 5, 6, 7, 8}. Час прибуття першого транзакту – 10. До моделі ввійдуть лише перші п'ять транзактів.
Транзакти видаляються з моделі потрапляючи в блок
TERMINATE А
Вилучення транзакту з моделі супроводжується видаленням з пам'яті ЕОМ всіх записів, які описували стани транзакта при його переміщенні в моделі. Блок TERMINATE має один операнд, у якому можна вказати цілу константу. Транзакт, який надійшов до блоку TERMINATE, видаляється з моделі, а з лічильника завершення подій віднімається число, вказане в операнді A. Якщо у ролі операнда A блоку TERMINATE виступає 0, або операнд не вказаний взагалі, то значення лічильника не зменшується, але транзакт, що надійшов до блоку TERMINATE видаляється з моделі у будь-якому випадку. В моделі може бути декілька блоків TERMINATE, які можуть впливати на той самий лічильник.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.