¿Qué es el Cambio de Contexto en el Sistema Operativo?
En el Sistema Operativo, hay casos en los que se tiene que devolver el proceso que está en estado de ejecución a algún otro estado como el de listo o el de espera/bloqueo. Si el proceso en ejecución quiere realizar alguna operación de E/S, entonces usted tiene que remover el proceso del estado de ejecución y luego poner el proceso en la cola de E/S. A veces, el proceso puede estar usando un algoritmo de programación round-robin donde después de cada quantum de tiempo fijo, el proceso tiene que volver al estado listo desde el estado de ejecución. Por lo tanto, estos cambios de proceso se hacen con la ayuda de Context Switching. En este blog, aprenderemos sobre el concepto de Conmutación de Contexto en el Sistema Operativo y también aprenderemos sobre las ventajas y desventajas de la Conmutación de Contexto. Así que, empecemos.
¿Qué es la Conmutación de Contexto?
Una conmutación de contexto es un proceso que implica el cambio de la CPU de un proceso o tarea a otro. En este fenómeno, la ejecución del proceso que está presente en el estado de ejecución es suspendida por el núcleo y otro proceso que está presente en el estado listo es ejecutado por la CPU.
Es una de las características esenciales del sistema operativo multitarea. Los procesos se conmutan tan rápidamente que da la ilusión al usuario de que todos los procesos se están ejecutando al mismo tiempo.
Pero el proceso de cambio de contexto implica una serie de pasos que hay que seguir. No se puede cambiar directamente un proceso del estado de ejecución al estado de listo. Tienes que guardar el contexto de ese proceso. Si no guardas el contexto de algún proceso P, entonces después de algún tiempo, cuando el proceso P entre en la CPU para ejecutarse de nuevo, entonces el proceso comenzará a ejecutarse desde el inicio. Pero en realidad, debería continuar desde el punto en el que salió de la CPU en su ejecución anterior. Por lo tanto, el contexto del proceso debe ser guardado antes de poner cualquier otro proceso en el estado de ejecución.
Un contexto es el contenido de los registros de la CPU y el contador de programa en cualquier momento. El cambio de contexto puede ocurrir debido a las siguientes razones:
- Cuando un proceso de alta prioridad llega al estado de listo. En este caso, la ejecución del proceso en ejecución debe detenerse y el proceso de mayor prioridad debe recibir la CPU para su ejecución.
- Cuando se produce una interrupción, entonces el proceso en estado de ejecución debe detenerse y la CPU debe manejar la interrupción antes de hacer otra cosa.
- Cuando se requiere una transición entre el modo usuario y el modo kernel entonces hay que realizar el cambio de contexto.
Pasos involucrados en el cambio de contexto
El proceso de cambio de contexto implica una serie de pasos. El siguiente diagrama representa el proceso de cambio de contexto entre los dos procesos P1 y P2.
En la figura anterior, se puede ver que inicialmente, el proceso P1 está en el estado de ejecución y el proceso P2 está en el estado listo. Ahora, cuando se produce alguna interrupción, entonces hay que cambiar el proceso P1 del estado en ejecución al estado listo después de guardar el contexto y el proceso P2 del estado listo al estado en ejecución. Los siguientes pasos se llevarán a cabo:
- En primer lugar, el contexto del proceso P1 es decir, el proceso presente en el estado de ejecución se guardará en el bloque de control de procesos del proceso P1 es decir, PCB1.
- Ahora, usted tiene que mover el PCB1 a la cola correspondiente es decir.Desde el estado de preparación, seleccione el nuevo proceso que se va a ejecutar, es decir, el proceso P2.
- Ahora, actualice el bloque de control de procesos del proceso P2, es decir, PCB2, estableciendo el estado del proceso en ejecución. Si el proceso P2 fue ejecutado anteriormente por la CPU, entonces usted puede obtener la posición de la última instrucción ejecutada para que pueda reanudar la ejecución de P2.
- De manera similar, si desea ejecutar el proceso P1 de nuevo, entonces usted tiene que seguir los mismos pasos mencionados anteriormente(desde el paso 1 al 4).
Para que se produzca el cambio de contexto, se necesitan al menos dos procesos en general, y en el caso del algoritmo round-robin, se puede realizar el cambio de contexto con la ayuda de un solo proceso.
El tiempo involucrado en el cambio de contexto de un proceso por otro se llama Tiempo de Cambio de Contexto.
Ventaja del Cambio de Contexto
El cambio de contexto se utiliza para lograr la multitarea, es decir, la multiprogramación con tiempo compartido (aprender más sobre la multitarea desde aquí). La multitarea da la ilusión a los usuarios de que se está ejecutando más de un proceso al mismo tiempo. Pero en realidad, sólo una tarea está siendo ejecutada en un instante particular de tiempo por un procesador. En este caso, el cambio de contexto es tan rápido que el usuario tiene la sensación de que la CPU está ejecutando más de una tarea al mismo tiempo.
La desventaja del cambio de contexto
La desventaja del cambio de contexto es que requiere cierto tiempo para el cambio de contexto, es decir, el tiempo de cambio de contexto. Se requiere tiempo para guardar el contexto de un proceso que está en el estado de ejecución y luego obtener el contexto de otro proceso que está a punto de entrar en el estado de ejecución. Durante ese tiempo, la CPU no realiza ningún trabajo útil desde la perspectiva del usuario. Por lo tanto, el cambio de contexto es pura sobrecarga en esta condición.
Eso es todo para este blog. Espero que hayas disfrutado de este blog.