Таблица 13.6.
Номер транзакта | Смысловое значение |
3 | Второй клиент стрижется |
4 | Третий клиент едет в парикмахерскую |
2 | Транзакт-таймер |
Четвертое выполнение фазы коррекции таймера (от строки 8 к строке 9). Интерпретатор продвигает время к значению 44 - времени движения транзакта (транзакта 4), стоящего первым в строке 8 цепи будущих событий. Затем он перемещает транзакт 4 из ЦБС в ранее пустую ЦТС. Следующий транзакт в ЦБС (транзакт 3) также имеет значение времени движения, равное 44. Он также перемещается в цепь текущих событий, где помещается за транзактом 4 в качестве последнего элемента внутри своего класса приоритетов. Следующий транзакт в цепи будущих событий (транзакт 2) имеет время движения, отличное от 44. Таким образом, четвертая коррекция таймера завершается.
Прежде чем продолжить, давайте снова посмотрим, какой смысл придается двум транзактам, стоящим в строке 9 цепи текущих событий (табл. 13.7).
Таблица 13.7. Смысловые значения транзактов в цепи текущих событий.
Номер транзакта | Смысловое значение |
4 | Третий клиент только что пришел в парикмахерскую |
3 | Второй клиент только что закончил стрижку |
Четвертое выполнение фазы просмотра (от строки 9 к строке 10). Выбрав транзакт 4, стоящий в начале строки 9 ЦТС, интерпретатор помещает его в блок 1, далее определяет, можно ли его переместить из блока 1 в блок 2. Временно прекратив обработку транзакта 4, интерпретатор планирует время прихода его последователя в блок 1 (GENERATE). Транзакт 1 выбирается из вершины транзактов пассивного буфера и помещается в цепь будущих событий, причем планируется время входа в блок 1 в момент времени "текущий + 15", т.е. 59 (в соответствии с табл.13.1, четвертое значение для распределения 18 ± 6 равно 15).
Заметим, что это снова транзакт 1, который вернулся в модель из пассивного буфера.