Разработать логическую схему организации запуска периодических программ высокой степени срочности. На данном уровне работает 8 программ.
Величина первичного периода Dt=5 мс, периодичность запуска программ T0 = 2Dt, T7 = 3Dt, номера запускаемых программ – 0 и 7, длительность цикла расписания 60 мс.
Теория
Логическая схема организации запуска периодических программ высокой степени срочности
Работа диспетчеров программ высокой срочности и основного уровня организуется в соответствии с расписанием. Структура расписаний одинакова, но программы основного уровня запускаются в случайные моменты, поэтому расписание работы диспетчера называется относительным.
Диспетчер программ высокой срочности работает в соответствии с абсолютнымрасписанием, которое отражается в таблице расписаний (матрице подциклов). Расписание записано в память и задает периодичность запуска каждой программы данного уровня. Минимальный период запуска программ указанного уровня называют первичным периодом (Dt). Периоды запуска программ, отличающиеся от первичного, должны быть ему кратны. Интервал времени, состоящий из некоторого числа последовательных первичных периодов, в течение которого все программы данного уровня будут запущены хотя бы один раз, называется циклом расписания. Цикл расписания равен максимальному периоду запуска программ данного уровня.
Рисунок – Таблица расписания
Таблица расписания содержит двоичные переменные, отражающие необходимость запуска или пропуска программы в определенномподцикле расписания. Каждый столбец матрицы соответствует программе, а строка –первичному периоду запуска программ. Количество столбцов определяется по количеству периодических программ, а число строк рассчитывается, исходя из величин минимального и максимального периодов запуска. Наличие «1» на пересечении строки и столбца говорит о необходимости запуска соответствующей программы в подцикле. Если программа в данном подцикле не запускается, на пересечении строки и столбца будет записан «0». Таблица заполняется в соответствии с заданной периодичностью запуска программ.
В состав схемы программной реализации запуска программ по расписанию входят (рисунок 6):
- таблица расписания (матрица циклов МЦ);
- счетчик первичных периодов или подциклов (СПЦ);
- слово активности программ (САП);
- слово вызова программ (СВП);
- таблица начальных (базовых) адресов программ;
- программные модули (П0…Пn-1).
Счетчик подциклов обеспечивает обращение к нужной строке таблицы расписания. Его содержимое изменяется циклически по сигналу от таймера и соответствует номеру первичного периода (номеру строки таблицы).
Слово активности программ используется для разрешения или запрета на запуск программы. Запрещение запуска может быть вызвано перегрузкой ЭУС. Выполнение программ в данном подцикле регулируется словом вызова программы, которое формируется путем логического умножения содержимого строки таблицы расписания и САП.
Инициализация алгоритма запуска периодических процессов обеспечивается при поступлении сигнала от диспетчера прерываний. Диспетчер приоритетного уровня, получив управление:
1) определяет номер строки в МЦ по содержимому СПЦ;
2) формирует СВП логическим умножением содержимого строки МЦ на САП;
3) осуществляет поразрядный анализ СВП посредством операции поиска крайней левой единицы. В случае её отсутствия через интервал Dt произойдет обращение к следующей строке МЦ.
Если «1» найдена, в данный разряд СВП записывается «0» с целью предотвращения повторной обработки процесса и выдается команда запуска соответствующей программы. Для этой цели номер разряда СВП пересчитывается в адрес таблицы начальных адресов программ, из которой извлекается базовый адрес нужного программного модуля. После окончания работы программы диспетчер анализирует следующие разряды СВП с целью обнаружения «1» и т.д. до тех пор, пока результат анализа не даст «0»
Решение в раздатке, переписать себе на листок, раздатку не показывать.
4Определить структуру сканерной матрицы и массива состояний контрольных точек. Указать адресацию ячеек массива состояния, в котором используются матрицы сканирования 8х8. Нумерация ЦСК 421000-423047. Определить местонахождения контрольной точки абонентского комплекта абонента со списочным номером 421034. Составить алгоритм программной реализации процесса приема сигналов изменения состояния контрольной точки, если слово текущего состояния R1=5F, слово предыдущего состояния R2=45, слово блокировки R0=В4.
Теория
Алгоритм программы обнаружения сигналов вызова и отбоя
Алгоритм приема сигналов вызова и отбоя оперирует данными о состоянии контрольных точек АК: считывается текущее состояние КТ АК (R1), сравнивается с данными предыдущего опроса этих КТ (R2). В результате сравнения выявляются комплекты, в которые поступили сигналы вызова (изменение состояния КТ с «0» на «1») и отбоя (изменение состояния КТ с «1» на «0»). Операция сравнения проводится одновременно для n комплектов (n – разрядность ячеек памяти и количество КТ в одной линейке сканерной матрицы). Для выявленных комплектов формируются заявки к программам базового уровня, обеспечивающим дальнейшую обработку поступивших сигналов.
Выделение сигналов вызова и отбоя осуществляется на основе логических операций поразрядной конъюнкции и сложения по модулю два над машинными словами R1, R2, R0:
1) для обнаружения изменения состояния выполняется операция сложения по модулю два над словами текущего и предыдущего состояния КТ R3 = R1ÅR2;
2) полученный результат необходимо проанализировать на наличие заблокированных комплектов, для этого выполняется операция логического умножения со словом блокировки R4 = R3LR0;
3) для выделения комплектов, где зафиксирован сигнал вызова, выполняется операция логического умножения R5 = R4LR1;
4) для выделения комплектов, где зафиксирован сигнал отбоя, выполняется операция сложения по модулю два R6 = R4ÅR5.
Если обнаружено несколько комплектов с изменением состояний КТ, организуется очередь. Порядок комплектов в очереди определяется на основе операции поиска крайней левой единицы в словах R5 и R6. Заявки на обслуживание выявленных событий записываются в буфер заявок в порядке очереди («Алгоритм приема сигналов вызова и отбоя» РАЗДАТКА вставить свои буквы вместо R0 R1 R2 ).
Решение + раздатка