» » » Роб Кёртен - Введение в QNX/Neutrino 2. Руководство по программированию приложений реального времени в QNX Realtime Platform


Авторские права

Роб Кёртен - Введение в QNX/Neutrino 2. Руководство по программированию приложений реального времени в QNX Realtime Platform

Здесь можно скачать бесплатно "Роб Кёртен - Введение в QNX/Neutrino 2. Руководство по программированию приложений реального времени в QNX Realtime Platform" в формате fb2, epub, txt, doc, pdf. Жанр: Программное обеспечение, издательство Петрополис, год 2001. Так же Вы можете читать книгу онлайн без регистрации и SMS на сайте LibFox.Ru (ЛибФокс) или прочесть описание и ознакомиться с отзывами.
Рейтинг:
Название:
Введение в QNX/Neutrino 2. Руководство по программированию приложений реального времени в QNX Realtime Platform
Автор:
Издательство:
Петрополис
Год:
2001
ISBN:
5-94656-025-9
Скачать:

99Пожалуйста дождитесь своей очереди, идёт подготовка вашей ссылки для скачивания...

Скачивание начинается... Если скачивание не началось автоматически, пожалуйста нажмите на эту ссылку.

Вы автор?
Жалоба
Все книги на сайте размещаются его пользователями. Приносим свои глубочайшие извинения, если Ваша книга была опубликована без Вашего на то согласия.
Напишите нам, и мы в срочном порядке примем меры.

Как получить книгу?
Оплатили, но не знаете что делать дальше? Инструкция.

Описание книги "Введение в QNX/Neutrino 2. Руководство по программированию приложений реального времени в QNX Realtime Platform"

Описание и краткое содержание "Введение в QNX/Neutrino 2. Руководство по программированию приложений реального времени в QNX Realtime Platform" читать бесплатно онлайн.



Книга "Введение в QNX/Neutrino 2» откроет перед вами в мельчайших подробностях все секреты ОСРВ нового поколения от компании QNX Software Systems Ltd (QSSL) — QNX/Neutrino 2. Книга написана в непринужденной манере, легким для чтения и понимания стилем, и поможет любому, от начинающих программистов до опытных системотехников, получить необходимые начальные знания для проектирования надежных систем реального времени, от встраиваемых управляющих приложений до распределенных сетевых вычислительных систем

В книге подробно описаны основные составляющие ОС QNX/Neutrino и их взаимосвязи. В частности, уделено особое внимание следующим темам:

• обмен сообщениями: принципы функционирования и основы применения;

• процессы и потоки: базовые концепции, предостережения и рекомендации;

• таймеры: организация периодических событий в программах;

• администраторы ресурсов: все, что относится к программированию драйверов устройств;

• прерывания: рекомендации по эффективной обработке.

В книге представлено множество проверенных примеров кода, подробных разъяснений и рисунков, которые помогут вам детально вникнуть в и излагаемый материал. Примеры кода и обновления к ним также можно найти на веб-сайте автора данной книги, www.parse.com.






Если вы хотите наряду со «стандартным» OCB сохранить какие-либо дополнительные данные, то будьте покойны — OCB можно «расширять». Мы обсудим это в разделе «Дополнительно».

Это странное поле offset

Поле offset, скажем так, как минимум любопытно. Посмотрите в <sys/iofunc.h>, как оно реализовано. В зависимости от того, какие у вас заданы флаги препроцессора, вы можете получить одну из шести (!) возможных раскладок поля offset. Но не беспокойтесь особо по поводу реализации — реально есть смысл рассматривать только два случая, в зависимости от того, хотите вы поддерживать 64-разрядные смещения или нет:

• если да, то поле offset 64-разрядное;

• если нет (у вас 32-разрядные целые), то поле offset — это младшие 32 бита; старшие 32 бита хранятся в поле offset_hi.

Для наших целей, если речь не идет о явном противопоставлении 32- и 64-разрядных значений, мы будем предполагать, что все смещения являются 64-разрядными (типа off_t), и платформа знает, что делать с 64-разрядными числами.

Атрибутная запись iofunc_attr_t

В то время как OCB был определен как структура данных по каждому дескриптору файла, атрибутная запись является структурой данных по каждому устройству. Вы видели, что стандартный OCB типа iofunc_ocb_t имеет элемент, называемый attr, который представляет собой указатель на атрибутную запись. Это сделано для того, чтобы у OCB был доступ к информации об устройстве. Давайте посмотрим на атрибутную запись (взято из <sys/iofunc.h>):

typedef struct _iofunc_attr {

 IOFUNC_MOUNT_T           *mount;

 uint32_t                 flags;

 int32_t                  lock_tid;

 uint16_t                 lock_count;

 uint16_t                 count;

 uint16_t                 rcount;

 uint16_t                 wcount;

 uint16_t                 rlocks;

 uint16_t                 wlocks;

 struct _iofunc_mmap_list *mmap_list;

 struct _iofunc_lock_list *lock_list;

 void                     *list;

 uint32_t                 list_size;

 СМ_НИЖЕ!!!               nbytes;

 СМ_НИЖЕ!!!               inode;

 uid_t                    uid;

 gid_t                    gid;

 time_t                   mtime;

 time_t                   atime;

 time_t                   ctime;

 mode_t                   mode;

 nlink_t                  nlink;

 dev_t                    rdev;

} iofunc_attr_t;

