Escolar Documentos
Profissional Documentos
Cultura Documentos
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.
Sistemas Operativos
Pgina 2
Sistemas Operativos
Pgina 3
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.
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.
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
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.
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
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
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
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.
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
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
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
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