Está en la página 1de 15

Administracin de Procesos y El Procesador

2.1 Concepto de Procesos


Todos los programas, se ejecutan en forma de procesos. El proceso se puede definir como un programa de gestin por el sistema operativo. 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 ultima categora entran los descriptores de los segmentos de memoria asignados.. Una parte muy importante de esta informacin se encuentra normalmente como en el llamado bloque de control de procesos (BCP). 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 corre imagen. Contenido de los registros del modelo de programacin Contenido del BCP.

2.2 Estado y Transiciones del Proceso


El proceso es la unidad de procesamiento gestionada por el sistema operativo. 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 est 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.

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 est 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 est en memoria.

2.3 Procesos Ligeros (Hilos o Hebras)


Un proceso ligero, o thread, es un programa en 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 ms de un flujo de ejecucin 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 el mismo espacio de direcciones de memoria, que incluye el cdigo, los datos y las pilas de los diferentes procesos ligeros.

2.4 Concurrencia y Secuenciabilidad


Los procesos son concurrentes si existen simultneamente. Los procesos concurrentes pueden funcionar en forma totalmente independiente unos de otros, o pueden ser asncronos Existen tres formas modelos de computadora en los que se puede pueden ejecutar procesos concurrentes: Multiprogramacin con un nico procesador Multiprocesador Multicomputadora

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. A fijar en variables de datos, todo lo que sigue seria valido con cualquier otro recurso del sistema que solo pueda ser utilizado por un proceso a la vez. 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


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, tales como estructuras de datos o dispositivos de E/S, de procesos contendientes 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:

Seales Tuberas Semforos Mutex y variables condicionales Paso de mensajes

2.4.2.1 Mecanismo de Semforos Un semforo S es una variable entera a la que, dejando aparte la inicializacin, solo se accede mediante dos operaciones atmicas estndar: wait () y signal (). Originalmente, la operacin wait () se denominaba P (del termino holandes proberen, probar); mientras que signal( ) denominaba originalmente V (verhogen, incrementar). La definicin de wait () es la que sigue: wait (S) { while S <= 0 ;??? // no-op S--;

} La definicion de signal () es: signal(S) { S++; } 2.4.2.2 Mecanismos de Monitoreo La estructura del monitor asegura que solo un proceso este activo cada vez dentro del monitor. En consecuencia, el programador no tiene que codificar explcitamente esta restriccin de sincronizacin. Sin embargo, la estructura de monitor, como se ha definido hasta ahora, no es lo suficientemente potente como para modelar algunos esquemas de sincronizacin. Para ello, necesitamos definir mecanismos de sincronizacin adicionales. Estos mecanismos los proporciona la estructura condition. Un programador que necesite escribir un esquema de sincronizacin a medida puede definir una o ms variables de tipo condition: Condition x, y; Las nicas operaciones que se pueden invocar en una variable de condicin son wait () y signal () . La operacin x.wait(); indica que el proceso que invoca esta operacin queda suspendido hasta que otro proceso invo-que la operacin x.signal(); La operacin x.signal() hace que se reanude exactamente uno de los procesos suspendidos. Si no haba ningn proceso suspendido, entonces la operacin signal () no tiene efecto, es decir, el estado de x ser el mismo que si la operacin nunca se hubiera ejecutado Compare esta operacin con la operacin signal () asociada con los semforos, que siempre afectaba al estado del semforo.

2.4.3 Interbloqueo (DeadLock)

