Sunteți pe pagina 1din 18

UNIVERSIDAD ESTATAL PENINSULA

DE
SANTA ELENA
Sistemas Operativos

Algoritmo de DEKKER
Integrantes:

Wellington Basilio

Nereixi Bacilio

Merly Vera

Hector Quiroga

Kerlly Villn

Resumen
Se define a un algoritmo como un conjunto ordenado y finito de operaciones que
permite hallar la solucin de un problema. Mtodo y notacin en las distintas
frmulas del clculo.
El algoritmo constituye un mtodo para resolver un problema mediante una
secuencia de pasos a seguir. Dicha secuencia puede ser expresada en forma de
diagrama de flujo con el fin de seguirlo de una forma ms sencilla.
Dijkstra present un algoritmo de exclusin mutua para dos procesos que dise el
matemtico holands Dekker. Segn Dijkstra, la solucin se desarrolla por etapas.
Este mtodo tiene la ventaja de ilustrar la mayora de los errores habituales que se
producen en la construccin de programas concurrentes. El algoritmo de Dekker es
un algoritmo de programacin concurrente para exclusin mutua, que permite a dos
procesos o hilos de ejecucin compartir un recurso sin conflictos.

Introduccin
Algoritmo de Dekker se basa en un algoritmo de programacin
concurrente para exclusin mutua, que permite a dos procesos o
hilos de ejecucin compartir un recurso sin conflictos. Fue uno de
los primeros algoritmos de exclusin mutua inventados,
implementado por Edsger Dijkstra.

Mediante el algoritmo de DEKKER se consigue:

Exclusin mutua con respecto al recurso

Se concede a cada proceso el acceso en un tiempo finito

Se libera el recurso en un tiempo finito

Existe espera activa

ALGORITMO DE DEKKER

DEFINICION: Es un algoritmo de programacin concurrente


para exclusin mutua, que permiten a dos procesos o
hilos de ejecucin compartir un recursos sin conflictos.
Fue uno de los primeros algoritmo de exclusin mutua
inventados.

Si ambos procesos intentan acceder a la seccin critica


simultneamente, elige un proceso segn una variable de
turno.

1 ALTERNANCIA ESTRICTA.

La primer versin del algoritmo de Dekker es Alternancia Estricta, es


llamado de esta manera ya que obliga a que cada proceso tenga un
turno, osea que hay un cambio de turno cada vez que un proceso sale
de la seccin critica, por lo tanto si un proceso es lento atrasara a
otros procesos que son rpidos.

Diseados para poder pasar el control de ejecucin entre ellos, no


es una tcnica apropiada para dar soporte al procesamiento
concurrente.
Alternancia = cambio o variacin

Caractersticas

Garantiza la exclusin mutua

Su sincronizacin es forzada

Acopla fuertemente a los procesos (procesos lentos atrasan a


procesos rpidos)

No garantiza la progresin, ya que si un proceso por alguna razn


es bloqueado dentro o fuera de la seccin puede bloquear a los otros
procesos.

Caractersticas

Garantiza la exclusin mutua

Su sincronizacin es forzada

Acopla fuertemente a los procesos (procesos lentos atrasan a


procesos rpidos)

No garantiza la progresin, ya que si un proceso por alguna razn


es bloqueado dentro o fuera de la seccin puede bloquear a los otros
procesos.

Descripcin del algoritmo

Cuando un proceso es ejecutado verifica si es su turno, si no es su turno se


queda en espera por medio de un ciclo while.(lnea 7 y 19)

De lo contrario si es su turno avanza a la seccin crtica.

Cuando el proceso sale de la seccin critica cambia de turno.(lnea 9 y 21)

2 INTERBLOQUEO

Segunda versin del algoritmo de Dekker es llamado Problema de


Interbloqueo, su nombre se debe a que si en cada rfaga de CPU, cada
proceso queda en el mismo estado, en el estado donde se le asigna que puede
entrar a la seccin critica (lnea 8 para el proceso 1 y lnea 21 para el proceso
2). Entonces estando los dos procesos con opcin a entrar, a la siguiente
rfaga de CPU ambos procesos verificaran si el proceso alterno puede entrar
(lnea 9 y 22), viendo que el proceso alterno tiene la opcin de entrar, los
procesos quedan bloqueados ya que se quedaran en ciclados bloquendose
mutuamente ya que no podrn entrar nunca a la seccin critica

Caractersticas:
Garantiza la exclusin mutua
No garantiza espera limitada

Descripcin del algoritmo

El proceso que es ejecutado despus de realizar sus tareas iniciales, a este


