2010-07-19 2 views
2

Я пишу простой драйвер устройства символов. (ядро 2.6.26) Ожидается несколько одновременных считывателей &.Правильный замок для использования в драйвере символов linux

Я не уверен, какой тип блокировки лучше всего использовать для синхронизации короткого доступа к внутренним структурам.

Любые советы будут наиболее высоко

ответ

0

Сравнить с http://www.kernel.org/pub/linux/kernel/people/rusty/kernel-locking/c214.html. Старый документ ранее, когда существовали мьютексы, но данные мьютексы - это блокировка сна, они учитывают контекст пользователя.

спинлок - spinlock_bh - мьютекс - семафор

Если ваши структуры данных только когда-либо доступ к функциям, выполнение инициируется пользовательским приложением, все блокировки примитивы доступны. Это зависит от того, насколько коротким является «короткий доступ».

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

0

Начать с mutex. Как только вы его заработаете, вы можете подумать о переделке блокировки.

Смежные вопросы