Cambio de contexto

Índice
El tiempo de CPU como recurso compartido
Los sistemas operativos modernos hacen malabarismos con docenas o cientos de hilos activos.
Sólo existen unos pocos núcleos de CPU, por lo que la mayoría de los hilos esperan en colas mientras se ejecuta un pequeño subconjunto.
A cambio de contexto permite al programador pausar un hilo en ejecución y reanudar otro.
Esta rápida conmutación crea la ilusión de paralelismo y también da forma a lo que se ve más tarde dentro de los volcados de fallos.
Dentro del contexto de ejecución de un hilo
Cada hilo transporta algo más que código y datos.
También tiene un contexto de ejecución completo que el núcleo debe guardar y restaurar correctamente.
Ese contexto incluye:
Registros e indicadores de propósito general de la CPU
Puntero de instrucción y puntero de pila
Registros de segmentos y registros de control cuando proceda
Kernel y pilas de usuario, además de algunos metadatos del programador.
Cuando el núcleo abandona un hilo, debe registrar este estado.
Cuando el planificador vuelve a ese mismo hilo, restaura todo para que la ejecución continúe como si nada se hubiera detenido.
Pasos del núcleo durante un cambio de contexto
A bajo nivel, un cambio de contexto sigue una secuencia predecible.
Los detalles cambian de una arquitectura a otra, pero las acciones básicas siguen siendo similares.
El hilo en ejecución alcanza un punto de programación, como una interrupción del temporizador o una llamada al sistema bloqueante.
El núcleo guarda los registros de la CPU, los punteros de la pila y alguna información de control en la pila o bloque de control del núcleo del hilo.
El planificador elige el siguiente subproceso ejecutable en función de la prioridad, la equidad y la afinidad del procesador.
El kernel carga el contexto guardado para ese próximo hilo, incluyendo registros y punteros de pila.
El control vuelve al modo usuario o núcleo en el nuevo hilo, que continúa en su puntero de instrucción anterior.
Esta secuencia ocurre millones de veces por segundo en sistemas ocupados.
Cualquier error en estos pasos puede causar corrupción de datos, cuelgues o un fallo que produzca un archivo de volcado.
Activadores que provocan cambios de contexto
Los cambios de contexto no se producen aleatoriamente.
Surgen de eventos bien definidos dentro del SO y el hardware.
Desencadenantes comunes:
El hilo en ejecución se bloquea en E/S, un bloqueo o un objeto de espera
Una interrupción del temporizador de hardware indica que el hilo ha utilizado su intervalo de tiempo
Un hilo de mayor prioridad está listo para ejecutarse
El programador recibe una señal para reequilibrar el trabajo entre los núcleos
Los volcados de memoria capturan el hilo que se estaba ejecutando cuando se produjo una condición fatal o cuando el núcleo detectó una inconsistencia grave durante una de estas transiciones.
Crash Dumps y Thread States
Cuando Windows se encuentra con una comprobación de errores, congela la programación y escribe una instantánea de la memoria en el disco.
Esa instantánea suele incluir detalles sobre varios hilos y los contextos que causaron o detectaron el error.
Los vertederos de accidentes suelen registrar:
El hilo activo en cada CPU en el momento del fallo
Pilas del kernel que muestran qué funciones se ejecutaron justo antes del fallo
Estructuras que describen las colas de espera y los estados de espera
Examinando esos hilos y sus últimos eventos de cambio de contexto, los analistas deducen qué controlador, llamada al sistema o acción del usuario contribuyó al fallo.
Consideraciones sobre rendimiento y fiabilidad
El cambio de contexto permite la multitarea, pero conlleva una sobrecarga.
El kernel debe moverse entre niveles de privilegio, vaciar o recargar algún estado de la CPU y alterar el contenido de la caché.
Demasiados cambios de contexto pueden:
Aumentar el tiempo que la CPU pasa en el programador
Deterioro de la localidad de la caché y el TLB
Reducir el rendimiento de las aplicaciones de E/S intensivas
Inestable conductores o procesos de usuario que se comportan mal pueden crear patrones de conmutación extremos, que a veces aparecen en los volcados de memoria como largas pilas de operaciones de espera y activación.
En casos graves, los errores durante esas transiciones provocan corrupción de memoria o bloqueos.
Uso práctico de la información contextual en el análisis de vertederos

El análisis de volcado de fallos suele comenzar con el hilo actual y su contexto.
A continuación, se trabaja hacia fuera para comprender la programación y el comportamiento de los bloqueos.
Comprobaciones clave en un volcado de Windows
Cuando abres un volcado de error de Windows en un depurador, puedes:
Consultar el código y los parámetros de la comprobación de errores
Inspeccionar el hilo actual y su pila de llamadas
Enumerar otros hilos en el mismo proceso y sus estados
Ver cadenas de espera y objetos de sincronización
Esta información le ayuda a decidir si un controlador se ha bloqueado durante un cambio de contexto, durante la finalización de E/S, o mientras manejaba un temporizador o una interrupción.
Relación con la recuperación de datos
Un fallo que interrumpa las escrituras activas puede dejar inconsistentes los sistemas de archivos.
Incluso después de solucionar la causa raíz, puede que necesite recuperar archivos de volúmenes dañados.
Puede utilizar los vertederos de fallos para comprender la temporización y los componentes responsables y, a continuación, confiar en Magic Data Recovery para escanear los discos afectados y restaurar los datos perdidos o parcialmente escritos.
Esta combinación permite comprender por qué falló el sistema y cómo reconstruir después los contenidos de los usuarios.
Compatible con Windows 7/8/10/11 y Windows Server
Conclusión
El cambio de contexto permite a los sistemas operativos compartir núcleos de CPU entre varios subprocesos.
El planificador guarda y restaura contextos de ejecución constantemente, y cualquier error grave en ese proceso puede aparecer como un fallo.
Los volcados de memoria conservan los últimos estados conocidos de los subprocesos, incluidos sus contextos y relaciones de programación.
Leyendo esos volcados y emparejándolos con herramientas de recuperación seguras como Magic Data Recovery, Con esta solución, podrá diagnosticar fallos y proteger los datos de los usuarios de los efectos secundarios de las paradas repentinas del sistema.
Preguntas frecuentes
¿Cómo funciona el cambio de contexto?
¿Qué provoca un cambio de contexto?
¿Qué es el cambio de contenidos?
¿Qué ejemplos hay de cambio de contexto?
¿Es difícil cambiar de contexto para las personas con TDAH?
¿Es bueno para el cerebro cambiar de contexto?
¿Cómo funciona el cambio de contenidos?
¿El cambio de contexto es bueno o malo?
¿Qué son los conmutadores L1, L2 y L3?
Eddie es un informático con más de 10 años de experiencia en varias empresas de renombre del sector informático. Aporta a cada proyecto profundos conocimientos técnicos y capacidad práctica para resolver problemas.



