Краткое практическое руководство по GPSS

             

Объяснение рис. 13.6. Состояния цепей - часть 3


Следующий транзакт (транзакт 2) в ЦБС имеет значение времени движения, отличное от 14. Следовательно, первое выполнение фазы коррекции таймера закончено.

Заметим, что в строке 3 на рис.13.6 цепь текущих событий (ЦТС) содержит лишь один единственный транзакт, описанный как [1, КМР, НЕТ, 0, 1]. Время входа в пятипозиционной записи обозначено как КМР, т.е. "Как можно раньше". Все транзакты в ЦТС в позиции "время движения" имеют запись КМР. Это объясняется тем, что они "хотели" бы войти в следующий блок сейчас же (т.е. в текущие значения модельного времени), или, если вход в следующий блок закрыт, то как можно раньше. Текущий блок для этого транзакта по-прежнему содержит запись "HET", поскольку транзакт все еще не вошел ни в один из блоков модели. Он займет какой-либо блок только после того, как отработает фаза просмотра. После завершения первого выполнения фазы коррекции таймера сразу же начинается выполнение фазы просмотра.

Первое выполнение фазы просмотра (от строки 3 к строке 4). Выбрав транзакт 1 из начала третьей строки ЦТС, интерпретатор двигает его в блок 1 (блок GENERATE), затем проверяет, может ли транзакт 1 быть перемещен в следующий блок - блок 2 QUEUE. Блок QUEUE не запрещает вход, поэтому попытка входа будет успешной.

Теперь, поскольку транзакт может уйти из блока GENERATE, интерпретатор временно приостанавливает его продвижение и планирует приход следующего транзакта в блок GENERATE. Второй розыгрыш числа в соответствии с распределением 18 ± 6 интервалов прихода дает значение 13 (см. табл.13.1). Транзакт выбирается из вершины пассивного буфера (транзакт 3) и помещается в цепь будущих событий с запланированным временем входа в блок 1, равным "текущее + 13", т. е. 27. Напомним, что для определения времени прихода следующего транзакта разыгранное значение интервала прихода прибавляется к текущему значению таймера.

Что касается блока GENERATE, то здесь необходимо сделать два замечания:

1. Интерпретатор не планирует следующий приход в блок GENERATE до тех пор, пока предыдущий транзакт не сделает успешную попытку войти в следующий блок.


Содержание  Назад  Вперед