Un proceso en un sistema multitarea se lleva de la memoria secundaria a la memoria principal y, a veces, se vuelve a cambiar a la memoria secundaria. Por lo tanto, hay varios estados de un proceso a lo largo de su ciclo de vida. El cambio de contexto es una parte importante de todo ese ciclo de vida.
Dispatcher es un módulo que le da el control de la CPU al proceso seleccionado por el planificador a corto plazo, esto implica:
- cambio de contexto
- cambiar al modo de usuario
- saltando a la ubicación adecuada en el programa de usuario para continuar ejecutando ese programa.
Cambio de contexto:
es el proceso de almacenar el estado de un proceso anterior y cargar el estado guardado para el nuevo proceso a través de un cambio de contexto. El contexto de un proceso se representa en el PCB (bloque de control de proceso).
Durante el cambio de contexto, los atributos de un proceso como registros, puntero, contador de programa, etc., que están almacenados en la PCB, se guardan en una pila por proceso en la memoria del kernel y un nuevo proceso toma su lugar actualizando su PCB si es un proceso antiguo o creando una nueva PCB si es un proceso nuevo.
El cambio de contexto ofrece un alto grado de multitarea y ayuda a obtener una mejor utilización del sistema operativo.
Latencia de despacho:
es el tiempo que tarda el despachador en cambiar de contexto un proceso del estado de ejecución y poner otro proceso en el estado de ejecución.
La latencia de envío es una sobrecarga y el sistema no realiza ningún trabajo útil mientras cambia de contexto.
Algunos hardware proporcionan varios conjuntos de registros por CPU, lo que permite cargar varios contextos a la vez.
La latencia de envío es una pequeña parte de todo el tiempo de respuesta de la aplicación.
La latencia de envío consiste en que una tarea anterior libera sus recursos (reactivación) y luego reprograma la nueva tarea (despacho), todo esto también se incluye en el cambio de contexto.
Veamos un ejemplo para comprender el cambio de contexto y la latencia de despacho.
Ejemplo –
Prioridad –
P1 > P2 > P3 > P4 > P5 > P6
Cola lista –
P2 | P3 | P4 | P5 | P6 |
Correr –
P1 |
La tarea P7 con prioridad mayor que P1 entra en la cola de listas.
Ahora Ready Queue será:
P2 | P3 | P4 | P5 | P6 | P7 |
El programador a corto plazo elige P7 para intercambiar con P1 en estado de ejecución.
Cambio de contexto:
1. El contexto de P1 (PCB) se guarda y almacena en una pila por proceso en la memoria del núcleo.
2. Se actualiza el contexto de P7 (PCB).
El tiempo transcurrido en los pasos 1 y 2 es la latencia de despacho .
Correr –
P7 |
Tanto el «Cambio de contexto» como la «Latencia de envío» están relacionados con el despachador, que entra en juego después de que el programador a corto plazo decida qué proceso llevar de la cola lista al estado de ejecución.
Latencia de envío | Cambio de contexto |
---|---|
La cantidad de tiempo que tarda el despachador en pausar un proceso e iniciar otro se denomina latencia de despacho. |
El proceso de guardar el estado de un proceso o subproceso en ejecución anterior y cargar el estado inicial o previamente guardado de un nuevo proceso por el despachador. |
La latencia de envío es un valor de tiempo. | El cambio de contexto es un proceso. |
Es una consecuencia del cambio de contexto. | Lo realiza el despachador, cuando es iniciado por una interrupción. |
La latencia depende del soporte de hardware. | Cuanto más complejo sea el sistema operativo y la PCB, más largo será el cambio de contexto. |
Publicación traducida automáticamente
Artículo escrito por yuvrajjoshi31 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA