¿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

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.

Cómo instalar un SSD NVMe en una computadora de escritorio y una computadora portátil

Cómo instalar un SSD NVMe en una computadora de escritorio y una computadora portátil

¿Compró un nuevo SSD NVMe M.2 pero no sabe cómo instalarlo? Siga leyendo para aprender cómo instalar un SSD NVMe en una computadora portátil o de escritorio.

¿Qué es una bomba lógica?

¿Qué es una bomba lógica?

Una bomba lógica es un incidente de seguridad en el que un atacante establece una acción retrasada. Sigue leyendo para saber más.

¿Qué es Stuxnet?

¿Qué es Stuxnet?

Stuxnet era un gusano que se propagaba a sí mismo. Fue el primer uso de un arma cibernética y la primera instancia de malware.

¿Qué es un hacker ético?

¿Qué es un hacker ético?

Un hacker ético es un hacker que actúa dentro de los límites de la ley. Sigue leyendo para saber más sobre el tema.

¿Qué es el cifrado simétrico?

¿Qué es el cifrado simétrico?

Hay muchas partes diferentes de la criptografía. Sin embargo, si desea cifrar algunos datos, hay dos tipos de algoritmos que puede usar: simétrico

Cómo hacer una prueba de estrés de GPU en 2023: + 6 mejores herramientas

Cómo hacer una prueba de estrés de GPU en 2023: + 6 mejores herramientas

¿Quiere hacer una prueba de estrés de la GPU en su PC con Windows para garantizar un rendimiento confiable para los juegos de alta definición? ¡Lea esta guía de GPU de prueba de estrés ahora!