Unix Man (Справочное руководство)


INTRO(2) - часть 11


ushort cuid; /* Идентификатор пользователя, создавшего множество семафоров */ ushort cgid; /* Идентификатор группы создателя множества семафоров */ ushort uid; /* Идентификатор пользователя */ ushort gid; /* Идентификатор группы */ ushort mode; /* Права на чтение/изменение */ ushort seq; /* Последовательность номеров используемых слотов */ key_t key; /* Ключ */

sem_base Указатель на первый семафор в множестве (см. ниже). sem_nsems Количество семафоров в множестве. Каждый семафор в множестве имеет целый положительный номер, называемый sem_num, и принимает последовательные значения от 0 до (sem_nsems - 1). sem_otime Время последней операции . sem_ctime Время последней операции , которая изменила какой-либо элемент вышеописанной структуры.

Время измеряется в секундах, начиная с 00:00:00 1 января 1970 года (по Гринвичу).

Семафор - это структура, содержащая следующие элементы:

ushort semval; /* Значение семафора */ short sempid; /* Идентификатор процесса, выполнявшего последнюю операцию */ ushort semncnt; /* Число процессов, ожидающих увеличения значения семафора */ ushort semzcnt; /* Число процессов, ожидающих обнуления значения семафора */

semval Неотрицательное целое число, являющееся значением семафора. sempid Идентификатор процесса, который последним выполнял какую-либо операцию с данным семафором. semncnt Счетчик числа процессов, ожидающих, когда значение данного семафора станет больше его текущего значения. semzcnt Счетчик числа процессов, ожидающих, когда значение данного семафора станет равным нулю.

Права на операции с семафорами. В описании системных вызовов и права, требуемые для операций, записаны в фигурных скобках { и }. Права состоят в следующем:

00400Чтение для владельца.
00200Изменение для владельца.
00040Чтение для группы.
00020Изменение для группы.
00004Чтение для остальных.
00002Изменение для остальных.

Процессу предоставляются права на чтение и изменение значений семафоров по идентификатору множества, если истинно хотя бы одно из следующих условий:




    Начало  Назад  Вперед