En el diseño de sistemas operativos informáticos , la preempción del núcleo es una propiedad que poseen algunos núcleos , en la que la CPU puede ser interrumpida en medio de la ejecución del código del núcleo y se le pueden asignar otras tareas (de las cuales regresa posteriormente para finalizar sus tareas del núcleo).
Detalles
Específicamente, el planificador tiene permitido realizar forzosamente un cambio de contexto (en nombre de un proceso ejecutable y de mayor prioridad ) en un controlador u otra parte del núcleo durante su ejecución, en lugar de esperar cooperativamente a que el controlador o la función del núcleo (como una llamada al sistema ) complete su ejecución y devuelva el control del procesador al planificador cuando termine. [ 1 ] [ 2 ] [ 3 ] [ 4 ] Se utiliza principalmente en núcleos monolíticos e híbridos , donde todos o la mayoría de los controladores de dispositivos se ejecutan en el espacio del núcleo . Linux es un ejemplo de un sistema operativo de núcleo monolítico con preemption del núcleo.
El principal beneficio de la preempción del kernel es que resuelve dos problemas que de otro modo serían problemáticos para los kernels monolíticos, en los que el kernel consta de un único binario grande . [ 5 ] Sin la preempción del kernel, existen dos problemas importantes para los kernels monolíticos e híbridos:
- Un controlador de dispositivo puede entrar en un bucle infinito u otro estado irrecuperable, provocando el fallo de todo el sistema. [ 1 ]
- Algunos controladores y llamadas al sistema en núcleos monolíticos pueden ser lentos en ejecutarse y no pueden devolver el control del procesador al planificador u otro programa hasta que completen su ejecución. [ 2 ]
Véase también
Referencias
- 1 2 "Preemption under Linux" . kernelnewbies.org . 2009-08-22 . Consultado el 2016-06-10 .
- 1 2 Jonathan Corbet (24-02-2003). "Portabilidad de controladores: el kernel preemptivo" . LWN.net . Recuperado el 10-06-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). "Reduciendo la latencia en Linux: Introducción de un núcleo preemptivo" . Linux Journal . Consultado el 10 de junio de 2016 .
- ↑ Robert Love (2010). Desarrollo del núcleo Linux (3.ª ed.). Pearson Education. ISBN 978-0672329463.
- Planificación (informática)
- núcleos de sistemas operativos