Нужен ли двоичный семафор для синхронизации счетного семафора?
Мой профессор говорит, что если у вас есть счетный семафор (в частности, семафор System V), могут возникнуть проблемы с синхронизацией, если два процесса пытаются получить доступ к семафору одновременно, поэтому вам необходимо обеспечить доступ к счетному семафору с отдельным двоичный семафор.
Я думал, что весь смысл семафоров в том, что если два процесса пытаются получить доступ к семафору одновременно, ядро автоматически синхронизирует доступ. Это правда?
1 ответ
Да, семафоры system V будут настроены атомарно, и доступ к ним определенно поточно-ориентирован без дополнительного семафора. Что не является атомарным, так это создание и инициализация семафора, которые необходимо выполнить до того, как какие-либо процессы попытаются получить к нему доступ и настроить его.