
- •Базы данных
- •Вопрос 29 Основные функции систем управления базами данных
- •Вопрос 30 Реляционные базы данных
- •Базовые понятия реляционных баз данных
- •Фундаментальные свойства отношений
- •Недостатки реляционной модели баз данных
- •Вопрос 31 Реляционная модель данных
- •Вопрос 32 Манипулирование данными
- •Реляционная алгебра
- •Вопрос 33
- •Вопрос 34
- •Вопрос 36 Реляционное исчисление кортежей и доменов
- •Вопрос 38. Состав программного обеспечения информационно-управляющих систем
- •Вопрос 39. Программы организации и контроля вычислительного процесса
- •Вопрос 40. Особенности операционных систем реального времени
- •Вопрос 41. Операционная система реального времени qnx
- •Вопрос 42. Операционная система реального времени "Карусель"
- •Вопрос 43 Программа обработки прерываний
- •Вопрос 44. Программа включения оперативной задачи
- •Вопрос 45. Программа включения карусельной задачи
- •Вопрос 46 Программа start и подпрограмма zagr
Вопрос 43 Программа обработки прерываний
Программа состоит из двух частей: индивидуальной и общей. Индивидуальная часть программы содержит по 8 ячеек для каждого уровня прерываний и осуществляет запись в стек содержимого регистров Н, L, D и Е.
При выполнении оператора 3 в регистр D заносится уровень приоритета прерывающей программы, а в регистр Е - номер строки таблицы переходов GDIR, в которой указан адрес начала прерывающей программы включения оперативной задачи. В операторе 3 программы приведена формула, позволяющая определить содержимое регистров D и Е по уровню приоритета
программы.
Обратите внимание на то, что переход к оперативной программе осуществляется по команде JMP (команда трёхбайтная).
Операторы 6 и 7общей части программы обработки прерывании OBPR осуществляют запись в стек содержимого регистров PSW и ВС, операторы 8 и 9 записывают уровень приоритета прерываемой программы в стек. Уровень приоритета прерывающей программы, хранящийся в регистре D, заносится в ячейку GSTAC и в регистр контроллера прерываний (адрес контроллера прерываний - 00h). Новая программа станет текущей, и будут разрешены только уровни прерываний выше уровня приоритета новой программы.
По команде 14 в регистры Н и L записывается адрес начала таблицы переходов GDIR, операторы 15 и 16 осуществляют переход к соответствующей строке таблицы переходов GDIR.
Вопрос 44. Программа включения оперативной задачи
Таких программ столько, сколько имеется уровней приоритета оперативных задач (в системе микро-ДАТ - шесть).
Командами 2,3 и 4 указатель стека прерываемой задачи записывается в регистры Н и L и таблицу GSTAC, номера ячеек которой определяются по номеру уровня приоритета прерывающей программы, и адрес записи младшего байта вычисляется по приведённой в таблице формуле. По команде CALL осуществляется переход к подпрограмме, определяющей указатель стека прерывающей программы. Если прерывается оперативная задача, то указатель стека не изменяется (запись в регистрах Н и L не изменится). При прерывании карусельной задачи в регистры Н и L будет записано дно системного стека. Оператор 6 переписывает содержимое регистров Н и L в регистр указателя стека, оператор 8 осуществляет переход к оперативной программе пользователя PP. После выполнения этой программы операторами 10 и 11 возвращается в регистр указателя стека адрес вершины стека ранее прерванной программы и происходит переход к подпрограмме WPR, которая произведёт восстановление регистров. Команды 14, 15 и 16 перепишут уровень приоритета восстанавливаемой программы в ячейку GSTAC и контроллер прерываний. Этим самым восстанавливаемая программа станет текущей и будут разрешены прерывания задачам, имеющим уровень приоритета выше уровня приоритета включаемой задачи. Команды 17, 18, 19 и 20 восстановят записи в указанных в программе регистрах, по команде RET произойдет переход к программе (в регистры PC будет записан адрес возврата в программу).
Таблица 2.5