El estancamiento se puede definir formalmente como sigue: "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 nuca ninguna de los eventos que podran desbloquear a algunos de los otros miembros del conjunto y todos los procesos seguirn esperando indefinidamente. Definicin de Abrazo Mortal Un conjunto de procesos esta en un abrazo mortal cuando todos los procesos en ese conjunto estn esperando un evento que solo puede ser causado por otro proceso en el conjunto. Los eventos a los cuales nos estamos refiriendo son concernientes con la asignacin y liberacin de recursos principalmente. Un abrazo mortal es una condicin indeseable. En un abrazo mortal, los procesos nunca terminan de ejecutarse y los recursos del sistema esta amarrados, evitando que otros procesos puedan siquiera empezar. Condiciones Necesarias Existen cuatro condiciones que deben cumplirse para que haya estancamiento. Una situacin de abrazo mortal puede surgir si y solo si las siguientes cuatro condiciones ocurren simultneamente en un sistema: 1. Exclusin Mutua. Cada recurso se asigna por lo regular exactamente a un

proceso o bien est disponible. Al menos un recurso es mantenido en un modo nocompartible; esto es, solo un proceso a la vez puede usar el recurso. Si otro proceso solicita ese recurso, tiene que ser retardado hasta que el recurso haya sido liberado. 2. Retener y Esperar. Los procesos que regularmente contienen recursos otorgados antes pueden solicitar nuevos recursos. Debe existir un proceso que retenga al menos un recurso y este esperando para adquirir recursos adicionales que estn siendo retenidos por otros procesos. 3. No existe el derecho de desasignar (No preemtion). Los recursos previamente otorgados no pueden extraerse por la fuerza de un proceso. Deben ser liberados explcitamente por el proceso que los contiene. Los recursos no pueden ser desasignados (preempted); esto es, un recurso solo puede ser liberado voluntariamente por el proceso que lo retiene, despus de que el proceso ha terminado su tarea. 4. Espera Circular . Debe haber una cadena de dos o ms procesos, cada uno de los cuales este esperando u recurso contenido en el siguiente miembro de la

cadena. Debe existir un conjunto {p0, p1,...,pn} de procesos en espera tal que p0 est esperando por un recurso que est siendo retenido por p1, p1 est esperando por un recurso que est siendo retenido por p2, ..., pn-1 esta esperando por un recurso que est siendo retenido por pn y pn est esperando por un recurso que est siendo retenido por p0. Mtodos para manejar los abrazos mortales Existen dos mtodos para manejar el problema de los abrazos mortales. Podemos usar algn protocolo para asegurar que el sistema nunca entrara en un estado de abrazo mortal. Alternativamente, podemos permitir que el sistema entre en un estado de abrazo mortal y despus recuperarnos. El recuperarse de un abrazo mortal puede ser muy difcil y muy caro. Por ello, primeramente consideraremos los mtodos para asegurar que no ocurran los abrazos mortales. Comnmente, existen dos mtodos: El de PREVENCION de abrazos mortales (Deadlock Prevention) y el de EVASION de abrazos mortales (Deadlock Avoidance)

2.5 Niveles, Objetivos y Criterios de Planificacin

En los sistemas de multiusuario de tiempo compartido, que se combinaban con un fondo de trabajos procesados en lote, el algoritmo era ms complejo. En forma invariable, existan varios usuarios en espera de servicio y podan existir tambin otros trabajos para ser procesados en lote. Incluso en los sistemas puros de tiempo compartido existen con frecuencia los trabajos colaterales. Cuando mas de un proceso es ejecutable, el Sistema Operativo debe decidir cul de ellos deber ejecutarse primero. Hay que tener una planificacin de los procesos que quieren ejecutarse en el sistema. La asignacin de procesadores fsicos a los procesos hace posible que estos realicen su trabajo, y tal asignacin es un problema complejo manejado por el Sistema Operativo. Concepto de Planificacin 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. Objetivo de la Planificacin Es optimizar el rendimiento del sistema y proporcionar un buen servicio a todos los procesos que se encuentren en el.

La planificacin trata de cubrir los siguientes objetivos:


Justicia. La planificacin debe ser lo ms justa posible con todos los procesos, sin favorecer a unos y perjudicar a otros. Mxima capacidad de ejecucin. Debe dar un servicio eficiente para que todos los trabajos se realicen lo ms rpidamente posible. Esto se puede lograr disminuyendo el nmero de cambios de proceso.

