Anda di halaman 1dari 3

Semforo: Es un tipo de variable usado para guardar el nmero de seales enviadas para despertar un proceso.

Su valor puede ser cero o un valor positivo que indica el nmero de seales pendientes para despertar el proceso. Sobre un semforo slo se pueden realizar 3 operaciones, las cuales se realizan de forma indivisible y por tanto no existen problemas de interfoliacin. Estas operaciones son:

Inicializacin: asignarle un valor entero positivo a un semforo. Slo se puede realizar una asignacin, lo que se hace al principio de la implementacin. Sealizacin: comprueba si hay procesos bloqueados. Si los hubiera, desbloquea uno y en caso contrario incrementa el valor del semforo. Wait: si el valor del semforo es cero, el proceso se bloquea. En caso contrario se decrementa en 1 el valor del semforo.

Los semforos se utilizan para sincronizar y resolver el problema de la exclusin mutua. Propiedades:

Los semforos implementan correctamente el problema de la exclusin mutua para cualquier nmero de procesos y para cualquier nmero de procesadores. Puede ocurrir inanicin a menos que se siga un orden FIFO en la cola de procesos bloqueados. Un semforo que se utiliza para resolver exclusin mutua est sujeto a interbloqueos. La comunicacin de procesos queda bajo responsabilidad de los programas. Los semforos slo hacen su funcin.

Ejemplo: Si S = 0 se bloquea el proceso. Signal (s) * Indica que se ha ejecutado la instruccin anterior. Tipo de semforos:

Generales o contadores: son los vistos hasta el momento. Nos sirven como contadores. (Asignndole a S un valor de 10 tendremos un bucle que se repite 10 veces). Binarios: toman valores booleanos, 0 1.

Monitores: Un monitor es una coleccin de procedimientos, variables y estructuras de datos que estn todos agrupados juntos en un tipo especial de mdulo o paquete. Los procesos pueden llamar a los procedimientos de un monitor siempre que quieran, pero no se les permite acceder directamente a las estructuras de datos internas del monitor desde procedimientos declarados fuera del monitor. Problemas con los monitores Fueron diseados para resolver el problema de la exclusin mutua sobre una o ms CPUs que tienen acceso a una memoria comn. Los monitores no estn disponibles ms que en unos pocos lenguajes de programacin. Adems, no proporciona intercambio de informacin entre diferentes mquinas. Mensajes: Son un mecanismo sencillo en su implementacin que resuelve algunas limitaciones de los semforos. Se utilizan por ello tanto en sistemas centralizados como en sistemas distribuidos. Se utilizan para resolver problemas como sincronizacin, comunicacin y exclusin mutua. Tambin se define como la coleccin de informacin intercambiada entre un proceso emisor y un proceso receptor. Formato: Cabecera: formato fijo. Cuerpo: opcional y de longitud variable. Operaciones:

Enviar o SEND. Recibir o RECEIVE.

Implementacin de mensajes:

Designacin del emisor / receptor: Directa: cada emisor designa al receptor especfico y viceversa. El receptor debe conocer el nombre del que enva el mensaje.

Ventajas: no existen fallos de identificador, de receptor o de emisor. Desventajas: ha de conocer en todo momento todos sus posibles clientes.

Indirecta: Los mensajes son enviados y recibidos a travs de depsitos especiales llamados buzones. El emisor manda los mensajes a un buzn, que es un lugar que ha sido creado con anterioridad, tomando el receptor los mensajes de dicho buzn.

El propio sistema ha de gestionar a los buzones, proporcionando instrucciones para mejorar estos. Es necesario disponer de servicios adicionales para el mantenimiento de los buzones:

Crear_buzn. Borrar_buzn.

Con este tipo de mensajes de designacin indirecta, la comunicacin podr ser:


1 a 1. 1 a muchos. Muchos a 1. Muchos a muchos.

Un buzn es una cola donde se almacenan los mensajes.