You are on page 1of 11

ADMINISTRACIN DE PROCESOS Y DEL PROCESO

2.1 concepto de proceso

Todos los programas cuya ejecucin solicitan los usuarios, se ejecutan en forma de procesos, de ah la importancia para le informtico de conocerlos en detalle. El proceso se puede definir como un programa de gestin por el sistema operativo. Durante su eleccin el proceso va modificando en ejecucin y, de una forma un poco mas precisa, como la unidad de procesamiento los registro del modelo de programacin de la computadora, de acuerdo a las intrusiones de maquina involucradas. El sistema operativo mantiene por cada proceso una serie de estructuras de informacin que permiten identificar las caractersticas de este, as como los recursos que tiene asignados. En esta ltima categora entran los descriptores de los segmentos de memoria asignados, los descriptores de los archivos abiertos, los descriptores de los puertos de comunicaciones. Una parte importante se encuentra normalmente como en el llamado bloque de control de procesos (BCP). El sistema operativo mantiene una tabla de procesos con todos los BCP de los procesos. Por razones de eficiencia, la tabla de procesos se construye normalmente como una estructura esttica, que tiene un determinado nmero de BCP, todos ellos del mismo tamao. La informacin que compone un proceso es la siguiente: Contenido de los segmentos de memoria en los que residen el cdigo y los datos del proceso. A esta informacin se le denomina imagen de memoria o core image. Contenido de los registros del modelo de programacin Contenido del BCP.

2.2 Estado y transacciones del proceso

El proceso es la unidad de procesamiento gestionada por el sistema operativo. El proceso tiene asociado una serie de elementos de informacin. Estos elementos se organizan en tres grupos: estado del procesador, imagen de memoria y tablas del sistema operativo.

Estado del procesador El estado del procesador esta formado por el contenido de todos sus registros, que se enumeran seguidamente: -

Registros generales. De existir registros especficos de coma flotante tambin se incluyen aqu. Contador de programa.
Puntero de pila. Registro o registros de estado. Registros especiales. Como puede ser el RIED (registro identificador de espacio de direccionamiento).

El estado del procesador de un proceso reside en los registros del procesador, cuando el proceso esta en ejecucin, o en el bloque de control de proceso (BCP), cuando el proceso no esta en ejecucin.
Cuando el proceso esta ejecutando, el estado del procesador varia de acuerdo al flujo de instrucciones maquina ejecutado. En este caso, la copia del estado del procesador que reside en el BCP no esta actualizada. Tngase en cuenta que los registros de la maquina se utilizan para no tener que acceder a la informacin de memoria, dado que es mucho mas lenta. Por tanto, no tiene sentido plantear que, en cada modificacin de un registro, se actualice su valor en el BCP, puesto que esta en memoria. Sin embargo, cuando se detiene la ejecucin de un proceso, como consecuencia de la ejecucin de una interrupcin, es muy importante que el sistema operativo actualice la copia del estado del procesador en su BCP. En trminos concretos, la rutina del sistema operativo que trata las Interrupciones lo primero que ha de hacer es salvar el estado del procesador en el BCP del proceso interrumpido.

2.3 Procesos Ligeros (Hilos o Hebras)

Un proceso ligero, o thread, es un programa en ejecucin (flujo de ejecucin) que comparte la imagen de memoria y otras informaciones con otros procesos ligeros, un proceso puede contener un solo flujo de ejecucin, como ocurre en los procesos clsicos, o mas de un flujo de ejecucin (procesos ligeros). Desde el punto de vista de la programacin, un proceso ligero se define como una funcin cuya ejecucin se puede lanzar en paralelo con otras. El hilo de ejecucin primario, o proceso ligero primario, corresponde a la funcin main.

Cada proceso ligero tiene informaciones que le son propias y que no comparte con otros procesos ligeros. Las informaciones propias se refieren fundamentalmente al contexto de ejecucin, pudindose destacar las siguientes:

Contador de programa. Pila. Registros. Estado del proceso ligero (ejecutando, listo o bloqueado).

Todos los procesos ligeros de un mismo proceso comparten la informacin del mismo. En concreto, comparten:

Espacio de memoria. Variables globales. Archivos abiertos. Procesos hijos. Temporizadores. Seales y semforos. Contabilidad.

Es importante destacar que todos los procesos ligeros de un mismo proceso comparten el mismo espacio de direcciones de memoria, que incluye el cdigo, los datos y las pilas de los diferentes procesos ligeros. Esto hace que no exista proteccin de memoria entre los procesos ligeros de un mismo proceso, algo que si ocurre con los procesos convencionales.

2.4 Concurrencia y Secuencialidad

Los procesos son concurrentes si existen simultneamente. Los procesos concurrentes pueden funcionar en forma totalmente independiente unos de otros, o pueden ser asncronos, lo cual significa que en ocasiones requieren cierta sincronizacin o cooperacin.

Cuando dos o mas procesos llegan al mismo tiempo a ejecutarse, se dice que se ha presentado una concurrencia de procesos. Es importante mencionar que para que dos o ms procesos sean concurrentes, es necesario que tengan alguna relacin entre ellos como puede ser la cooperacin para un determinado trabajo o el uso de informacin o recursos compartidos. Existen tres formas modelos de computadora en los que se puede pueden ejecutar procesos concurrentes: Multiprogramacin con un nico procesador. En este modelo todos los procesos concurrentes ejecutan sobre un nico procesador. El sistema operativo se encarga de ir repartiendo el tiempo del procesador entre los distintos procesos, intercalando la ejecucin de los mismos para dar as una apariencia de ejecucin simultanea.

Multiprocesador.

Un multiprocesador es una maquina formada por un conjunto de procesadores que comparten memoria principal. En este tipo de arquitecturas, los procesos concurrentes no solo pueden intercalar su ejecucin sino tambin superponerla. En este caso si existe una verdadera ejecucin simultanea de procesos, al coincidir las fases de procesamiento de distintos procesos. En un instante dado se pueden ejecutar de forma simultanea tantos procesos como procesadores haya. Multicomputadora. Una multicomputadora es una maquina de memoria distribuida, en contraposicin con el multiprocesador que es de memoria compartida. Esta formada por una serie de computadoras completas con su UCP, memoria principal y, en su caso, periferia. Cada uno de estos procesadores completo se denomina nodo. Los nodos se encuentran conectados y se comunican entre si a travs de una red de interconexin, empleando el mtodo de paso de mensajes. En este tipo de arquitecturas tambin es posible la ejecucin simultnea de los procesos sobre los distintos procesadores.

En general la concurrencia ser aparente siempre que el nmero de procesos sea mayor que el de procesadores disponibles, es decir, cuando haya ms de un proceso por procesador. La concurrencia ser real cuando haya un proceso por procesador

2.4.1 Exclusin Mutua de Seccin Critica

El mtodo mas sencillo de comunicacin entre los procesos de un programa concurrente es el uso comn de unas variables de datos. Esta forma tan sencilla de comunicacin puede llevar, no obstante, a errores en el programa ya que el acceso concurrente puede hacer que la accin de un proceso interfiera en las acciones de otro de una forma no adecuada. Regiones crticas Es posible clasificar las interacciones de los procesos en funcin del nivel de conocimiento que cada proceso tiene de la existencia de los dems: Los procesos no tienen conocimiento de los dems: Estos son procesos independientes que no estn pensados para operar juntos. Los procesos tienen un conocimiento indirecto de los otros: Los procesos no conocen necesariamente a los otros, pero comparten el acceso a algunos objetos.

Los procesos tienen un conocimiento directo de los otros: Los procesos son capaces de comunicarse con los dems y estn diseados para trabajar conjuntamente en alguna actividad. Competencia entre procesos por los recursos. Los procesos concurrentes entran en conflicto cuando compiten por el uso del mismo recurso, es decir, quieren acceder a un recurso al mismo tiempo. Y la ejecucin de un proceso puede influir en el comportamiento de los procesos que compiten y el sistema operativo le asignar el recurso a uno de ellos y el otro tendr que esperar. Por lo que el proceso que quede esperando, se retrasar, se bloqueara y en el peor de los casos nunca se terminar con xito. Exclusin mutua La exclusin mutua la podramos definir como una operacin de control que permite la coordinacin de procesos concurrentes, y que tiene la capacidad de prohibir a los dems procesos realizar una accin cuando un proceso haya obtenido el permiso. Para conseguir dicha exclusin se deben implementar protocolos software que impidan o bloqueen (lock) el acceso a una seccin critica mientras esta siendo utilizada por un proceso. Requisitos para la exclusin mutua 1. 2. 3. 4. 5. 6. Solo un proceso, de todos los que poseen secciones crticas por el mismo recurso compartido, debe tener permiso para entrar en ella en un momento dado. Un proceso que se interrumpe en una seccin no crtica debe hacerlo sin interferir con los otros procesos. Un proceso no debe poder solicitar acceso a una seccin crtica para despus ser demorado indefinidamente, no puede permitirse el interbloqueo o la inanicin. Si ningn proceso esta en su seccin crtica, cualquier proceso que solicite entrar en la suya debe poder hacerlo sin demora. No se debe suponer sobre la velocidad relativa de los procesos o el nmero de procesadores. Un proceso permanece en su seccin crtica por un tiempo finito.

