Cuando un proceso en el espacio del núcleo está sosteniendo un spin_lock
, el proceso puede no tener preferencia por alguna de las siguientes condiciones:Linux Kernel Derecho preferente durante spin_lock y mutex_lock
- Cuando el intervalo de tiempo del proceso se agotado
- Cuando un proceso de alta prioridad se vuelve ejecutable
- Cuando se produce una interrupción
Sin embargo, el proceso puede producir el procesador si bloquea, dormir s, o explícitamente llame al schedule()
. Es mi entendimiento correcto?
Cuando un proceso en el espacio del núcleo está sosteniendo un mutex_lock
, puede el proceso de ser substituida debido a las condiciones arriba expuestas como 1, 2 y 3.
Has visto este hilo: http://stackoverflow.com/questions/3372541/spin-lock-on-non-preemtive-linux-kernels – PhD
Sí, lo he leído. Pero ese hilo parece ser confuso. No es lo que quise decir con mi pregunta –
No puedes bloquear o programar() mientras sostienes un spinlock (bueno, puedes, pero el resultado no será bonito). – ninjalj