Можно ли решить любую мыслимую проблему синхронизации с разумным использованием семафоров? А как насчет слабых семафоров?Семафоры «полные»?
ответ
Agerwala утверждает, что соответствующие расширенные семафоры завершены. Это не отвечает на все мои вопросы, но на правильном пути. У Дэвида Сеилера тоже есть точка.
Нет. Например, невозможно, чтобы система, использующая только семафоры для синхронизации, предоставляла гарантии без ожидания или даже гарантии прогресса перед лицом стороннего кода (например, плагина). Извращенный или плохо написанный раздел кода может лишить доступ к сектору, защищенному семафором кода, всем навсегда.
Я не думаю, что это отвечает на правильный вопрос. Проблема заключается в том, достаточно ли семафоров для реализации всех других примитивов синхронизации. Я не думаю, что любая реализация может противостоять инъекции неправильного кода в произвольных точках, независимо от того, использует ли он блокировки или семафоры или что у вас есть. –
Вместо того, чтобы просить нас прочитать вашу книгу, пожалуйста, укажите, какую информацию нам нужно ответить * здесь * в вашем вопросе. – jalf
«Можно ли решить любую мыслимую проблему синхронизации с разумным использованием семафоров?» Является ли вопрос понятным? Я упомянул главу 4.3 для ссылки на слабые семафоры, вам не нужно проверять pdf, если вы уже знаете, что такое слабый семафор. (Кстати, это не «моя» книга) – sdcvvc
Я удалил ссылку на книгу. Вот связанный с этим вопрос: можно ли решить любую вычислительную проблему с помощью машины Тьюринга? Ответ - да, из-за Тьюринга-полноты/церковной диссертации. Это тот же вопрос, но о полноте семафоров. – sdcvvc