¿Qué es un cambio de contexto?

En los primeros días de la informática, las CPU eran máquinas puramente secuenciales. Esto ayudó a mantener los diseños simples. Sin embargo, también limitó el rendimiento. Muchos procesos necesitarán solicitar datos de la memoria RAM del sistema o del disco duro. Si bien la RAM del sistema es rápida, todavía no es tan rápida como la CPU, lo que la deja inactiva, esperando datos hasta que la respuesta regresa de la RAM. La situación es aún peor para los datos solicitados desde el disco duro, un dispositivo de almacenamiento mucho más lento que la memoria RAM. Aquí la CPU puede estar inactiva durante períodos significativos, esperando una respuesta. Desafortunadamente, con los procesadores secuenciales, este problema es simplemente inevitable.

Afortunadamente, las CPU modernas ya no son secuenciales. Ofrecen muchas funciones avanzadas, como ejecución fuera de orden y múltiples subprocesos. La ejecución fuera de orden permite que la CPU analice las próximas instrucciones y las reordene para maximizar la eficiencia. Los subprocesos múltiples permiten que la CPU tenga numerosos subprocesos o procesos en ejecución.

Aparte de tener varios núcleos, la CPU no puede ejecutar más de uno a la vez. Sin embargo, puede hacer que lo parezca cambiando entre ellos regularmente para asegurarse de que cada uno obtenga una cantidad apreciable de tiempo de CPU constante. El proceso de cambiar entre subprocesos se denomina cambio de contexto.

¿Cómo funciona un cambio de contexto?

Un cambio de contexto consta de dos partes, cambiar el subproceso anterior y cambiar el nuevo. Para cambiar el subproceso anterior, la CPU debe guardar su estado actual en un bloque de control de procesos o marco de conmutación. Esto incluye los valores de cualquier registro de CPU relevante y siempre consiste en el valor del contador del programa. Una vez que se ha almacenado el subproceso, se puede agregar un identificador a una cola lista para permitir que se restaure cuando sea necesario.

Cambiar en el siguiente hilo es el mismo proceso a la inversa. Se selecciona un subproceso de la cola lista, según la ponderación. Alternativamente, puede ser elegido por una interrupción que indica que un evento que el subproceso estaba esperando ahora está listo o completo. A continuación, los datos del subproceso se copian en los registros correctos y el subproceso se restaura. En este punto, el nuevo subproceso está listo para continuar la operación desde donde se detuvo.

Impacto en el rendimiento

El proceso de lectura y escritura de datos al activar o desactivar un subproceso lleva algo de tiempo, aunque no mucho, ya que la memoria utilizada suele ser de alta velocidad. Sin embargo, existen otros costes de rendimiento. Al cambiar de subprocesos, los datos en las memorias caché y los búferes de la CPU del subproceso anterior pueden no ser relevantes para el nuevo subproceso. Esto puede conducir a un aumento significativo en TLB ( Búfer de búsqueda de traducción ) y errores de caché.

Este efecto no es significativo si los dos subprocesos fueron generados por el mismo proceso, ya que es probable que compartan elementos de memoria considerables. El TLB debe vaciarse por completo al cambiar entre subprocesos de diferentes métodos. Esto conduce a una tasa de fallas de TLB del 100%, mientras que la tasa de aciertos de la memoria caché de la CPU también se reduce significativamente.

Si bien las CPU ofrecen soporte de hardware para el cambio de contexto, los sistemas operativos generalmente no usan esto. El cambio de contexto de hardware carece de conciencia de la relevancia de los datos. Por lo tanto, necesita almacenar y restaurar todos los registros, aumentando el tiempo y el espacio de almacenamiento requerido.

Además, el cambio de contexto de hardware no almacena los datos de los registros de punto flotante, funcionalidad que puede ser necesaria. Por lo tanto, generalmente se usa el cambio de contexto de software. Permite conservar los datos de todos los registros, incluidos los registros de punto flotante. Los cambios de contexto de software tienen una comprensión de la relevancia de los datos. Esto significa que puede seleccionar y elegir cuáles almacenar según sea necesario.

Conclusión

Un cambio de contexto es un proceso mediante el cual una CPU moderna cambia el subproceso que está ejecutando. El proceso implica almacenar los datos relevantes del subproceso actual y restaurar los datos pertinentes del nuevo subproceso. El cambio de contexto conlleva un costo de rendimiento relacionado con el tiempo necesario para realizar el cambio y el aumento de la tasa de errores de caché y TLB, ya que estos no se almacenan. Los cambios de contexto ocurren para garantizar que todos los subprocesos tengan un buen suministro de tiempo de CPU o debido a una interrupción que indica que se completó un evento que la línea estaba esperando.



Leave a Comment

Solución de problemas de Roku no actualiza el software

Solución de problemas de Roku no actualiza el software

Asegúrate de que tu dispositivo Roku funcione correctamente actualizando el software. Aquí tienes soluciones efectivas para el problema de actualizaciones de Roku.

Chromebook: habilitar / deshabilitar el bloqueo de mayúsculas

Chromebook: habilitar / deshabilitar el bloqueo de mayúsculas

Los Chromebook son herramientas versátiles para múltiples propósitos, descubra cómo habilitar y deshabilitar el bloqueo de mayúsculas de manera simple.

¿Qué es un virus del sector de arranque?

¿Qué es un virus del sector de arranque?

Un virus del sector de arranque es un tipo clásico de malware que infecta el sector de arranque de los dispositivos de almacenamiento. Aprende sobre su funcionamiento, identificación y eliminación.

Cómo apagar el sonido del obturador de la cámara - Galaxy S 21 Plus

Cómo apagar el sonido del obturador de la cámara - Galaxy S 21 Plus

Descubre cómo tomar fotos en silencio apagando el sonido del obturador en tu Galaxy S21 Plus. Aprende trucos adicionales para mejorar tus fotografías.

¿Qué es VRAM?

¿Qué es VRAM?

VRAM o Video Random Access Memory es una forma de RAM que se utiliza específicamente para procesadores gráficos. Descubre cómo mejora el rendimiento gráfico.

¿Qué es la seguridad a través de la oscuridad?

¿Qué es la seguridad a través de la oscuridad?

La seguridad a través de la oscuridad se basa en el secreto de un sistema, pero en la actualidad, la seguridad real proviene de la criptografía moderna y de mantener en secreto la clave de cifrado.

Cómo clonar un disco duro

Cómo clonar un disco duro

En la era digital moderna, donde los datos son un activo valioso, clonar un disco duro en Windows puede ser un proceso crucial para muchos. Esta guía completa

¿Cómo reparar el controlador WUDFRd que no se pudo cargar en Windows 10?

¿Cómo reparar el controlador WUDFRd que no se pudo cargar en Windows 10?

¿Se enfrenta al mensaje de error al iniciar su computadora que dice que el controlador WUDFRd no se pudo cargar en su computadora?

Cómo reparar el código de error 0x0003 de la experiencia NVIDIA GeForce

Cómo reparar el código de error 0x0003 de la experiencia NVIDIA GeForce

¿Tiene el código de error 0x0003 de la experiencia NVIDIA GeForce en su escritorio? En caso afirmativo, lea el blog para descubrir cómo solucionar este error de forma rápida y sencilla.

Cómo quitar una GPU de una PC con Windows en 2023

Cómo quitar una GPU de una PC con Windows en 2023

¿Necesitas quitar la GPU de tu PC? Únase a mí mientras explico cómo quitar una GPU de su PC en esta guía paso a paso.