Если транзакт в списке текущих событий находится в активном состоянии, интерпретатор пытается его продвинуть по блокам. При этом выполняются операции, соответствующие проходимому транзактом блоку.
Если блок принадлежит к специальному типу BUFFER. то интерпретатор прекращает продвижение транзакта и начинает просмотр с начала списка текущих событий.
Если блок, в который вошел транзакт, не является блоком типа BUFFER, интерпретатор проверяет, не произошло ли при выполнении предыдущего блока изменение состояния ресурсов. Если изменение произошло, интерпретатор устанавливает в "1" флаг изменения состояния, устанавливает в "0" индикаторы просмотра для всех транзактов, находящихся в списке задержки, связанном с соответствующей единицей ресурса.
Если в выполняемом блоке не задана явным образом задержка транзакта, интерпретатор сразу же пытается продвинуть транзакт через следующий блок. Этот процесс продолжается до тех пор, пока транзакт не получает отказ при попытке войти в блок, не встречает блок ADVANCE с заданной явно задержкой во времени или не уничтожается блоком TERMINATE или ASSEMBLE.
Если движение транзакта блокируется из-за состояния ресурса, то индикатор просмотра для этого транзакта устанавливается в "1", это означает, что транзакт перешел в состояние задержки. Транзакт помещается в соответствующий список задержки, и затем интерпретатор определяет, произошло ли изменение состояния ресурса во время обработки этого транзакта. Если движение транзакта прекращено из-за заданной для него задержки во времени, оно помещается в список будущих событий, и затем интерпретатор также проверяет, не изменилось ли состояние ресурса.
Если при обслуживании текущего активного транзакта произошло изменение состояния ресурса, просмотр начинается сначала, и снова обслуживаются все транзакты списка текущих событий, находящиеся в активном состоянии. Если изменение состояния ресурса не происходило, интерпретатор снова обращается к списку текущих событий и проверяет, остались ли в нем транзакты, которые нужно обработать. Описанная выше последовательность событий происходит для каждого нового момента модельного времени до тех пор, пока счетчик завершения моделирования не станет равным 0. При выполнении этого условия моделирование прекращается.
Опубликовал Kest
March 30 2014 21:59:37 ·
0 Комментариев ·
3401 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.