Está en la página 1de 7

Concurrencia (Semforos)

OBJETIVO. Crear nuestro propio Mecanismo de Exclusin Mutua con Java denominado Semforo

Objetivo:
Despus de conocer y utilizar las utilidades de concurrencia que proporciona Java a travs de la Especificacin JSR 166. Esto llev a la conclusin de que es necesario algn mecanismo de Exclusin Mutua Exclusin Mutua Definicin: Mientras un proceso est accediendo al recurso compartido hay que impedir que otros procesos puedan acceder al mismo. El objetivo de esta prctica es lograr la exclusin mutua utilizando el mecanismo semforo.

BASE TEORICA COMPLEMENTARIA


Semforo. Es una de las primeras herramientas utilizadas para proteger la seccin crtica y lograr la exclusin mutua, adems sirve para disear protocolos de sincronizacin entre procesos. Consta de dos operaciones primitivas: P y V V seala la ocurrencia de un evento (signal) P se usa para demorar un proceso hasta que ocurra un evento (wait) Los semforos pueden estar disponibles en un lenguaje de programacin, como construccin del lenguaje, o como servicio del sistema operativo invocado mediante llamadas al sistema. Cuando son proporcionados por el sistema operativo, las variables semforo no son declaradas ni manipuladas en el lenguaje, sino que se manipulan a travs de llamadas al sistema tales como CREAR_SEMAFORO, ASOCIAR _A_SEMAFORO, ESPERA, SEAL, CERRAR_SEMAFORO.
x P(s): < mientras s > 0 -> s := s 1 > x V(s): < s := s + 1 >

IMPLEMENTACION:

SIMULAR:
Simular las operaciones que se hace sobre una cuenta bancaria con la implementacin de un Semforo

P1: Es ahora correcta la ejecucin del programa, explique por qu?. P2: Cree varios hilos que abonan y varios que retiran dinero de la cuenta y verifique si hay consistencia en los datos.

TRABAJO:
Suponer que estamos en una discoteca y resulta que est estropeado el servicio de chicas y todos tienen que compartir el de chicos. Se pretende establecer un protocolo de entrada al servicio usando semforos en el que se cumplan las siguientes restricciones: chicas slo puede haber una a la vez en el servicio. chicos puede haber ms de uno, pero con un mximo de cinco.