14.06.2007

Linux реального времени

Термин «реальное время» при обсуждении тех или иных систем сегодня употребляется в таком количестве значений, что уже часто невозможно понять, о чем именно идет речь. В большинстве заявлений «реальное время» означает «очень быстро» и не более того. Но, вообще говоря, изначально «реальное время» означает больше, чем просто быстро.

Система реального времени – это система, которая гарантирует, что выполняемая задача будет получать процессорное время не реже, чем через заданный промежуток. Это не так просто гарантировать, когда речь идет о миллисекундах. А уж если о микросекундах...

Поэтому создание систем реального времени накладывает очень жесткие требования на низкоуровневую архитектуру. Системы общего назначения изначально спроектированы без учета этих требований, поэтому не могут обеспечить работу в реальном времени. Не может этого в том числе и традиционное ядро Linux.

Системы общего назначения, например Red Hat Enterprise Linux, фокусируются на производительности. Все устройство системы подчинено этой цели – достижение максимальной общей производительности. Но в результате в работе отдельных приложений могут иногда возникать задержки. В подавляющем большинстве случаев задержка в несколько десятых долей секунды – это абсолютно нормально, она даже не будет замечена. Но не в системах реального времени.

Основная задача системы реального времени – обеспечить для приложения постоянную гарантированную производительность (гарантированные времена задержки) в течении всего времени его работы, без каких-либо исключений и случайных отклонений.

Задачи систем общего назначения и систем реального времени требуют разного подхода, разной архитектуры. В результате, если сделать Linux системой реального времени, общая производительность системы упадет. И при этом большая часть пользователей не получит никаких преимуществ от того, что система будет работать в реальном времени.

Но, тем не менее, есть области, где системы реального времени необходимы. Это управление производственными процессами на заводах, управление на транспорте и подобные задачи. В этих областях подход «достаточно быстро» неприемлем, здесь нужны гарантированные сроки. Кроме того, системы реального времени становятся все более актуальными в финансовом секторе. В этой области «время – деньги» в буквальном смысле слова. И по мере распространения автоматизированных торговых систем и электронных платежных систем работа банковских систем в реальном времени становится все более актуальной.

Около 2 лет назад Red Hat выдвинул инициативу по включению в основную ветку ядра Linux поддержки работы в реальном времени. До этого существовали проекты использования Linux в системах реального времени, но все они использовали нестандартный инструментарий, не включенный в основное ядро. Это упрощало и ускоряло разработку, но в итоге они оказывались не совместимы с основной веткой, на них не работали многие приложения.

Red Hat выбрал иной подход. Инженеры Red Hat в течение долгого времени работали над включением поддержки работы в реальном времени в основную ветку ядра. Их успехи вдохновили других разработчиков ядра присоединиться к проекту. Сейчас силами инженеров Red Hat, IBM и независимых разработчиков уже проделан большой объем работ.

Разработка продолжается, в ближайшем будущем Red Hat представит Red Hat Enterprise Linux реального времени. Как было указано выше, работа в реальном времени принесет пользу далеко не всем пользователям, поэтому Red Hat будет предлагать две версии дистрибутива – систему общего назначения и систему реального времени.

Если Вы заинтересованы в Linux реального времени, Вы всегда можете присоединиться к проекту.

Комментариев нет: