LINUX.ORG.RU

mutex'ы и rw-семафоры в ядре


0

0

Есть драйвер который для защиты структуры использует mutex'ы.

Существует проблема что возможна неопределённая по времени блокировка кода который освобождает эту структуру (скажем в случае отключения устройства - писателя), если части кода которые проверяют структуру на не равенство NULL (читатели) будут часто это делать.

У меня это реализовано через MUTEX (что не есть гуд).

Есть смысл перейти на rw-семафоры (тк я так понимаю писатель имеет преимущество перед читателем). Вопрос - mutex можно захватывать interruptible и не interruptible (down_interruptible() и down()). А у rw-семафоров такая возможность отстуствует - почему (только down_read() и down_write())?

anonymous

> Есть смысл перейти на rw-семафоры (тк я так понимаю писатель имеет преимущество перед читателем).

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

По сути вопроса - прерываемости - ничего сказать не могу.

anonymous
()
Ответ на: комментарий от anonymous

Разве выбор не будет в пользу писателя? 8-|

anonymous
()

есть смысл перейти на блокировки чтения-записи (Read-Write Lock`s) а так же серьезно задуматься на тему дизайна драйвера

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.