Системой реального времени

21 Системой реального времени является такая система, в которой успех вычислений зависит не только от их логической правильности, но также и от времени, когда готовы результаты вычислений. Если не удается обеспечить соответствие временным ограничениям, то считается, что произошла системная ошибка.

Приоритетные/фоновые системы

Приоритетные/фоновые системы являются развитием систем работающих только под управлением прерываний, в которых цикл опроса заменен кодом, выполняющим полезную обработку данных. Использование приоритетных/фоновых систем является общим подходом для встроенных приложений. Они включают набор управляемых прерываниями или процессов реального времени называемых приоритетными, и совокупность процессов не управляемых прерываниями, называемых фоновыми.



Решение всех вопросов для реального времени являются отдельными случаями приоритетных/фоновых систем. Например циклический опрос является простой фоновой системой без приоритетной задачи и циклов опроса, как в фоновой задаче. Добавление прерываний для синхронизации даст полную приоритетную фоновую систему. Код управляемый прерываниями является приоритетной фоновой системой без приоритетных задач и кодом, управляемым фазовым процессом в качестве фоновой задачи. Системы с сопрограммами являются просто усложненным фоновым процессом. Наконец системы, управляемые только прерываниями являются приоритетными/фоновыми системами без фоновой обработки.



Фоновая обработка

Также как и задача с обслуживанием без прерываний фоновая обработка не должна включать никаких задач, критичных по времени. Поскольку фоновый процесс является процессом с самым низким приоритетом, практически в 100% случаев. Он всегда должен выполнятся в завершающей фазе обработки, и не должен иметь никахих ситуаций блокировки во время выполнения. Например, в большинстве случаев, при выполнении фоновой задачи увеличивается содержимое счетчика комманд для перехода на измерение времени загрузки, либо определение факта зависания приоритетной задачи. Желательно также предусмотреть отдельные счетчики для приоритетных процессов сбрасывающих фоном. Если фоновый процесс обнаружит, что один из счетчиков не сбрасывается достаточно часто, то возможно, что соответствующая задача не выполняется, что может говорить об обнаружении ошибочной ситуации. Такой подход носит название программируемого сторожевого таймера. Определенные виды низкоприоритетного самотестирования также могут быть выполнены в фоновом режиме. Например, для многих систем необходимо, чтобы был выполнен полный тест комманд ЦП. Такой тип тестирования никогда не выполняется в приоритетном режиме, но должен являтся частью повышающей надежность. Разработка и кодировка таких тестов ЦП требует тщательного планирования. Низкоприоритетные обновления дисплея, запись данных в принтере и другие операции с медленными устройствами должны выполнятся в фоновом режиме.



22.  Режим реального времени – режим обработки данных, при котором обеспечивается взаимодействие вычислительной системы с внешними по отношению к ней процессами в темпе, соизмеримом со скоростью протекания этих процессов.

СМ. ВОПРОС 21





23. 

24. Как уже говорилось, СРВ - это программно-аппаратный комплекс, осуществляющий мониторинг какого-то объекта и/или управление им в условиях временнЫх ограничений. Возникающие на объекте события подлежат обработке в СРВ. Будем сопоставлять каждому типу события задачу.

ЗАДАЧА (TASK) - блок программного кода, ответственный за обработку тех или иных событий, возникающих на объекте управления.

Задача может быть "оформлена" в виде:

Отдельного процесса

Потока управления внутри процесса (нити, легковесного процесса)

Обработчика прерывания/подпрограммы

РАБОТА ЗАДАЧИ (JOB) - процесс исполнения блока программного кода в ходе обработки события.

Каждая работа задачи характеризуется следующими временнЫми параметрами:

r (Release Time) - момент времени, когда задача становится готовой к исполнению (например, процесс переходит в состояние готовности)

d (Absolute Deadline) - абсолютный крайний срок, момент времени, к которому задача должна завершить очередную работу.

s (Start Time) - момент времени, когда задача начала исполняться на процессоре

с (Complition Time) - момент времени, когда задача закончила работу, обработав событие

D (Relative Deadline) - относительный крайний срок. D = d - r

e (Execution Time) - время исполнения задачи при выполнении ею очередной работы. e = c - s

R (Response Time) - время отклика. R = c - r

Диаграмма ниже иллюстрирует эти параметры:

																          r           s               c       d

																          *           |---------------|       |

																          |           |               |       |

																	  |           |               |       *

																--+---+---+---+---+---+---+---+---+---+---+---+---+---+----> t (у.е.)

																  0   1   2   3   4   5   6   7   8   9   10  11  12  13

