WikiDer > Флаг события

Event flag

An флаг события это процесс синхронизация примитив в OpenVMS Операционная система. У него есть два возможных состояния: набор или же очищен. Предусмотрены следующие основные примитивные операции:

  • Установить флаг события ($ SETEF)
  • Очистить флаг события ($ CLREF)
  • Ждать флаг события ($ WAITFR) - если флаг был снят, это заставит процесс ждать, пока он не будет установлен. Если флаг уже был установлен, это немедленно вернется, оставив флаг установленным.

Дополнительные операции синхронизации:

  • $ WFLOR - дождаться установки любого из указанных флагов события.
  • $ WFLAND - подождите все указанные флаги событий должны быть установлены.

Флаги событий могут быть либо местный (на процесс) или общий (доступно более чем одним процессом). Каждый процесс имеет свой собственный набор из 64 локальных флагов, пронумерованных от 0 до 63. Также возможно ассоциировать процесс с двумя наборами общих флагов событий. Они бывают наборами по 32 штуки в каждом, и процесс может присвоить им номера 64-95 или 96-127. Они возникают, когда с ними связывается первый процесс, и исчезают, когда последний процесс удаляет свою связь.

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

Сравнивать семафор.