ecosnos.ru |
Главная Микроустройства: номенклатура изделий электронной промышленности 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 [ 89 ] 90 91 92 93 94 95 Состав средств трассировки. Средства трассировки состоят из трех функциональных компонентов: программы инициализации трассировки; процедуры обработки запросов на трассировку; собственно процедуры трассировки. Программа инициализации трассировки оформляется в виде задачи, входящей в состав мультипрограммного пакета. Она запрашивает ввод с терминала исходной информации для организации трассировки. Обращение к терминалу выполняется через Супервизор ввода-вывода [40]. Как только в результате диалога с пользователем сформированы управляющие таблицы запросов на выполнение трассировки, программа инициализации выставляет запросы [62] на выполнение трассировки к УП. Пользователь может и ие включать программу инициализации трассировки в свой пакет. В этом случае запросы иа трассировку должны поступить из его программ. Два остальных компонента, если необходимо проводить трассировку, должны быть обязательно включены в УП при ее генерации. Процедура обработки запросов ва трассировку получает управление от обработчика запросов, обрабатывает управляющие таблицы запросов и формирует данные для работы двух процедур Восстановление команды в точке разрыва Восстановление регистров Установка Т-разряда Выход из прерывания По команде RTT V-операция на семафоре защиты -19- Восстановление регистров 20- -S. / Выход \ V из Прерывания у Прерывание по Т-разряду Восстановление команды ВРТ в программе Сохранение регистров в стеке задачи трассировки. Первая из процедур трассировки получает управление в результате обработки точки разрыва, организованной в программе пользователя процедурной обработки запросов на трассировку. Вторая процедура Трассировки включается периодически, в ТОТ момент, когда исчерпывается очередной квант времени, назначенный в запросе. Алгоритм, реализуемый процедурой трассировки в точках разрыва. Процедура трассировки располагает таблицей установленных точек разрыва. Таблица представлена смежными ячейками, в которых раснолагаются команды, извлеченные из прогзамм пользователя процедурой обработки запросов на трассировку в момент обработки запроса на установку точки разрыва, и абсолютные адреса этих команд. На место извлеченной команды процедурой обработки запросов подставляется команда ВРТ (программное прерывание). На рис. 8.2 показана структурная схема алгоритма, реализуемого процедурой трассировки в точках разрыва. Прерывания по команде ВРТ обрабатывает процедура трассировки в точках разрыва. Состояние прерванной задачи запоминается и выполняется Р-операция на системном семафоре. Р-опера-ция на семафоре защиты делается для защиты процедуры трассировки, которая является в УП критическим ресурсом. Таким Нет Включить ее в список готовых к выполнению Создание временной задачи трассировки Вход по вызову из Службы времени f-2- Счетчик времени: = счетчик времени-1 В счетчике >0? Служба времени обрабатывает прерывания от таймера Выход из процедуры Начало задачи по запуску от Диспетчера -15-- Сбор н подготовка данных для вывода -16- IВывод сообщения > Закрьггь систему прерывания Сбросять флаг занято образом, процедура трассировки в некоторый момент времени мот жет обслуживать команду ВРТ только в одной задаче. Остальные задачи блокируются на семафоре защиты. Р-операция на системном семафоре выполняется для синхронизации запросов к драйверу ввода-вывода или к Супервизору ввода-вывода. Чтобы ускорить процесс обработки ВРТ-команды, приоритет текущей задачи повышается (блок 4). Если адрес команды ВРТ не содержится в таблице установленных точек разрыва (блок 6), то процедура трассировки не реагирует на эту команду и обеспечивает выход из прерывания на следующую команду прерванной программы (блоки 16-20). . При этом восстанавливаются состояния регистров, приоритет задачи и освобождаются критические ресурсы (V-операции). Если адрес команды ВРТ содержится в таблице установлеи-иых точек разрыва (блок 6), то выполняется трассировка (вывод сообщения) и подготовляется выполнение команды, которая была заменена кодом команды ВРТ (блоки 7-11). Выход из прерывания (блок 12) по команде RTT обеспечивает прерывание после выполнения восстановленной команды по Т-разряду. Процедура трассировки получает управление (блок 13)., запоминает состояние прерванной задачи, восстанавливает ВРТ-команду в программе (блоки 14, 15), освобождает критические ресурсы и возвращает управление следующей команде прерванной задачи (блоки 16-20). Алгоритм процедуры трассировки по времени. Процедура трассировки по времени располагает счетчиком времени и адресом таблицы запроса. Счетчик времени содержит текущее значение времени (число прерываний таймера), оставшегося до момента вывода трассы. Когда выводится сообщение (трасса) о состоянии указанных областей памяти, то значение счетчика восстанавливается из таблицы запроса. Процедура трассировки по времени тан же как и процедура трассировки в точках разрыва имеет несколько входов (рис. 8.3). Процедура вызывается службой времени УП чере? точку входа, соответствующую блоку /. В это время система прерывания закрыта. Если оказывается, что момент времени соответствует Выполнить Рч)11ерацию на системном семафоре Включнть задачу в список готовых к выполнению Выполнить У-оиерацию на системном семафоре Уничтожить временную задачу трассировки Взвести флаг занято Восстановить период грассвревки 1-21-1- Передать управление Диспетчеру Конец |