martes, 27 de septiembre de 2016

Semáforos binario y multi variable


Vamos a intentar explicar un poco el uso de semáforos para ciertas acciones , lo mas simple posible , para esto tomaremos un caso de la vida diaria que es el esperar en una cola para entrar a un baño.

Primeramente el concepto de semáforo se puede apreciar como :

"Un semáforo es una variable entera  que se incluye , para realizar con este un método de  restringir o permitir el acceso a recursos compartidos ."

Con esto veamos el caso que se ah planteado , el de entrar a un baño.Imaginemos un baño con el numero de baños es variable , donde cada baño tiene una llave que se le da al usuario que lo vaya a usar .

En un primer caso podemos ver en el que solo existe un baño y su única llave para usarlo , en este caso todas las personas que lleguen van a tener que esperar al primer usuario que llego y que este termine su uso mientras los demás están en espera .Ya que el estado de este único baño puede ser en uso o no , se puede referir a un semáforo binario que tiene valores 0-1 comenzando su valor en 1 (como `primer uso en nuestro ejemplo) y tomando el valor 0 cuando el usuario sale .


                                                                              Figura 1 : En espera

Si en cambio nuestro baño tuviera un nuevo de baños con su respectivo nuevo de llaves , entonces el numero de llaves disponibles seria nuestro semáforo , distribuyendo así los usuarios en cada baño y generando así que cada uno se realice sin interrupción (ya que la llave es única en nuestro caso) , en este sentido el semáforo puede tomar varios valores dependiendo el caso.

                                                           Figura 2: Mayor numero de baños 

Como algo adicional se puede decir de los mutexs que es una variable de exclusión mutua , que en nuestro caso se puede apreciar como la llave de cada baño , que sin ella no se puede acceder a este .

No hay comentarios:

Publicar un comentario