Está en la página 1de 6

CONTROL DE PROCESOS Modos de Ejecucin Ciertas instrucciones mquina pueden ejecutarse slo en modo privilegiado.

Entre stas estn la lectura o modificacin de registros de control (como la palabra de estado), instrucciones primitivas de E/S e instrucciones relativas a la gestin de memoria. Y solamente se puede acceder a ciertas zonas de memoria en el modo privilegiado. El modo de menor privilegio se conoce como modo usuario, y el de mayor privilegio como modo de sistema, supervisor o ncleo. La razn por la que se usan dos modos debe quedar clara. Es necesario proteger al sistema operativo y a las estructuras de datos importantes, tales como los bloques de control de procesos, de las inferencias de los programas de usuario. En el modo ncleo o privilegiado, el software tiene control completo del procesador y de todas las instrucciones, registros y memoria. Hay un bit en la PSW( palabra de estado ), que indica el modo de ejecucin. El bit se cambia como respuesta a ciertos sucesos tales como una llamada al sistema haciendo que el procesador conozca en qu modo ejecutara, y as, se cambia de modo. Cambio de Proceso A primera vista, la funcin de cambio de proceso parece sencilla. En cierto momento, un proceso que se est ejecutando se interrumpe, el sistema operativo pone a otro proceso en el estado de ejecucin y pasa el control a dicho proceso. Un cambio de proceso puede suceder en cualquier instante en el que el sistema operativo gana el control de la CPU. En primer lugar, se van a tener en cuenta las interrupciones del sistema. Se pueden distinguir dos clases de interrupciones del sistema. La primera es originada por algn tipo de suceso que es externo e independiente del proceso que se est ejecutando, como la culminacin de una E/S. La segunda tiene que ver con una condicin de error o excepcin generada dentro del proceso que se est ejecutando, como un intento ilegal de acceso a un fichero, una divisin entre cero, una instruccin mquina con cdigo de operacin no contemplado. En una interrupcin ordinaria, el control se transfiere primero al gestor de interrupciones, quien lleva a cabo algunas tareas bsicas y, despus, se salta a la rutina del sistema operativo que se ocupa del tipo de interrupcin que se ha producido. Algunos ejemplos de estas interrupciones son: Interrupcin de reloj: Un reloj es un dispositivo que genera interrupciones peridicamente. Ante una interrupcin de este tipo, un sistema operativo de tiempo compartido, entre otras cosas, determina si el proceso en ejecucin ha alcanzado el mximo tiempo de ejecucin

que se le concedi. Si es as, el proceso pasar a estado listo, y se asignar la CPU a otro proceso. Interrupcin de E/S: El sistema operativo determina exactamente qu accin de E/S ha ocurrido. Si se trata de un evento o suceso por el que esperaban uno o ms procesos, entonces el sistema operativo traslada todos los procesos bloqueados en dicho evento al estado listo, y determina (dependiendo de la poltica de planificacin, que se ver en el prximo tema) si reanuda la ejecucin del proceso interrumpido o pasa a otro de mayor prioridad. Falta de memoria: Un proceso hace una referencia a una direccin que no se encuentra en memoria y que debe traerse de memoria secundaria (esta posibilidad se estudiar en el mdulo de gestin de la memoria). Despus de hacer la solicitud de E/S para traer esa o esas direcciones de memoria, el sistema operativo lleva a cabo un cambio de contexto (prximo apartado) para reanudar la ejecucin de otro proceso; el proceso que cometi la falta de memoria se pasa al estado bloqueado. Despus de que las direcciones aludidas se carguen en memoria, dicho proceso se pondr en estado listo.

