Resources):

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

Другими словами, чтобы гарантировать временное поведение, система должна
вести себя детерминированным образом в широком диапазоне нагрузок (от минимальной
до самой неблагоприятной, максимальной нагрузки). Заметим, что в определении
ничего не говорится о производительности, так как режим реального времени не имеет
к этому никакого отношения: здесь речь идет только о предсказуемости. Например, при
использовании быстрого современного процессора Linux способен обеспечить типичное
время отклика на прерывание 20 мкс, но случайным образом это время может
значительно увеличиваться. В этом заключается основная проблема: дело не в том, что
Linux не является достаточно быстрым или эффективным, проблема заключается в отсутствии
предсказуемого поведения.

Приводимые далее примеры показывают сущность данной проблемы. На Рисунке 1
показаны результаты измерения времени отклика на прерывание. При поступлении прерывания
(события) работа центрального процессора прерывается и он переходит к обработке
прерывания. Некоторое время затрачивается на то, чтобы определить, какое именно событие
произошло, затем, проделав некоторую работу, планировщик переключает необходимую задачу
на работу с данным событием (переключение контекста — context switch). Время, которое
проходит от поступления сигнала прерывания до создания необходимой задачи (предполагается, что
эта задача будет иметь наиболее высокий приоритет) определяется как время отклика. Для
систем реального времени это время отклика должно быть детерминированным и соответствовать
заранее известному наиболее продолжительному времени ожидания.

В начало

В начало

Ресурсы .

Примером подхода на основе нано-ядра является Adaptive Domain Environment for
Operating Systems (ADEOS). ADEOS обеспечивает возможности одновременного выполнения
операционных систем. При возникновении определенного аппаратного события, ADEOS
по очереди обращается ко всем операционным системам и определяет, кто из них
будет осуществлять обработку события.

В начало

В начало

Ресурсы.

Другой полезной опцией в ядре 2.6 являются таймеры высокого разрешения.
Эта новая опция позволяет таймерам работать с разрешением до 1 мкс (если это позволяет
используемое аппаратное устройство), а также для повышения производительности реализует
управление таймерами на основе красно-черных деревьев. Использование красно-черных
деревьев позволяет активировать большое количество таймеров без ущерба для производительности
работы подсистемы таймеров (O(log n)).

Проделав небольшую дополнительную работу, при помощи патча PREEMPT_RT
можно добавить поддержку жесткого режима реального времени. Чтобы добиться этого,
патч PREEMPT_RT вносит несколько важных изменений. К ним относятся изменение
некоторых используемых в ядре примитивов блокировки с целью сделать их
полностью вытесняемыми, реализация наследования приоритета для мьютексов ядра
и преобразование обработчиков прерываний в потоки ядра (также с целью обеспечить
их полную вытесняемость).

В начало

Ресурсы содержится дополнительная
информация о том, где можно получить материалы и методы по организации режимов реального
времени.

Карта сайта: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34