Книга: Введение в QNX/Neutrino 2. Руководство по программированию приложений реального времени в QNX Realtime Platform
Дополнительные сервисы QNX/Neutrino
Дополнительные сервисы QNX/Neutrino
QNX/Neutrino позволяет делать еще ряд изящных вещей. POSIX утверждает, что с мутексом должны работать потоки одного и того же процесса, но позволяет в соответствующей реализации эту концепцию расширять. В QNX/Neutrino это расширение сводится к тому, что мутекс может использоваться потоками различных процессов. Чтобы понять, почему это работает, вспомните: то, что мы рассматриваем как «операционную систему», реально состоит из двух частей — ядра, которое занимается диспетчеризацией, и администратора процессов, который, наряду со всем остальным, заботится о защите памяти и «процессах». Мутекс — всего-навсего объект синхронизации потоков. Поскольку ядро работает только с потоками, то реально ему все равно, какие потоки работают в каких процессах, это уже забота администратора.
Итак, если вы установили область разделяемой памяти между двумя процессами и разместили в ней мутекс, ничто не мешает вам с его помощью синхронизировать потоки в двух (или более!) процессах — функции pthread_mutex_lock() и pthread_mutex_unlock() будут работать точно так же.
- Дополнительные сервисы QNX
- Дополнительные национальные кодовые страницы и порядки сортировки
- Глава 8 Дополнительные службы
- 12.8. Сервисы и прерывания BIOS
- 4.6. Дополнительные возможности защиты
- 5.2.2. Дополнительные возможности OpenSSL
- 10.5. Дополнительные настройки
- Сервисы Donate
- Дополнительные свойства поля
- Дополнительные сведения о gdb
- 12.4.6. Дополнительные замечания
- Дополнительные функции