Операторы QUEUEи DEPART

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

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

QUEUE А

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

DEPART А

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

Операторы QUEUEи DEPART - student2.ru

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

Оператор 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

Операторы QUEUEи DEPART - student2.ru

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

Операторы STARTи TERMINATE

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

START A,,C

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

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

TERMINATE А

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

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

SIMULATE

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

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

START A,,C

END.

Операторы QUEUEи DEPART - student2.ru

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

Оператор TRANSFER

Оператор безусловного перехода (рис. 8.13)

TRANSFER, В

Здесь В — метка оператора, к которому следует переход.

Операторы QUEUEи DEPART - student2.ru

Рис. 8.13. Обозначение блока TRANSFER

Используется ряд других разновидностей оператора TRANSFER.

TRANSFER P,В,С

Здесь переход происходит к оператору с меткой, равной сумме значения параметра В транзакта и числа С.

TRANSFER FN,В,С

То же, но вместо параметра транзакта слагаемым является значение функции В.

TRANSFER PICK, В,С

Это оператор равновероятного перехода к операторам, метки которых находятся в интервале [В, С]. Важное место в СМО занимает переход по вероятности

TRANSFER А,В,С

Здесь А — вероятность перехода к оператору с меткой С, переход к оператору с меткой В будет происходить с вероятностью 1 – А.

Оператор ASSIGNE

Оператор изменения параметров транзактов (рис. 8.14)

ASSIGN А, В

Здесь А — номер параметра транзакта, В — присваиваемое ему значение. В операторе

ASSIGN А+, В

параметр А увеличивается на значение В, а в операторе

ASSIGN А–, В

уменьшается.

Операторы QUEUEи DEPART - student2.ru

Рис. 8.14. Обозначение блока ASSIGN

Наши рекомендации