Semáforos Flashcards
¿Qué es un semáforo?
Es un mecanismo que permite evitar condiciones de carrera y garantizar la exclusión mutua.
¿Qué operaciones realizan los semáforos?
- Wait (o P)
- Signal (o V)
¿Qué hace la opearción Wait(P)?
Decrementa el valor del semáforo. Si el valor es mayor que 0, el proceso continúa. Si el valor es 0, el proceso se bloquea hasta que el semáforo se libere y se agrega al conjunto L de procesos que están esperando.
¿Qué hace la opearción Signal (V)?
Incrementa el valor del semáforo. Si la lista L de procesos esperando está vacía, incrementa el contador en 1. Si hay procesos en la lista L, se despierta uno que se mueve al estado listo para ejecutarse.
¿Qué tipos de semáforos existen?
- Semáforo Binario (Mutex)
- Semáforo contador
Definir un Semáforo Binario (Mutex)
Tiene solo dos valores posibles: 0 y 1. Se utiliza para asegurar que solo un hilo o proceso pueda acceder a un recurso compartido a la vez. Si el semáforo está en 1, el recurso está disponible; si está en 0, el recurso está en uso.
Definir un Semáforo Contador
Puede tener un valor entero no negativo, que representa el número de recursos disponibles. Cuando un hilo o proceso desea acceder al recurso, decrece el valor del semáforo; cuando termina, lo incrementa. Si el valor es 0, los procesos que intentan acceder al recurso se bloquean hasta que otro proceso libere el recurso.
3 ejemplos de uso de semáforos
- Controlar el acceso a una base de datos por múltiples hilos.
- Sincronizar la ejecución de procesos en sistemas operativos.
- Gestionar recursos limitados, como impresoras o conexiones de red.
¿Cuales son los componentes de un semáforo?
- Contador (V)
- Conjunto de procesos (L)
Definir que es el componente Contador (V) de un semáforo
Es un entero no negativo que indica la cantidad de recursos disponibles. Si el contador es mayor que 0, significa que hay recursos disponibles; si es 0, significa que no hay recursos disponibles.
Definir que es el componente Conjunto de procesos (L) de un semáforo
Es un conjunto que mantiene los procesos que están esperando para acceder al recurso. Cuando un proceso intenta acceder a un recurso y no está disponible, se agrega a este conjunto.
¿Cómo se inicializa un semáforo?
- Un valor entero no negativo k≥0 (esto define cuántos recursos están disponibles inicialmente).
- Un conjunto vacío ∅ que representará los procesos en espera.
¿Que son las Barreras?
Las barreras son mecanismos que permiten sincronizar varios hilos en un punto de ejecución. Todos los hilos deben alcanzar la barrera para que puedan continuar.