Sunteți pe pagina 1din 3

Cambio de contexto. La activacin del sistema operativo se realiza mediante el mecanismo de las interrupciones.

Cuando se produce una interrupcin se realiza las dos operaciones siguientes Se salva el estado del procesador en el correspondiente BCP Se pasa a ejecutar la rutina de tratamiento de interrupcin del sistema operativo.

Llamaremos cambio de contexto al conjunto de estas operaciones. Como resultado del cambio de contexto se puede producir un cambio en el estado de algunos procesos, pero no necesariamente. Supngase que el proceso A est bloqueado esperando a que se complete una lectura de disco y que llega una interrupcin del disco. Se produce un cambio de contexto y entra a ejecutar el sistema operativo para tratar la interrupcin. En caso de que la interrupcin indique que ha terminado la lectura por la que esperaba A, el sistema operativo cambiar el estado de este proceso a listo o incluso ejecucin si as lo decide el planificador. El resultado final es que ha habido un cambio de estado de proceso. Supngase ahora que est ejecutando el proceso A y que llega una interrupcin de teclado asociado al proceso B. Se produce el cambio de contexto, pero el proceso B puede seguir en estado de bloqueado (no lleg el carcter de fin de lnea) y el proceso A puede seguir en estado de ejecucin, por lo que no hay cambio de estado en los procesos. Salvaguarda del estado. Las transiciones en el estado del proceso exigen un trabajo cuidadoso por parte del sistema operativo, para que se hagan correctamente. El aspecto ms delicado se refiere al contenido de los registros de la computadora. Veamos detalladamente los pasos involucrados: Un proceso est en ejecucin, por tanto parte de su informacin reside en los registros de la mquina, que estn siendo constantemente modificados por la ejecucin de las instrucciones de mquina. Bien sea porque llega una interrupcin o porque el proceso solicita un servicio del sistema operativo, el proceso para su ejecucin. Inmediatamente entra a ejecutar el sistema operativo, ya que sea para atender la ejecucin o para atender el servicio demandado. La ejecucin del sistema opertico, como la de todo programa, modifica los contenidos de los registros de la mquina, destruyendo sus valores anteriores.

Segn la ejecucin anterior, si se desea ms adelante continuar con la ejecucin del proceso, se presenta un grave problema: los registros ya no contienen los valores que deberan. Supongamos que el proceso est ejecutando la secuencia siguiente:

LD .5, #CANT En este punto llega una interrupcin y se pasa al SO. LD .1, [.5] Supongamos que el valor de CANT es HexA4E78, pero que el sistema operativo al ejecutar modifica el registro .5 dndole el valor HexEB7A4. Al intentar, ms tarde, que siga la ejecucin del mencionado proceso, la interrupcin LD .1, [.5] cargar el registro .1 el contenido de la direccin HexEB7A4 en vez del contenido de la direccin HexA4E78. Figura 3.16 Para evitar esta situacin, lo primero que hace el sistema operativo al entrar a ejecutar es salvar el contenido de todos los registros, teniendo cuidado de no haber modificado e valor de ninguno de ellos. Cuando el sistema operativo decide pasar un proceso a estado de ejecucin, ha de reintegrar los registros al estado previamente salvado en el BCP. De esta forma se consigue que el proceso pueda seguir ejecutando sin notar ninguna diferencia. Activacin de un proceso. El modulo del sistema operativo que pone a ejecutar un proceso se denomina activador o dispatcher. La activacin de un proceso consiste en copiar en los registros del procesador el estado del procesador, que est almacenado en su BCP. De esta forma, el proceso continuar su ejecucin en las mismas condiciones en las que fue parado. El activador termina con una interrupcin RETI de retorno de interrupcin. El efecto de esta interrupcin es restituir el registro de estado y el contador de programa, lo cual tiene los importantes efectos siguientes: Al restituir el registro de estado, se restituye el bit que especifica el nivel de ejecucin. Dado que cuando fue salvado este registro el bit indicaba nivel de usuario, puesto que estaba ejecutando u proceso, su restitucin garantiza que el proceso seguir ejecutando en nivel de usuario. Al restituir el contador de programa se consigue que la siguiente interrupcin mquina que ejecute el procesador sea justo la instruccin en la que fue interrumpido el proceso. En este momento es cuando se ha dejado de ejecutar el sistema operativo y se pasa a ejecutar el proceso.

La instruccin RETI es una interrupcin mquina que restituye los registros salvados por el hardware al aceptar la interrupcin. En general, los registros son el de estado y el contador de programa, que se suelen almacenar en la pila.

S-ar putea să vă placă și