Приведенная на этой диаграмме работа задачи имеет следующие параметры:

r = 2

d = 11

s = 5

с = 9

D = 11 - 2 = 9

e = 9 - 5 = 4

R = 9 -2 = 7

Упомянутые параметры определяются следующим:

Времена перехода задач в состояние готовности, по сути, определяются природой управляемого объекта.

Крайние сроки определяет разработчик СРВ, исходя из свойств управляемого объекта.

Времена исполнения задач определяются архитектурой процессора, его тактовой частотой и конкретной реализацией того или иного алгоритма.

Для определения последней величины можно использовать 2 подхода.

Первый заключается в подсчете количества тактов процессора, необходимых на выполнение той или иной задачи. 
Отметим, что такой подсчет чрезвычайно усложняется в случае, если процессор содержит механизмы типа конвейеров и всевозможных кэшей.

Второй подход более прост и состоит в том, что времена исполнения непосредственно измеряются. 
Опять отметим, что в случае процессоров с конвейерами и кэшами такие измерения не дают гарантии, что будет измерено именно МАКСИМАЛЬНОЕ время исполнения того или иного кода (???). Наконец, системы, использующие механизмы подкачки страниц, также являются менее предсказуемыми и поэтому считается, что такого рода механизмы являются "врагами" систем реального времени. Недаром в различного рода стандартах, касающихся СРВ, предусмотрены средства блокировки страниц памяти.







25. ПРОГРАММИРУЕМЫЕ Ввод\вывод

При программированном вводе\выводе для передачи данных используется специальное ЦП. Команда ввода(in) передает данные от указанного устройства ввода\вывода в указанный регистр ЦП. Команда вывода(out), передает данные из регистра ЦП, заданному устройству ввода\вывода. Обычно идентификация операционного регистра ЦП встроена в подкоманды. Как команда ввода так и команда вывода требует затрат ресурсов ЦП И , в первую очередь, времени, что влияет на производительность в режиме реального времени.



Пусть, например, компьютерная система используется для управления скорости двигателя. Выходной порт соединен с двигателем и чтобы установить частоту вращения двигателя , целой число со знаком записывается в порт. Архитектура компьютера такова, что когда команда Out выполняется, содержимое РЕГИСТРА1 помещается на шину данных и отправляется в порт ввода\вывода по адресу, содержащемуся в РЕГИСТРЕ2.



Следующий фрагмент кода устанавливает скорость вращения двигателя (смотри рис. 7.1).

Первые две команды кода инициализируют содержимое РЕГИСТРОВ 1 и 2. Далее выполняется команда Out.













































26. Прямой доступ к памяти (ПДП/DMA)

Память предоставляется другим устройствам системы без вмешательства ЦП, то есть информация заносится непосредственно в оперативную память внешнего устройства. Если схема ПДП не интегрирована  в микросхему ЦП, то необходим контроллер ПДП, поскольку такая схема не требует участия ЦП при передачи данных, собственно передача данных происходит быстро.



Контроллер ПДП прдеотвращает ситуации требуя от каждого устройства «сигал запроса ПДП», который должен быть подтвержден «сигналом подтверждения ПДП» от контроллера. Пока подтверждающий сигнал не послан устройву запроса его соединение с главной шиной находится в тристабильном состоянии. Любое устройство, котрое находится в тристабильном состоянии не может влиять на данные шины памяти. Как только «сигнал подтверждения ПДП» отправлен устройству запроса его проводники шины памяти становятся активными и происходит передача данных, точно также как и обмен данными с ЦП.





27. 



Ввод-вывод с использованием выделенной памяти

Обеспечивает удобный механизм передачи данных, который не требует использования специальных команд ЦП для ввода-вывода. Есть определенный адреса памяти отображаемые как виртуальные порты ввода-вывода.





В качестве примера рассмотрим управление скоростью шагового двигателя. При необходимости реализации ввода-вывода с использованием выделенной памяти код на ассемблере будет следующим:





Например дисплей состоит из массива 24 строки на 80 столбцов (1920 ячеек). Каждая ячейка экрана связана с определенным адресом в памяти. Для обновления экрана символы из памяти записываются по адресу, связанному с этой ячейкой экрана.





28. Побитное отображение устройств

Побитовая карта описывает представление ряда устройств, к которым можно получить доступ единственным дискретным сигналом. Биты организованы в слова памяти для удобного доступа либо посредством ПДП,  либо по адресы выделенной памяти. Типичный битовый массив для нескольких устройств вывода. Каждый бит связанный с конкретным устройством.