21Системой реального времени является такая система, в которой успех вычислений зависит не только от их логической правильности, но также и от времени, когда готовы результаты вычислений. Если не удается обеспечить соответствие временным ограничениям, то считается, что произошла системная ошибка.
Приоритетные/фоновые системы
Приоритетные/фоновые системы являются развитием систем работающих только под управлением прерываний, в которых цикл опроса заменен кодом, выполняющим полезную обработку данных. Использование приоритетных/фоновых систем является общим подходом для встроенных приложений. Они включают набор управляемых прерываниями или процессов реального времени называемых приоритетными, и совокупность процессов не управляемых прерываниями, называемых фоновыми.
Решение всех вопросов для реального времени являются отдельными случаями приоритетных/фоновых систем. Например циклический опрос является простой фоновой системой без приоритетной задачи и циклов опроса, как в фоновой задаче. Добавление прерываний для синхронизации даст полную приоритетную фоновую систему. Код управляемый прерываниями является приоритетной фоновой системой без приоритетных задач и кодом, управляемым фазовым процессом в качестве фоновой задачи. Системы с сопрограммами являются просто усложненным фоновым процессом. Наконец системы, управляемые только прерываниями являются приоритетными/фоновыми системами без фоновой обработки.
Фоновая обработка
Также как и задача с обслуживанием без прерываний фоновая обработка не должна включать никаких задач, критичных по времени. Поскольку фоновый процесс является процессом с самым низким приоритетом, практически в 100% случаев. Он всегда должен выполнятся в завершающей фазе обработки, и не должен иметь никахих ситуаций блокировки во время выполнения. Например, в большинстве случаев, при выполнении фоновой задачи увеличивается содержимое счетчика комманд для перехода на измерение времени загрузки, либо определение факта зависания приоритетной задачи. Желательно также предусмотреть отдельные счетчики для приоритетных процессов сбрасывающих фоном. Если фоновый процесс обнаружит, что один из счетчиков не сбрасывается достаточно часто, то возможно, что соответствующая задача не выполняется, что может говорить об обнаружении ошибочной ситуации. Такой подход носит название программируемого сторожевого таймера. Определенные виды низкоприоритетного самотестирования также могут быть выполнены в фоновом режиме. Например, для многих систем необходимо, чтобы был выполнен полный тест комманд ЦП. Такой тип тестирования никогда не выполняется в приоритетном режиме, но должен являтся частью повышающей надежность. Разработка и кодировка таких тестов ЦП требует тщательного планирования. Низкоприоритетные обновления дисплея, запись данных в принтере и другие операции с медленными устройствами должны выполнятся в фоновом режиме.
22. Режим реального времени – режим обработки данных, при котором обеспечивается взаимодействие вычислительной системы с внешними по отношению к ней процессами в темпе, соизмеримом со скоростью протекания этих процессов.
СМ. ВОПРОС 21
23.
24.Как уже говорилось, СРВ - это программно-аппаратный комплекс, осуществляющий мониторинг какого-то объекта и/или управление им в условиях временнЫх ограничений. Возникающие на объекте события подлежат обработке в СРВ. Будем сопоставлять каждому типу события задачу.
ЗАДАЧА (TASK) - блок программного кода, ответственный за обработку тех или иных событий, возникающих на объекте управления.
Задача может быть "оформлена" в виде:
РАБОТА ЗАДАЧИ (JOB) - процесс исполнения блока программного кода в ходе обработки события.
Каждая работа задачи характеризуется следующими временнЫми параметрами:
Диаграмма ниже иллюстрирует эти параметры:
r s c d
* |---------------| |
| | | |
| | | *
--+---+---+---+---+---+---+---+---+---+---+---+---+---+----> t (у.е.)
0 1 2 3 4 5 6 7 8 9 10 11 12 13
Приведенная на этой диаграмме работа задачи имеет следующие параметры:
Упомянутые параметры определяются следующим:
25. ПРОГРАММИРУЕМЫЕ Ввод\вывод
При программированном вводе\выводе для передачи данных используется специальное ЦП. Команда ввода(in) передает данные от указанного устройства ввода\вывода в указанный регистр ЦП. Команда вывода(out), передает данные из регистра ЦП, заданному устройству ввода\вывода. Обычно идентификация операционного регистра ЦП встроена в подкоманды. Как команда ввода так и команда вывода требует затрат ресурсов ЦП И , в первую очередь, времени, что влияет на производительность в режиме реального времени.
Пусть, например, компьютерная система используется для управления скорости двигателя. Выходной порт соединен с двигателем и чтобы установить частоту вращения двигателя , целой число со знаком записывается в порт. Архитектура компьютера такова, что когда команда Outвыполняется, содержимое РЕГИСТРА1 помещается на шину данных и отправляется в порт ввода\вывода по адресу, содержащемуся в РЕГИСТРЕ2.
Следующий фрагмент кода устанавливает скорость вращения двигателя (смотри рис. 7.1).
Первые две команды кода инициализируют содержимое РЕГИСТРОВ 1 и 2. Далее выполняется команда Out.
26. Прямой доступ к памяти (ПДП/DMA)
Память предоставляется другим устройствам системы без вмешательства ЦП, то есть информация заносится непосредственно в оперативную память внешнего устройства. Если схема ПДП не интегрирована в микросхему ЦП, то необходим контроллер ПДП, поскольку такая схема не требует участия ЦП при передачи данных, собственно передача данных происходит быстро.
Контроллер ПДП прдеотвращает ситуации требуя от каждого устройства «сигал запроса ПДП», который должен быть подтвержден «сигналом подтверждения ПДП» от контроллера. Пока подтверждающий сигнал не послан устройву запроса его соединение с главной шиной находится в тристабильном состоянии. Любое устройство, котрое находится в тристабильном состоянии не может влиять на данные шины памяти. Как только «сигнал подтверждения ПДП» отправлен устройству запроса его проводники шины памяти становятся активными и происходит передача данных, точно также как и обмен данными с ЦП.
27.
Ввод-вывод с использованием выделенной памяти
Обеспечивает удобный механизм передачи данных, который не требует использования специальных команд ЦП для ввода-вывода. Есть определенный адреса памяти отображаемые как виртуальные порты ввода-вывода.
В качестве примера рассмотрим управление скоростью шагового двигателя. При необходимости реализации ввода-вывода с использованием выделенной памяти код на ассемблере будет следующим:
Например дисплей состоит из массива 24 строки на 80 столбцов (1920 ячеек). Каждая ячейка экрана связана с определенным адресом в памяти. Для обновления экрана символы из памяти записываются по адресу, связанному с этой ячейкой экрана.
28. Побитное отображение устройств