Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник по курсу МС.doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
7.42 Mб
Скачать

8.5. Оператор advance

Задержка в движении транзакта по СМО (рис. 8.7) описывается оператором

ADVANCE А, В

Здесь А и В имеют тот же смысл, что и в операторе GENERATE, т.е. транзакт задерживается на время A=B, если B=const или A×B, если B – функция.

Рис. 8.7. Обозначение блока ADVANCE

Пример. Обслуживание заявки (транзакта) в устройстве WST продолжительностью а единиц времени, где а — равномерно распределенная в диапазоне [7, 11] случайная величина, описывается следующим фрагментом программы:

SEIZE WST

ADVANCE 9,2

RELEASE WST

8.6. Операторы enter и leave

Занятие памяти в накопителе транзактом (рис. 8.8) описывается оператором:

ENTER А, В

Здесь помимо имени накопителя (А) указывается объем занимаемой памяти (В).

Рис. 8.8. Обозначение блока ENTER

Освобождение В ячеек памяти в накопителе А (рис. 8.9) выполняется оператором:

LEAVE А, В

Рис. 8.9. Обозначение блока LEAVE

Для накопителей в модели нужно задавать общий объем памяти, что делается в следующем описании накопителя:

М STORAGE А

где М — имя накопителя, А — объем памяти.

8.7. Операторы queue и depart

Если транзакт приходит на вход занятого устройства или на вход накопителя с недостаточным объемом свободной памяти, то он задерживается в очереди к этому устройству или накопителю. Слежение за состоянием устройств и очередей выполняет интерпретатор.

Если в модели требуется ссылаться на длину очереди или собирать статистику по ее длине, то нужно явное указание этой очереди в модели. Делается это с помощью операторов входа в очередь (рис. 8.10):

QUEUE А

и выхода из очереди:

DEPART А

согласно этим операторам очередь А увеличивается и уменьшается на единицу соответственно.

Рис. 8.10. Обозначение блока QUEUE

8.8. Оператор test

Движение транзактов выполняется в естественном порядке, изменение этого порядка производится операторами перехода. Оператор условного перехода (рис. 8.11)

TEST ХХ А,В,С

В соответствии с ним переход к оператору, помеченному меткой С, происходит, если выполняется условие А ХХ В, где ХХ {Е,NE,L,LЕ,G,GE}, Е – равно, NE – не равно, L – меньше, LЕ – меньше или равно, G – больше, GE – больше или равно (ХХ размещается в позициях 13 и 14).

Пример. Приходящие пользователи ожидают обслуживания, если длина очереди не более 4, иначе от обслуживания отказываются. Фрагмент программы:

TEST G Q$STR, K4, LBL

QUEUE STR

SEIZE POINT

DEPART STR

ADVANCE 50,16

RELEASE POINT

Рис. 8.11. Обозначение блока TEST

8.9. Операторы start и terminate

Длительность моделирования задается с помощью итогового счетчика. В начале исполнения программы в счетчик заносится число, указанное в операнде А оператора начала исполнения:

START A,,C

Моделирование прекращается, когда содержимое счетчика будет равно или меньше нуля. Операнд С – шаг вывода статистики на печать.

Оператор выхода транзактов из СМО (рис. 8.12):

TERMINATE А

согласно которому из итогового счетчика вычитается число А.

Пример. Общая структура программы на GPSS имеет вид

SIMULATE

<описания, в том числе функций и накопителей >

<операторы, моделирующие движение транзактов>

START A,,C

END.

Рис. 8.12. Обозначение блока TERMINATE