Звоните: (067) 644-70-74
Напишите нам burtrest@gmail.com

Введение в QNX Neutrino. Руководство для разработчиков приложений реального времени. 2-е изд. Кртен

253.50 грн.

Артикул: 952b9076bd3b Категория:

Описание

год-2011

368 страниц

В книге Введение в QNX Neutrino. Руководство для разработчиков приложений реального времени. 2-е изд. Кртен рассмотрены основные механизмы ядра операционной системы жесткого реального времени QNX Neutrino. Описаны базовые концепции и рекомендации при работе с процессами и потоками, в том числе в распределенной среде. Показана организация периодических событий в программах с помощью таймеров. Уделено внимание администрированию ресурсов и программированию драйверов устройств. Приведены рекомендации по эффективной обработке прерываний. Материал сопровождается большим количеством примеров. Во втором издании учтены изменения и дополнения, отражающие развитие ядра ОСРВ QNX Neutrino по состоянию на 2011 год.

Оглавление книги 

Введение в QNX Neutrino. Руководство для разработчиков приложений реального времени. 2-е изд. Кртен
ПРЕДИСЛОВИЕ К ПЕРВОМУ ИЗДАНИЮ 1
ПРЕДИСЛОВИЕ К ПЕРВОМУ РУССКОМУ ИЗДАНИЮ 5
ВВЕДЕНИЕ 7
Немного истории 8
Для кого эта книга? 8
Что содержит эта книга? 9
Процессы и потоки 9
Обмен сообщениями 9
Часы, таймеры и периодические уведомления 10
Прерывания 10
Администраторы ресурсов 10
Переход с QNX4 на QNX Neutrino 10
Скорая помощь 11
Глоссарий 11
Другие источники информации 11
О Роберте Кртене 11
Выражение признательности 11
Типографские соглашения 12
ГЛАВА 1. ПРОЦЕССЫ И ПОТОКИ
15
Основные понятия о процессах и потоках 15
Процесс как жилой дом 15
Потоки как обитатели дома 15
Назад к процессам и потокам 16
Взаимное исключение 17
Приоритеты 17
Семафоры 18
Роль ядра 20
Одиночный процессор 20
Несколько процессоров — симметричная мультипроцессорная система (SMP) 21
Ядро в роли арбитра 21
Состояния потоков 26
Процессы и потоки 28
Почему процессы? 29
Запуск процесса 30
Запуск потока 41
Дополнительно о синхронизации 64
Блокировки чтения/записи 65
Ждущие блокировки 67
Условные переменные 71
Дополнительные сервисы Neutrino 78
Диспетчеризация и реальный мир 87
Перепланирование по аппаратному прерыванию 87
Перепланирование по системным вызовам 87
Перепланирование по исключительным ситуациям 88
Резюме 88
ГЛАВА 2. ОБМЕН СООБЩЕНИЯМИ
91
Введение в обмен сообщениями 91
Микроядро и обмен сообщениями 91
Обмен сообщениями и модель «клиент-сервер» 92
Распределенный обмен сообщениями 95
Что это означает для вас 97
Философия QNX Neutrino 97
Обмен сообщениями и многопоточность 97
Модель «сервер-субсервер» 98
Несколько примеров 100
Применение обмена сообщениями 102
Архитектура и структура 103
Клиент 103
Сервер 106
Иерархический принцип обмена (send-иерархия) 109
Идентификаторы отправителя, каналы и другие параметры 110
Составные сообщения 121
Сообщения типа «импульс» (pulse) 127
Прием импульса 128
Функция MsgDeliverEvent() 131
Флаги канала 132
Флаг _NTO_CHF_UNBLOCK 133
Проблема синхронизации 135
Флаг _NTO_MI_UNBLOCK_REQ 138
Обмен сообщениями в сети 138
Особенности обмена сообщениями в сети 141
Несколько замечаний о дескрипторах узлов 143
Наследование приоритетов 145
Так в чем тут хитрость? 147
Резюме 148
ГЛАВА 3. ЧАСЫ, ТАЙМЕРЫ И ПЕРИОДИЧЕСКИЕ УВЕДОМЛЕНИЯ
149
Часы и таймеры 149
Периодические процессы 149
Источники прерывания таймера 151
Разрешающая способность отсчета времени 152
Флуктуации отсчета времени 153
Типы таймеров 154
Схема уведомления 155
Применение таймеров 159
Создание таймера 159
Сигнал, импульс или поток? 159
Какой таймер выбрать? 160
Сервер с периодическими импульсами 162
Таймеры, посылающие сигналы 171
Таймеры, создающие потоки 172
Опрос и установка часов реального времени и кое-что еще 172
Дополнительные возможности 174
Другие источники времени 174
Тайм-ауты ядра 178
Резюме 181
ГЛАВА 4. ПРЕРЫВАНИЯ
183
Neutrino и прерывания 183
Программа обработки прерывания 184
Активность прерываний по уровню и по фронту 187
Написание обработчиков прерываний 190
Подключение обработчиков прерывания 190
Теперь, когда вы подключились к прерыванию 191
Отключение обработчика прерывания 192
Параметр flags 193
Обработчик прерывания 194
Функции, которые может вызывать ISR 203
Резюме 205
ГЛАВА 5. АДМИНИСТРАТОРЫ РЕСУРСОВ
207
Что такое администратор ресурсов? 207
Примеры администраторов ресурсов 207
Характеристики администраторов ресурсов 208
Взгляд со стороны клиента 209
Поиск сервера 209
Поиск администратора процессов 211
Обработка каталогов 212
Объединенные файловые системы 213
Резюме о клиенте 215
Взгляд со стороны администратора ресурсов 216
Регистрация префикса 216
Обработка сообщений 217
Библиотека администратора ресурсов 218
Реально все это за вас делает библиотека 220
За кулисами библиотеки 221
Написание администратора ресурсов 223
Структуры данных 223
Структура администратора ресурсов 230
Структуры данных уровня POSIX 239
Функции-обработчики 246
Общие замечания 246
Замечания о функциях установления соединения 249
Функции установления соединения и ввода/вывода 250
Примеры 278
Базовый каркас администратора ресурсов 278
Простой пример функции io_read() 281
Простой пример функции io_write() 286
Простой пример функции io_devctl() 291
Пример функции io_devctl(), имеющей дело с данными 294
Дополнительно 298
Расширение ОСВ 298
Расширение атрибутной записи 300
Блокирование в пределах администратора ресурсов 301
Возврат элементов каталога 302
Резюме 313
ПРИЛОЖЕНИЯ 315
ПРИЛОЖЕНИЕ 1. ПЕРЕХОД С QNX4 НА QNX NEUTRINO 317
QNX4 и Neutrino 317
Сходства 317
Улучшения 318
Философия переноса программ 322
Анализ обмена сообщениями 322
Анализ прокси по идентификаторам 332
Обработчики прерывний 334
Резюме 334
ПРИЛОЖЕНИЕ 2. СКОРАЯ ПОМОЩЬ 336
Обращайтесь за помощью к профессионалам 336
Итак, у нас проблема… 336
RTFM 336
Свяжитесь с технической проддержкой 338
Обучение 341
ГЛОССАРИЙ 342
ПЕРЕЧЕНЬ ИЛЛЮСТРАЦИЙ 351
ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ 353
VI Оглавление IX Оглавление