Ejemplos de Exclusión MUTUA Biología

Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 7,78 KB

Interacción entre procesos

Es posible clasificar las interacciones entre procesos en función del nivel de conocimiento que cada proceso tiene de la existencia de los demás. Existen tres niveles de conocimientos:

Los procesos no tienen conocimiento de los demás:


estos son procesos independientes que no están pensados para operar juntos. El S.O. Tiene que encargarse de la competencia por los recursos. Los resultados de un proceso son independientes de las acciones de los otros procesos.

Los procesos tienen un conocimiento indirecto de los otros:


los procesos no conocen a los otros por su nombre, pero comparte el acceso a algunos objetos, tales como un buffer de E/S o un archivo o una porción de memoria. Estos procesos muestran cooperación para compartir el objeto común. Los resultados de un proceso pueden depender de la información obtenida de los otros.

Los procesos tienen conocimiento directo de los otros:


los procesos son capaces de comunicarse con los demás por el nombre y están diseñados para trabajar conjuntamente en alguna actividad. Estos procesos muestran cooperación por comunicación.

Competencia entre los procesos por los recursos:


Los procesos concurrentes entran en conflicto cuando compiten por el uso del mismo recurso.
Cada proceso debe dejar tal y como esté el estado de cualquier recurso que utilice. Aunque no hay intercambio de información entre los procesos en competencia, la ejecución de un proceso puede influir en el comportamiento de los procesos que compiten. En particular, si dos procesos desean acceder a un único recurso, el S.O. Le asignará el recurso a uno de ellos y el otro tendrá que esperar. Por lo tanto, el proceso al que se le niega el acceso quedará bloqueado y se retrasará. En el peor caso, el proceso bloqueado puede que no consiga nunca acceder al recurso y, por tanto, no terminará con éxito nunca.

En el caso que haya procesos en competencia, se deben solucionar tres problemas de control:


1)Exclusión mutua:supóngase que dos procesos quieren acceder a un único recurso no compartible. A estos recursos se los llama recursos críticos y la parte del programa que los utiliza se conoce como sección crítica del programa. Es importante que sólo un programa pueda acceder a su sección crítica en un momento dado.
2)Interbloqueo (deadlock): considéresé dos procesos P1 y P2 y dos recursos críticos R1 y R2. Supóngase que cada proceso necesita acceder a ambos recursos para llevar a cabo una parte de su función. En tal caso, es posible que el S.O. Asigne R1 a P2 y R2 a P1. Cada proceso está esperando a uno de los dos recursos y ninguno liberará el recurso que ya posee hasta que adquiera el otro y ejecute su sección crítica. Ambos procesos están interbloqueados. En otra situación que se da interbloqueo es cuando dos procesos están bloqueados en un receive() y esperan un mensaje que nunca les va a llegar.
3)Inanición (starvation): es cuando un proceso se queda esperando un recurso indefinidamente. Esto se soluciona asignándoles mayor prioridad a los procesos para que obtengan pronto el recurso que solicitan y no caigan en inanición (Envejecimiento o Aging).

Cooperación entre procesos por compartición:


Varios procesos pueden tener acceso a variables compartidas, archivos o bases de datos compartidas. Los procesos pueden emplear y actualizar los datos compartidos sin hacer referencia a los otros procesos, pero son conscientes de que estos otros pueden tener acceso a los mismos datos. Así pues, los procesos deben cooperar para asegurar que los datos que se comparten se gestionen correctamente. Los mecanismos de control deben garantizar la integridad de los datos. Puesto que los datos se guardan en recursos (dispositivos, memoria), también se presentan los problemas de control de exclusión mutua, interbloqueo e inanición. La única diferencia es que se puede acceder a los datos de dos formas distintas, para lectura y para escritura. Sólo las operaciones de escritura deben ser mutuamente excluyentes. Sin embargo, antes que estos problemas, se debe introducir un nuevo requisito: la coherencia de los datos. En este caso, la secuencia completa de cada proceso se puede declarar como sección crítica para garantizar la integridad de los datos, incluso aunque ningún recurso crítico se vea involucrado.

Cooperación entre procesos por comunicación:


En los dos casos ya expuestos cada proceso posee su propio entorno aislado, que no incluye a los otros procesos; las interacciones entre los procesos son indirectas. Cuando los procesos cooperan por comunicación, en cambio, los distintos procesos participan en una labor común que une a todos los procesos. La comunicación es una manera de sincronizar o coordinar las distintas actividades. Normalmente, la comunicación puede caracterizarse por estar formada por mensajes de algún tipo. Las primitivas para enviar y recibir mensajes pueden venir dadas como parte del lenguaje de programación o por el núcleo del S.O.

Regíón Crítica. Protocolo de sincronización:


Los puntos de entrada de un recurso indican la cantidad de procesos que pueden utilizar simultáneamente al mismo. Si un recurso tiene sólo un punto de entrada, se lo denomina recurso crítico o recurso no compartible.
Regíón crítica de un proceso es la fase o etapa en la vida de ese proceso concurrente en la cual accede a un recurso crítico para modificarlo o alterarlo.
El uso adecuado de la concurrencia entre procesos exige la capacidad de definir secciones críticas y hacer cumplir la exclusión mutua. Cualquier servicio o capacidad que dé soporte para la exclusión mutua debe cumplir con un protocolo de sincronización, que tiene los requisitos siguientes:
Debe cumplirse la exclusión mutua: sólo un proceso de entre todos los que poseen secciones críticas por el mismo recurso u objeto compartido, debe tener permiso para entrar en ella en un instante dado.
Un proceso que se interrumpe en una sección no crítica debe hacerlo sin estorbar a los otros. Es decir que si se cuelga un proceso que está usando un recurso, los demás procesos que esperan deben poder acceder al recurso de todas formas (el S.O. Mata al proceso que se colgó y así libera al recurso). 
Cuando ningún proceso está en su sección crítica, cualquier proceso que solicite entrar en la suya debe poder hacerlo sin dilatación. Es decir, si nadie está usando un cierto recurso, entonces se le otorga al primer proceso que lo solicite.

Sincronización


Un proceso debe esperar la ocurrencia de un determinado evento. Para que los procesos puedan sincronizarse es necesario disponer de servicios que permitan bloquear o suspender bajo determinadas circunstancias la ejecución de un proceso uno de los principales mecanismo de sincronización es el semáforo.
Un semáforo es un objeto con valor entero, al que se le puede asignar un valor inicial no negativo, y al que solo se puede acceder utilizando dos operaciones atómicas, es decir, no pueden ser interrumpidas y cada rutina puede considerarse como un paso indivisible; waity signal, las definiciones de estas dos operaciones son las siguientes:

Entradas relacionadas: