Синхронизация и взаимодействие программных потоков в операционной среде реального времени. Дорогов А.Ю. - 36 стр.

UptoLike

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

36
идентификатор клиента – coid, идентификатор scoid – это внутренний иден-
тификатор, используемый ядром для маршрутизации ответного сообщения
от сервера к клиенту. В табл. 3.2 представлены системные функции, ис-
пользуемые для управления каналами и соединениями.
По умолчанию приоритет потока, получающего сообщения через ка-
нал, устанавливается равным приоритету потока, пославшего сообщение.
Это приоритетное наследование предотвращает инверсию приоритетов.
Если сообщение поступает в канал и нет потока, который его может при-
нять, то система приоритетно форсирует все потоки в процессе, которые в
прошлом получали сообщение из этого канала (ассоциированные потоки).
Это форсирование предотвращает приоритетную инверсию клиента, по-
славшего сообщение, в случае, когда все потоки непрерывно работают в
интересах других клиентов, возможно с более низким приоритетом. Поток
ассоциируется с каналом, когда он первый раз выдает вызов MsgReceivev().
Если поток работает с несколькими каналами, то он всегда ассоциируется
с последним каналом, по которому он принял сообщение.
Таблица 3.2
Функция Описание
ChannelCreate() Создать канал для приема сообщений
ChannelDestroy() Уничтожить канал
ConnectAttach() Создать соединение для передачи сообщения
ConnectDetach() Уничтожить соединение
Свойства канала определяются словом флагов, которое является
единственным аргументом функции ChannelCreate(). Некоторые из каналь-
ных флагов изменяют поведение канала, другие требуют от ядра формиро-
вания уведомляющих импульсов в случае нарушения работы канала (ис-
пользование импульсов для передачи информации между потоками рас-
Connections
Channel
Channel
Server
Server
Client
Рис. 3.1