Задача 4.
Составить таблицу расписания запуска периодических программ высокой степени срочности. На данном уровне работает 8 программ. Для заданных программ составить временную диаграмму работы.
Таблица 4
№ Варианта |
Параметры |
|||
Величина первичного периода ∆t, мс |
Периодичность запуска программ |
Номера запускаемых программ |
Длительность цикла расписания, мс |
|
10 |
10 |
Т4 = 2∆t, Т7 = 5∆t |
4,7 |
100 |
Решение:
Диспетчер программ высокой срочности управляет программами приема и выдачи информации. При абсолютных приоритетах поступления запроса на выполнение программ с более высоким приоритетом может прервать выполняющуюся в данный момент программу с менее высоким приоритетом и запросить соответствующую этому запросу программу. После выполнения программы с более высоким приоритетом продолжается выполнение прерванной программы.
Составим таблицу расписания запуска периодических программ.
Количество строк = Тц / ∆t = 100 / 10 = 10
В состав схемы программной реализации запуска программ по расписанию входят:
- таблица расписания (матрица циклов МЦ ),
- счетчик первичных периодов или подциклов (СПЦ),
- слово активности программ (САП),
- слово вызова программ (СВП),
- таблица начальных (базовых) адресов программ,
- программные модули ( П0 …..Пn-1 )
Таблица расписания составляется в соответствии с требованиями периодичности программ запуска программ. Количество строк в таблице равно количеству первичных периодов в цикле расписания, а число столбцов –количеству программ.
Счетчик подциклов обеспечивает обращение к нужной строке таблицы расписания. Его содержимое меняется циклически по сигналу от таймера и соответствует номеру первичного периода.
Слово активности программ используется для разрешения или запрета на запуск программы. Запрещение запуска может быть вызвано перегрузкой ЭУС. Выполнение программ в данном подцикле регулируется словом вызова
Р исунок . Схема программной организации запуска программ
Р исунок . Временная диаграмма работы СВП
программы (см. рисунок ), которое формируется путем логического умножения содержимого строки таблицы расписания и САП.
Инициализация алгоритмов запуска периодических процессов обеспечивается при поступлении сигнала от диспетчера прерываний, диспетчер приоритетного уровня, получив управление:
-
Определяет номер строки в МЦ по содержимому СПЦ;
-
Формирует СВП логическим умножением содержимого строки МЦ на САП;
-
Осуществляет поразрядный анализ СВП посредством операции поиска крайней левой единицы (см. рисунок ). В случае ее отсутствия через интервал дельта t произойдет обращение к следующей строке МЦ.
Если “1” найдена, в данный разряд СВП записывается “0” (рисунок ) с целью предотвращения повторной обработки процесса и выдается команда запуска соответствующей программы. Для этой цели номер разряда СВП пересчитывается в адрес таблицы начальных адресов программ, из которой извлекается базовый адрес нужного программного модуля. После окончания работы программы диспетчер анализирует следующие разряды СВП с целью обнаружения “1” и т.д. до тех пор, пока результат анализа не даст “0”.
После окончания цикла (10 мс) расписания СПЦ устанавливается в “0”, а диспетчер приоритетного уровня передает управление диспетчеру прерываний.