Când să folosiți mutex_lock_interruptible?

Cuprins:

Când să folosiți mutex_lock_interruptible?
Când să folosiți mutex_lock_interruptible?

Video: Când să folosiți mutex_lock_interruptible?

Video: Când să folosiți mutex_lock_interruptible?
Video: Mutex Lock 2024, Noiembrie
Anonim

Utilizați funcția mutex_lock_interruptible pentru a permite șoferului să fie întrerupt de orice semnal. Acest lucru implică faptul că apelul dvs. de sistem trebuie scris astfel încât să poată fi repornit. (Consultați și ERESTARTSYS.)

Pot bloca un spinlock într-un procesor și îl debloc pe alt procesor?

Folosirea spinlock-urilor pe un sistem single-core/single-CPU nu are de obicei sens, deoarece atâta timp cât sondarea spinlock blochează singurul nucleu disponibil al procesorului, niciun alt thread nu poate rula și, deoarece niciun alt thread nu poate rula, nici lacătul nu va fi deblocat.

Pot apela Kmalloc Gfp_kernel în timp ce țin în mână un spinlock?

Nu puteți, totuși, să faceți nimic care va dormi în timp ce țineți apăsat un spinlock. De exemplu, nu apelați niciodată nicio funcție care atinge memoria utilizatorului, kmalloc cu indicatorul GFP_KERNEL, nicio funcție de semafor sau oricare dintre funcțiile de planificare în timp ce țineți apăsat un spinlock. … Semaforele din Linux sunt blocări de repaus.

Ce este Spinlock_t?

int spin_trylock(spinlock_t lock) Blocează spinlock dacă nu este deja blocat. Dacă nu poate obține blocarea, acesta iese cu o eroare și nu se rotește blocarea. spin_lock_irq: spin_lock_irq(spinlock_t lock)

Ce este un mutex al nucleului?

În nucleul Linux, mutexurile se referă la o anumită primitivă de blocare care impune serializarea pe sistemele de memorie partajată și nu numai la termenul generic care se referă la „excluderea reciprocă” găsit în academice sau manuale teoretice similare.

Recomandat: