Подтвердить что ты не робот

Является ли семафор механизмом IPC?

Является ли семафор механизмом IPC?

4b9b3361

Ответ 1

Да, на многих платформах семафоры могут синхронизировать между процессами. Для этого вы должны использовать "named" семафоры - несколько процессов обращаются к объекту через имя, похожее на объекты файловой системы.

В POSIX вы можете создавать именованные семафоры через sem_open(). Для неименованных семафоров, если второй параметр sem_init() отличен от нуля, он может быть межпроцессом, хотя я не уверен точно, как должен работать неназванный межпроцессный семафор.

Обратите внимание, что в некоторых системах эти функции могут терпеть неудачу с ENOSYS, если семафоры interprocess не поддерживаются (например, OpenBSD).

В Windows вы можете создавать именованные семафоры через CreateSemaphore(), как упоминал @sergiom.

Ответ 3

Семафоры POSIX могут быть неназванными или по имени. Без названия семафоры распределенных в памяти процесса и инициализируется. Без названия семафоры могут могут использоваться более чем одним процессом, в зависимости от того, как семафор выделено и инициализировано. [...]

Вы хотите знать еще?

Ответ 4

На самом деле Семафор - это инструмент синхронизации, но он считается как IPC bcoz, к которому обращаются более чем 1 процесс

Ответ 5

IPC имеет три разных типа использования, таких как обмен данными (очередь сообщений, PIPE, FIFO), синхронизация (блокировки файлов, семафор, MUTEX) и сигналы.