Микропроцессорное программное управление. Архитектура IXA. Зарубин А.А. - 27 стр.

UptoLike

Составители: 

Рубрика: 

27
Для задач реального времени сообщество разработчиков Linux активно применяет
специальные расширения - RTLinux, KURT и UTIME, позволяющие получить устойчивую
среду реального времени. RTLinux представляет собой систему "жесткого" реального
времени, a KURT (KU Real Time Linux) относится к системам "мягкого" реального
времени. Linux-расширение UTIME, входящее в состав KURT, позволяет добиться
увеличения частоты системных часов, что приводит к более быстрому переключению
контекста задач.
RT-Linux
RT-Linux - это операционная система, в которой небольшое ядро реального
времени сосуществует с Posix-like ядром Linux. Основная цель - сделать доступными
сложные службы и оптимизированное поведение системы в стандартных ситуациях, для
системы с разделением времени и, в то же время, выполнять задачи реального времени. В
прошлом операционные системы реального времени примитивны - простые программы,
которые предлагали пользователю чуть больше, чем просто библиотека основных
функций. Но в наше время требуют доступ к TCP/IP, графическому дисплею и системе
окон, базам данных и другим службам, которые не являются ни примитивными, ни
простыми. Одно из решений - добавить non-real-time службы к базовому ядру реального
времени, это и было проделано в VXworks и немного по-другому в микроядре QNX.
Вторая возможность - модифицировать стандартное ядро и сделать его полностью
прерываемым.
RT-IX(Modcomp). RT-Linux организован третьим способом, в котором простое
ядро реального времени запускает обычное ядро как одну из задач реального времени с
самым низким приоритетом, используя виртуальную машину для того, чтобы сделать
стандартное ядро полностью прерываемым.
В RT-Linux все прерывания обслуживаются ядром реального времени, а затем,
передаются стандартному ядру, но только в том случае, если нет необходимости запускать
одну из задач реального времени. Для того чтобы минимизировать количество изменений
в стандартном ядре, этот механизм реализован при помощи эмулирования ICH (Interrupt
Control Hardware). Ядро реального времени и пользовательские задачи Linux могут
обмениваться данными через не блокируемые очереди и сегменты разделяемой памяти. С
точки зрения программиста очереди выглядят как стандартные последовательные
устройства UNIX, доступ к которым возможен при помощи системных вызовов POSIX
read/write/open/ioctl. Разделяемая память доступна через системный вызов mmap. RT-Linux
использует Linux для загрузки, доступа к большинству устройств, работы с сетью,
файловыми системами, управлением процессами Linux, и загрузки модулей ядра, что дает
возможность легко модифицировать систему реального времени. Программа реального
времени состоит из двух частей: задачи реального времени, которая представляет собой
модуль ядра и обыкновенный UNIX/Linux процесс, который заботится об обработке
данных, доступу к дисплею и сети, и о любых других функциях которые не требуют таких
жестких временных рамок.
На практике оказалось, что идея RT-Linux очень удачна. В самом худшем случае
запаздывание прерываний на 486/33Mhz PC оказалось менее 30 мкс, что близко к
аппаратному пределу. Для прикладных задач симбиоз между системой реального времени
и системой, оптимизированной для «общего случая» оказался очень удачным. Наиболее
часто используемая конфигурация RT-Linux - примитивные задачи реального времени со
статически распределяемой памятью, без защиты памяти, простым планировщиком с
фиксированными приоритетами без защиты от нереализуемых планов, аппаратным
запрещением прерываний, разделяемая память - единственный механизм для