Микропроцессорные системы и программное обеспечение в средствах связи. Гребешков А.Ю. - 125 стр.

UptoLike

Составители: 

Рубрика: 

Микропроцессорные системы и программное обеспечение в средствах связи
125
синхронизации выполнения нескольких процессов. В результате обес-
печивается взаимодействие программных приложений, использующих
32-х битовые и 16-ти битовые коды. Микроядро обрабатывает не толь-
ко собственные сообщения но и пакеты стека протоколов TCP/IP. Для
обмена используются стандарты POSIX, в частности процедуры open(),
read(), write().
Например, при обмене сообщениями микроядра с драйверами
внешних устройств процедура open()
работает следующим образом :
1. Каждый драйвер внешнего устройства регистрируется в катало-
ге и получает область допустимых имён и значений.
2. Программное приложение обращается через open() к дереву
имён т.е. к программному каталогу, где зарегистрирован драйвер.
3. В ответ программное приложение получает дескриптор файла,
с помощью которого может формировать запросы к файлу драйвера.
При формировании запросов используются стандартные библио-
теки языка программирования Си. Все сообщения представлены с по-
мощью языка программирования Си. В рамках QNX для обмена сооб-
щениями между процессами используются запросы типа send(),
receive(), reply(). В частности, формат сообщения send () отправленного
процессом А процессу Б для версии QNX 4.3 выглядит следующим об-
разом:
send (pid, smsg, rmsg, smsg_len, rmsg_len),
где
pidидентификатор
процесса Б, который должен принять сооб-
щение (то есть процесса Б);
smsgбуфер сообщения (для посылаемого сообщения)
rmsgбуфер ответа (для ответа, полученного от процесса Б)
smsg_lenдлина сообщения в байтах;
rmsg_lenмаксимальная длина ответа в байтах, который будет
принят процессом А
  Микропроцессорные системы и программное обеспечение в средствах связи
синхронизации выполнения нескольких процессов. В результате обес-
печивается взаимодействие программных приложений, использующих
32-х битовые и 16-ти битовые коды. Микроядро обрабатывает не толь-
ко собственные сообщения но и пакеты стека протоколов TCP/IP. Для
обмена используются стандарты POSIX, в частности процедуры open(),
read(), write().
      Например, при обмене сообщениями микроядра с драйверами
внешних устройств процедура open() работает следующим образом :
      1. Каждый драйвер внешнего устройства регистрируется в катало-
ге и получает область допустимых имён и значений.
      2. Программное приложение обращается через open() к дереву
имён т.е. к программному каталогу, где зарегистрирован драйвер.
      3. В ответ программное приложение получает дескриптор файла,
с помощью которого может формировать запросы к файлу драйвера.
      При формировании запросов используются стандартные библио-
теки языка программирования Си. Все сообщения представлены с по-
мощью языка программирования Си. В рамках QNX для обмена сооб-
щениями между процессами используются запросы типа send(),
receive(), reply(). В частности, формат сообщения send () отправленного
процессом А процессу Б для версии QNX 4.3 выглядит следующим об-
разом:
      send (pid, smsg, rmsg, smsg_len, rmsg_len),
      где
      pid – идентификатор процесса Б, который должен принять сооб-
щение (то есть процесса Б);
      smsg –буфер сообщения (для посылаемого сообщения)
      rmsg – буфер ответа (для ответа, полученного от процесса Б)
      smsg_len – длина сообщения в байтах;
      rmsg_len – максимальная длина ответа в байтах, который будет
принят процессом А

                                       125