Нужен ли двоичный семафор для синхронизации счетного семафора?

Мой профессор говорит, что если у вас есть счетный семафор (в частности, семафор System V), могут возникнуть проблемы с синхронизацией, если два процесса пытаются получить доступ к семафору одновременно, поэтому вам необходимо обеспечить доступ к счетному семафору с отдельным двоичный семафор.

Я думал, что весь смысл семафоров в том, что если два процесса пытаются получить доступ к семафору одновременно, ядро ​​автоматически синхронизирует доступ. Это правда?

1 ответ

Да, семафоры system V будут настроены атомарно, и доступ к ним определенно поточно-ориентирован без дополнительного семафора. Что не является атомарным, так это создание и инициализация семафора, которые необходимо выполнить до того, как какие-либо процессы попытаются получить к нему доступ и настроить его.

Другие вопросы по тегам