Информатика операционные системы

Примитивы для управления портами

Mach имеет свыше 20 вызовов для управления портами. Все они вызываются путем отправки сообщения на порт процесса. Наиболее важные из них представлены в таблице 6.6.

Таблица 6.6.
Некоторые вызовы управления портами в Mach

ВызовОписание
AllocateСоздать порт и включить его права в список прав
DestroyРазрушить порт и удалить его права из списка
DeallocateУдалить право из списка прав
Extract_rightИзвлечь n-ое право другого процесса
Insert_rightВключить право в список другого процесса
Move_memberПереместить порт в набор портов
Set_qlimitУстановить максимальное количество сообщений, которые порт может хранить

Первый вызов, Allocate, создает новый порт и вводит его право в список прав процесса, выполнившего этот вызов. Это право является правом ПОЛУЧИТЬ из этого порта. Имя права возвращается, так что порт можно использовать.

Следующие два вызова отменяют действие первого. Destroy удаляет право. Если это право ПОЛУЧИТЬ, то порт разрушается и все остальные права для него во всех процессах помечаются как недействительные. Deallocate уменьшает счетчик ссылок, связанный с правом. Если он равен нулю, то право удаляется, но порт остается существовать. Вызов Deallocate может использоваться только для удаления прав ПОСЛАТЬ и ПОСЛАТЬ_ОДИН_РАЗ или недействительных прав.

Вызов Extract_right позволяет нити выбрать право из списка прав другого процесса и вставить это право в свой собственный список. Конечно, вызывающая нить должна иметь доступ к порту процесса, управляющего другим процессом (например, своим потомком). Insert_right работает иначе. Он позволяет процессу взять одно из своих прав и добавить его в список прав другого процесса (например, своего потомка).

Вызов Move_member используется для управления набором портов. Он может добавить порт к набору портов или удалить порт. Наконец, вызов Set_qlimit определяет максимальное количество сообщений, которые порт может хранить. Когда порт создается, то их по умолчанию 5, но с помощью вызова Set_qlimit это количество может быть увеличено или уменьшено. Сообщения могут иметь любую длину, так как они сами не хранятся портом.

Информатика операционные системы

Персональный компьютер Novell NetWare специализированная операционная система Сетевые продукты Microsoft OS/2