Está en la página 1de 5

Benemérita Universidad Autónoma de Puebla

Practica 7:
Semaforos
Sistemas Operativos 1

Fabio Ibarra Suárez


201766509
Introducción

¿Qué es un semáforo?
Los semáforos son mecanismos de comunicación que permiten sincronizar procesos,
para prevenir
coaliciones que se producen cuando dos o más procesos solicitan información el uso
de un recurso
que deben compartir.
Características:
• Los sistemas operativos diferencian a menudo entre semáforos contadores y
semáforos
binarios.

• El valor de un semáforo contador puede variar en un dominio no restringido,


mientras que el

valor de un semáforo binario solo puede ser 0 o1. En algunos sistemas, los semáforos
binarios se conocen como cerrojos mutex, ya que son cerrojos que proporcionan
exclusión
mutua.
• Podemos usar semáforos binarios para abordar el problema de la sección crítica en el
caso
de múltiples procesos.
• Los n procesos comparten un semáforo, mutex, inicializado con el valor 1.

• Los semáforos contadores se pueden usar para controlar el acceso a un determinado


recurso

formado por un numero finito de instancias.


• El semáforo se inicializa con el número de recursos disponibles. Cada proceso que
desee
usar un recurso ejecuta una operación wait () en el semáforo (decrementando su
valor).
• Cuando un proceso libera un recurso, ejecuta una operación signal() (incrementando
el valor).
• Cuando el valor del semáforo llega a 0, todos los recursos estarán en uso. Después,
los
procesos que deseen usar un recurso se bloquearan hasta que la cuenta sea mayor
que 0.

Desarrollo

1.- Ejecuta el siguiente programa

Preguntas:
1) ¿En qué parte del programa se indica el numero de semáforos que se
utilizarán?

2) Solo tenemos a dos procesos y dos semáforos decrementando una variable


e interactúan entre si mediante turnos para poder realizar su operación.
2.- Ejecutar el programa con $ make

Preguntas:
1) ¿Qué diferencias encuentras en la forma de crear el semáforo con el
programa anterior?
Que los valores de 0 y 1 de los semáforos no se definen al inicio
2) Explica las opciones de control que se utilizaron en este programa
Se utilizan los valores de 0 y 1 para “dormir” y “despertar” a los
semáforos.(los incrementamos y decrementamos)
3.- Ejecutar el programa con make file

Preguntas:
1) ¿Qué es la sección crítica?
Es la porción de código de un programa en la que se accede a un recurso
compartido que no debe ser accedido por más de un proceso a la vez.

2) ¿Qué problema resuelven los semáforos y explicar cada problema?


Los semáforos de exclusión mutua ayudan a que solo un proceso entre en la
sección critica.
Los semáforos también resuelven problemas de llamadas perdidas como en
el caso del programa productor consumidor, donde ambos procesos
quedan dormidos y nadie los puede despertar por una llamada perdida.
3) ¿Cuántos semáforos se crean y para qué sirve el mutex?
En el programa se crea un semáforo y el mutex es un mecanismo que sirve
para lograr una buena exclusión de los procesos en la sección critica.

4.- Ejecuta el siguiente programa


Conclusión

Creo que los semáforos son un excelente método de comunicación y administración de


recursos, especialmente cuando hay muchos procesos y todos requieren de cierto
recurso. Aprendí que usarlos adecuadamente puede ayudar enormemente al
rendimiento y la productividad de un proyecto o sistema.

También podría gustarte