Операционные системы реального времени. Бурукина И.П. - 65 стр.

UptoLike

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

операционные системы реального времени примитивны – простые
программы, которые предлагали пользователю чуть больше, чем просто
библиотека основных функций. Но в наше время пользователи требуют
доступ к TCP/IP, графическому дисплею и системе окон, базам данных и
другим службам, которые не являются ни примитивными, ни простыми.
Одно из решений – добавить non-real-time службы к базовому ядру
реального времени, что и было проделано в VXworks и немного по-
другому в микроядре QNX. Вторая возможность – модифицировать
стандартное ядро и сделать его полностью прерываемым.
RT-Linux организован третьим способом, в котором простое ядро
реального времени запускает обычное ядро как одну из задач реального
времени с самым низким приоритетом, используя виртуальную машину
для того, чтобы сделать стандартное ядро полностью прерываемым.
В RT-Linux все прерывания обслуживаются ядром реального
времени, а затем, передаются стандартному ядру, но только в том случае,
если нет необходимости запускать одну из задач реального времени. Для
того чтобы минимизировать количество изменений в стандартном ядре,
этот механизм реализован при помощи эмулирования ICH (Interrupt Control
Hardware). Ядро реального времени и пользовательские задачи Linux могут
обмениваться данными через неблокируемые очереди и сегменты
разделяемой памяти.
С точки зрения программиста очереди выглядят как стандартные
последовательные устройства UNIX, доступ к которым возможен при
помощи системных вызовов POSIX read/write/open/ioctl. Разделяемая
память доступна через системный вызов mmap.
RT-Linux использует Linux для загрузки, доступа к большинству
устройств, работы с сетью, файловыми системами, управлением
65
операционные    системы    реального    времени    примитивны –    простые
программы, которые предлагали пользователю чуть больше, чем просто
библиотека основных функций. Но в наше время пользователи требуют
доступ к TCP/IP, графическому дисплею и системе окон, базам данных и
другим службам, которые не являются ни примитивными, ни простыми.
Одно из решений – добавить non-real-time службы к базовому ядру
реального времени, что и было проделано в VXworks и немного по-
другому в микроядре QNX. Вторая возможность – модифицировать
стандартное ядро и сделать его полностью прерываемым.
     RT-Linux организован третьим способом, в котором простое ядро
реального времени запускает обычное ядро как одну из задач реального
времени с самым низким приоритетом, используя виртуальную машину
для того, чтобы сделать стандартное ядро полностью прерываемым.
     В RT-Linux все прерывания обслуживаются ядром реального
времени, а затем, передаются стандартному ядру, но только в том случае,
если нет необходимости запускать одну из задач реального времени. Для
того чтобы минимизировать количество изменений в стандартном ядре,
этот механизм реализован при помощи эмулирования ICH (Interrupt Control
Hardware). Ядро реального времени и пользовательские задачи Linux могут
обмениваться данными через неблокируемые очереди и сегменты
разделяемой памяти.
     С точки зрения программиста очереди выглядят как стандартные
последовательные устройства UNIX, доступ к которым возможен при
помощи системных вызовов POSIX read/write/open/ioctl. Разделяемая
память доступна через системный вызов mmap.
     RT-Linux использует Linux для загрузки, доступа к большинству
устройств,   работы   с   сетью,   файловыми      системами,   управлением
                                   65