Você está na página 1de 13

2011

I.T.S.A.O. Carlos Antonio Rodrguez Santiago

[UNIDAD II ADMINISTRACION DE PROCESOS (SEGUNDA PARTE)]

Prof. L.I. Luis Duran Vazquez

Contiene los temas: 2.5 PROCESOS E HILOS 2.6 CONCURRENCIA EXCLUSION MUTUA Y SINCRONIZACION 2.7 PRINCIPIOS GENERALES DE LA CONCURRENCIA 2.8 EXCLUCION MUTUA: SOLUCIN POR HARDWARE Y SOFTW... 2.9 SEMAFOROS 2.10 MONITORES SISTEMAS OPERATIVOS 2.11 PASO DE MENSAJES SISTEMAS OPERATIVOS 2.12 CONCURRENCIA E INTERBLOQUEO. 2.13 PRINCIPIOS DEL INTERBLOQUEO 2.14 ACCIONES A REALIZAR ANTE UNINTERBLOQUEO. PREVENCIN, DETECCIN,PREDICCIN Y EVITAR.

Unidad II Administracion de procesos (segunda parte)

Temas que se incluyen:


2.5 PROCESOS E HILOS 2.6 CONCURRENCIA EXCLUSION MUTUA Y SINCRONIZACION 2.7 PRINCIPIOS GENERALES DE LA CONCURRENCIA 2.8 EXCLUCION MUTUA: SOLUCIN POR HARDWARE Y SOFTWARE. 2.9 SEMAFOROS 2.10 MONITORES SISTEMAS OPERATIVOS 2.11 PASO DE MENSAJES SISTEMAS OPERATIVOS 2.12 CONCURRENCIA E INTERBLOQUEO. 2.13 PRINCIPIOS DEL INTERBLOQUEO 2.14 ACCIONES A REALIZAR ANTE UNINTERBLOQUEO. PREVENCIN, DETECCIN,PREDICCIN Y EVITAR

Sistemas Operativos

Pgina 2

Unidad II Administracion de procesos (segunda parte)


2.5 PROCESOS E HILOS
Unidad mnima de asignacin: tarea. Unidad mnima de expedicin: hilo. Dos hilos de una misma tarea (denominados hilos pares) comparten el segmento de cdigo, el segmento de datos y un espacio de pila, es decir, los recursos asignados a la tarea. Podemos captar la funcionalidad de los hilos si comparamos el control de mltiples hilos con el control de mltiples procesos. En el caso de los procesos, cada uno opera independientemente de los otros; cada proceso tiene su propio contador de programa, registro de pila, y espacio de direcciones. Este tipo de organizacin es muy til cuando los trabajos que los procesos efectan no tienen ninguna relacin entre si. Cuando un hilo est en ejecucin, posee el acceso a todos los recursos que tiene asignados la tarea. Un hilo tendr lo siguiente: Estado. Contexto del procesador. Punto en el que estamos ejecutando, la instruccin concretamente en la que nos hallamos. Pila de ejecucin donde se ir metiendo y sacando instrucciones. Espacio de almacenamiento esttico donde almacenar las variables. Acceso a los recursos de la tarea, que son compartidos por todos los hilos de la tarea. * Ventajas del uso de hilos. Se tarda menos tiempo en crear un hilo de una tarea existente que en crear un nuevo proceso. Se tarda menos tiempo en terminar un hilo que en terminar un proceso. Se tarda menos tiempo en cambiar entre dos hilos de una misma tarea que en cambiar entre dos procesos Es mas sencillo la comunicacin entre hilos de una misma tarea que entre diferentes procesos. Cuando se cambia de un proceso a otro, tiene que intervenir el ncleo del sistema operativo para que haya proteccin.

Sistemas Operativos

Pgina 3

Unidad II Administracion de procesos (segunda parte)


2.6 CONCURRENCIA SINCRONIZACION EXCLUSION MUTUA Y