2.4.2 Sincronizacin de Procesos en S.C.

La sincronizacin es la transmisin y recepcin de seales que tiene por objeto llevar a cabo el trabajo de un grupo de procesos cooperativos. Es la coordinacin y cooperacin de un conjunto de procesos para asegurar la comparacin de recursos de cmputo. La sincronizacin entre procesos es necesaria para prevenir y/o corregir errores de sincronizacin debidos al acceso concurrente a recursos compartidos. Para que los procesos puedan sincronizarse es necesario disponer de servicios que permitan bloquear o suspender bajo determinadas circunstancias la ejecucin de un proceso. Los principales mecanismos de sincronizacin que ofrecen los sistemas operativos son:

2.4.2.1 Mecanismo de Semforos

Seales Tuberas Semforos Mutex y variables condicionales Paso de mensajes

Dijkstra, propuso dos operaciones, DOWN y UP (generalizaciones de SLEEP y WAKEUP, respectivamente). La operacin Down verifica si el valor de un semforo es mayor que 0. En este caso, decrementa el valor (es decir, utiliza un despertar almacenado) y contina. Si el valor es cero, el proceso se va a dormir. La verificacin y modificacin del valor, as como la posibilidad de irse a dormir se realiza en conjunto, como una sola e indivisible accin atmica. Se garantiza que al iniciar una operacin con un semforo, ningn otro proceso puede tener acceso a semforo hasta que la operacin termine o se bloquee. Esta atomicidad es absolutamente esencial para resolver los problemas de sincronizacin y evitar condiciones de competencia. La operacin UP incrementa el valor del semforo correspondiente. Si uno o ms procesos dorman en ese semforo y no podan completar una operacin Down anterior, el sistema elige alguno de ellos (por ejemplo, en forma aleatoria) y se le permite terminar Down Un semforo es una variable protegida, cuyo valor slo puede ser ledo y alterado mediante las operaciones P y V, y una operacin de asignacin de valores iniciales y (Inicia semforo).

2.4.2.2 Mecanismos de Monitoreo

Aunque los semforos proporcionan un mecanismo adecuado y efectivo para el proceso de sincronizacin, un uso incorrecto de los mismos puede dar lugar a errores de temporizacin que son difciles de detectar, dado que estos errores solo ocurren si tienen lugar algunas secuencias de ejecucin concretas y estas secuencias no siempre se producen.

2.4.3 Interbloqueo (DeadLock).

Un conjunto de procesos se estancan si cada proceso del conjunto esta esperando un evento que solo otro proceso del conjunto puede provocar. Puesto que todos los procesos estn en espera, ninguno de ellos podr ocasionar nunca ninguno de los eventos que podra desbloquear a algunos de los otros miembros del conjunto y todos los procesos seguirn esperando indefinidamente. Prevencin. La estrategia de prevencin del interbloqueo consiste, a grandes rasgos, en disear un sistema de manera que est excluida, a priori, la posibilidad de interbloqueo. Los mtodos para prevenir el interbloqueo son de dos tipos. Los mtodos indirectos consisten en impedir la aparicin de alguna de las tres condiciones necesarias, antes mencionadas (condiciones 1 a 3). Los mtodos directos consisten en evitar la aparicin del crculo vicioso de espera (condicin 4). Se examinarn a continuacin las tcnicas relacionadas con cada una de las cuatro condiciones. Deteccin. Las estrategias de deteccin de interbloqueos no limitan el acceso a los recursos ni restringen las acciones de los procesos como ocurra con las estrategias de prevencin de interbloqueos, mediante las estrategias de deteccin de interbloqueos se concedern los recursos qu los procesos necesitan siempre que sea posible.

2.5 Niveles, Objetivos y Criterios de Planificacin.

La planificacin hace referencia a un conjunto de polticas y mecanismos incorporados al sistema operativo que gobiernan el orden en que se ejecutan los trabajos que deben ser cumplimentados por el sistema informtico.

Objetivo de la Planificacin El objetivo principal de la planificacin es optimizar el rendimiento del sistema y proporcionar un buen servicio a todos los procesos que se encuentren en el. En general, la planificacin trata de cubrir los siguientes objetivos:

Justicia. Mxima capacidad de ejecucin. Mximo numero de usuarios interactivos. Producibilidad. Minimizacin de la sobrecarga. Equilibrio en el uso de recursos. Seguridad de las prioridades. Evitar la postergacin indefinida.

2.6 Tcnicas de Administracin de Planificacin


