0% encontró este documento útil (0 votos)
55 vistas8 páginas

Sincro

Este documento describe diferentes métodos de sincronización entre procesos mediante el paso de mensajes, incluyendo envío y recepción con y sin bloqueo. También describe el uso de buffers y colas de mensajes, y presenta ejemplos de un productor-consumidor y sistemas operativos basados en mensajes.

Cargado por

Andrea Manrique
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
55 vistas8 páginas

Sincro

Este documento describe diferentes métodos de sincronización entre procesos mediante el paso de mensajes, incluyendo envío y recepción con y sin bloqueo. También describe el uso de buffers y colas de mensajes, y presenta ejemplos de un productor-consumidor y sistemas operativos basados en mensajes.

Cargado por

Andrea Manrique
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd

SINCRONIZACIN

El paso de mensajes puede ser:


Con bloqueo (sncrono) Sin bloqueo(asncrono)

El proceso emisor se bloquea hasta que el mensaje e recibido por el proceso receptor

Envo sin bloqueo


El emisor enva el mensaje y contina su operacin

El receptor se bloquea hasta que haya un mensaje disponible

Recepcin sin bloqueo


El receptor recupera un mensaje vlido o un valor nulo

Envo con bloqueo

Recepcin con bloqueo

USO DE BUFFERS

Los mensajes intercambiados por los procesos comunicados residen en una cola temporal. Existen tres formas para implementarlas:

Capacidad cero: el enlace puede tener mensajes esperando en l. Capacidad limitada: n mensajes pueden residir en ella.

Capacidad ilimitada: Cualquier nmero de mensajes puede esperar en ella.

Solucin al problema: Empleo de paso de mensajes.

EJEMPLO DEL PRODUCTOR-CONSUMIDOR


Import java.util.*; Public class ColaMensajes { Public ColaMensajes(){ cola=new Vector(); ) //ste implementa un envo (send) sin bloqueo Public void send(Object item){ Cola.agregaElemento(item); } //ste implementa una recepcin (receive) sin bloqueo Public Object receive() { Object item; If(cola.tamao()==0) return null; Else { item=cola.primerElemento(); cola.removerElementoEn(0); return item; } } Private Vector cola; }

El productor y el consumidor se comunicarn indirectamente empleando el buzn compartido. El buffer se implementa usando la clase java.util.vector, lo que significa que habr un buffer con apacidad ilimitada. Cuando el productor genera un elemento, coloca ese elmento en el buzn va el mtodo send().

Proceso productor
ColaMensajes Buzn; While (true){ Date mensaje= new Date(); Buzon.send(mensaje); }

Proceso consumidor
ColaMensajes Buzn; While (true){ Date mensaje= (Date) buzon.receive(); if (mensaje !=null) //consumir el mensaje

EJEMPLO :MATCH (Sistema operativo basado en mensajes)

La mayora de las comunicaciones se realizan mediante mensajes, stos se envan y reciben desde los llamados puertos. Cuando se crea cada tarea, tambin se crean: el buzn kernel y el notify. Se necesitan tres llamadas al sistema para la transferencia: msg_send, msg_receive. Las llamadas remotas a procedimientos a travs de msg_rpc La llamada al sistema port_allocate crea un nuevo buzn y asigna espacio para su cola de mensajes.(8) FIFO

Si el buzn est lleno, el hilo emisor debe:


Esperar hasta que haya espacio Esperar a lo sumo n milisegundos No esperar, sino regresar de inmediato Poner temporalmente el mensaje en una cach. (tareas de servidor

El sistema Mach intenta evitar operaciones de copiado doble utilizando tcnicas de administracin de memoria virtual.

EJEMPLO: WINDOWS NT

Emplea modularidad. Proporciona soporte para mltiples ambientes de operacin o subsistemas. Servidor de paso de mensajes: servidor local de llamada a procedimientos.

NT emplea dos tipos de puertos: de conexin(proporciona a las aplicaciones una forma para preparar un canal de comunicacin) y de comunicacin. La comunicacin funciona as: o o o o El cliente abre un manejador al objeto puerto de conexin del subsistema El cliente enva una solicitud de conexin. El servidor crea dos puertos de comunicacin privaos, y devuelve el manejador de uno de ellos al cliente. El cliente y el servidor emplean el manejador del puerto correspondiente para enviar mensajes o contestar.

NT emplea tres tipos de tcnicas de paso de mensajes:


1. Usa la cola de mensajes 2. Pasa el mensaje a travs de un objeto de seccin(memoria compartida). 3. Si el servidor decide que las respuestas sern largas, crea un objeto de seccin.

Desventajas El rendimiento no es tan bueno Para aumentar el rendimiento, emplea un tercer mtodo de paso de mensajes. (LCP rpido)

También podría gustarte