La concurrencia es fundamental en todas estas reas y para el diseo sistemas operativos. La concurrencia comprende un gran nmero de cuestiones de diseo, incluida la comunicacin entre procesos, comparticin y competencia por los recursos, sincronizacin de la ejecucin de varios procesos y asignacin del tiempo de procesador a los procesos. Se ver que estas cuestiones no solo surgen en entornos de multiprocesadores y proceso distribuido, sino incluso en sistemas multiprogramados con un solo procesador. La concurrencia puede presentarse en tres contextos diferentes: Mltiples aplicaciones: la multiprogramacin se cre para permitir que el tiempo de procesador de la mquina fuese compartido dinmicamente entre varias aplicaciones activas. Aplicaciones estructuradas: como ampliacin de los principios del diseo modular y la programacin estructurada, algunas aplicaciones pueden implementarse eficazmente como un conjunto de procesos concurrentes. Estructura del sistema operativo: las mismas ventajas de estructuracin son aplicables a los programadores de sistemas y se ha comprobado que algunos sistemas operativos estn implementados como un conjunto de procesos o hilos.

2.7 PRINCIPIOS GENERALES DE LA CONCURRENCIA


En un sistema multiprogramado con un nico procesador, los procesos se intercalan en el tiempo aparentando una ejecucin simultnea. Aunque no se logra un procesamiento paralelo y produce una sobrecarga en los intercambios de procesos, la ejecucin intercalada produce beneficios en la eficiencia del procesamiento y en la estructuracin de los programas. LABORES DEL SISTEMA OPERATIVO Elementos de gestin y diseo que surgen por causa de la concurrencia: 1) El sistema operativo debe seguir a los distintos procesos activos 2) El sistema operativo debe asignar y retirar los distintos recursos a cada proceso activo, entre estos se incluyen: _Tiempo de procesador _Memoria _Archivos _Dispositivos de E/S 3) El sistema operativo debe proteger los datos y los recursos fsicos de cada proceso contra injerencias no intencionadas de otros procesos. 4) Los resultados de un proceso deben ser independientes de la velocidad a la que se realiza la ejecucin de otros procesos concurrentes. Sistemas Operativos Pgina 4

Unidad II Administracion de procesos (segunda parte)


INTERACCIN ENTRE PROCESOS Se puede clasificar los en que interactan los procesos en funcin del nivel de conocimiento que cada proceso tiene de la existencia de los dems. Existen tres niveles de conocimiento: 1) Los procesos no tienen conocimiento de los dems: son procesos independientes que no operan juntos. 2) Los procesos tienen un conocimiento indirecto de los otros: los procesos no conocen a los otros por sus identificadores de proceso, pero muestran cooperacin el objeto comn. 3) Los procesos tienen conocimiento directo de los otros: los procesos se comunican por el identificador de proceso y pueden trabajar conjuntamente.

Competencia entre procesos por los recursos


Los procesos concurrentes entran en conflicto cuando compiten por el uso del mismo recurso; dos o ms procesos necesitan acceder a un recurso durante su ejecucin .Cada proceso debe dejar tal y como est el estado del recurso que utilice. La ejecucin de un proceso puede influir en el comportamiento de los procesos que compiten. Por Ej. Si dos procesos desean acceder a un recurso, el sistema operativo le asignar el recurso a uno y el otro tendr que esperar. Cuando hay procesos en competencia, se deben solucionar tres problemas de control: la necesidad de exclusin mutua. Suponiendo que dos procesos quieren acceder a un recurso no compartible. A estos recursos se les llama "recursos crticos" y la parte del programa que los utiliza es la "seccin crtica del programa. Es importante que slo un programa pueda acceder a su seccin crtica en un momento dado. Hacer que se cumpla la exclusin mutua provoca un interbloqueo. Otro problema es la inanicin si tres procesos necesitan acceder a un recurso, P1 posee al recurso, luego lo abandona y le concede el acceso al siguiente proceso P2, P1 solicita acceso de nuevo y el sistema operativo concede el acceso a P1 YP2 alternativamente, se puede negar indefinidamente a P3 el acceso al recurso. El control de competencia involucra al sistema operativo, porque es el que asigna los recursos.

Cooperacin entre procesos por compartimiento

Comprende los procesos que interactan con otros sin tener conocimiento explcito de ellos. Ej. : Varios procesos pueden tener acceso a variables compartidas. Los procesos deben cooperar para asegurar que los datos que se comparten se gestionan correctamente. Los mecanismos de control deben garantizar la integridad de los datos compartidos.

Cooperacin entre procesos por comunicacin

Los distintos procesos participan en una labor comn que une a todos los procesos.La comunicacin sincroniza o coordina las distintas actividades, est formada por mensajes de algn tipo. Las primitivas para enviar y recibir mensajes, vienen dadas como parte del lenguaje de programacin o por el ncleo del sistema operativo

Sistemas Operativos

Pgina 5

Unidad II Administracion de procesos (segunda parte)


REQUISITOS PARA LA EXCLUSIN MUTUA 1. 2. 3. 4. 5. 6. Slo 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 est 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. Una manera de satisfacer los requisitos de exclusin mutua es dejar la responsabilidad a los procesos que deseen ejecutar concurrentemente. Tanto si son programas del sistema como de aplicacin, los procesos deben coordinarse unos con otros para cumplir la exclusin mutua, sin ayuda del lenguaje de programacin o del sistema operativo. Estos mtodos se conocen como soluciones por software.

2.8 EXCLUCION MUTUA: SOLUCIN POR HARDWARE Y SOFTWARE


EXCLUSIN MUTUA: SOLUCIONES POR SOFTWARE Pueden implementarse soluciones de software para los procesos concurrentes que se ejecuten en mquinas monoprocesador o multiprocesador con memoria principal compartida. ALGORITMO DE DEKKER La solucin se desarrolla por etapas. Este mtodo ilustra la mayora de los errores habituales que se producen en la construccin de programas concurrentes. ALGORITMO DE PETERSON El algoritmo de Deker resuelve el problema de la exclusin mutua pero mediante un programa complejo, difcil de seguir y cuya correccin es difcil de demostrar. Peterson ha desarrollado una solucin simple y elegante. Como antes, la variable global seal indica la posicin de cada proceso con respecto a la exclusin mutua y la variable global turno resuelve los conflictos de simultaneidad. Disciplina de cola La disciplina de cola mas simple es la de primero en llegar/ primero en salir, pero sta puede no ser suficiente si algunos mensajes son mas urgentes que otros. Una alternativa es permitir la especificacin de prioridades de los mensajes, en funcin del tipo de mensaje o por designacin del emisor. Otra alternativa es permitir al receptor examinar la cola de mensajes y seleccionar el mensaje a recibir a continuacin. Sistemas Operativos Pgina 6

Unidad II Administracion de procesos (segunda parte)


Exclusin mutua Supngase que se usan primitivas receive bloqueantes y send no bloqueantes. Un conjunto de procesos concurrentes comparten un buzn, exmut, que puede ser usado por todos los procesos para enviar y recibir. El buzn contiene inicialmente un nico mensaje, de contenido nulo. Un proceso que desea entrar en su seccin crtica intenta primero recibir el mensaje. Si el buzn est vaco, el proceso se bloquea. Una vez que un proceso ha conseguido el mensaje, ejecuta su seccin crtica y, despus, devuelve el mensaje al buzn. De este modo, el mensaje funciona como testigo que se pasa de un proceso a otro. Esta tcnica supone que si hay ms de un proceso ejecutando la accin receive concurrentemente, entonces:

Si hay un mensaje, se entrega slo a uno de los procesos y los otros se bloquean. Si el buzn est vaco, todos los procesos se bloquean; cuando haya un mensaje disponible, slo se activar y tomar el mensaje uno de los procesos bloqueados.

EXCLUSIN MUTUA: SOLUCIONES POR HARDWARE: INHABILITACIN DE INTERRUPCIONES

Puesto que la seccin crtica no puede ser interrumpida, la exclusin mutua est garantizada. Sin embargo, el precio de esta solucin es alto. La eficiencia de la ejecucin puede verse notablemente degradada debido a que se limita la capacidad del procesador para intercalar programas. Un segundo problema es que est tcnica no funciona en arquitecturas de multiprocesador. Cuando el sistema tenga ms de un procesador, es posible (y habitual) que haya ms de un proceso ejecutndose al mismo tiempo. En este caso, inhabilitar las interrupciones no garantiza la exclusin mutua. INSTRUCCIONES ESPECIALES DE MAQUINA En configuraciones multiprocesador, varios procesadores comparten el acceso a una memoria principal comn. En este caso, no hay relacin maestro/esclavo, sino que los procesadores funcionan independientemente en una relacin de igualdad. No hay un mecanismo de interrupciones entre los procesadores en el que se pueda basar la exclusin mutua. Propiedades de las soluciones con instrucciones de maquina El uso de instrucciones especiales de la maquina para hacer cumplir la exclusin mutua tiene varias ventajas:

Es aplicable a cualquier nmero de procesos en sistemas con memoria compartida, tanto de monoprocesador como de multiprocesador. Es simple y fcil de verificar. Puede usarse para disponer de varias secciones crticas; cada seccin crtica puede definirse con su propia variable.

Sistemas Operativos

Pgina 7

Unidad II Administracion de procesos (segunda parte)


2.9 SEMAFOROS

Semforos es un algoritmo de control de procesos, que tiene solo dos operaciones bsicas, las cuales son: Wait.- Pregunta a los procesos si su contador es > = que cero, en caso de no ser as, los decrementa. Signal.- A partir de un tiempo t definido por el despachador se ejecuta, y pregunta a los procesos si su contador es < que cero en caso de que sea afirmativa la respuesta, saca a este proceso de su ejecucin y depende de su estado SEMFOROS

Funcionamiento de los semforos Dos o ms procesos pueden cooperar por medio de simples seales, de forma que se pueda obligar a detenerse a un proceso en una posicin determinada hasta que reciba una seal especfica. Cualquier requisito complicado de coordinacin puede satisfacerse por medio de la estructura de seales adecuada. Para la sealizacin, se usan variables especiales llamadas semforos. Para transmitir una seal por el semforo, los procesos ejecutan la primitiva signal(s). Para recibir una seal del semforo, los procesos ejecutan la primitiva wait(s); si la seal correspondiente an no se ha transmitido, el proceso es suspendido hasta que tenga lugar la transmisin. Para lograr el efecto deseado, se pueden contemplar los semforos como variables que tienen un valor entero sobre el que se definen las tres operaciones siguientes: 1. Un semforo debe inicializarse con un valor no negativo. 2. La operacin wait decrementa el valor del semforo. Si el valor del semforo se hace negativo, el proceso que ejecuta el wait se bloquea. 3. La operacin signal incrementa el valor del semforo. Si el valor no es positivo, se desbloquea a un proceso bloqueado por una posicin wait. Las primitivas wait y signal se suponen atmicas, es decir, no pueden ser interrumpidas y cada rutina puede considerarse como un paso indivisible. Una versin ms limitada es el semforo binario, que slo puede tomar los valores 0 y 1. En principio los Sistemas Operativos Pgina 8

Unidad II Administracion de procesos (segunda parte)


semforos binarios son ms sencillos de implementar y tienen la misma potencia de expresin que los semforos generales. Tanto en los semforos como en los semforos binarios se emplea una cola para mantener los procesos esperando en el semforo. La poltica ms equitativa mediante la cual se quitan los procesos de dicha cola es la FIFO. La nica exigencia estricta es que un proceso no debe quedar retenido en la cola de un semforo indefinidamente porque otros procesos tengan preferencia. Generalmente operadores como WAIT y SIGNAL operan en los semforos de la siguiente manera. Cuando un proceso ejecuta un operador WAIT que tiene un valor de semforo en 0, ese proceso se bloquea; si el valor es mayor que cero, el valor del semforo es disminuido en 1 y el proceso continua. Cuando un proceso ejecuta un operador SIGNAL y hay procesos bloqueados (WAITING), uno de estos procesos es activado (puesto en la cola de listos). Si no hay procesos esperando el valor del semforo se incrementa en 1. Se asume que procesos bloqueados por semforos pierden el procesador y entran en una cola de espera (WAITING QUEUE) en vez de producir BUSY WAITING. Tambin se asume que la cola de espera es FIFO.

2.10 MONITORES SISTEMAS OPERATIVOS

Un monitor encapsula el cdigo relativo a un recurso compartido en un solo mdulo de programa; ventajas: mantenimiento ms simple menos errores de programacin La interfaz del monitor es un conjunto de funciones que representan las diferentes operaciones que pueden hacerse con el recurso La implementacin del monitor garantiza la exclusin mutua mediante semforos o algn otro mecanismo o implcitamente en los lenguajes concurrentes

2.11 PASO DE MENSAJES SISTEMAS OPERATIVOS


El paso de mensajes es una tcnica empleada en programacin concurrente para aportar sincronizacin entre procesos y permitir la exclusin mutua, de manera similar a como se hace con los semforos, monitores, etc. Su principal caracterstica es que no precisa de memoria compartida, por lo que es muy importante en la programacin para sistemas distribuidos. Los elementos principales que intervienen en el paso de mensajes son el proceso que enva, el que recibe y el mensaje.

2.12 CONCURRENCIA E INTERBLOQUEO.


Sistemas Operativos Pgina 9

Unidad II Administracion de procesos (segunda parte)

Un proceso puede estar identificado con tres estados diferentes: leyendo (ready), ejecutando (running) o bloqueado (blocked). En el estado de lectura, un proceso est parado, concediendo que otro proceso sea ejecutado; en el estado de ejecucin, un proceso est utilizando algn recurso; y en el estado de bloqueo, el proceso est parado y no se ejecutar mientras algo lo restaure. Una condicin comn no deseable es descripta como deadlock, que es cuando dos procesos estn en un estado de ejecucin, y requieren intercambiar recursos entre s para continuar. Ambos procesos estn esperando por la liberacin del recurso requerido, que nunca ser realizada; como no hay ningn resultado, tomar un camino que llevar a un estado de deadlock.

2.13 PRINCIPIOS DEL INTERBLOQUEO


El interbloqueo se puede definir como el bloqueo permanente de un conjunto de procesos que compiten por los recursos del sistema o bien se comunican unos con otros. A diferencia de otros problemas de la gestin concurrente de procesos, no existe una solucin eficiente para el caso general. Todos los interbloqueos suponen necesidades contradictorias de recursos por parte de dos o ms procesos.

EJEMPLOS DE INTERBLOQUEO
Interbloqueo de trfico

Cuatro coches llegan aproximadamente en el mismo instante a un cruce de cuatro caminos. Los cuatro cuadrantes de la interseccin son los recursos compartidos sobre los que se demanda control; por tanto, si los coches desean atravesar el cruce, las necesidades de recursos son las siguientes: El coche que va hacia el norte necesita los cuadrantes 1 y 2. El coche que va hacia el oeste necesita los cuadrantes 2 y 3. El coche que va hacia el sur necesita los cuadrantes 3 y 4. El coche que va hacia el este necesita los cuadrantes 4 y 1.

Sistemas Operativos

Pgina 10

Unidad II Administracion de procesos (segunda parte)

La norma mas habitual en la carretera es que un coche en un cruce de cuatro caminos debe ceder el paso al coche que est a su derecha. Esta norma funciona si solo hay dos o tres coches en el cruce. Por ejemplo, si solo llegan al cruce los coches del norte y del oeste, el coche del norte esperar hasta que el del oeste pase. Sin embargo, si los cuatro coches llegan al mismo tiempo cada uno se abstendr de entrar en el cruce, provocando interbloqueo. Si todos los coches ignoran las normas y entran (con cuidado) en el cruce, cada coche obtendr un recurso (un cuadrante) pero no podr continuar porque el segundo recurso que necesita ya ha sido invadido por otro coche. De nuevo, se tiene interbloqueo.

RECURSOS Un sistema se compone de un numero finito de recursos que se distribuyen entre varios tipos: - Fsicos: Ciclo de cpu, espacio en memoria, dispositivos de e/s (impresoras, unidades de cinta, etc.) - Lgicos: Ficheros, tablas del sistemas, semforos.

