KURT
KURT (от ) — расширение «мягкого» реального времени для ядра 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 жесткого реального времени.
Q213666
реального времени
Concept
Q9662
ядра
Concept
Q14579
Linux
Concept
Q190440
параллельного порта
Concept
Q165194
API
Concept
Q4042024
KURT
MEDIA
Q4042024
KURT
MEDIA
Q4042024
KURT
MEDIA
Q4042024
KURT
MEDIA
Q4042024
KURT
MEDIA
Q4042024
KURT
MEDIA
Q4042024
KURT
MEDIA
Q4042024
KURT
MEDIA
Q4042024
KURT
MEDIA
Q4042024
KURT
MEDIA
Q4042024
KURT
MEDIA
+10^^http://www.w3.org/2001/XMLSchema#decimal
10
NUMBER
+1^^http://www.w3.org/2001/XMLSchema#decimal
1
NUMBER
+4^^http://www.w3.org/2001/XMLSchema#decimal
4
NUMBER
instance of