En una interrupcin del segundo tipo, el sistema operativo determina si el error es fatal. Si lo es, el proceso que se estaba ejecutando es eliminado, y se produce un cambio de proceso. Si no es fatal, la accin del sistema operativo depender de la naturaleza del error y del diseo del sistema operativo. Se puede hacer un cambio de proceso o, simplemente, reanudar el mismo proceso que se estaba ejecutando. Finalmente, el sistema operativo puede activarse mediante una llamada al sistema desde el programa que se est ejecutando. Por ejemplo, est ejecutndose un proceso de usuario y se llega a una instruccin que solicita una operacin de E/S, tal como abrir un fichero. Esta llamada provoca la transferencia a una rutina que forma parte del cdigo del sistema operativo. Por lo general (aunque no siempre) el uso de una llamada al sistema hace que el proceso de usuario pase al estado bloqueado. Cambio de Contexto Si existe una interrupcin pendiente es necesario: Salvar el contexto (PC, registros del procesador, informacin de la pila) del programa en ejecucin. Poner en el PC la direccin del programa de tratamiento de la interrupcin, que suele constar de unas pocas tareas bsicas.

Se debe incluir informacin que pueda ser necesaria para reanudar el programa interrumpido. As pues, debe guardarse la parte del bloque de control del proceso denominada informacin de estado del procesador. Esto incluye al contador de programa, otros registros del procesador y la informacin de la pila.

Si se tiene que hacer algo ms, depender de lo que ocurra a continuacin. La rutina de tratamiento de la interrupcin es normalmente un programa corto que lleva a cabo unas pocas tareas bsicas relacionadas con una interrupcin. Por ejemplo, se marca el indicador que seala la presencia de una interrupcin, puede enviar un acuse de recibo a la entidad que produjo la interrupcin (como un mdulo de E/S) y puede hacer algunas tareas bsicas relacionadas con los efectos del suceso que caus la interrupcin. Por ejemplo, si la interrupcin est relacionada con un suceso de E/S, el gestor de interrupciones comprobar condiciones de error. Si se ha producido un error, la rutina de tratamiento puede enviar una seal al proceso que solicit originalmente la operacin de E/S. 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 substanciales en su entorno (contexto). Los pasos involucrados en un cambio completo de proceso son los siguientes: 1. 2. Salvar el contexto del procesador, incluyendo el contador de programa y otros registros. Actualizar el PCB que estaba en estado de ejecucin. Esto implica cambiar el estado del proceso a alguno de los otros estados (listo, bloqueado, suspendido_listo). Tambin se tienen que actualizar otros campos, como uno en el que se guarde la razn por la que se abandona el estado de ejecucin y otros con informacin de contabilidad. Mover el PCB a la cola apropiada (listos, bloqueados por el suceso i, suspendido_listo). Seleccionar otro proceso para ejecucin. Actualizar el PCB seleccionado. Cambiar, por ejemplo, su estado a en ejecucin. Actualizar las estructuras de datos de gestin de la memoria. Esto puede hacer falta dependiendo de cmo se gestione la traduccin de direcciones. Restaurar el contexto del procesador a aqul que exista en el momento en el que el proceso seleccionado dej por ltima vez el estado de en ejecucin, cargando los valores previos del contador de programa y de otros registros.

3.

4. 5.

6.

As pues, el cambio de proceso, que implica un cambio de contexto, requiere un esfuerzo considerablemente superior al de un cambio de contexto.

OPERACIONES SOBRE PROCESOS Los procesos en el sistema pueden ejecutarse concurrentemente y deben ser creados y borrados dinmicamente. As el sistema de operacin debe crear un mecanismo para la creacin y terminacin de procesos. Creacin de procesos Cuando un nuevo proceso se agrega a los que actualmente estn siendo administrados, el sistema de operacin construye las estructuras de datos que son usadas para administrar los procesos (PCB) y le asigna espacio de direcciones. Estas acciones constituyen la creacin de un nuevo proceso. Hay 4 eventos comunes que conducen a la creacin de procesos: 1. En un ambiente batch, un proceso es creado en respuesta al sometimiento a ejecucin de un trabajo (job). El sistema de operacin tomar el prximo trabajo a ser ejecutado y crear el respectivo proceso. 2. En un ambiente interactivo, un proceso es creado cuando un nuevo usuario entra al sistema (log on), se crea un proceso shell que espera las rdenes del usuario. La creacin de este proceso es responsabilidad del sistema de operacin. 3. El sistema de operacin puede crear un proceso para que realice una funcin en respuesta a una peticin de un programa usuario, sin que el usuario tenga que esperar. Por ejemplo, si un usuario requiere que se imprima un archivo, el SO puede crear un proceso que maneje esta impresin, mientras que el proceso que realiz la peticin puede continuar independientemente del tiempo requerido para completar la tarea de impresin. 4. Creacin de procesos hijos por parte de procesos usuarios ya existentes: para propsitos de modularidad o para explotar paralelismo, un programa usuario puede crear un conjunto de procesos hijos. El proceso que crea se llama proceso padre. Hay dos posibilidades en trminos de espacio de direcciones del nuevo proceso: -El proceso hijo es un duplicado del proceso padre (Unix). -El proceso hijo tiene su propio programa cargado (DEC VMS). As mismo, referente a los recursos, en algunos sistemas los recursos del padre son compartidos con sus hijos y en otros sistemas, como UNIX, el sistema le otorga recursos nuevos e independientes a los procesos hijos. La creacin de procesos hijos en UNIX, se realiza a travs de la llamada al sistema fork(). En el proceso de creacin de procesos se genera una jerarqua de procesos padres e hijos.

