< B[REAK] имя блока >
< UNB[REAK] имя блока > , например
BREAK 5 - прерывание на ОБ № 5
B 5 LINE - прерывание на ОБ 5 и LINE
UNBREAK 5 - снятие прерывания с ОБ 5
UNB 5 LINE - снятие прерывания с ОБ 5 и LINE
АТ
Команда АТ обеспечивает в каждый момент времени возможность автоматизации отображения списка команд, относящихся к ОБ, в который пытается войти Хакт. Формат команды АТ имеет вид:
< AT имя или номер ОБ
@ команда 1
…
@команда n
@END
: >
Когда достигается точка прерывания на заданном ОБ, то при наличии команды АТ, список команд, ассоциирующихся с этой командой автоматически выполняется программой. Таким образом, команда АТ может быть использована, как для задания условий прерывания, так и для запуска процесса выполнения списка команд. Обратите внимание на следующее обстоятельство: как только в командной строке появится команда АТ, так сразу форма приглашения с ( : ) меняется на ( @ ), которая предваряет каждую команду списка, после исполнения команды end , форма приглашения в командной строке снова принимает привычный вид ( : ). Следует помнить, что выполнение любой команды из списка осуществляется после нажатия пользователем клавиши Enter . Приведём пример использования команды:
: at block6
@ d blo
@ r
@ end
:
Команды, находящиеся в списке для лучшей читаемости специально сдвинуты вправо. В параграфе 6.7.2, будет рассмотрен пример сессии отладчика, где будут использованы многие из приведенных команд.
RUN, CONTINUE, STEP
Все вышеназванные команды используются для запуска или реализации процесса ИМ. Кроме того, эти команды могут использоваться для достижения точек запрета или прерывания.
1. В нормальных условиях (при отсутствии специальных условий) команда RUN обеспечивает проведение процесса ИМ в пакетном режиме с нормальной скоростью моделирования, что, естественно, исключает возможность диалога. При наличии условий запрета или прерывания, команда RUN сразу доводит процесс ИМ до первой специальной точки. Формат команды имеет вид :
< R[UN] Y > Y= (block ,SCAN,XACT,… ) , например:
RUN - отсутствие специальных точек , процесс ИМ идёт до конца,
RUN SAM 17 - движение до глобальных прерываний в ОБ SAM и 17,
R CLOCK 400 – запрет процесса ИМ после 400 дискрет МВ,
R XACT=5 3 - запрет на Хакт с ИН5, прерывание на Хакт с ИН3.
2. Команда CONTINUE аналогична команде RUN, т.е. доводит процесс ИМ до конца (при отсутствии специальных условий), а кроме того с её помощью можно установить локальные условия прерывания и локальные условия запрета только для запретов типа NEXT и SYSTEM. Локальность запрета, заключается в том, что его действие распространяется только на период исполнения команды CONTINUE, появление первой глобальной специальной точки прерывает исполнение команды, а, следовательно, отменяет локальные условия. Формат этой команды имеет такой же вид, как у команды RUN. Приведём примеры:
CONTINUE - отсутствие ограничений, процесс ИМ идёт до конца
CONTINUE SAM 17 - локальные прерывания на ОБ SAM и 17
C NEXT - локальный запрет на типа NEXT
c 12 SYSTEM - прерывание на ОБ 12 и запрет типа SYSTEM
3. Команда STEP используется в, так называемом тактовом или пошаговом режиме, служит для продвижения процесса либо на один такт, что равносильно исполнению одного ОБ или нажатию функциональной клавиши F10, либо на то число тактов, которое задаётся после обязательного пробела за именем команды. Формат команды имеет вид:
< S[TEP] n >, по умолчанию число тактов равно 1, например:
STEP 5 – исполнение 5-ти ОБ,
S - исполнение одного ОБ,
s 2 - исполнение двух ОБ.
Команда Step не налагает ограничений на отдельные транзакты, поэтому необходимо использовать ограничения типа NEXT или SYSTEM . Переход в пошаговый режим исключает возможность использования команды CONTINUE, которая применима только в нормальном режиме.
STOP, SET
1. Команда STOP используется для прерывания сеанса диалога, если в момент прерывания подготавливается итоговый отчёт, то об этом появляется сообщение и необходимо ещё раз написать ту же команду, тогда процесс останавливается . Формат команды имеет простой вид:
< STO[P] > , пример применения очевиден.
2. Команда SET используется для установления предела времени исполнения программы. Когда процесс ИМ достигает предела МВ, заданного либо извне, либо с помощью операнда А ОБ SIMULATE, появляется сообщение, процесс останавливается и управление передаётся пользователю. Формат этой команды имеет вид:
< SET TIME [ =] n [ S,M] > , например :
SET TIME=1.5M – установить предел МВ равный 1.5 минутам
SE TIME 90S - то же самое в секундах
se TIME 20 - появляется сообщение “ Minutes assumed” .
Прежде чем начинать работу в режиме отладки для практических целей, а не для тренировки навыков, необходимо чётко представлять специфику работы моделируемой системы. Особенно важно при разработке новой системы уяснить для себя проблемные части будущей системы, поведение которых не до конца очевидны исследователю. Именно для целей практического применения диалогового режима можно дать несколько практических советов:
· Заранее определите количество и расположение критических точек модели.
· Установите режим прерывания в этих точках (break –b) и непременно пользуйтесь на каждом шаге процедурой отображения (display – d). В непосредственной близости от точки прерывания используйте шаговый режим (step – s), чтобы не пропустить каких либо особенностей поведения модели. Удаляйте точки прерывания сразу после того, как задача исследования достигнута. Подобное поведение позволяет выявить возможные ошибки и верифицировать логику модели.
· Избегайте длительных диалоговых режимов, чтобы не утомляться и не наделать новых ошибок при длительной отладке. Выйдя из режима диалога, проанализируйте все ваши действия в процессе отладки и продумайте новые изменения, если они необходимы.
· Помните, что выявленная ошибка порой даёт гораздо больше информации, позволяющей исключать подобные ошибки в дальнейшем. Появление второй аналогичной ошибки свидетельствует о том, что либо ваши усилия были не эффективны, либо заданы неверные начальные условия или режимы использования.
· Для выявления влияния поведения транзактов на возможные ошибки, используйте условия запрета (trap- t) , чтобы уточнить логику МФ.
· В случае невозможности определить причины ошибки, попробуйте применять стрессовые методы, например, увеличить размер шага, чтобы локализовать место происхождения ошибки. Порой помогает изменение стратегии контроля, но всё это приходит при накоплении опыта.
3.7 Примеры применения ЯИМ GPSS/H
В данном параграфе будут представлены два примера. Первый, моделирование процесса выходного контроля качества телевизионного производства, с использованием большого числа, описанных выше операторов. Пример имеет логическую структуру, которой следует придерживаться при выполнении курсового проекта!
Второй пример иллюстрирует использование отладчика, в отчете данные об использовании отладчика следует приводить только в том случае, когда это оговорено в полученном задании.
1. Постановка задачи.
Собранные телевизоры проходят через группу контрольных постов выходного контроля. Если телевизор не проходит выходной контроль , то он отправляется на участок подрегулировки , и после успешного завершения этой операции возвращается в очередь телевизоров , ждущих выходного контроля. Прошедшие выходной контроль телевизоры поступают на склад готовой продукции. Эта схема представлена на рис. 6.6 . Телевизоры поступают на выходной контроль каждые 5.5
2 минуты , на котором находится два контрольных поста, время проверки 10 3 минуты . С вероятностью 12 % телевизоры не проходят выходной контроль и отправляются на подрегулировку. Время подрегулировки 30 10 минут. Как перед постами выходного контроля , так и перед регулировщиком могут скапливаться телевизоры , необходимо определить число потребных стеллажей для хранения поступающих телевизоров. Процесс моделирования прекращается после проверки 100 телевизоров. В качестве дополнительного условия рассмотрим возможность получения результатов нескольких последовательных реплик в одном цикле ИМ, что достигается размещением в модуле управления петли управления DO- ENDDO, включающей ОУ CLEAR.2.Допущения, сделанные в модели.
После прохождения выходного контроля телевизоры разделяются на два потока, 88% годных отправляются на склад готовой продукции, 12 % дефектных на подрегулировку. Для исследования вопроса о числе стеллажей контроля создаются две очереди, одна перед постами выходного контроля, вторая на линии регулировки.
Для возвращения отрегулированных телевизоров, в общий поток проверяемых, используется ОБ TRANSFER безусловного вида. Для получения динамики производственного процесса, совместим 5 последовательных прогонов (реплик) в одном цикле ИМ, путём введения петли управления. Эпюра движения транзактов представлена на рис.3.8
Рис.3.8 Эпюра движения транзактов.
3. Таблица обозначений
Обозначения примера 3.1 сведены в таблице 3.6
Таблица 3.6 Временная дискрета: 1 минута.
Объекты GPSS/H | Объекты системы |
Транзакты Фрагмент 1 Фрагмент 2 | Готовые телевизоры Телевизоры после подрегулировки |
Устройства ADJUSTER | Регулировщик |
Очереди ADJUSTQ LASTTEST | Очередь на подрегулировку Общая очередь на контроль |
Памяти TESTERS | Два контролёра |