KURT
KURT (от англ. Kansas University Real-Time Linux) — расширение «мягкого» реального времени для ядра Linux.
Этот проект основан на минимальных изменениях Linux и предоставляет разработчику два режима работы нормальный (normal mode) и реального времени (real-time mode). В любой момент времени процесс, использующий библиотеку интерфейсов API KURT, может переключаться между этими двумя режимами, которые позволяют процессу работать как в режиме РВ (real-time mode), так и в нормальном режиме Linux. Программный пакет KURT выполнен в виде отдельного системного модуля Linux RTMod, который становится дополнительным планировщиком РВ. Планировщик РВ доступен в нескольких вариантах и может тактироваться от любого таймера в системе или от прерываний стандартного параллельного порта. Так как все процессы работают в общем пространстве процессов Linux, программист использует в своих программах стандартные API-интерфейсы Linux и может переключаться из одного режима в другой по событиям или в нужном месте программы с применением API-интерфейсов KURT. При переключении в режим РВ все процессы в системе засыпают до момента освобождения ветви процесса РВ. Это довольно удобно при реализации задач с большим количеством вычислений, требующих по своей сути механизмов РВ. Примером может служить подмножество задач обработки аудио-видео информации.
Стандартно планировщик RTMod тактируется от системного таймера, и переключение контекста задач РВ (time slice) равно 10 мс. Используя KURT совместно с расширением UTIME, можно довести время контекстного переключения задач до 1 мс. Прерывания обрабатываются стандартным для Linux образом, то есть используется механизм драйверов.
API-интерфейс KURT делится на две части: прикладную и системную. Прикладная часть позволяет программисту управлять поведением своих процессов, а системный API-интерфейс KURT предназначен для манипулирования пользовательскими процессами и написания собственных планировщиков.
Прикладная часть API KURT состоит всего из 4 функций:
- set_rtparams — позволяет добавить процесс в ядро с маской SCHED_KURT. Только процессы, чья политика в планировщике установлена как SCHED_KURT, будут иметь возможность работать в режиме реального времени;
- get_num_rtprocs — получает идентификатор rt_id процесса из планировщика РВ RTMod;
- rt_suspend — позволяет приостановить планировщик РВ;
- get_rt_stats — получает статус процесса из таблицы планировщика процессов РВ.
Простота использования KURT позволяет с максимальным комфортом программировать задачи, требующие как РВ, так и всего многообразия API-интерфейса Unix. Использование мягкого реального времени часто подходит для реализации мультимедийных задач и при обработке разного рода потоков информации, где критично время выполнения вычислений. Совершенно другой подход применен при реализации в Linux жесткого реального времени.
Другие расширения реального времени для Linux
[править | править код]- RTLinux
- RTAI [1] Архивная копия от 5 декабря 2006 на Wayback Machine (англ.)
- Xenomai
- ART-Linux Advanced Real-Time Linux Архивная копия от 14 февраля 2012 на Wayback Machine - ОС жёсткого РВ на основе Linux для использования в робототехнике.
Ссылки
[править | править код]- Официальный сайт проекта (англ.)
По материалам РТ Софт Архивная копия от 14 марта 2022 на Wayback Machine
Это заготовка статьи о программном обеспечении. Помогите Википедии, дополнив её. |