Книга написана в
непринудженной, местами даже
шутливой манере, значительно
облегчающей чтение, и содержит
массу аналогий, помогающих понять
сложные вещи через более простые.
Вместе с тем, "философский"
взгляд автора на мир систем
реального времени гармонично
сочетается с его прекрасным умением
грамотно поставить проблему и
последовательно и аргументированно
привести читателя к ее оптимальному
решению. Книга содержит множество
примеров кода и подробных пояснений
к ним, а также просто полезных
рекомендаций по проектированию,
позволяющих значительно упростить
как разработку, так и отладку,
тестирование, модернизацию и
портирование программного кода.
В книге рассматриваются
следующие темы:
-
базовые сведения о
процессах и потоках - что это и
как это использовать;
-
механизм обмена
сообщениями в QNX/Neutrino -
реализация и особенности;
-
часы и таймеры рельного
времени - как планировать
периодические события;
-
обработка прерываний -
особенности обработки прерываний
в QNX/Neutrino;
-
администраторы ресурсов
- все о написании драйверов
устройств;
-
перенос приложений из QNX4
в QNX/Neutrino - базовая технология и
возможные трудности;
-
и многое другое!
Книга состоит из пяти глав и
двух приложений, а также небольшого
глоссария, поясняющего специфичные
термины. Первая глава дает базовые
понятия о процессах и потоках и
описывает работу с ними в QNX/Neutrino,
включая подробное описание
состояний потоков, алгоритмов их
диспетчеризации и примитивов
синхронизации потоков по отношению
к различным системным событиям.
Затрагиваются также общие вопросы
организации многопоточных
приложений, в том числе в системах с
симметричной мультипроцессорной
архитектурой (SMP).
Вторая глава посвящена
фундаментальному механизму QNX/Neutrino -
межзадачному взаимодействию на
основе обмена сообщениями.
Описываются базовые принципы
обмена сообщениями в ОС на основе
микроядра и их реализация в QNX/Neutrino,
включая распределенный обмен
сообщениями в сети. Отдельное
внимание уделено проекции обмена
сообщениями в QNX/Neutrino на концепцию
"клиент/сервер" в
многопоточной среде. Приводятся
рекомендации по организации
приложений, позволяющие избегать
стандартных проблем типа взаимных
блокировок и инверсии приоритетов.
В третьей главе
рассматриваются вопросы точного
отсчета времени в QNX/Neutrino. Подробно
описывается работа с различными
типами таймеров, их связи с
системными сервисами ОС, способы
планирования событий во времени,
организация периодических
процессов и тайм-аутов.
Четвертая глава посвящена
обработке прерываний в QNX/Neutrino. В ней
рассказывается о подходах к
обработке прерываний в системах
реального времени, включая
особенности обработки прерываний с
чувствительностью по фронту и по
уровню и вопросы разделения
прерываний между устройствами.
Описывается структура обработчиков
прерываний QNX/Neutrino, даются
рекомендации по их написанию,
подключению и организации их
взаимодействия с программным кодом
приложений.
Пятая глава рассказывает о
решении в QNX/Neutrino одной из самых
трудных задач системного
программирования - написания
драйверов устройств. Описывается
модель драйвера устройства с точки
зрения концепции "клиент/сервер";
приводятся взгляды на проблему как
со стороны сервера, так и со стороны
клиента. Рассматривается проекция
этой модели на реализацию концепции
"клиент/сервер" в QNX/Neutrino,
механизм обмена сообщениями и
принятую в QNX/Neutrino структуру
драйвера устройства. В главе
подробно описаны системные
библиотеки QNX/Neutrino, предназначенные
для разработки драйверов, и их
внутренняя организация. Глава также
содержит несколько готовых
примеров драйверов устройств QNX/Neutrino
с подробными комментариями.
Приложения содержат много
полезной справочной информации и
посвящены решению различных
проблем - от переноса программ из QNX4
в QNX/Neutrino (включая немало общих
весьма полезных рассуждений о
переносимости кода) до диагностики
неисправностей в приложениях и
организации взаимодействия со
службой технической поддержки.
Переведенное
высококвалифицированными
техническими специалистами SWD Software
Ltd., русское издание этой книги
окажет вам неоценимую помощь в
изучении технологий
программирования приложений
реального времени в QNX/Neutrino и
поможет сэкономить массу времени и
сил в процессе изучения этой
замечательной ОС.
Об авторе
Автор книги, Роберт Кёртен (Robert
Krten), специалист по системам
реального времени с более чем 17-летним
стажем, несколько лет работал в
компании QSSL в отделах исследований
и разработки (R&D) и обучения и
сейчас является независимым
консультантом в области
программных приложений реального
времени.
|