Junior
¿Qué es el cambio de contexto?
sobes.tech AI
Respuesta de la IA
El cambio de contexto (Context Switching) es el proceso de guardar el estado de un proceso (o hilo) y restaurar el estado de otro proceso (o hilo) por parte del sistema operativo. Esto permite que varios procesos compartan un mismo procesador.
El algoritmo incluye los siguientes pasos:
- Guardar el contexto actual: Los registros del procesador, el contador de instrucciones (PC), el estado de la pila y otra información del proceso actual se guardan en su descriptor (PCB - Bloque de Control de Proceso).
- Elegir el siguiente proceso: El planificador del sistema operativo selecciona el siguiente proceso para ejecutar.
- Restaurar el contexto: El estado guardado del proceso seleccionado se carga desde su PCB en los registros del procesador.
Los costos (overhead) de cambiar de contexto incluyen:
- Tiempo dedicado a guardar y restaurar el estado.
- Pérdida de eficiencia debido a fallos en la caché (cache misses), ya que la caché llena con datos de un proceso se vuelve irrelevante para otro.
- Costos de ejecutar las instrucciones del planificador.
Ejemplo:
Supongamos que tenemos dos procesos, A y B, ejecutándose en un núcleo de procesador.
// Inicialmente se ejecuta el proceso A
// El proceso A usa los recursos de la CPU
// Ocurre un evento que requiere un cambio, por ejemplo, que el tiempo de quantum del proceso A expire
// El estado del proceso A (registros, PC) se guarda
// El sistema operativo selecciona el proceso B para ejecutar
// El estado del proceso B se carga
// El proceso B comienza a ejecutarse
El cambio de contexto es un mecanismo fundamental de la multitarea en los sistemas operativos, permitiendo crear la ilusión de ejecución paralela de múltiples procesos en un solo procesador físico.