7.2.5 Пользовательское пространство и режим реального времени

Предыдущая  Содержание  Следующая V*D*V

До сих пор мы обсуждали различные усовершенствования, внесённые в ядро для улучшения его времени отклика. Планировщик O(1) вместе с вытеснением в ядре и патчами уменьшения задержки делают Linux операционной системой мягкого реального времени. Теперь, что относительно приложений пользовательского пространства? Разве нельзя что-то сделать, чтобы убедиться, что у них тоже есть некоторые руководящие принципы, чтобы вести себя детерминированным образом?

Для поддержки приложений реального времени IEEE вышел со стандартом POSIX.1b. Стандарт IEEE 1003.1b (или POSIX.1b) определяет интерфейсы для поддержки переносимости приложений с требованиями реального времени. Кроме 1003.1b, POSIX определяет для систем реального времени также стандарты 1003.1d, .1j, .21 и .2h, но обычно реализуются расширения, определённые в .1b. Различными расширениями реального времени, определёнными в POSIX.1b, являются:

 

Планирование с фиксированным приоритетом с классами планирования в реальном времени

Блокировка памяти

Очереди сообщений POSIX

Разделяемая память POSIX

Сигналы реального времени

Семафоры POSIX

Часы и таймеры POSIX

Асинхронный ввод/вывод (Asynchronous I/O, AIO)

 

Классы планирования реального времени, блокировка памяти, разделяемая память и сигналы реального времени получили поддержку в Linux с самых первых дней. Очереди сообщений POSIX, часы и таймеры поддерживаются в ядре версии 2.6. Асинхронный ввод/вывод также поддерживается с самых первых дней, но эта реализация была полностью сделана в библиотеке языка Си пользовательского пространства. Linux версии 2.6 имеет поддержку AIO в ядре. Отметим, что наряду с ядром, библиотека языка Си GNU и glibc также претерпели изменения для поддержки этих расширений реального времени. Для обеспечения лучшей поддержке в Linux POSIX.1b ядро и glibc работают вместе.

В этом разделе мы обсуждали поддержку в Linux режима мягкого реального времени. Мы также кратко обсудили различные расширения реального времени POSIX.1b. Вы, как разработчик приложения, ответственны за то, чтобы писать приложения таким образом, чтобы не свести к нулю выгоды от режима мягкого реального времени, предоставляемого Linux. Конечный пользователь должен понимать каждый из этих методов, чтобы могли быть написаны приложения для поддержки ядра реального времени, предоставляемого в Linux. Далее в этой главе описывается каждый из этих методов с соответствующими примерами.

 

Предыдущая  Содержание  Следующая