Kedy použiť mutex_lock_interruptible?

Obsah:

Kedy použiť mutex_lock_interruptible?
Kedy použiť mutex_lock_interruptible?

Video: Kedy použiť mutex_lock_interruptible?

Video: Kedy použiť mutex_lock_interruptible?
Video: Kedy použiť predložku DO a NA? (Learn Slovak | Grammar - Prepositions) 2024, Septembra
Anonim

Použite funkciu mutex_lock_interruptible na to, aby váš vodič mohol byť prerušený akýmkoľvek signálom. To znamená, že vaše systémové volanie by malo byť zapísané tak, aby sa dalo reštartovať. (Pozri tiež ERESTARTSYS.)

Môžem uzamknúť spinlock na jednom CPU a odomknúť ho na inom CPU?

Používanie spinlockov v systéme s jedným jadrom/jedným procesorom zvyčajne nemá zmysel, pretože pokiaľ spinlock dotazovanie blokuje jediné dostupné jadro CPU, nemôže bežať žiadne iné vlákno a keďže nemôže bežať žiadne iné, nebude odomknutý ani zámok.

Môžem zavolať Kmalloc Gfp_kernel, keď mám spinlock?

Nemôžete robiť nič, čo by pri držaní spinlocku uspávalo. Napríklad nikdy nevolajte žiadnu funkciu, ktorá sa dotýka používateľskej pamäte, kmalloc s príznakom GFP_KERNEL, žiadne funkcie semaforu alebo žiadnu z funkcií plánovania, kým držíte spinlock. … Semafory v Linuxe sú spiace zámky.

Čo je Spinlock_t?

int spin_trylock(spinlock_t lock) Uzamkne spinlock ak ešte nie je zamknutý. Ak nie je možné získať zámok, opustí sa s chybou a neotočí zámok. spin_lock_irq: spin_lock_irq(spinlock_t lock)

Čo je to mutex jadra?

V linuxovom jadre sa mutexy vzťahujú na konkrétne zamykacie primitívum, ktoré vynucuje serializáciu v systémoch so zdieľanou pamäťou, a nielen na všeobecný termín odkazujúci na „vzájomné vylúčenie“, ktorý sa nachádza v akademická obec alebo podobné teoretické učebnice.

Odporúča: