OS Semaphores Q & A # 1

Question: Explica los semáforos y escribe una nota corta sobre ellos.

Answer:Dijkestra propuso una técnica significativa para gestionar procesos concurrentes para problemas complejos de exclusión mutua. Presentó una nueva herramienta de sincronización llamada Semaphore.

Los semáforos son de dos tipos:

  1. Semáforo binario

  2. Contando semáforo

El semáforo binario solo puede tomar el valor 0 y 1. El semáforo de conteo puede tomar valores enteros no negativos.

En el semáforo se definen dos operaciones estándar, espera y señal. La entrada a la sección crítica se controla mediante la operación de espera y la salida de una región crítica se realiza mediante la operación de señal. Las operaciones de espera y señal también se denominan operaciones P y V. La manipulación del semáforo (S) se realiza de la siguiente manera:

  1. El comando de espera P (S) disminuye el valor del semáforo en 1. Si el valor resultante se vuelve negativo, el comando P se retrasa hasta que se cumpla la condición.

  2. La operación de señales V (S) ie incrementa el valor del semáforo en 1.

La exclusión mutua en el semáforo se aplica dentro de P (S) y V (S). Si varios procesos intentan P (S) simultáneamente, solo se permitirá que un proceso continúe y los otros procesos estarán esperando. Estas operaciones se definen como en -

P(S) or wait(S): 
If S > 0 then
   Set S to S-1
Else
   Block the calling process (i.e. Wait on S)

V(S) or signal(S): 
If any processes are waiting on S
   Start one of these processes
Else
   Set S to S+1

La operación del semáforo se implementa como servicios del sistema operativo y, por lo tanto, la espera y la señal son de naturaleza atómica, es decir, una vez iniciadas, la ejecución de estas operaciones no se puede interrumpir.

Por lo tanto, el semáforo es un mecanismo simple pero poderoso para garantizar la exclusión mutua entre procesos concurrentes.