Semaforos

Páginas: 8 (1842 palabras) Publicado: 19 de junio de 2012
Guatemala 7 de junio de 2012
Universidad Mariano Gálvez
Sistemas Operativos Abiertos

Semáforos

Luis Pedro Salazar 090-03-142
Aldo Gerardin Girón 090-04-858
Gerardo Lyonel Mena 090-04-874
Pablo Joel Canil 090-02-891







Introduccion

A continuación presentamos una investigación acerca de la importancia y la implementación de los semáforos asi como los algoritmosde las distingas formas de utilizarlos principalmente en los sistemas operativos asi como la adaptación de los mismos a cualquier otro sistema al que se pueda integrar o se pueda llegar a utilizar un semáforo para mejorar la funcionalidad del mismo.
Veremos la importancia de los semáforos en la exclusión mutua y la utilización de los mismos para la solución de este problema.

SemáforosDefinición
Un semáforo es una estructura diseñada para sincronizar dos o más threads o procesos, de modo que su ejecución se realice de forma ordenada y sin conflictos entre ellos.
El por qué no se pueden usar directamente otras estructuras mas clásicas, como por ejemplo usar una variable común para decidir si se puede o no acceder a un recurso, se debe a que estamos en un sistema multitarea: haceresto implicaría realizar una espera activa (un bucle, comprobando constantemente si la variable está o no a 0, y así saber si podemos seguir ejecutando o no). Por otro lado, puede ocurrir algo mucho peor: supongamos que un proceso comprueba la variable, y ve que el recurso está libre, por lo que procedería a cambiar dicha variable de valor y seguir. Pues bien, si justo después de la comprobaciónpero antes de que cambie el valor se conmuta de tarea (puede pasar, pues el sistema operativo puede hacerlo en cualquier momento), y el nuevo proceso comprueba la variable, como todavía no se ha actualizado, creerá que el recurso está libre, e intentará tomarlo, haciendo que ambos programas fallen. Lo peor del caso es que se tratará de un error aleatorio: unas veces fallará (cuando se produzca cambiode tarea en ese punto) y otras no.
Para evitarlo, se idearon los semáforos. Un semáforo básico es una estructura formada por una posición de memoria y dos instrucciones, una para reservarlo y otra para liberarlo. A esto se le puede añadir una cola de threads para recordar el orden en que se hicieron las peticiones.
Se empieza por inicializar la posición de memoria a 1 (o al valorcorrespondiente si ese recurso concreto admite más de un acceso simultáneo). Esto se hace en el inicio del programa principal.
A continuación, cada vez que un thread o un proceso quiera acceder a dicho recurso (por ejemplo, un fichero), hará primero una petición con la primera de las llamadas disponibles. Cuando el S.O. ejecuta esa llamada, comprueba el valor que hay en la posición de memoria del semáforo, ysi es distinta de cero, se limita a restarle 1 y devolver el control al programa; sin embargo, si ya es cero, duerme al proceso que hizo la petición y lo mete en la cola de procesos, en espera de que el semáforo se ponga a un valor distinto de cero.

Características

Dentro de los semáforos tenemos las siguientes características u operaciones:

init()
Inicializa el semáforo antes de quecualquier proceso haya ejecutado ni una operación wait() ni una operación signal() al límite de número de procesos que tengan derecho a acceder el recurso. Si se inicializa con 1, se ha construido un semáforo binario.
wait()
Si el estado indica cero, el proceso se queda atrapado en el semáforo hasta que sea despertado por otro proceso. Si el estado indica que un proceso más puede acceder el recursose decremento el contador y la operación termina con éxito.
La operación wait() tiene que estar implementada como una instrucción atómica. Sin embargo, en muchas implementaciones la operación wait() puede ser interrumpida. Normalmente existe una forma de comprobar si la salida del wait() es debido a una interrupción o porque se ha dado acceso al semáforo.
signal()
Una vez se ha terminado el...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Los Semaforos
  • semaforo
  • Semaforo
  • semaforo
  • SEMAFORO
  • Semáforo
  • Semaforo
  • Semaforo

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS