Está en la página 1de 17

Gestin de procesos En esta seccin se presentarn los conceptos bsicos de gestin de procesos.

Gestin de procesos La gestin de procesos es uno de los componentes principales de un sistema operativo. Este se encarga de generar y gestionar los procesos que se ejecutan en una CPU, y atender sus peticiones. Un proceso se puede considerar como la abstraccin de un programa en ejecucin. Se debe tener en cuenta que un programa es parte de un proceso: el programa es el conjunto de instrucciones de mquina, que generalmente se almacena en un archivo (ejecutable), y se carga en memoria en el momento de su ejecucin. Debido a la arquitectura de los computadores actuales (slo existe un PC, un juego de registros, etc.) en la cual slo se puede ejecutar un proceso al tiempo, la CPU debe saltar de proceso en proceso, asignndole a cada uno un tiempo de ejecucin. Cada vez que se cambia el proceso que se est ejecutando se debe salvar su estado de ejecucin con el fin que pueda ser reiniciado ms tarde en el punto de ejecucin en el cual se interrumpi.

Servicios de procesos Los servicios que ofrece un sistema operativo para la gestin de procesos se pueden clasificar en: Creacin: La creacin de procesos se puede llevar a cabo de varias maneras: Inicializacin del sistema: En el momento de iniciar el S.O, el proceso residente puede ejecutar otros procesos. Con frecuencia estos procesos son utilidades y servicios del sistema, utilidades de usuario, deteccin e inicializacin de dispositivos de Hardware, software antivirus, etc.

Llamadas al sistema: La interfaz de programacin (API) del S.O. ofrece algunas funciones para la creacin de procesos (fork en POSIX y CreateProcess en Win32).
Solicitud del usuario: Por medio de una interfaz de usuario textual o grfica, el usuario puede invocar nuevos procesos. Inicializacin de un trabajo por lotes: Algunos sistemas operativos ofrecen algn mecanismo para programar tareas, stas se inician de manera automtica en una determinada fecha y hora, o cuando se cumplan ciertas condiciones (Lmite de espacio en disco, bloqueo de programas, etc). Gestin: La gestin de procesos incluye su planificacin y administracin. Finalizacin: La finalizacin de un proceso se puede dar de dos formas: Voluntaria: El proceso termina su ejecucin de manera normal, mediante una llamada exit, o cuando ocurre un error en la ejecucin del programa que impide que pueda continuar normalmente. Involuntaria: Debido a errores en la lgica de programacin se pueden ejecutar operaciones no vlidas que producen la terminacin de un proceso. De otro lado el sistema operativo puede implementar estrategias para permitir la finalizacin de un proceso.

Un proceso es un programa en ejecucin gestionada por el sistema operativo. Posee los siguientes componentes: Imagen de memoria: Contenido de los segmentos de memoria en los que residen los datos y el cdigo del proceso (programa). Estado del procesador: Contenido de los registros del modelo d programacin del computador. Estado del proceso: Es un registro que contiene la informacin necesaria para identificar cada proceso. De acuerdo al nmero de procesos y de usuarios que pueden utilizar un sistema al mismo tiempo, los sistemas operativos se clasifican en:

Monotarea: Slo se puede ejecutar un proceso en cada momento


Multitarea (multiproceso): Permite que coexistan varios procesos activos a la vez. Esto no quiere decir que los procesos se ejecuten al mismo tiempo. El S.O. administra el tiempo del procesador, asignndole tiempo de procesador a cada proceso (tiempo compartido).

Monousuario: Previsto para soportar un solo usuario. Un sistema monousuario puede ser monotarea o multitarea.
Multiusuario: Permite varios usuarios trabajando simultneamente desde varios terminales. Todo sistema operativo multiusuario es multitarea: debe implementar estrategias de tiempo compartido.

Debido a que slo existe un EIP (Instruction Pointer) fsico, el S.O. debe implementar estrategias para administrar el tiempo de la CPU. Cuando un proceso entra en ejecucin, existe un EIP lgico. Cuando se termina el tiempo de CPU para el proceso, el EIP fsico se almacena en el estado del proceso. De esta manera cuando el proceso adquiera nuevamente tiempo de CPU, su ejecucin continuar en el punto en el cual fue interrumpido.

