2009-12-23 3 views
0

Можно ли решить любую мыслимую проблему синхронизации с разумным использованием семафоров? А как насчет слабых семафоров?Семафоры «полные»?

+7

Вместо того, чтобы просить нас прочитать вашу книгу, пожалуйста, укажите, какую информацию нам нужно ответить * здесь * в вашем вопросе. – jalf

+0

«Можно ли решить любую мыслимую проблему синхронизации с разумным использованием семафоров?» Является ли вопрос понятным? Я упомянул главу 4.3 для ссылки на слабые семафоры, вам не нужно проверять pdf, если вы уже знаете, что такое слабый семафор. (Кстати, это не «моя» книга) – sdcvvc

+0

Я удалил ссылку на книгу. Вот связанный с этим вопрос: можно ли решить любую вычислительную проблему с помощью машины Тьюринга? Ответ - да, из-за Тьюринга-полноты/церковной диссертации. Это тот же вопрос, но о полноте семафоров. – sdcvvc

ответ

0

Agerwala утверждает, что соответствующие расширенные семафоры завершены. Это не отвечает на все мои вопросы, но на правильном пути. У Дэвида Сеилера тоже есть точка.

3

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

+2

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