Kiedy używać mutex_lock_interruptible?

Spisu treści:

Kiedy używać mutex_lock_interruptible?
Kiedy używać mutex_lock_interruptible?

Wideo: Kiedy używać mutex_lock_interruptible?

Wideo: Kiedy używać mutex_lock_interruptible?
Wideo: Kiedy używać ANY, a kiedy SOME? - Angielskie zaimki 2024, Wrzesień
Anonim

Użyj funkcji mutex_lock_interruptible aby zezwolić na przerwanie sterownika przez dowolny sygnał. Oznacza to, że wywołanie systemowe powinno być napisane, aby można było je ponownie uruchomić. (Zobacz także ERESTARTSYS.)

Czy mogę zablokować spinlock w jednym procesorze i odblokować go w innym?

Korzystanie z blokad spinlock w systemie jednordzeniowym/jednoprocesorowym zwykle nie ma sensu, ponieważ tak długo, jak odpytywanie blokad spinlock blokuje jedyny dostępny rdzeń procesora, żaden inny wątek nie może działać, a ponieważ żaden inny wątek nie może działać, zamek również nie zostanie odblokowany.

Czy mogę zadzwonić do Kmalloc Gfp_kernel trzymając spinlock?

Nie możesz jednak robić niczego, co spowoduje uśpienie podczas trzymania spinlocka. Na przykład nigdy nie wywołuj żadnej funkcji, która dotyka pamięci użytkownika, kmalloc z flagą GFP_KERNEL, żadnych funkcji semaforów ani żadnej z funkcji harmonogramu, gdy trzymasz blokadę spinlock. … Semafory w Linuksie to blokady usypiające.

Co to jest Spinlock_t?

int spin_trylock(spinlock_t lock) Blokuje blokadę spinlock jeśli nie jest jeszcze zablokowana. Jeśli nie można uzyskać blokady, kończy działanie z błędem i nie obraca blokady. spin_lock_irq: spin_lock_irq(spinlock_t lock)

Co to jest muteks jądra?

W jądrze Linuksa muteksy odnoszą się do konkretnego prymitywu blokującego, który wymusza serializację w systemach pamięci współdzielonej, a nie tylko do ogólnego terminu odnoszącego się do „wzajemnego wykluczania” znajdującego się w akademickie lub podobne podręczniki teoretyczne.

Zalecana: