Вы находитесь на странице: 1из 22

CAMBIO DE CONTEXTO

PUZZLE 3 - PREGUNTA 3
CAMBIO DE CONTEXTO
Es el proceso de almacenar y restaurar el estado de un proceso, de modo que la ejecucin se
puede reanudar desde el mismo punto en un momento posterior. Esto permite que varios procesos
para compartir una nica CPU y es una caracterstica esencial de un sistema operativo multitarea.

En sencillas palabras, la accin de conmutar la CPU de un proceso a otro se denomina cambio de
contexto.

El cambiar de un proceso a otro requiere una cierta cantidad de tiempo para hacer la
administracin - guardar y cargar los registros y mapas de memoria, la actualizacin de varias
tablas, listas, etc.

Los sistemas de tiempo compartido realizan de cientos/miles de cambios de contexto por
segundo. (Un cambio de contexto suele tardar de 1 a 1000 seg).


MOTIVOS DEL CAMBIO DE CONTEXTO

Interrupcin de reloj: Se termina su tiempo de rfaga de CPU.

Interrupcin de E/S: El sistema operativo determina que se ha producido una accin de
E/S.

Fallo de memoria (fallo de memoria virtual): El procesador encuentra una referencia a una
direccin de memoria virtual de una palabra que no esta en memoria principal.
TIPOS DE CAMBIO DE CONTEXTO
Existen dos tipos de cambios de contexto:

Cambio de contexto Voluntario: se produce cuando el proceso en ejecucin pasa al estado
bloqueado debido a que tiene que esperar por algn tipo de evento. Slo pueden ocurrir dentro
de una llamada a sistema. No pueden darse nunca en una funcin de interrupcin, ya que ste
generalmente no est relacionada con el proceso que est actualmente ejecutando.

Cambio de contexto Involuntario: se produce cuando el proceso en ejecucin tiene que
pasar al estado Listo, ya que debe dejar el procesador por algn motivo (por ejemplo, cuando se
le acaba su rfaga de tiempo de ejecucin o porque hay otro proceso con ms prioridad que hay
que ejecutar).

TIPOS DE CAMBIO DE CONTEXTO
Cambio de contexto voluntario (C.C.V):

Llamada al sistema (o fallo de pgina) que espera por evento
Transicin de en ejecucin a bloqueado
Ej.: leer del terminal, bajar un semforo cerrado, fallo de pgina
Motivo: Eficiencia en el uso del procesador

Cambio de contexto involuntario (C.C.I):

S.O. le quita la CPU al proceso
Transicin de en ejecucin a listo
Ej.: fin de rodaja de tiempo pasa a listo proceso de mayor prioridad
Motivo: Reparto del procesador

PASOS EN UN CAMBIO DE CONTEXTO
1. Salvar el contexto del procesador, incluyendo el contador de programa y otros registros.

2. Actualizar el BCP que estaba en estado de Ejecucin. Esto implica cambiar el estado del
proceso a alguno de los otros estados (Listo, Bloqueado, Listo y suspendido, Terminado). Tambin
se tienen que actualizar otros campos significativos, incluyendo la razn por la que se abandona el
estado de Ejecucin y la informacin de contabilidad.

3. Mover el BCP a la cola apropiada (Listos, Bloqueados, Listos y suspendidos).

4. Seleccionar otro proceso para ejecucin.

PASOS EN UN CAMBIO DE CONTEXTO

5. Actualizar el BCP seleccionado. Esto incluye cambiar el estado del proceso a Ejecucin.

6. Actualizar las estructuras de datos de gestin de memoria. Esto puede hacer falta
dependiendo de cmo se gestione la traduccin de direcciones.

7. Restaurar el contexto del procesador a aquel que exista en el momento en el que el proceso
seleccionado dej por ltima vez el estado de Ejecucin, cargando los valores previos del
contador de programa y de otros registros.

PASOS EN UN CAMBIO DE CONTEXTO
CAMBIO DE CONTEXTO VS CAMBIO DE PROCESO

La ocurrencia de una interrupcin no siempre causa el cambio de proceso. Es posible que despus
de que el gestor de interrupciones se haya ejecutado, el proceso que estaba ejecutndose
reanude su ejecucin. En tal caso, tan solo hay que guardar la informacin de estado del
procesador y restaurarla para que pueda reanudarse correctamente el proceso interrumpido
(estas funciones son realizadas en hardware).

Por tanto, el cambio de contexto es un concepto distinto al cambio de un proceso. Puede ocurrir
un cambio de contexto sin cambiar el estado del proceso que est actualmente en estado de
ejecucin. En tal caso, salvar el contexto y restaurarlo posteriormente involucra un pequeo
coste extra. Sin embargo, si el proceso que estaba ejecutndose tiene que pasar a otro estado
(listo o bloqueado), el sistema operativo tiene que llevar a cabo cambios sustanciales en su
entorno (contexto).
IMPORTANCIA DEL HARDWARE PARA
REALIZAR EL CAMBIO DE CONTEXTO
El cambio de contexto es muy dependiente de la mquina: salvar registros generales y de punto
flotante, estado del coprocesador, etc.

El coste del cambio de contexto proviene:
Coste directo de salvar registros de propsito general y los especiales.
Coste indirecto de limpiezas de caches (los datos de las caches del proceso actual son
invlidos para el entrante)
IMPORTANCIA DEL HARDWARE PARA
REALIZAR EL CAMBIO DE CONTEXTO
El tiempo dedicado al cambio de contexto es tiempo desperdiciado, dado que el sistema no realiza
ningn trabajo til durante la conmutacin. La velocidad del cambio de contexto vara de una
mquina a otra, dependiendo de la velocidad de memoria, del nmero de registros que tengan que
copiarse y de la existencia de instrucciones especiales (como por ejemplo, una instruccin para
cargar o almacenar todos los registros). Las velocidades tpicas son del orden de unos pocos
milisegundos.

El tiempo empleado en los cambios de contexto depende fundamentalmente del soporte
hardware. Por ejemplo, algunos procesadores (como Ultra\SPARC de Sun) proporcionan mltiples
conjuntos de registros. En este caso, un cambio de contexto simplemente requiere cambiar el
puntero al conjunto actual de registros. Por supuesto, si hay ms procesos activos que conjuntos
de registros, el sistema recurrir a copiar los datos de los registros en y desde memoria.

Вам также может понравиться