Вы здесь

Оптимизация библиотеки нитей NPTL в составе ОС Linux для систем жесткого реального времени, Программирование, 2011, №4.

Библиотека NPTL полностью поддерживает нити POSIX – один из самых популярных интерфейсов для создания многопоточных приложений. Она постепенно перерабатывается с учетом требований систем реального времени, но на настоящее время подходит только для систем мягкого реального времени. 

В настоящее время отделением операционных систем ЗАО "МЦСТ" выполняется ряд проектов, ставящих целью адаптацию операционной системы Linux для использования в вычислительных комплексах (ВК) эльбрусовской серии, работающих в режиме жесткого реального времени. В этом контексте важное значение имеет адаптированная к реальному времени реализация нитей (threads) в пользовательском интерфейсе POSIX (Portable Operating System Interface for Unix). Все примитивы этого интерфейса можно разделить на две группы: первая отвечает за создание и завершение нитей, вторая – за их синхронное исполнение. В статье рассматриваться будет только вторая группа: в системах жесткого реального времени она имеет куда большее значение, потому что всю инициализацию возможно провести при старте системы, а вот от синхронизации нитей при параллельных вычислениях никуда не деться.

В процессе работы автором была проанализирована библиотека NPTL (Native Posix Thread Library) на предмет ее пригодности для систем жесткого реального времени, а поскольку ему представляется, что этот анализ представляет наибольший интерес для читателя, он составляет основное содержание статьи. В начале дается обзор системного вызова sys_futex, затем рассказывается о деталях реализации объектов синхронизации, и в конце приводится измерение эффективности проведенной оптимизации.

Подробнее... Загрузить файл      Загрузить файл 

Содержание:

1. Введение
2. Особенности реализации объектов синхронизации в NPTL
3. Об универсальности использования фьютексов
4. О соответствии NPTL требованиям систем реального времени
5. Экспериментальная оценка
6. Список литературы

А.В.Федоров