1. коды состояния модели
ATL blockname/ num - список AT имён или номеров ОБ
ATP - все точки AT
BREAKPOINTS - все глобальные точки прерывания
CLOCKS - абсолютное и относительное время
COMMON - использование общей памяти
OUTPUT - стандартный отчёт
STATUS - значения ИН Хакт, времени, значения СЗ
TRAPS - все глобальные запреты
2 Имена классов объектов
AMP - отображение всех амперпеременных
BLO - отображение данных ОБ
FAC - отображение данных об устройствах
QUE - отображение данных об очередях
RNO - выходные данные о БСВ
STO - отображение данных о памятях
TAB - отображение данных о таблицах
Наличие отладчика примечательно тем, что после успешно проведённой симуляции и исполнения команды ОУ START, можно передать управление программой пользователю. Пользователь может применить одну или несколько команд отладчика, дальнейшая работа может вестись в диалоговом режиме, с последовательной передачей функций управления от программы к пользователю и обратно. Такой режим способствует отладке программы, уточнению сомнительных мест, выводу на дисплей любой интересующей пользователя информации. Процесс продолжается до подачи команды STOP или любой команды выхода из тестового режима, например, QQ. Отметим, что в тестовом режиме (сеансе отладчика) невозможно внести какие либо изменения в МФ! Для внесения изменений необходимо прервать сеанс отладчика, вернуться к редактору, с помощью которого вы создавали МФ, внести необходимые изменения и лишь после этого вернуться в тестовый режим.
Далее рассмотрим команды, приведенные в таблице 3.5. Команды рассматриваются не в алфавитном порядке, а по частоте использования и по важности. Первой рассмотрим команду DISPLAY, позволяющую выводить на экран дисплея разнообразную информации о состоянии модели и о данных различных объектов
DISPLAY
Команда используется для выдачи информации о членах классов объектов или о состоянии модели. Классы объектов и коды состояний приведены в комментариях 1,2 таблицы 3.5.
А. Информация о членах классов объектов имеет следующий формат:
< D[isplay] класс объекта (имя, номер) >
Приведём несколько примеров (обратите внимание на возможные варианты записи команды):
DISPLAY FAC - вывести данные об устройствах
DIS QUEUE(SAM,FRED) - данные об очередях SAM,FRED
D ВLO(1…10,20)-данные об ОБ с первого по десятый и о 20-м
d AMP -показать все амперпеременные
Если нет членов класса, удовлетворяющих записанной команде, то информация не отображается. Например, если запрашивается информация об устройствах, а ни одно устройство пока не захвачено, то информация на дисплее не появляется.
Б. Информация о статусе модели имеет следующий формат ( впредь будем пользоваться только сокращённой формой записи команды ) :
< d код… > , а для транзактов
< d xact=n > например ,
d CPU COM- показать время исполнения ЦПУ и загрузку памяти,
d STA - показать состояние модели ( Хакт, время, состояние СЗ ),
d CEC FEC - показать СТС и СБС (списки текущих и будущих ХАСТ),
d ATL 12 - показать список AT команд для ОБ № 12,
d XACT=100 - показать транзакт с ИН 100,
d XACT=3 XACT=10 - показать Хакт с ИН 3 и 10.
Информация, показываемая для каждого класса или состояния (за исключением информации об амперпеременных) идентична данным выходного отчёта для объектов. Информация о состоянии модели при введённых условиях запрета и прерывания специфична для отладчика. Информация о транзактах идентична информации об активных транзактах в окне состояния отладчика, если нет текущих транзактов, то , в ответ на запрос, появляется сообщение об их отсутствии.
TRAP и UNTRAP
Команда TRAP может применяться для установки запрета в самых разных вариантах, которые выбираются пользователем. В GPSS/H существует пять видов наложения условий запрета, рассмотрим их подробнее. В любом случае при введении запрета появляется сообщение и управление передаётся пользователю
1. Условия запрета SYSTEM проявляются каждый раз, когда транзакт, по какой либо причине больше не может двигаться по модели. Среди этих причин можно назвать:
- транзакту запрещён вход в ОБ,
- транзакт попадает в СБС,
- транзакт размещается в списке пользователя ( ОБ LINK),
- транзакт уничтожен ( ОБ TERMINATE , ASSEMBLE ).
Эта форма запрета используется как барьер при изучении движения транзакта, представляющего большой интерес для исследователя. Если вдруг транзакт неожиданно исчезает из поля зрения, то эти условия позволяют определить его судьбу и принять решение о других командах.
2. Условия запрета NEXT возникают всякий раз, когда симулятор вводит Хакт после сканирования СТС. При введения этого запрета Хакт располагается перед его следующим ОБ и появляется сообщение “XACT i POISED at BLOCK j “, где i и j могут быть номерами или именами.
Эти два условия в материале не используются.
3. Условие запрета CLOCK проявляется, когда абсолютное время достигает или превышает заданное время, при этом процесс ИМ останавливается в это время. Если абсолютное время превысило заданное значение, то его величина фиксируется для продолжения процесса ИМ после снятия запрета со значения превысившего заданное время.
4. Условия запрета XACT налагаются на определённый транзакт и всякий раз, когда Хакт с этим номером снимается после сканирования из СТС, появляется сообщение и управление передаётся пользователю. Условия запрета налагаются заранее, и по умолчанию роль отмеченного Хакт прослеживается за весь жизненный цикл.
5. Условия запрета SCAN реализуются каждый раз, когда симулятор готов начать сканирование СТС, при этом появляется сообщение “SCAN TRAP TAKEN (SYSTEM POISED TO BEGIN CEC SCAN)” - запрет по сканированию введён (система готова начать сканирование СТС) и управление передаётся пользователю.
Формат команды TRAP для всех видов запретов имеет вид:
< TRAP Y [ Y … ] > , Y = ( SYSTEM , NEXT , CLOCK ,… ), например :
TRAP SYSTEM NEXT - наложены запреты SYSTEM и NEXT,
TR XACT=1 XACT=5- наложены запреты на Хакт ИН1 и ИН5,
T CLOCK 1000 - наложено ограничение по времени – 1000 дискрет МВ,
t SCAN - наложен запрет на сканирование СТС.
Для снятий условий запрета используется только команда UNTRAP, которая должна предварять любые команды продолжения процесса ИМ, так если будет применена одна из команд RUN, CONTINUE, STEP, то процесс ИМ при отсутствии команды UNTRAP будет продолжаться только до одной из ближайших точек прерывания или запрета. Формат команды UNTRAP аналогичен формату команды TRAP и поэтому приведём лишь примеры использования команды :
UNTRAP SYSTEM NEXT - снятие запретов SYSTEM и NEXT
UNT XAC=1 XACT=5 - снятие запретов с Хакт ИН1 и ИН5.
Программа GPSS/H предусматривает два вида запретов: глобальные и локальные. Команда TRAP налагает только глобальные запреты, которые могут быть сняты только командой UNTRAP. Локальные же запреты, налагаемые командой CONTINUE, приводимой ниже, действуют только на протяжении одной команды отладчика.
BREAK и UNBREAK
Условия прерывания также могут быть глобальными и локальными и применяться к любому количеству ОБ одновременно. Глобальные условия прерывания действуют до тех пор, пока они не будут специально сняты, локальные условия, устанавливаемые командой CONTINUE, действуют на протяжении одной команды. Имена или номера ОБ, на которые наложены условия прерывания могут быть отображены на дисплее после команды < d BRE >. Когда Хакт достигает ОБ, к которому применены условия прерывания, появляется сообщение, содержащее ИН Хакт, ОБ, текущее значение времени, после чего управление передаётся пользователю. Формат команд одинаков и имеет вид :