FIFO Los procesos se despachan de acuerdo con su tiempo de llegada a la cola de procesos listos. Cuando un proceso tiene la CPU, se ejecuta hasta terminar. Es junto en el sentido formal, pero algo injusta en cuanto a que los trabajos largos hacen esperar a los cortos y los trabajos sin importancia hacen esperar a los importantes. FIFO ofrece variaciones relativamente pequeas en los tiempos de respuesta y por lo tanto es ms predecible que los otros esquemas. Este es un algoritmo que no usa apropiacin, y que consiste en atender a los procesos por estricto orden de llegada a la lista de procesos listos. Cada proceso se ejecuta hasta que termina, o hasta que hace una llamada bloqueante (de E/S). Las caractersticas principales de este algoritmo son las siguientes: No es apropiativa. Es justa, aunque los procesos largos hacen esperar mucho a los cortos. Es una poltica predecible. El tiempo promedio de servicio es muy variable ya que esta en funcin del nmero de procesos y la duracin promedio que tenga.

SJF El algoritmo de planificacin con seleccin del trabajo mas corto (SJF, shortest jobfirst).Este algoritmo asocia con cada proceso la duracin de la siguiente rfaga de CPU del proceso. Cuando la CPU esta disponible, se asigna al proceso que tiene la siguiente rfaga de CPU mas corta. Si las siguientes rfagas de CPU de dos procesos son iguales, se usa la planificacin FCFS para romper el empate. El de algoritmo de la siguiente rfaga de CPU ms corta, ya que la planificacin depende de la duracin de la siguiente rfaga de CPU de un proceso, en lugar de depender de su duracin total.

RR Es un sistema apropiativo. Cada proceso recibe una fraccin de tiempo de procesamiento o quanto para su ejecucin, de manera que cuando se esta ejecutando y excede el tiempo que se le ha concedido, se genera una interrupcin de reloj, mediante la cual la ejecucin del proceso se detiene y se coloca al proceso al final de la cola de procesos listos para su posterior ejecucin, seleccionndose a continuacin un nuevo proceso de la cola para su ejecucin. Si un proceso finaliza su ejecucin antes de que termine el tiempo que se le ha asignado, este cede el control, seleccionndose un nuevo proceso de la cola para su ejecucin. Con el Round Robind, cuando un proceso inicia una operacin de E/S, este es penalizado respecto de los procesos que no realizan E/S.
Los procesos se despachan en FIFO y disponen de una cantidad limitada de tiempo de cpu,

llamada divisin de tiempo o cuanto. Si un proceso no termina antes de expirar su tiempo de CPU ocurren las siguientes acciones: 1. La CPU es apropiada. 2. La CPU es otorgada al siguiente proceso en espera. 3. El proceso apropiado es situado al final de la lista de listos.

Queves multi-level Es la que se ha desarrollado para aquellas situaciones en las que los procesos pueden clasificarse fcilmente en grupos diferentes. Por ejemplo, una clasificacin habitual consiste en diferenciar entre procesos de primer plano (interactivos) y procesos de segundo plano (por lotes).Estos dos tipos de procesos tienen requisitos diferentes de tiempo de respuesta y, por tanto, pueden tener distintas necesidades de planificacin. Adems, los procesos de primer plano pueden tener prioridad (definida externamente) sobre los procesos de segundo plano. Un algoritmo de planificacin mediante colas

multinivel divide la cola de procesos prepados en varias colas distintas. Los procesos se asignan permanentemente a una cola, generalmente en funcin de alguna propiedad del proceso, como por ejemplo el tamao memoria, la prioridad del proceso o el tipo de proceso. Cada cola tiene su propio algoritmo de planificacin. Multi-level feedback queves Cuando se usa el algoritmo de planificacin mediante colas multinivel, los procesos se asignan de forma permanente a una cola cuando entran en el sistema. Por ejemplo, si hay colas diferentes para los procesos de primer y segundo plano, los procesos no se mueven de una cola a otra, dado que no pueden cambiar su naturaleza de proceso de primer o segundo plano. Esta

Configuracin presenta la ventaja de una baja carga de trabajo de planificacin, pero resulta poco flexible. El algoritmo de planificacin mediante colas multinivel realimentadas permite mover un proces de una cola a otra. La idea es separar los procesos en funcin de las caractersticas de sus rfagas de CPU. Si un proceso utiliza demasiado tiempo de CPU, se pasa a una a de prioridad ms baja. Este esquema deja los procesos limitados por E/S y los procesos interactivos en las colas de prioridad ms alta. Adems, un proceso que este esperando demasiado tiempo en una cola de baja prioridad puede pasarse a una cola de prioridad mas alta. Este mecanismo de envejecimiento evita el bloqueo indefinido.

You might also like