У полей nbytes и inode такой же набор директив условной компиляции, что и у поля offset в OCB (см. параграф «Это странное поле offset»).

Заметьте, что некоторые из полей атрибутной записи полезны только для вспомогательных функций POSIX.

Давайте рассмотрим поля в индивидуальном порядке:

mount Указатель на необязательную запись точки монтирования (типа iofunc_mount_t). Он применяется аналогично указателю на атрибутную запись, входящему в состав в OCB, за исключением того, что здесь это поле может принимать NULL — в этом случае для записи точки монтирования применяются установки по умолчанию (см. ниже параграф «Запись точки монтирования iofunc_mount_t»). Как уже было упомянуто, запись точки монтирования привязывается к атрибутной записи «вручную» в инициализационном коде вашего администратора ресурсов. flags Содержит флаги, которые описывают состояние других полей атрибутной записи. Мы вскоре к ним вернемся. lock_tid Для предупреждения проблем синхронизации доступ множества потоков к одной и той же атрибутной записи должен быть взаимно исключающим. Поле lock_tid содержит идентификатор потока (thread ID), которым данная атрибутная запись блокирована в настоящий момент. lock_count Указывает, сколько потоков пытаются использовать данную атрибутную запись. Нулевое значение указывает на то, что структура не заблокирована. Значение, большее нуля (единица или более) указывает на то, что данную структуру используют один или более потоков. count Указывает на число OCB, которые по какой-либо причине открыли эту атрибутную запись. Например, если у одного клиента есть OCB, открытый на чтение, у другого — другой OCB, открытый на чтение/запись, и оба эти OCB указывают на одну и ту же атрибутную запись, то значение count для нее должно быть равно 2. Это будет указывать на то, что данный ресурс открыт двумя клиентами. rcount Число читателей. В примере, приведенном для count, rcount будет также иметь значение 2, потому что ресурс открыт на чтение двумя клиентами. wcount Число писателей. В примере, приведенном для count, wcount будет иметь значение 1, потому что ресурс открыт на чтение только одним клиентом. rlocks Показывает число OCB, наложивших на данный ресурс блокировки по чтению. Если значение этого поля равно нулю, это означает, что никаких блокировок по чтению нет, но могут быть блокировки по записи. wlocks Аналогично rlocks, только для блокировок по записи. mmap_list Для внутреннего использования POSIX-функцией iofunc_mmap_default(). lock_list Для внутреннего использования POSIX-функцией iofunc_lock_default(). list Зарезервировано. list_size Размер области, зарезервированной под поле list. nbytes Размер ресурса в байтах. Например, если ресурс описывает конкретный файл, и этот файл имеет размер 7756 байт, то поле nbytes будет содержать значение 7756. inode Содержит порядковый номер файла или ресурса; он должен быть уникален для каждой точки монтирования. Значение поля inode никогда не должно быть нулевым, потому что нуль указывает на неиспользуемый файл. uid Идентификатор пользователя владельца данного ресурса. gid Идентификатор группы владельца данного ресурса. mtime Время последней модификации файла, обновленное или как минимум ставшее недействительным вследствие обработки клиентской функции write(). atime Время последнего доступа к файлу, обновленное или как минимум ставшее недействительным вследствие обработки клиентской функции read(), возвратившей ненулевое количество прочитанных байт. ctime Время последнего изменения файла, обновленное или как минимум ставшее недействительным вследствие обработки клиентских функций write(), chown() или chmod(). mode Режим доступа к файлу. Содержит стандартные значения S_* из <sys/stat.h> (например, S_IFCHR), или восьмеричные значения (например, 0664), указывающие на режим доступа для владельца объекта (owner), группы (group) и всех остальных (other). nlink Число связей (линков) файла, возвращаемое клиентским вызовом stat(). rdev Для специальных символьных устройств это поле состоит из старшего (major) и младшего (minor) кодов устройства (10 младших бит — младший код, старшие 6 бит — старший). Для устройств другого типа это поле содержит номер устройства (подробности см. ниже в параграфе «О номерах устройств, индексных дескрипторах и нашем друге rdev»).

Как и в случае с OCB, вы можете расширять «стандартную» атрибутную запись вашими собственными данными — см. раздел «Дополнительно».


На Facebook В Твиттере В Instagram В Одноклассниках Мы Вконтакте
Подписывайтесь на наши страницы в социальных сетях.
Будьте в курсе последних книжных новинок, комментируйте, обсуждайте. Мы ждём Вас!

Похожие книги на "Введение в QNX/Neutrino 2. Руководство по программированию приложений реального времени в QNX Realtime Platform"

Книги похожие на "Введение в QNX/Neutrino 2. Руководство по программированию приложений реального времени в QNX Realtime Platform" читать онлайн или скачать бесплатно полные версии.


Понравилась книга? Оставьте Ваш комментарий, поделитесь впечатлениями или расскажите друзьям

Все книги автора Роб Кёртен

Роб Кёртен - все книги автора в одном месте на сайте онлайн библиотеки LibFox.

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Отзывы о "Роб Кёртен - Введение в QNX/Neutrino 2. Руководство по программированию приложений реального времени в QNX Realtime Platform"

Отзывы читателей о книге "Введение в QNX/Neutrino 2. Руководство по программированию приложений реального времени в QNX Realtime Platform", комментарии и мнения людей о произведении.

А что Вы думаете о книге? Оставьте Ваш отзыв.