La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

I.T.E.S.R.C. Equipo #3 Romina Tamez Andrea Martínez Ma. De Lourdes Solís Edwin Salvador Llamas Lic. Orlando Zamora.

Presentaciones similares


Presentación del tema: "I.T.E.S.R.C. Equipo #3 Romina Tamez Andrea Martínez Ma. De Lourdes Solís Edwin Salvador Llamas Lic. Orlando Zamora."— Transcripción de la presentación:

1 I.T.E.S.R.C. Equipo #3 Romina Tamez Andrea Martínez Ma. De Lourdes Solís Edwin Salvador Llamas Lic. Orlando Zamora

2 Paso de Mensajes

3 Cuando los procesos interactúan unos con otros, se deben satisfacer dos requisitos básicos: o La sincronización y la comunicación. Los procesos tienen que sincronizarse para cumplir la exclusión mutua; los procesos cooperantes pueden necesitar intercambiar información. Un método posible para ofrecer ambas funciones es el paso de mensajes. El paso de mensajes tiene la ventaja adicional de que se presta a ser implementado en sistemas distribuidos, así como en sistemas multiprocesador y monoprocesador de memoria compartida.

4 Concurrencia: Exclusión mutua y sincronización Hay varias formas de sistemas de paso de mensajes. sena (destino, mensaje) receive (origen, mensaje) Este es el conjunto mínimo de operaciones necesario para que los procesos puedan dedicarse al paso de mensajes. Un proceso envía información en forma de un mensaje a otro proceso designado como destino. Un proceso recibe información ejecutando la primitiva receive, que indica el proceso emisor (origen) y el mensaje.

5 Sincronización La comunicación de un mensaje entre dos procesos implica cierto nivel de sincronización entre ambos. El receptor no puede recibir un mensaje hasta que sea enviado por otro proceso. Además, hace falta especificar qué le sucede a un proceso después de ejecutar una primitiva sena o receive. Cuando se ejecuta una primitiva sena en un proceso, hay dos posibilidades: O bien el proceso emisor se bloquea hasta que se recibe el mensaje o no se bloquea. Análogamente, cuando un proceso ejecuta una primitiva receive, hay dos posibilidades: 1. Si previamente se ha enviado algún mensaje, éste es recibido y continúa la ejecución. 2. Si no hay ningún mensaje esperando entonces, o bien (a) el proceso se bloquea hasta que llega un mensaje o (b) el proceso continúa ejecutando, abandonando el intento de recepción.

6 Tanto el emisor como el receptor pueden ser bloqueantes o no bloqueantes: Envío bloqueante, recepción bloqueante: Tanto el emisor como el receptor se bloquean hasta que se entrega el mensaje; esta técnica se conoce como rendezvous. Esta combinación permite una fuerte sincronización entre procesos. Envío no bloqueante, recepción bloqueante: Aunque el emisor puede continuar, el receptor se bloquea hasta que llega el mensaje solicitado. Permite que un proceso envíe uno o más mensajes a varios destinos tan rápido como sea posible. Un proceso que debe recibir un mensaje antes de poder hacer alguna función útil tiene que bloquearse hasta que llegue el mensaje. Un ejemplo es el de un proceso servidor que ofrezca un servicio o un recurso a otros procesos. Envío no bloqueante, recepción no bloqueante: Nadie debe esperar.

7 Direccionamiento Evidentemente, es necesario disponer de alguna forma de especificar en la primitiva send qué proceso va a recibir el mensaje. De forma similar, la mayoría de las implementaciones permiten a los procesos receptores indicar el origen del mensaje que se va a recibir.

8 Concurrencia: Exclusión mutua y sincronización Los distintos esquemas para hacer referencia a los procesos en las primitivas sena y receive se encuadran dentro de dos categorías: direccionamiento directo e indirecto. Direccionamiento directo: la primitiva sena incluye una identificación específica del proceso destino. La primitiva receive se puede gestionar de dos formas: -Una posibilidad requiere que el proceso designe explícitamente un proceso emisor. - En otros casos, es imposible especificar el proceso de origen por anticipado. Direccionamiento indirecto: los mensajes no se envían directamente del emisor al receptor, sino a una estructura de datos compartida formada por colas que pueden guardar los mensajes temporalmente. Estas colas se denominan generalmente buzones (mailboxes). De este modo, para que dos procesos se comuniquen, uno envía mensajes al buzón apropiado y el otro los coge del buzón.

9 Formato de mensajes El formato de los mensajes depende de los objetivos del servicio de mensajería y de si el servicio ejecuta en un ordenador independiente o en un sistema distribuido. Para algunos sistemas operativos, los diseñadores han elegido mensajes cortos y de tamaño fijo para minimizar el procesamiento y el coste de almacenamiento.

10 Formato típico de mensaje

11 Monitores

12 Es un módulo de Software que consta de uno o mas procedimientos, secuencia y unos datos locales

13 Características:

14 1.- Las variables de datos locales están solo accesibles para los procedimientos del monitor y no para procedimientos externos. 2.- Un proceso entra en el monitor invocando a uno de sus procedimientos. 3.- Solo un proceso puede estar ejecutando en el monitor en cierto momento, cualquier otro proceso se suspende hasta que el monitor esté disponible.

15

16 Un semáforo es una estructura diseñada para sincronizar dos o más procesos, de modo que su ejecución se realice de forma ordenada y sin conflictos entre ellos.

17 Los semáforos se emplean para permitir el acceso a diferentes partes de programas (llamados secciones críticas) donde se manipulan variables o recursos que deben ser accedidos de forma especial. Según el valor con que son inicializados se permiten a más o menos procesos utilizar el recurso de forma simultánea.

18 Un tipo simple de semáforo es el binario, que puede tomar solamente los valores 0 y 1. Se inicializan en 1 y son usados cuando sólo un proceso puede acceder a un recurso a la vez. Son esencialmente lo mismo que los mutex. Cuando el recurso está disponible, un proceso accede y decrementa el valor del semáforo con la operación P. El valor queda entonces en 0, lo que hace que si otro proceso intenta decrementarlo tenga que esperar. Cuando el proceso que decrementó el semáforo realiza una operación V, algún proceso que estaba esperando puede despertar y seguir ejecutando

19 Tiene dos operaciones básicas que son: Wait.- Pregunta a los procesos si su contador es > ó = que cero, en caso de no ser así, los decrementa. El proceso que cambia en este caso a negativo (1) desde la cola de procesos Listos a ser ejecutados es el que automáticamente toma el control del procesador. 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 ejecución y depende de su estado

20 Para hacer que dos procesos se ejecuten en una secuencia predeterminada puede usarse un semáforo inicializado en 0. El proceso que debe ejecutar primero en la secuencia realiza la operación V sobre el semáforo antes del código que debe ser ejecutado después del otro proceso. Éste ejecuta la operación P. Si el segundo proceso en la secuencia es programado para ejecutar antes que el otro, al hacer P dormirá hasta que el primer proceso de la secuencia pase por su operación V. Este modo de uso se denomina señalación (signaling), y se usa para que un proceso o hilo de ejecución le haga saber a otro que algo ha sucedido.


Descargar ppt "I.T.E.S.R.C. Equipo #3 Romina Tamez Andrea Martínez Ma. De Lourdes Solís Edwin Salvador Llamas Lic. Orlando Zamora."

Presentaciones similares


Anuncios Google