Mximo nmero de usuarios interactivos. En los sistemas de tiempo compartido se tratara de que puedan estar trabajando el mayor nmero de usuarios al mismo tiempo.

Predictibilidad. La planificacin debe realizarse de tal forma que en todo momento pueda saberse como ser su ejecucin. Minimizacin de la sobrecarga. La computadora debe tener poca sobrecarga ya que esta afecta directamente al rendimiento final del sistema: a menor sobrecarga mayor velocidad de proceso.

Equilibrio en el uso de recursos. Para obtener un mayor rendimiento en el uso de los recursos y que estos estn ocupados equitativamente el mayor tiempo posible. Seguridad de las prioridades. Si un proceso tiene mayor prioridad que otro, este debe ejecutarse mas rpidamente. Evitar la postergacin indefinida. Esto se logra aumentando la prioridad de un proceso mientras espere por un recurso. La prioridad llegara a ser tan alta que al proceso le ser asignado el recurso que pidi.

Criterios de planificacin Para realizar los objetivos de la planificacin, un mecanismo de planificacin debe considerar lo siguiente:

La limitacin de un proceso a las operaciones de Entrada / Salida: cuando un proceso consigue la CPU, ?la utiliza solo brevemente antes de generar una peticin de Entrada / Salida?

La limitacin de un proceso a la CPU: cuando un proceso obtiene la CPU, ?tiende a usarla hasta que expira su tiempo? Si un proceso es por lote (batch) o interactivo: los usuarios interactivos deben recibir inmediato servicio para garantizar buenos tiempos de respuesta. Que urgencia tiene una respuesta rpida?: por ejemplo, un proceso de tiempo real de un sistema de control que supervise una refinera de combustible requiere una respuesta rpida, mas rpida que la respuesta requerida por un proceso en lotes (batch) que deber entregarse al da siguiente.

La prioridad de un proceso: a mayor prioridad mejor tratamiento. Frecuentemente un proceso genera fallos (carencias) de pagina:
o

Probablemente los procesos que generan pocos fallos de pagina hayan acumulado sus conjuntos de trabajo en el almacenamiento principal.

o o o

Los procesos que experimentan gran cantidad de fallos de pagina aun no han establecido sus conjuntos de trabajo. Un criterio indica favorecer a los procesos que han establecido sus conjuntos de trabajo. Otro criterio indica favorecer a los procesos con una tasa alta de fallos de pagina ya que rapidamente generaran una peticion de Entrada / Salida.

Frecuentemente un proceso ha sido apropiado por otro de mas alta prioridad, lo cual significa lo siguiente:
o o

A menudo los procesos apropiados deben recibir un tratamiento menos favorable. Cada vez que el Sistema Operativo asume la sobrecarga para hacer ejecutar este proceso, el corto tiempo de ejecucin antes de la apropiacin no justifica la sobrecarga de hacer ejecutar al proceso en primer lugar.

Cuanto tiempo de ejecucin real ha recibido el proceso?: un criterio considera que debe ser favorecido un proceso que ha recibido muy poco tiempo de CPU.

Cuanto tiempo adicional va a necesitar el proceso para terminar?: los tiempos promedio de espera pueden reducirse priorizando los procesos que requieren de un tiempo de ejecucin mnimo para su terminacin, pero pocas veces es posible conocer la cantidad de tiempo adicional que cada proceso necesita para terminar

2.6 Tcnicas de Administracin de Planificacin 2.6.1 FIFO

