¿Qué es el cambio de contexto?

Uno de los mayores avances en el diseño y funcionamiento de las unidades centrales de procesamiento (CPU) se produjo cuando los diseñadores de sistemas operativos de computadora desarrollaron técnicas para permitir a los usuarios realizar múltiples tareas. La multitarea en referencia a las computadoras es la práctica de ejecutar dos o más programas al mismo tiempo. Desde el punto de vista del usuario final, esto puede no parecer complicado o descabellado, pero en realidad representa un salto considerable en el diseño del sistema. En la multitarea, la CPU debe hacer malabarismos con todas las operaciones para los diferentes programas activos, registrando dónde está con cada programa mientras el usuario alterna entre ellos. El cambio de contexto es el proceso que permite a la CPU recordar y restaurar estados para una variedad de programas activos, lo que le permite completar este acto de malabarismo.

Durante el cambio de contexto, la CPU descarta cualquier programa que esté manejando actualmente, almacenando el lugar específico en el que estaba en ese programa para que pueda reanudar su progreso más tarde. Para poner eso en perspectiva, el cambio de contexto es un poco como leer varios libros al mismo tiempo, alternar constantemente entre ellos y recordar siempre los números de página de cada uno. La información del “número de página” para los programas durante una operación de cambio de contexto se mantiene en el bloque de control de proceso (PCB). La PCB también se conoce a veces como el «cuadro de interruptores». Esta información se almacena en la memoria dentro de la CPU real, hasta que se necesite nuevamente.

El cambio de contexto ocurre durante tres situaciones posibles: manejo de interrupciones, multitarea y cambio de usuario. En el manejo de interrupciones, otro programa «interrumpe» el programa actual mientras se está ejecutando. Una vez que la CPU recibe la interrupción, realiza un cambio de contexto para hacer malabarismos entre el programa en ejecución y el programa que solicita datos inmediatos. En la multitarea, la CPU va y viene entre los programas, dando un intervalo de tiempo de procesamiento a cada uno y realizando una operación de cambio de contexto para cambiar entre los dos. Para algunos sistemas operativos, también se realiza un cambio de contexto durante un cambio de usuario para el sistema operativo, aunque esto no se requiere expresamente.

El sistema operativo o el hardware de la computadora pueden controlar el cambio de contexto. Algunos sistemas operativos modernos están diseñados para controlar el cambio de contexto a través del propio sistema operativo, ignorando cualquier soporte de hardware integrado para el procedimiento. Esto permite que el sistema operativo guarde más información durante un cambio de contexto, lo que le permite conservar más información sobre el cambio.