Terminacin de procesos Implica la liberacin de los recursos que este proceso estaba usando. Un proceso puede terminar por las siguientes razones: -En forma normal: exit(), Halt(): llamadas al sistema que desasigna los recursos del proceso. -Excede el tiempo lmite -Memoria no disponible: el proceso requiere ms memoria de la que el sistema puede proveerle. -Violacin de lmites: el proceso trata de accesar una direccin de memoria que no se le permite accesar. -Error de proteccin: el proceso trata de usar un recurso o un archivo que no le es permitido acceder, o trata de usarlo en forma incorrecta (por ejemplo, escribir en un archivo read-only). -Errores aritmticos -Falla de E/S -Instruccin invlida -Instruccin privilegiada -Error en dato: una pieza de dato tiene un tipo erroneo o no est inicializada. -Intervencin del SO u operador. Terminacin del padre: cuando un proceso termina, el SO puede terminar automticamente todos sus procesos hijos. Algunos sistemas realizan terminacin en cascada; esto es, si un proceso termina todos sus hijos son automticamente terminados. Requerimiento del padre: un proceso padre tiene la autoridad para terminar cualquiera de sus procesos hijos.

Suspensin y reanudacin de procesos: Un proceso suspendido o bloqueado no puede proseguir sino hasta ser reanudado por otro proceso. Generalmente, es el S.O. el que se encarga de eliminar temporalmente ciertos procesos con el fin de reducir la carga del sistema durante una situacin crtica. Normalmente, los procesos son suspendidos durante periodos pequeos para disminuir la exigencia al sistema,

pero tambin hay casos en que ocurren suspensiones ms largas, en las que es posible liberar los recursos del proceso para poder utilizarlos durante sta. Segn la naturaleza del recurso, se toma la decisin de liberarlo o no: la memoria principal debe ser liberada de inmediato cuando se suspenda un proceso; una unidad de cinta puede ser retenida brevemente por un proceso suspendido, pero debe ser liberada si el proceso se suspende por un periodo largo o indefinido. Reanudar (o activar) un proceso implica reiniciarlo a partir del punto en el que se suspendi. La suspensin y reanudacin de procesos son importantes y han sido puestas en prctica en diferentes sistemas. Estas operaciones pueden ser de gran necesidad en casos como: Si un sistema est funcionando mal, y es probable que falle, se puede suspender los procesos activos para reanudarlos cuando se haya corregido el problema. Un usuario que desconfe de los resultados parciales de un proceso puede suspenderlo (en lugar de abortarlo) hasta que verifique si el proceso funciona correctamente o no. Algunos procesos se pueden suspender como respuesta a las fluctuaciones a corto plazo de la carga del sistema, y reanudarse cuando las cargas vuelvan a niveles normales.

Referencias bibliogrficas
http://ldc.usb.ve/~spd/Docencia/ci-3821/Tema3/node3.html http://wwwdi.ujaen.es/~lina/TemasSO/DEFINICIONYCONTROLDEPROCESO/4y5Controldeunpr ocesoyThreads.htm#control_proceso http://wiki.inf.utfsm.cl/index.php?title=Operaciones_sobre_procesos

También podría gustarte