La apropiación de kernel es un método utilizado principalmente en kernels monolíticos e híbridos donde todos o la mayoría de los controladores de dispositivo se ejecutan en el espacio del kernel , por lo que el programador puede realizar un cambio de contexto a la fuerza (es decir, programar de manera preventiva; en nombre de un proceso ejecutable y de mayor prioridad) en un controlador u otra parte del kernel durante su ejecución, en lugar de esperar cooperativamente a que el controlador o la función del kernel (como una llamada al sistema ) complete su ejecución y devuelva el control del procesador al programador. [1] [2] [3] [4]
Hay dos beneficios principales de este método en kernels monolíticos e híbridos, y responde a una de las principales críticas de los defensores de los micronúcleos a los kernels monolíticos , que es que:
- Un controlador de dispositivo puede entrar en un bucle infinito u otro estado irrecuperable, bloqueando todo el sistema. [1]
- Algunos controladores y llamadas al sistema en núcleos monolíticos son lentos de ejecutar y no pueden devolver el control del procesador al programador u otro programa hasta que completen la ejecución. [2]
Ver también
Referencias
- ^ a b "Preferencia en Linux" . kernelnewbies.org . 2009-08-22 . Consultado el 10 de junio de 2016 .
- ^ a b Jonathan Corbet (24 de febrero de 2003). "Portabilidad del controlador: el kernel interrumpible" . LWN.net . Consultado el 10 de junio de 2016 .
- ^ "Manual de Arquitectura de FreeBSD, Capítulo 8. Documento de Diseño SMPng, Sección 8.3. Arquitectura y Diseño General" . freebsd.org . Consultado el 10 de junio de 2016 .
- ^ Robert Love (1 de mayo de 2002). "Reducir la latencia en Linux: introducción de un kernel interrumpible" . Diario de Linux . Consultado el 10 de junio de 2016 .