Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Opisanie_yazyka_GPSS_World.rtf
Скачиваний:
44
Добавлен:
16.03.2015
Размер:
1.52 Mб
Скачать

3 Транзактно-ориентированные блокиGpss

К этой группе относятся блоки, которые определяют действия над транзактами:

  1. работа с параметрами транзакта;

  2. установка приоритета транзакта;

  3. изменение направления движения транзакта;

  4. организация циклов;

  5. обработка транзактов, принадлежащих одному семейству.

3.1 Работа с параметрами транзакта

3.1.1 Установка значений параметров транзакта. БлокAssign

При входе транзакта в блок ASSIGN (НАЗНАЧИТЬ) значения параметров могут задаваться или изменяться.

Формат блока ASSIGN:

ASSIGN <A>[±],<B>,[<C>]

Поля операндов имеют следующий смысл:

  • <A> – номер или имя модифицируемого или задаваемого параметра,

  • <B> – величина, используемая для модификации (число или СЧА),

  • <C> – имя функции.

Блок ASSIGN может быть использован как в режиме замещения значения параметра (начальное значение всех параметров транзактов равно 0), так и в режиме увеличения и уменьшения. В режиме увеличения предшествующее значение параметра увеличивается на значение, стоящее в операнде <В>. В режиме уменьшения оно уменьшается на величину, стоящую в операнде <В>. Режимы увеличения и уменьшения определяются введением соответственно знаков «плюс» и «минус» перед запятой, которая разделяет операнды <А> и <В>.

При использовании операнда <C> значение операнда <В> умножается на значение функции, указанной в операнде <C>. Параметр, заданный в операнде <А>, изменяется на величину полученного произведения (в режиме увеличения и уменьшения) или приобретает значение результата (в режиме замещения).

ПРИМЕР 18.

ASSIGN3,25

Параметру P3 присваивается значение 25.

ASSIGN P4,FR$BB

Параметру транзакта c номером, записанным в параметре P4, присваивается значение величины загрузки устройства BB (оба операнда заданы косвенным образом).

Блок ASSIGN в режимах накопления и уменьшения:

ASSIGN 4+,Q5

Параметр 4 увеличивается на значение, равное текущей длине очереди 5.

ASSIGN P2-,7

От значения параметра, номер которого задан параметром P2, вычитается 7.

3.1.2 Отметка времени транзакта. БлокMark

При каждом входе транзакта в модель интерпретатор фиксирует для него текущее значение времени. Это значение времени называется отметкой времени. Она может быть интерпретирована как время «рождения» транзакта или время входа транзакта в модель. В явном виде отметка времени недоступна. Однако существует СЧА, связанный со значением времени входа транзакта в модель. Его имя M1, a значение определяется так:

Значение M1 для каждого транзакта изменяется в процессе моделирования. Сразу после входа транзакта в модель M1=0, через 10 единиц модельного времени M1=10 и т.д.

Стандартный числовой атрибут M1 измеряет время, которое прошло c момента входа транзакта в модель. Однако очень часто требуется знать время, затраченное на перемещение транзакта между двумя произвольными точками модели (т.е. транзитное время). Для этого используется блок MARK. При входе транзакта в блок MARK значение таймера абсолютного времени записывается в качестве одного из его параметров. Такую запись называют отметкой транзакта.

Формат блока MARK:

MARK <A>

Поля операндов имеют следующий смысл:

  • <A> – номер параметра, в который записывается значение абсолютного времени (целое число или СЧА).

Пусть необходимо определить интервал времени, на протяжении которого транзакт проходит от точки Т1 к точке Т2. Для этого нужно выполнить два действия:

  1. в точку Т1 поместить блок MARK j, где j – номер параметра, в который записывается значение абсолютного времени в момент записи;

  2. в точке Т2 обратиться к СЧА c именем MPj, где j – номер параметра, в котором сделана отметка времени транзакта; СЧА MPj будет иметь такое значение:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]