La grfica ilustra la administracin de tiempo de la CPU: el S.O. asigna determinado tiempo a cada proceso (1 unidad, en este caso), luego que termina este tiempo el proceso debe abandonar la CPU y ceder el turno a otro proceso.

A medida que avanza el uso de los servicios del S.O. por parte del usuario, se van creando y terminando procesos. Estos se encuentran organizados en una jerarqua que comienza con el primer proceso que se ejecut, y a partir del cual se crearon los dems procesos. En sistemas POSIX, el primer proceso en ser ejecutado es el proceso denominado Init, que recibe un Identificador de Proceso (PID) de 1. Este proceso se encarga de ejecutar los servicios de arranque del sistema operativo, y los procesos para inicio de sesin. De forma general, el PID de un nuevo proceso que se crea en POSIX corresponde al PID de su proceso padre + 1.

Estado del proceso El S.O. mantiene por cada proceso una serie de estructuras de informacin que le permite identificar las caractersticas de este, as como los recursos que tiene asignados. Una de las estructuras del S.O. es la tabla de procesos. Dentro de esta tabla se encuentra un registro para cada proceso en memoria, llamada Bloque de Control de Proceso. Bloque de Control de Proceso (BCP) Depende de cada S.O, pero a nivel general contiene la informacin bsica del proceso. Se actualiza cuando el proceso est en memoria pero no en ejecucin. Cuando el proceso se est ejecutando, el estado del procesador vara de acuerdo al flujo de instrucciones de mquina ejecutado. Luego, cuando se interrumpe el proceso la informacin del BCP se actualiza en memoria para reflejar los cambios en el estado del proceso.

Informacin del BCP La informacin del BCP se puede clasificar en: Informacin de identificacin: Se utiliza para diferenciar el proceso de los dems procesos en memoria. Para ello debe contener la siguiente informacin: Identificador del proceso (Process ID - PID): Nmero nico que identifica al proceso. Se asigna dinmicamente en el momento de crear el proceso y depende de la cantidad de procesos que se encuentren en memoria en el momento de la creacin. Vara cada vez que se ejecuta nuevamente el proceso.

Identificador del proceso padre (Parent Process ID PPID): PID del proceso desde el cual se gener el nuevo proceso.
Identificador de usuario (User ID UID). En los sistemas operativos multiusuario, representa el identificador nico de cada usuario dentro del sistema. Estado del procesador: Almacena los valores del estado del procesador en el momento en el cual se interrumpi el proceso. Esto permite que el proceso pueda ser reiniciado desde el punto en el cual fue interrumpido. Informacin de control del proceso: Contiene la informacin que requiere el S.O. para conocer los mecanismos para la gestin de proceso: Informacin de planificacin Descripcin de los segmentos de memoria que utiliza el proceso Recursos asociados con el proceso Estructura del proceso Comunicacin

Creacin de procesos Todo proceso se crea a partir de una llamada al sistema. Esta llamada se puede realizar desde diferentes puntos: Proceso de usuario: Dentro de un proceso de usuario se puede realizar la llamada al sistema para crear un nuevo proceso. Los niveles de seguridad del S.O. determinarn si es posible crear un nuevo proceso. Proceso del sistema: De igual forma un proceso del sistema puede realizar la llamada para crear nuevos procesos, este es el caso del proceso Init: Una vez que se est ejecutando realiza llamadas al sistema para crear nuevos procesos que se encargan de diferentes labores, como controlar los dispositivos, y administrar los recursos del computador (CPU, memoria, sistema de archivos), y lanzar intrpretes de comandos textuales o grficos.

Tareas programadas: La mayora de sistemas operativos ejecutan un programa especial (programador de tareas) que ejecuta tareas en un determinado momento (cada 2 horas, diariamente, mensualmente) o cuando se cumple cierta condicin en el sistema operativo (poco espacio, falta de memoria).
La creacin de procesos depende del sistema operativo, cada una recibe determinados parmetros. Existe la llamada fork para POSIX y CreateProcess para WIN32.

