Схема функционирования GPSS World
107.0 - 127.0 7 100.0
87.0 - 107.0 14 93.0
67.0 - 87.0 21 79.0
47.0 - 67.0 21 58.0
27.0 - 47.0 6 37.0
7.0 - 27.0 29 31.0
TAB 58.042 33.
- 7.0 2 2.0
При выполнении модели интерпретатор продвигает транзакты в модели от блока к блоку. Каждое продвижение транзакта в модели является событием, которое должно произойти в определенный момент модельного времени.
Для создания временной последовательности событий, интерпретатор использует таймер модельного времени.
Последовательность событий интерпретатор определяет, используя списки (цепи) событий
· Список текущих событий ‑ (CEC ‑ Chain of Current Events)транзакты, планируемое время продвижения которых равно или меньше текущего модельного времени (к последним относятся транзакты, движение которых было заблокировано ранее). Этот список организуется в порядке убывания приоритетов транзактов, а в пределах каждого уровня приоритета - в порядке поступления транзактов
· Список будущих событий ‑ (FEC ‑ Chain of Future Events) транзакты, планируемое время продвижения которых больше текущего времени, Этот список организуется в порядке возрастания планируемого времени продвижения транзактов
|
|
· Список задержки
· Другие
«Активный» транзакт перемещается от блока к блоку по маршруту, предписанному в модели.
В тот момент, когда транзакт входит в некоторый блок, на исполнение вызывается подпрограмма интерпретатора, соответствующая типу этого блока, а после ее выполнения транзакт «пытается» войти в следующий блок.
Такое продвижение транзакта продолжается до тех пор, пока не произойдет одно из следующих возможных событий:
1) транзакт входит в блок, функцией которого является удаление транзакта из модели;
2) транзакт входит в блок, функцией которого является задержка транзакта на некоторое определенное в модели время;
3) транзакт "пытается" войти в следующий блок, однако блок "отказывается" принять его. В этом случае транзакт остается в том блоке, где находился, и позднее будет повторять свою попытку войти в следующий блок.
Если возникло одно из описанных выше условий, продвижение данного транзакта прекращается, определяется следующий активный транзакт и начинается его перемещение.