Vous êtes sur la page 1sur 8

Algoritmos de Dekker

El algoritmo de Dekker es un algoritmo de programación concurrente para exclusión mutua,


que permite a dos procesos o hilos de ejecución compartir un recurso sin conflictos.
Existen cinco versiones del algoritmo Dekker, teniendo ciertos fallos los primeros cuatro. La
versión 5 es la que trabaja más eficientemente, siendo una combinación de la 1 y la 4.

1. Dekker No.1 – Alternabilidad - espera activa. Está garantizada la exclusión


mutua, pero acopla sus procesos fuertemente, aunque aún no estén listos. Significa
que los procesos lentos atrasan a los procesos rápidos. Si uno de los dos procesos
termina, entonces llegará el momento en que ya no pueda continuar. Se les da un
tiempo para utilizar el procesador, pero si aún no estaba listo al entrar, entonces
termina antes y ya no podrá volver a entrar. No hay ciclos infinitos.

2. Dekker No.2 – No garantiza su exclusión mutua de 2 procesos. Se debe a que


un proceso determina que a través del while puede seguir adelante y el momento
en que se le asigna valor cierto para tener una sección crítica, tiene tiempo para que
el otro proceso verifique y entre en su sección crítica. Por lo que en el momento en
que se verifica uno, debe estar seguro que el otro no lo está. Garantiza en que
ambos procesos podían entrar al mismo tiempo y no, uno antes que el otro.

3. Dekker No.3 – Bloqueo mutuo de dos procesos. El problema es que cada uno
de los procesos puede bloquearse en su verificación respectiva y los dos entran en
un ciclo infinito. Se entra a un bloqueo entre ellos.

4. Dekker No.4 – Aplazamiento indefinido. La exclusión mutua esta garantizada. Su


nombre se debe a que en una parte del código es colocado un retardo puede ser
muy grande que no se sabe hasta cuando entrará a la sección crítica. Un proceso o
varios procesos se pueden quedar esperando por un evento o caso que tal vez
nunca suceda.

5. Dekker No.5 - Algoritmo para realizar las primitivas de expresión mutua. Este
es el óptimo, el cual nos indica que al momento que un proceso es colocado, el otro
proceso debe esperar hasta que el anterior termine para poder colocarse en su lugar
y así suceda lo mismo con sus demás procesos.
Semáforos Binarios
Un semáforo es un valor que solo puede ser leído y alternado las operaciones P y
V, y una operación de asignación de valores iniciales, que llamaremos inicio
semáforo.

Los semáforos binarios pueden tener solamente los valores binarios de 0 a 1.

Los semáforos contadores o semáforos generales, pueden tener tan solo valores
enteros no negativos.

 OPERACIÓN “P”
Sobre el semáforo S. escrita P(s)
Si S > 0
Entonces S = S – 1
Si no (esperar S)

 OPERACIÓN “V”
Sobre el semáforo S. escrita V(s)
Si (uno o más procesos, esperar)
Entonces (dejar que prosiga uno de esos procesos)
Si no S:= S + 1
Productor Consumidor

Sistema Operativo Spooler – despooler

Drivers: controla la velocidad del Sistema


Operativo con la de la impresora.

Operaciones básicas de los semáforos


binario son 3.

Rojo, Verde y naranja


Sistema Operativo

Buffer Circular

Vous aimerez peut-être aussi