proceso se le permite entrar (lnea 8 y 21).
Cuando ya puede entrar verifica si otro proceso tiene la opcin de poder
entrar, si otro proceso tambin tiene la opcin de poder entrar se da un
interbloqueo. De lo contrario el proceso avanza a la seccin crtica (lnea 9 y
22).
Al salir de la seccin crtica el proceso cambia su opcin (lnea 11 y 24). Y
permite al otro proceso avanzar a la seccin crtica.

3 Colisin regin critica no garantiza la exclusin mutua.

La Tercera versin del algoritmo de Dekker es llamado Colisin regin crtica no


garantiza la exclusin mutua, como su nombre lo indica se da una colisin en la
regin crtica por la forma en que son colocados por as decirlo los permisos, ya que
primero se comprueba si otro proceso est dentro y luego se indica que el proceso en el
que se est actualmente cambia diciendo que est dentro.

Caractersticas
No garantiza la exclusin mutua
Colisin en la regin crtica

Algoritmo
boolean
p1_esta_dentro,
p2_esta_dentro;
Proceso1()
{
while( true )
[REALIZA_TAREAS_INICIALES]
while( p2_esta_dentro ){}
p1_esta_dentro = true;
[SECCIN_CRITICA]
p1_esta_dentro = false;
[REALIZA_TAREAS_FINALES]
}
}
Proceso2()
{
while( true )
{
[REALIZA_TAREAS_INICIALES]
while( p1_esta_dentro ){}
p2_esta_dentro = true;
[SECCIN_CRITICA]
p2_esta_dentro = false;
[REALIZA_TAREAS_FINALES]
}
}
iniciar()
{
p1_esta_dentro = false;
p2_esta_dentro = false;
Proceso1();
Proceso2();
}

Descripcin del Algoritmo


Al ejecutarse el proceso y despus de realizar sus tareas iniciales,
verifica si otro proceso est dentro de la seccin critica (lnea
rojo).
Si el otro proceso est dentro entonces espera a que salga de la
seccin crtica. De lo contrario pasa la fase de comprobacin y
cambia su estado a que est dentro (lnea verde).
Luego de pasar la seccin crtica cambia su estado (lnea azul),
termina sus tareas finales.

4 Postergacin Indefinida

Cuarta versin del algoritmo de Dekker es llamado Postergacin


Indefinida, su nombre se debe a que en una parte del cdigo es colocado
un retardo con un tiempo aleatorio, y el retardo puede ser muy grande
que no se sabe hasta cundo entrara a la seccin critica.
Caractersticas

Garantiza la exclusin mutua.

Un proceso o varios se quedan esperando a que suceda un evento que tal


vez nunca suceda.

Descripcin del algoritmo

Luego de realizar sus tareas iniciales el proceso solicita poder entrar en

la seccin crtica, si el otro proceso no puede entrar (lnea rojo) ya que su


estado es falso entonces el proceso entra si problema a la seccin critica.

De lo contrario si el otro proceso tambin puede entrar entonces se entra al


ciclo donde el proceso actual se niega el paso as mismo y con un retardo de x
tiempo siendo este aleatorio (lnea verde) se pausa el proceso, para darle va
libre a los otros procesos.

Luego de terminar su pausa entonces el proceso actual nuevamente puede


entrar y nuevamente si el otro proceso puede entrar se repite el ciclo y si no hay
otro proceso, entonces el proceso puede entrar en la seccin critica.

Cambia su estado (lnea azul) y luego realiza sus tareas finales.

5 Algoritmo Optimo
Quinta versin del algoritmo de Dekker Algoritmo Optimo, este algoritmo es una
combinacin del algoritmo 1 y 4.
Caractersticas

Garantiza la exclusin mutua.

Progreso

Espera limitada

Descripcin

Realiza las tareas iniciales, luego se verifica si hay otro


procesos que puede entrar, si lo hay se entra al ciclo y si es el
turno de algn otro proceso (lnea rojo) cambia su estado a ya
no poder entrar a la seccin crtica y nuevamente verifica si es
el turno de algn otro proceso (lnea verde) si lo es se queda
en ciclado hasta que se da un cambio de turno, luego
nuevamente retoma su estado de poder entrar a la seccin
critica, regresa al ciclo y verifica si hay otro proceso que puede
entrar entonces nuevamente se en cicla, de lo contrario entra a
la seccin critica.

Al salir de la seccin critica el proceso cambia su turno, cambia


su estado y realiza sus tareas finales.(lnea azul)

Conclusin
El algoritmo de dekker es el que da la solucin y permite utilizar
varios procesos en a un mismo recurso.
Por ejemplo cuando dos personas quieren utilizar algn cajero
automtico la persona 2 tendr que esperar su turno para poder
hacer uso de este.

GRACIAS

S-ar putea să vă placă și