Por lo general, una computadora tiene distintos recursos que pueden ser otorgados. Algunos recursos podrn tener varias instancias idnticas, como es el caso de tres unidades de cinta. Si se tienen disponibles varias copias de un recurso, cualquiera de ellas se pude utilizar para satisfacer cualquier solicitud del recurso. Un recurso es cualquier cosa que solo puede ser utilizada por un nico proceso en un instante dado. Los recursos son de dos tipos: Apropiable No apropiables

Un recurso apropiable es aquel que se puede tomar del proceso que lo posee sin efectos dainos. La memoria es un ejemplo de recurso apropiable. Por el contrario, un recurso no apropiable, es aquel que no se puede tomar de su poseedor activo sin provocar un fallo de calculo. Si un proceso comienza a imprimir Sistemas Operativos Pgina 11

Unidad II Administracion de procesos (segunda parte)


una salida, se toma la impresora y se le da a otro proceso, el resultado ser una salida incomprensible. Las impresoras no son apropiables.

Los interbloqueos se relacionan con los recursos no apropiables. Lo usual es que los bloqueos asociados a recursos apropiables se pueden resolver, mediante la reasignacin de recursos de un proceso a otro. La secuencia de eventos necesaria para utilizar un recurso es: - - Solicitar el recurso - - Utilizar el recurso - - Liberar el recurso Si el recurso no esta disponible cuando se le solicita, el proceso solicitante debe esperar. En algunos sistemas operativos, el proceso se bloquea de manera automtica al fallar una solicitud de un recurso y se despierta cuando dicho recurso esta disponible. En otros sistemas la solicitud falla con un cdigo de error y el proceso solicitante debe esperar un poco e intentar de nuevo. Un proceso cuya solicitud de un recurso ha sido denegada entra por lo general en un ciclo, en el cual solicita el recurso, duerme e intenta de nuevo. Aunque este proceso no esta bloqueado, para todos los efectos esta como bloqueado, puesto que no puede hacer ninguna labor til. El interbloque se puede definir entonces de la siguiente forma: Un conjunto de procesos se encuentra en estado de interbloqueo cuando cada uno de ellos espera un suceso que solo puede originar otro proceso del mismo conjunto.

En la mayora de los casos, el evento que espera cada proceso es la liberacin de cierto recurso que posee por el momento otro miembro del conjunto. En otras palabras, cada miembro del conjunto de procesos bloqueados espera un recurso posedo por un proceso bloqueado. Ninguno de los procesos puede continuar su ejecucin, ni liberar recursos, y puede ser despertado.

2.14 ACCIONES A REALIZAR ANTE UN INTERBLOQUEO. PREVENCIN, DETECCIN, PREDICCIN Y EVITAR. Prevencin
Se da mediante la negacin estructural de una de las cuatro condiciones necesarias, realizando diseos para que; esos recursos nunca se bloqueen (antes de producido el bloqueo)

Deteccin
Sistemas Operativos Pgina 12

Unidad II Administracion de procesos (segunda parte)


Es el proceso de determinar si realmente existe un interbloqueo e identificar los procesos y recursos implicados en l

Prediccin
Se decide dinmicamente si la peticin actual de asignacin de un recurso podra, al concederse, llevar potencialmente a un interbloqueo.

Evitar
Los bloqueos mutuos pueden ser evitados si se sabe cierta informacin sobre los procesos antes de la asignacin de recursos. Para cada peticin de recursos, el sistema controla si satisfaciendo el pedido entra en un estado inseguro, donde puede producirse un bloqueo mutuo. De esta forma, el sistema satisface los pedidos de recursos solamente si se asegura que quedar en un estado seguro. Para que el sistema sea capaz de decidir si el siguiente estado ser seguro o inseguro, debe saber por adelantado y en cualquier momento el nmero y tipo de todos los recursos en existencia, disponibles y requeridos. Existen varios algoritmos para evitar bloqueos mutuos: Algoritmo del banquero, introducido por Dijkstra. Algoritmo de grafo de asignacin de recursos. Algoritmo de Seguridad. Algoritmo de solicitud de recursos.

Sistemas Operativos

Pgina 13

Você também pode gostar