Algoritmo de planificacin de FIFO Tal vez la disciplina mas simple de planificacin sea la de primeras entradas? primeras salidas (PEPS). 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. FIFO ofrece variaciones relativamente pequeas en los tiempos de respuesta y por lo tanto es ms predecible que los otros esquemas. El esquema FIFO rara vez se usa como esquema principal en los sistemas actuales, pero a menudo est incorporado en otros sistemas. Cada proceso se ejecuta hasta que termina, o hasta que hace una llamada bloqueante (de E/S). Se trata de una poltica muy simple y sencilla de llevar a la prctica, pero muy pobre en cuanto a su comportamiento.

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 numero de procesos y la duracin promedio que tenga.

2.6.2 SJR
Mtodo de planificacin de la CPU, es el algoritmo de planificacin con seleccin del trabajo ms corto (SJF, shortest job-first). Este algoritmo asocia con cada proceso la duracin de la siguiente rfaga de CPU del proceso. Cuando la CPU est disponible, se asigna al proceso que tiene la siguiente rfaga de CPU ms corta. Si las siguientes rfagas de CPU de dos procesos son iguales, se usa la planificacion FCFS para romper el empate. Observe que un trmino ms apropiado para este mtodo de planificacin seria 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. El algoritmo de planificacin SJF es probablemente optimo, en el sentido de que proporciona el tiempo medio de espera mnimo para un conjunto de procesos dado. Anteponer un proceso corto a uno largo disminuye el tiempo de espera del proceso corto en mayor medida de lo que incrementa el tiempo de espera del proceso largo. Aunque el algoritmo SJF es optimo, no se puede implementar en el nivel de la planificacin de la CPU a corto plazo, ya que no hay forma de conocer la duracin de la siguiente rfaga de CPU. Un mtodo consiste en intentar aproximar la planificacin SJF: podemos no conocer la duracin de la siguiente rfaga de CPU, pero podemos predecir su valor, por el procedimiento de confiar en que la siguiente rfaga de CPU ser similar en duracin a las anteriores.

2.6.3 Planificacin de Asignacin en Rueda (RR-Round Robin)


Es un sistema apropiativo. Cada proceso recibe una fraccin de tiempo de procesamiento o cuanto para su ejecucin, de manera que cuando se est 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. 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..

Caractersticas de RR
1. Baja sobrecarga si el cambio entre un proceso y otro es eficiente y los procesos siempre estn en la memoria principal 2. El tamao optimo del quantum depende de: El tipo de sistema. Las cargas que vaya a soportar el sistema. El numero de procesos en el sistema y su tipo. 3. Es la poltica mas usada para tiempo compartido. 4. Ofrece un servicio igual para todos los procesos. 5. Es una poltica apropiativa. 6. Mantiene ms equilibradas las colas de procesos listos y bloqueados.

2.6.4 Queues Multinivease


de algoritmos de planificacin 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 planificacion mediante colas multinivel divide la cola de procesos prepados en varias colas distintas (Figura 5.6). Los procesos se asignan permanentemente a una cola,

generalmente en funcion de alguna propiedad del proceso, como por ejemplo el tamano memoria, la prioridad del proceso o el tipo de proceso. Cada cola tiene su propio algoritmo de planificacion. Por ejemplo, pueden emplearse colas distintas para los procesos de primer plano y de segundo plano. La cola de primer plano puede planificarse mediante un algoritmo por turnos, mientras que para la cola de segundo plano puede emplearse un algoritmo FCFS.

2.6.5 MultiLevel FreedBack Queues

Normalmente, 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. Por el contrario, el algoritmo de planificacin mediante colas multinivel realimentadas permite mover un

proceso 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 mas baja. Este esquema deja los procesos limitados por E/S y los procesos interactivos en las colas de prioridad mas alta. Ademas, 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. La definicin del planificador mediante colas multinivel realimentadas le convierte en el algoritmo de

planificacin de la CPU mas general. Puede configurarse este algoritmo para adaptarlo a cualquier sistema especfico que se quiera disear. Lamentablemente, tambin es el algoritmo mas complejo, puesto que definir el mejor planificador requiere disponer de algn mecanismo para seleccionar los valores de todos los parmetros