Варианты организации планирования задач по приоритетам:
1. Использование слова запросов на выполнение задач.
Задача выставляет в слове запросов флаг запроса, после окончания выполнения любой задачи производится анализ запросов в слове запросов в соответствии с порядком убывания приоритетов задач. При обнаружении запроса система переходит к выполнению задачи имеющий наивысший приоритет.
Этот вариант чаще всего используют в сложных многопроцессорных системах с большим числом задач алгоритм организации планирования выполнения пяти задач с различными приоритетами с формированием и анализом слова запросов на их решение показан на рис.3.1
2. Использование системы вложенных прерываний.Во втором случае выполняемая задача может быть прервана для выполнения задачи с большим приоритетом.
Этот вариант обычно используют в системах с небольшим числом задач (3 – 4 задачи). показан на рис.3.2
Р и с. 3.1. Организация планирования выполнения задач с различными приоритетами
с формированием и анализом слова запросов на их решение
(за время выполнения текущей задачи поступили запросы на решение от 1-й, 2-й и 5-й. После анализа слова состояния будет выполняться 1-я из них как задача, имеющая наивысший приоритет.)
Рисунок 3.2 Порядок выполнения задач по прерываниям, которые
имеют различные приоритеты (задачи в зависимости от важности распределены по шести уровням. Наивысшим по приоритету является уровень У1.
)
При проектировании специализированных микропроцессорных контроллеров применяется преимущественно последний вариант организации планирования.Для организации прерываний могут использоваться:
Внешний таймер.(В том числе встроенные таймеры)
Дополнительный аппаратный контроллер прерываний из-за огра
ниченого числа прерываний реализованных в микроконтроллере.
Аппаратные контроллеры устройств индикации, ввода-вывода,
канала передачи данных.
При этом из прикладной задачи можно выделить задачу оперативную – жестко привязанную по времени к управляемому процессу (измерение) и задачу фоновую (вычисление результатов измерения) для сокращения времени простоя сервисной задачи (например индикации) для предотвращения нарушения работы отображающего устройства.
Алгоритмической связи между фоновыми и оперативными задачами нет, они связаны между собой информационно, за счет общих ячеек памяти. При этом интервал выполнения оперативной задачи выбирается как можно меньшим
Аппаратные контроллеры ввода-вывода, индикации, передачи данных позволяют задачам работать асинхронно получая доступ к задачам в интервал времени не занятый оперативной задачей.
4. X - 16-битное число без знака, находящееся в ОЗУ с начальным адресом ADR1, CONST - 16-битная константа. Выполнить вычитание X - CONST и занести результат в ОЗУ с адреса ADR2Для вычитания используем представление вычитаемого как отрицательное число в дополнительном коде с последующим сложением с первым операндом
; Вычитание из 2-Х байтного числа 2-байтной константы
; ADR1 – Начальный адрес числа Х
; ADR2 – Адрес Для выгрузки результата
; CONST – Постоянная.
ADR1 .EQU 100 H. ;выделяем адрес для числа – X
ADR2 .EQU 102 H. ;Выделяем адрес для сохранения - Z
ADRCONST .EQU 104H. ;Выделяем адрес для константы
CLRC ;Сброс флага
SUBXC:
MOV R0,#ADR1 ; Загрузка в R0 Начального адреса X
MOVR1,#ADRCONST ;Загрузка в R0 Начального адреса константы
MOVR2,# ADR2 ;Загрузка в R2 Начального адреса результата
MOVA,@R1 ;Загрузка в аккумулятор младшего байта константы
CPLA ;Преобразование в дополнительный код
INCA
ADD A,@R0 ;Вычитание младших байт
MOV @R2,A ;Сохранение младшего байта Разницы
INC R0 ;Переход к старшим байтам Х и Константы
INCR1
MOVA,@R1 ;Загрузка в аккумулятор старшего байта константы
CPL A ;Преобразование в обратный код
ADDC A,@R0 ;Вычитание старших байт
MOV @R2,A ;Сохранение старшего байта разницы