Llamada al sistema fork La llamada fork de POSIX crea una copia exacta del proceso que la solicita. En la grfica, el proceso A dentro de sus instrucciones hace uso de la llamada fork(). En ese instante el S.O. crea una copia de la imagen de memoria del proceso y de su estado (A), y la copia en otro segmento de memoria. Esta nueva copia es idntica al proceso original, es decir que se tienen dos procesos que ejecutan el mismo programa en el mismo punto . La diferencia entre el proceso A y A se da en algunos campos del BCP, entre los que sobresalen: PID: El identificador de proceso es diferente en el proceso original (padre) y en el nuevo proceso. Generalmente el identificador del proceso hijo es el PID del padre ms uno. PPID: El identificador del padre del proceso original no cambia, pero el identificador del padre del proceso hijo es el identificador del proceso original. PC: Cada proceso adquiere un PC lgico diferente, por estar en dos segmentos de memoria diferentes. Sin embargo el PC de cada uno apunta a la misma instruccin del programa. Los dos procesos comparten los descriptores de archivo que existen en el momento de realizar la llamada. La llamada fork se acompaa de la llamada exec, que permite cambiar la imagen de memoria del proceso por un nuevo ejecutable.

10

Planificacin de Procesos La planificacin se refiere al mecanismo usado por el sistema operativo para asignar la CPU a cada uno de los procesos existentes en el sistema. Los computadores actuales pueden ejecutar un gran nmero de procesos, pero slo cuentan con un conjunto limitado de procesadores (1, 2, 4, 8).

Por esta razn el Sistema Operativo debe controlar en todo momento el uso de la CPU (los procesadores disponibles), tratando que todos los procesos puedan ser ejecutados.
Existen diferentes algoritmos de planificacin, que se estudiarn ms adelante. Por ejemplo, se puede usar una estrategia FIFO, en la cual el proceso que primero solicite ejecucin recibe la CPU (el procesador) desde su inicio hasta que termina. Otra estrategia comn es asignar la CPU durante un determinado periodo de tiempo, y luego asignarla a otro proceso para crear una Ronda (Round-Robin). Eventualmente todos los procesos recibirn el tiempo de CPU necesario para que completen su ejecucin.

11

Estado de un proceso De acuerdo a la ejecucin de un proceso y de la estrategia del sistema operativo para planificarlo, se puede encontrar en varios estados: Ejecucin: El proceso tiene asignado tiempo de CPU para su ejecucin. En este estado el proceso puede hacer uso de los recursos del computador. En un sistema operativo multiproceso slo puede existir un proceso en ejecucin por cada CPU (ncleo) del procesador. Bloqueado: Cuando un proceso realiza una llamada al sistema, se bloquea. El caso tpico es cuando se solicita un recurso de entrada/salida, el proceso debe esperar hasta que el dispositivo de E/S informe que est listo. En la grfica, el proceso puede pasar de el estado en ejecucin al estado bloqueado cuando solicita un recurso de E/S (1). En un S.O. multiproceso, cuando un proceso se bloquea se le asigna tiempo de CPU a otro proceso. Listo: El proceso se encuentra listo para recibir tiempo de CPU, pero en el momento la CPU no se encuentra disponible. Este estado se puede dar por dos casos: El proceso se encuentra en ejecucin pero el S.O. decide que debe otorgarle tiempo de CPU a otro proceso (2), o el proceso estaba esperando para que finalizara una llamada al sistema (4).

12

Otro diagrama de estados de un proceso incluye un nuevo estado (suspendido). Este estado aparece cuando el sistema maneja memoria virtual, y debido a las necesidades de memoria del S.O, el segmento de memoria en el que se encuentra el proceso es llevado a memoria de intercambio (Swapping). Los procesos entonces pasan a un estado de Suspendido. Luego que se recuperan los segmentos de memoria que el S.O. ha llevado a memoria de intercambio, el proceso puede pasar nuevamente al estado de listo.

13

En este espacio se ilustra el uso de las llamadas al sistema fork() y excec()

14

En este espacio se ilustra el uso de las llamadas al sistema fork() y excec()

15

16

17

También podría gustarte