SlideShare una empresa de Scribd logo
1 de 7
Nereixi Bacilio
(1)
, Wellington Basilio
(2)
, Hector Quiroga
(3)
, Merly Vera
(4)
Kerly Villon
(5)
Facultad de Sistemas y Telecomunicaciones
Universidad Estatal Península de Santa Elena
La Libertad – Ecuador
Nere_bacilio_3@hotmail.com
(1)
, wellingtonbasilio@hotmail.com
(2)
,
Hector_quiroga@hotmail.es
(3)
, m_erlyvera@yahoo.es
(4)
kervill@hotmail.com
(5)
dquirumbay@upse.edu.ec
SISTEMAS OPERATIVOS
Algoritmos de Dekker
RESUMEN
Este documentode refiere aunalgoritmo comoun conjuntoordenadoyfinitode operaciones
que permite hallarlasoluciónde unproblema.Métodoynotaciónenlasdistintasfórmulasdel
cálculo.El algoritmoconstituye unmétodopararesolverunproblemamedianteunasecuencia
de pasos a seguir. Dichasecuenciapuede ser expresada en forma de diagrama de flujo con el
fin de seguirlo de una forma más sencilla.
Dijkstra presentó un algoritmo de exclusión mutua para dos procesos que diseñó el
matemáticoholandésDekker.SegúnDijkstra,lasoluciónse desarrollaporetapas.Este método
tiene la ventaja de ilustrar la mayoría de los errores habituales que se producen en la
construcción de programas concurrentes. 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.
Las personas solemos pasar por alto muchas cosas que al parecer son tan simples que las
hacemosnaturalmente.Si yote digoque levantesunbrazolohacessin ninguna complicación,
inclusive aparentaque norequieresesforzarteenello,peroparaque lo logres tu cuerpo sigue
algoritmos biológicos tan rápidamente que no nos percatamos de cada paso que se sigue.
BIOGRAFÍA EDSGER DIJKSTRA
Se ha considerado la biografía porque ha
dado lamayor cantidadde solucionesen la
gestión de procesos en los sistemas
operativos.
Nació el 11 de mayo de 1930 fue un
científico de la computación de origen
Dijkstra estudió física teórica en la
Universidad. Trabajó como investigador
para BurroughsCorporationa principiosde
los años 1970. En la Universidad de
Texas en Austin, Estados Unidos, ocupó el
Schlumberger Centennial Chair in
Computer Sciences. Se retiró en 2000.
Entre sus contribuciones a la informática
está el algoritmo de caminos mínimos;
también conocido como Algoritmo de
Dijkstra. Recibió el Premio Turing en 1972.
Falleció el 6 de agosto de 2002
INTRODUCCIÓN
Algoritmo de dekker se basa en 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 de
ejecución
Fue uno de los primeros algoritmos de
exclusión mutua inventados,
implementado por Edsger Dijkstra.
Si ambos procesos intentan acceder a la
sección crítica simultáneamente, el
algoritmo elige un proceso según una
variable de turno. Si el otro proceso está
ejecutando en su sección crítica, deberá
esperar su finalización.
Los algoritmos de Dekker so los procesos
que comparten la variable recurso, y se
bebe evitar que mientras un proceso esté
accediendo a la variable, otro proceso la
esté modificando al mismo tiempo.
Mediante el algoritmo de DEKKER se
consigue:
 Exclusión 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
Para el programa hemos elegido que el
númerode procesos sea cuatro, aunque el
número de ellos puede variar a
conveniencia,modificándoloenel #define.
ALGORITMO DE DEKKER
El algoritmode Dekkeresunalgoritmoque
da solución a la exclusión mutua ósea la
solución cuando dos o más procesos
tratan de acceder a un mismo recurso no
compartible.
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.
Edsger Dijkstra es uno de los grandes
matemáticos en la historia de la
matemática moderna.
Existen cinco versiones del algoritmo
Dekker,teniendociertosfalloslosprimeros
cuatro. La versión 5 es la que trabaja más
eficientemente, siendo una combinación
de la 1 y la 4.
Versión 1: Alternancia estricta.
Versión 2: Problema interbloqueo.
Versión 3: Colisión región crítica
Versión 4: Postergación indefinida.
Versión 5: Algoritmo Óptimo
Versión 1: alternancia estricta
La primer versión del algoritmo de Dekker
es Alternancia Estricta, es llamado de esta
manera ya que obliga a que cada proceso
tengaun turno,oseaque hay un cambiode
turno cada vez que un proceso sale de la
seccióncritica,por lotanto si un procesoes
lento atrasara a otros procesos que
son rápidos.
Características:
 Garantiza la exclusión mutua
 Su sincronización es forzada
 Acoplafuertemente a los procesos
(procesos lentos atrasan a
procesos rápidos)
 No garantiza la progresión, ya que
si un proceso por alguna razón es
bloqueado dentro o fuera de la
secciónpuede bloquear a los otros
procesos.
Algoritmo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
int turno_proceso; //1 proceso 1, 2 proceso 2
Proceso1()
{
while( true )
{
[REALIZA_TAREAS_INICIALES]
while( turno_proceso == 2 ){}
[SECCION_CRITICA]
turno_proceso = 2;
[REALIZA_TAREAS_FINALES]
}
}
Proceso2()
{
while( true )
{
[REALIZA_TAREAS_INICIALES]
while( turno_proceso == 1 ){}
[SECCION_CRITICA]
turno_proceso = 1;
[REALIZA_TAREAS_FINALES]
}
}
iniciar(){
turno_proceso = 1;
Proceso1();
Proceso2();
}
Descripción 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.(línea 7 y
19)
 De lo contrario si es su turno
avanza a la sección crítica.
 Cuando el proceso sale de la
sección crítica cambia de turno.
(línea 9 y 21).
Versión 2: problema
interbloqueo
Segunda versión del algoritmo de Dekker
es llamado Problema de Interbloqueo, su
nombre se debe a que si en cada ráfaga de
CPU, cada proceso queda en el mismo
estado,enel estadodonde se le asignaque
Ejemplocuandodos personas quieren
utilizar algún cajero automático la
persona2 tendrá que esperar su turno
para poder hacer uso de este.
puede entrar a la sección critica (línea 8
para el proceso 1 y línea 21 para el proceso
2). Entonces estando los dos procesos
con opción a entrar, a la siguiente ráfaga
de CPU ambos procesos verificaran si el
procesoalternopuede entrar(línea9 y 22),
viendo que el proceso alterno tiene
la opción de entrar, los procesos quedan
bloqueados ya que se quedaran en
ciclados bloqueándose mutuamente yaque
no podrán entrar nunca a la sección critica
Características:
 Garantiza la exclusión mutua
 No garantiza espera limitada
Algoritmo
Descripcióndel algoritmo
 El proceso que es
ejecutado después de realizar sus
tareasiniciales,aeste procesose le
permite entrar (línea 8 y 21).
 Cuando ya puede entrar verifica si
otro proceso tiene la opción de
poder entrar, si otro proceso
también tiene la opción de poder
entrar se da un interbloqueo.De lo
contrario el proceso avanza a la
sección crítica (línea 9 y 22).
 Al salir de la sección crítica el
procesocambia su opción (línea 11
y 24). Y permite al otro proceso
avanzar a la sección crítica.
Versión 3 - Colisión región critica no
garantiza la exclusión mutua.
La Terceraversióndel algoritmode Dekker
es llamado Colisión región crítica no
garantiza la exclusión mutua, como su
nombre lo indica se da una colisión en la
región crítica 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. Y el
problema se da cuando los
procesos después de haber tenido sus
ráfagas de CPU pasan de la fase de
comprobación y se tiene libre el camino
para entrar a la región crítica, generando
esto una colisión.
Características
 No garantizalaexclusiónmutua
 Colisiónenlaregióncrítica
Algoritmo
boolean p1_esta_dentro, p2_esta_dentro;
Proceso1()
{
while( true )
[REALIZA_TAREAS_INICIALES]
while( p2_esta_dentro ){}
boolean p1_puede_entrar, p2_puede_entrar;
Proceso1()
{
while( true )
{
[REALIZA_TAREAS_INICIALES]
p1_puede_entrar = true;
while( p2_puede_entrar ){}
[SECCION_CRITICA]
p1_puede_entrar = false;
[REALIZA_TAREAS_FINALES]
}
}
Proceso2()
{
while( true )
{
[REALIZA_TAREAS_INICIALES]
p2_puede_entrar = true;
while( p1_puede_entrar ){}
[SECCION_CRITICA]
p2_puede_entrar = false;
[REALIZA_TAREAS_FINALES]
}
}
iniciar()
{
p1_puede_entrar = false;
p2_puede_entrar = false;
Proceso1();
Proceso2();
}
p1_esta_dentro = true;
[SECCIÓN_CRITICA]
p1_esta_dentro = false;
[REALIZA_TAREAS_FINALES]
}
}
Proceso2()
{
while( true )
{
[REALIZA_TAREAS_INICIALES]
while( p1_esta_dentro ){}
p2_esta_dentro = true;
[SECCIÓN_CRITICA]
p2_esta_dentro = false;
[REALIZA_TAREAS_FINALES]
}
}
iniciar()
{
p1_esta_dentro = false;
p2_esta_dentro = false;
Proceso1();
Proceso2();
}
Descripcióndel Algoritmo
 Al ejecutarse el proceso y después
de realizar sus tareas iniciales,
verificasi otro proceso está dentro
de la sección critica (línea rojo).
 Si el otro proceso está dentro
entonces espera a que salga de la
sección crítica. De lo contrario pasa
la fase de comprobación y cambia
su estado a que está dentro (línea
verde).
 Luego de pasar la sección crítica
cambia su estado (línea azul),
termina sus tareas finales.
Versión 4 - Postergación Indefinida
Cuarta versión del algoritmo de Dekker es
llamado Postergación Indefinida, su
nombre se debe a que en una parte del
código es colocado un retardo con un
tiempo aleatorio, y el retardo puede ser
muy grande que no se sabe hasta cuándo
entrara a la sección critica.
Características
 Garantiza laexclusiónmutua.
 Un procesoo variosse quedan
esperandoaque sucedaun evento
que tal veznuncasuceda.
Algoritmo
boolean p1_puede_entrar, p2_puede_entrar;
Proceso1()
{
while( true )
{
[REALIZA_TAREAS_INICIALES]
p1_puede_entrar = true;
while( p2_puede_entrar )
{
p1_puede_entrar = false;
retardo( tiempo_x ); //tiempo_x es un tiempo
Aleatorio
p1_puede_entrar = true;
}
[SECCION_CRITICA]
p1_puede_entrar = false;
[REALIZA_TAREAS_FINALES]
}
}
Proceso2()
{
while( true )
{
[REALIZA_TAREAS_INICIALES]
p2_puede_entrar = true;
while( p1_puede_entrar )
{
p2_puede_entrar = false;
retardo( tiempo_x ); //tiempo_x es un tiempo
aleatorio
p2_puede_entrar = true;
}
[SECCION_CRITICA]
p2_puede_entrar = false;
[REALIZA_TAREAS_FINALES]
}
}
iniciar()
{
p1_puede_entrar = false;
p2_puede_entrar = false;
Proceso1();
Proceso2();
}
Descripcióndel algoritmo
 Luego de realizar sus tareas
iniciales el proceso solicita poder
entrar en la sección crítica, si el
otro proceso no puede entrar
(línea rojo) ya que su estado es
falso entonces el proceso entra si
problema a la sección critica.
 De lo contrario si el otro
proceso también puede entrar
entoncesse entra al ciclo donde el
proceso actual se niega el
paso así mismoy con unretardode
x tiempo siendo este aleatorio
(línea verde) se pausa el proceso,
para darle vía 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
procesopuede entraren la sección
critica.
 Cambia su estado (línea azul) y
luego realiza sus tareas finales.
Versión 5- Algoritmo Optimo
Quinta versión del algoritmo de Dekker
Algoritmo Optimo, este algoritmo es una
combinación del algoritmo 1 y 4.
Características
 Garantiza la exclusión mutua.
 Progreso
 Espera limitada
Algoritmo
boolean p1_puede_entrar, p2_puede_entrar;
int turno;
Proceso1()
{
while( true )
{
[REALIZA_TAREAS_INICIALES]
p1_puede_entrar = true;
while( p2_puede_entrar )
{
if( turno == 2 )
{
p1_puede_entrar = false;
while( turno == 2 ){}
p1_puede_entrar = true;
}
}
[REGION_CRITICA]
turno = 2;
p1_puede_entrar = false;
[REALIZA_TAREAS_FINALES]
}
}
Proceso2()
{
while( true )
{
[REALIZA_TAREAS_INICIALES]
p2_puede_entrar = true;
while( p1_puede_entrar )
{
if( turno == 1 )
{
p2_puede_entrar = false;
while( turno == 1 ){}
p2_puede_entrar = true;
}
}
[REGION_CRITICA]
turno = 1;
p2_puede_entrar = false;
[REALIZA_TAREAS_FINALES]
}
}
iniciar()
{
p1_puede_entrar = false;
p2_puede_entrar = false;
turno = 1;
Proceso1();
Proceso2();
}
Descripción
 Se realizalastareas iniciales, luego
se verificasi hay otro procesos que
puede entrar, si lo hay se entra al
ciclo y si es el turno de algún otro
proceso (línea rojo) cambia su
estado a ya no poder entrar a la
sección crítica y nuevamente
verificasi es el turno de algún otro
proceso (línea 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 sección critica,
regresaal cicloy verificasi hayotro
proceso que puede entrar
entonces nuevamente se en cicla,
de lo contrario entra a la sección
critica.
 Al salir de la sección critica el
proceso cambia su turno, cambia
su estado y realiza sus tareas
finales.(línea azul)
Conclusión
Concluyo que este proceso de estudio de
Dijkstra ha hecho una muy buena
aportación en el proyecto que estamos
dando a conocer con un tema muy
importante que se utilizaenlainformática,
ya que esta lleva una secuencia de pasos a
seguir en el algoritmo de dekker
El algoritmo de dekker es el que da la
soluciónde problemas informáticos para y
permite utilizar varios procesos en a un
mismo recurso.
Referencias
 AprendiendoSoftwareDate A Live
http://aprendiendo-
software.blogspot.com/2011/12/al
goritmo-de-dekker-version-1.html
Postedby: Juan Jose GrajedaCuesi
viernes,23de diciembre de 2011
Actualización:2015
 AprendiendoSoftwareDate A Live
http://aprendiendo-
software.blogspot.com/2011/12/al
goritmo-de-dekker-version-2-
problema.html
Postedby: Juan Jose GrajedaCuesi
viernes,23de diciembre de 2011
Actualización:2015
 AprendiendoSoftwareDate A Live
http://aprendiendo-
software.blogspot.com/2011/12/al
goritmo-de-dekker-version-3-
colision.html
Postedby: Juan Jose GrajedaCuesi
Viernes,23de diciembre de 2011
Actualización:2015
 AprendiendoSoftwareDate A Live
http://aprendiendo-
software.blogspot.com/2011/12/al
goritmo-de-dekker-version-4.html
Postedby: Juan Jose GrajedaCuesi
Ultimoaccesosábado,24 de
diciembre de 2011 Actualización:
2015
 AprendiendoSoftwareDate A Live
http://aprendiendo-
software.blogspot.com/2011/12/al
goritmo-de-dekker-version-5.html
Postedby: Juan Jose GrajedaCuesi
Sábado,24 de diciembre de 2011
Actualización:2015
 Wikigote
https://es.wikiquote.org/wiki/Edsg
er_Dijkstra
Modificadapor últimavezel 26
abr 2014 a las21:40.

Más contenido relacionado

La actualidad más candente

Procesos e Hilos en los Sistemas Operativos
Procesos e Hilos en los Sistemas OperativosProcesos e Hilos en los Sistemas Operativos
Procesos e Hilos en los Sistemas OperativosEmmanuel Fortuna
 
Búsqueda secuencial en tabla ordenada
Búsqueda secuencial  en tabla ordenadaBúsqueda secuencial  en tabla ordenada
Búsqueda secuencial en tabla ordenadaEdwin Chavarria
 
Listas de adyacencia
Listas de adyacenciaListas de adyacencia
Listas de adyacencialeidy2220
 
Los lenguajes aceptados para una maquina de turing
Los lenguajes aceptados para una maquina de turingLos lenguajes aceptados para una maquina de turing
Los lenguajes aceptados para una maquina de turingJonathan Bastidas
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Giancarlo Aguilar
 
Analizador Sintáctico
Analizador SintácticoAnalizador Sintáctico
Analizador SintácticoPablo Guerra
 
Control de flujo en Telecomunicaciones
Control de flujo en TelecomunicacionesControl de flujo en Telecomunicaciones
Control de flujo en TelecomunicacionesDaniel Morales
 
automatas finitos
 automatas finitos automatas finitos
automatas finitosAnel Sosa
 
Diagrama de 7 estados
Diagrama de 7 estadosDiagrama de 7 estados
Diagrama de 7 estadoszombra18
 
Algoritmos de busqueda - hash truncamiento
Algoritmos de busqueda - hash truncamientoAlgoritmos de busqueda - hash truncamiento
Algoritmos de busqueda - hash truncamientoLutzo Guzmán
 

La actualidad más candente (20)

Administración de memoria
Administración de memoriaAdministración de memoria
Administración de memoria
 
Procesos e Hilos en los Sistemas Operativos
Procesos e Hilos en los Sistemas OperativosProcesos e Hilos en los Sistemas Operativos
Procesos e Hilos en los Sistemas Operativos
 
Búsqueda secuencial en tabla ordenada
Búsqueda secuencial  en tabla ordenadaBúsqueda secuencial  en tabla ordenada
Búsqueda secuencial en tabla ordenada
 
Control de Flujo [Telecomunicaciones]
Control de Flujo [Telecomunicaciones]Control de Flujo [Telecomunicaciones]
Control de Flujo [Telecomunicaciones]
 
Listas de adyacencia
Listas de adyacenciaListas de adyacencia
Listas de adyacencia
 
Los lenguajes aceptados para una maquina de turing
Los lenguajes aceptados para una maquina de turingLos lenguajes aceptados para una maquina de turing
Los lenguajes aceptados para una maquina de turing
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.
 
control de concurrencia
control de concurrenciacontrol de concurrencia
control de concurrencia
 
Analizador Sintáctico
Analizador SintácticoAnalizador Sintáctico
Analizador Sintáctico
 
Control de flujo en Telecomunicaciones
Control de flujo en TelecomunicacionesControl de flujo en Telecomunicaciones
Control de flujo en Telecomunicaciones
 
Algoritmos de Ordenamiento externo
Algoritmos de Ordenamiento externoAlgoritmos de Ordenamiento externo
Algoritmos de Ordenamiento externo
 
ESTRUCTURA DE CAPAS DEL SISTEMA OPERATIVO
ESTRUCTURA DE CAPAS DEL SISTEMA OPERATIVOESTRUCTURA DE CAPAS DEL SISTEMA OPERATIVO
ESTRUCTURA DE CAPAS DEL SISTEMA OPERATIVO
 
automatas finitos
 automatas finitos automatas finitos
automatas finitos
 
Traductor y su estructura
Traductor y su estructuraTraductor y su estructura
Traductor y su estructura
 
Manejo de memoria
Manejo de memoriaManejo de memoria
Manejo de memoria
 
Analisis Algoritmo
Analisis AlgoritmoAnalisis Algoritmo
Analisis Algoritmo
 
Diagrama de 7 estados
Diagrama de 7 estadosDiagrama de 7 estados
Diagrama de 7 estados
 
Algoritmos de busqueda - hash truncamiento
Algoritmos de busqueda - hash truncamientoAlgoritmos de busqueda - hash truncamiento
Algoritmos de busqueda - hash truncamiento
 
Estructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busquedaEstructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busqueda
 
Pilas y colas
Pilas y colasPilas y colas
Pilas y colas
 

Similar a Algoritmos de dekker

Algorit. De Dekker
Algorit. De DekkerAlgorit. De Dekker
Algorit. De DekkerLuz_star
 
Comunicación y Sincronizacion de Procesos
Comunicación y Sincronizacion de ProcesosComunicación y Sincronizacion de Procesos
Comunicación y Sincronizacion de ProcesosLorena Ramos
 
Sincronizacion de Procesos
Sincronizacion de ProcesosSincronizacion de Procesos
Sincronizacion de Procesosmastermind87
 
Programacion concurrente
Programacion concurrenteProgramacion concurrente
Programacion concurrentepuracastillo
 
Exclusión mutua
Exclusión mutuaExclusión mutua
Exclusión mutuatatyseli
 
Presentación1
Presentación1Presentación1
Presentación1janet290
 
Taller concurrencia y exclusión mutua.
Taller concurrencia y exclusión mutua.Taller concurrencia y exclusión mutua.
Taller concurrencia y exclusión mutua.Andrea
 
S Incronizacion De Procesos
S Incronizacion De ProcesosS Incronizacion De Procesos
S Incronizacion De ProcesosAcristyM
 
S Incronizacion De Procesos
S Incronizacion De ProcesosS Incronizacion De Procesos
S Incronizacion De ProcesosAcristyM
 
2° unidad sistemas operativos
2° unidad sistemas operativos2° unidad sistemas operativos
2° unidad sistemas operativosCrisel777
 
Algoritmos DEKKER y PETERSON
Algoritmos DEKKER y PETERSONAlgoritmos DEKKER y PETERSON
Algoritmos DEKKER y PETERSONPANAFMX
 
Descripcion y control de procesos
Descripcion y control de procesosDescripcion y control de procesos
Descripcion y control de procesosLlabajo Baez
 
Estados y transiciones de un proceso
Estados y transiciones de un procesoEstados y transiciones de un proceso
Estados y transiciones de un procesoJHOVANI189612GAZGA
 
Sistemas operativos unidad 2
Sistemas operativos unidad 2Sistemas operativos unidad 2
Sistemas operativos unidad 2Luis Cigarroa
 
Modulo "Presentaciones Visuales"
Modulo "Presentaciones Visuales"Modulo "Presentaciones Visuales"
Modulo "Presentaciones Visuales"arielomv
 
Unidad 2 sist. oper. 1
Unidad 2 sist. oper. 1Unidad 2 sist. oper. 1
Unidad 2 sist. oper. 1honeyjimenez
 
Sincronización de Procesos
Sincronización de Procesos Sincronización de Procesos
Sincronización de Procesos Cristhian Rosales
 

Similar a Algoritmos de dekker (20)

Algorit. De Dekker
Algorit. De DekkerAlgorit. De Dekker
Algorit. De Dekker
 
Comunicación y Sincronizacion de Procesos
Comunicación y Sincronizacion de ProcesosComunicación y Sincronizacion de Procesos
Comunicación y Sincronizacion de Procesos
 
Sincronizacion de Procesos
Sincronizacion de ProcesosSincronizacion de Procesos
Sincronizacion de Procesos
 
Programacion concurrente
Programacion concurrenteProgramacion concurrente
Programacion concurrente
 
UNIDAD II ADMINISTRADOR DE PROCESADOR
UNIDAD II ADMINISTRADOR DE PROCESADORUNIDAD II ADMINISTRADOR DE PROCESADOR
UNIDAD II ADMINISTRADOR DE PROCESADOR
 
Exclusión mutua
Exclusión mutuaExclusión mutua
Exclusión mutua
 
Presentación1
Presentación1Presentación1
Presentación1
 
Taller concurrencia y exclusión mutua.
Taller concurrencia y exclusión mutua.Taller concurrencia y exclusión mutua.
Taller concurrencia y exclusión mutua.
 
S Incronizacion De Procesos
S Incronizacion De ProcesosS Incronizacion De Procesos
S Incronizacion De Procesos
 
S Incronizacion De Procesos
S Incronizacion De ProcesosS Incronizacion De Procesos
S Incronizacion De Procesos
 
2° unidad sistemas operativos
2° unidad sistemas operativos2° unidad sistemas operativos
2° unidad sistemas operativos
 
Algoritmos DEKKER y PETERSON
Algoritmos DEKKER y PETERSONAlgoritmos DEKKER y PETERSON
Algoritmos DEKKER y PETERSON
 
Actividad 4
Actividad 4Actividad 4
Actividad 4
 
Descripcion y control de procesos
Descripcion y control de procesosDescripcion y control de procesos
Descripcion y control de procesos
 
Estados y transiciones de un proceso
Estados y transiciones de un procesoEstados y transiciones de un proceso
Estados y transiciones de un proceso
 
Sistemas operativos unidad 2
Sistemas operativos unidad 2Sistemas operativos unidad 2
Sistemas operativos unidad 2
 
Modulo "Presentaciones Visuales"
Modulo "Presentaciones Visuales"Modulo "Presentaciones Visuales"
Modulo "Presentaciones Visuales"
 
Unidad 2 sist. oper. 1
Unidad 2 sist. oper. 1Unidad 2 sist. oper. 1
Unidad 2 sist. oper. 1
 
2.4 Cuestionario de comunicacion entre procesos
2.4 Cuestionario de comunicacion entre procesos2.4 Cuestionario de comunicacion entre procesos
2.4 Cuestionario de comunicacion entre procesos
 
Sincronización de Procesos
Sincronización de Procesos Sincronización de Procesos
Sincronización de Procesos
 

Último

NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfNUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfisrael garcia
 
institucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalenainstitucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalenajuniorcuellargomez
 
Buscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la webBuscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la webDecaunlz
 
COMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdfCOMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdfOscarBlas6
 
Institucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalenaInstitucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalenadanielaerazok
 
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENAINSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENAdanielaerazok
 
12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdfedwinmelgarschlink2
 
libro de Ciencias Sociales_6to grado.pdf
libro de Ciencias Sociales_6to grado.pdflibro de Ciencias Sociales_6to grado.pdf
libro de Ciencias Sociales_6to grado.pdfFAUSTODANILOCRUZCAST
 
Guia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdfGuia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdflauradbernals
 
COMOGANARAMIGODPARACRISTOIGLESIAADVENTISTANECOCLI,COM
COMOGANARAMIGODPARACRISTOIGLESIAADVENTISTANECOCLI,COMCOMOGANARAMIGODPARACRISTOIGLESIAADVENTISTANECOCLI,COM
COMOGANARAMIGODPARACRISTOIGLESIAADVENTISTANECOCLI,COMcespitiacardales
 

Último (10)

NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfNUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
 
institucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalenainstitucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalena
 
Buscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la webBuscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la web
 
COMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdfCOMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdf
 
Institucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalenaInstitucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalena
 
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENAINSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
 
12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf
 
libro de Ciencias Sociales_6to grado.pdf
libro de Ciencias Sociales_6to grado.pdflibro de Ciencias Sociales_6to grado.pdf
libro de Ciencias Sociales_6to grado.pdf
 
Guia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdfGuia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdf
 
COMOGANARAMIGODPARACRISTOIGLESIAADVENTISTANECOCLI,COM
COMOGANARAMIGODPARACRISTOIGLESIAADVENTISTANECOCLI,COMCOMOGANARAMIGODPARACRISTOIGLESIAADVENTISTANECOCLI,COM
COMOGANARAMIGODPARACRISTOIGLESIAADVENTISTANECOCLI,COM
 

Algoritmos de dekker

  • 1. Nereixi Bacilio (1) , Wellington Basilio (2) , Hector Quiroga (3) , Merly Vera (4) Kerly Villon (5) Facultad de Sistemas y Telecomunicaciones Universidad Estatal Península de Santa Elena La Libertad – Ecuador Nere_bacilio_3@hotmail.com (1) , wellingtonbasilio@hotmail.com (2) , Hector_quiroga@hotmail.es (3) , m_erlyvera@yahoo.es (4) kervill@hotmail.com (5) dquirumbay@upse.edu.ec SISTEMAS OPERATIVOS Algoritmos de Dekker RESUMEN Este documentode refiere aunalgoritmo comoun conjuntoordenadoyfinitode operaciones que permite hallarlasoluciónde unproblema.Métodoynotaciónenlasdistintasfórmulasdel cálculo.El algoritmoconstituye unmétodopararesolverunproblemamedianteunasecuencia de pasos a seguir. Dichasecuenciapuede ser expresada en forma de diagrama de flujo con el fin de seguirlo de una forma más sencilla. Dijkstra presentó un algoritmo de exclusión mutua para dos procesos que diseñó el matemáticoholandésDekker.SegúnDijkstra,lasoluciónse desarrollaporetapas.Este método tiene la ventaja de ilustrar la mayoría de los errores habituales que se producen en la construcción de programas concurrentes. 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. Las personas solemos pasar por alto muchas cosas que al parecer son tan simples que las hacemosnaturalmente.Si yote digoque levantesunbrazolohacessin ninguna complicación, inclusive aparentaque norequieresesforzarteenello,peroparaque lo logres tu cuerpo sigue algoritmos biológicos tan rápidamente que no nos percatamos de cada paso que se sigue.
  • 2. BIOGRAFÍA EDSGER DIJKSTRA Se ha considerado la biografía porque ha dado lamayor cantidadde solucionesen la gestión de procesos en los sistemas operativos. Nació el 11 de mayo de 1930 fue un científico de la computación de origen Dijkstra estudió física teórica en la Universidad. Trabajó como investigador para BurroughsCorporationa principiosde los años 1970. En la Universidad de Texas en Austin, Estados Unidos, ocupó el Schlumberger Centennial Chair in Computer Sciences. Se retiró en 2000. Entre sus contribuciones a la informática está el algoritmo de caminos mínimos; también conocido como Algoritmo de Dijkstra. Recibió el Premio Turing en 1972. Falleció el 6 de agosto de 2002 INTRODUCCIÓN Algoritmo de dekker se basa en 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 de ejecución Fue uno de los primeros algoritmos de exclusión mutua inventados, implementado por Edsger Dijkstra. Si ambos procesos intentan acceder a la sección crítica simultáneamente, el algoritmo elige un proceso según una variable de turno. Si el otro proceso está ejecutando en su sección crítica, deberá esperar su finalización. Los algoritmos de Dekker so los procesos que comparten la variable recurso, y se bebe evitar que mientras un proceso esté accediendo a la variable, otro proceso la esté modificando al mismo tiempo. Mediante el algoritmo de DEKKER se consigue:  Exclusión 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 Para el programa hemos elegido que el númerode procesos sea cuatro, aunque el número de ellos puede variar a conveniencia,modificándoloenel #define. ALGORITMO DE DEKKER El algoritmode Dekkeresunalgoritmoque da solución a la exclusión mutua ósea la solución cuando dos o más procesos tratan de acceder a un mismo recurso no compartible. 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. Edsger Dijkstra es uno de los grandes matemáticos en la historia de la matemática moderna.
  • 3. Existen cinco versiones del algoritmo Dekker,teniendociertosfalloslosprimeros cuatro. La versión 5 es la que trabaja más eficientemente, siendo una combinación de la 1 y la 4. Versión 1: Alternancia estricta. Versión 2: Problema interbloqueo. Versión 3: Colisión región crítica Versión 4: Postergación indefinida. Versión 5: Algoritmo Óptimo Versión 1: alternancia estricta La primer versión del algoritmo de Dekker es Alternancia Estricta, es llamado de esta manera ya que obliga a que cada proceso tengaun turno,oseaque hay un cambiode turno cada vez que un proceso sale de la seccióncritica,por lotanto si un procesoes lento atrasara a otros procesos que son rápidos. Características:  Garantiza la exclusión mutua  Su sincronización es forzada  Acoplafuertemente a los procesos (procesos lentos atrasan a procesos rápidos)  No garantiza la progresión, ya que si un proceso por alguna razón es bloqueado dentro o fuera de la secciónpuede bloquear a los otros procesos. Algoritmo 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 int turno_proceso; //1 proceso 1, 2 proceso 2 Proceso1() { while( true ) { [REALIZA_TAREAS_INICIALES] while( turno_proceso == 2 ){} [SECCION_CRITICA] turno_proceso = 2; [REALIZA_TAREAS_FINALES] } } Proceso2() { while( true ) { [REALIZA_TAREAS_INICIALES] while( turno_proceso == 1 ){} [SECCION_CRITICA] turno_proceso = 1; [REALIZA_TAREAS_FINALES] } } iniciar(){ turno_proceso = 1; Proceso1(); Proceso2(); } Descripción 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.(línea 7 y 19)  De lo contrario si es su turno avanza a la sección crítica.  Cuando el proceso sale de la sección crítica cambia de turno. (línea 9 y 21). Versión 2: problema interbloqueo Segunda versión del algoritmo de Dekker es llamado Problema de Interbloqueo, su nombre se debe a que si en cada ráfaga de CPU, cada proceso queda en el mismo estado,enel estadodonde se le asignaque Ejemplocuandodos personas quieren utilizar algún cajero automático la persona2 tendrá que esperar su turno para poder hacer uso de este.
  • 4. puede entrar a la sección critica (línea 8 para el proceso 1 y línea 21 para el proceso 2). Entonces estando los dos procesos con opción a entrar, a la siguiente ráfaga de CPU ambos procesos verificaran si el procesoalternopuede entrar(línea9 y 22), viendo que el proceso alterno tiene la opción de entrar, los procesos quedan bloqueados ya que se quedaran en ciclados bloqueándose mutuamente yaque no podrán entrar nunca a la sección critica Características:  Garantiza la exclusión mutua  No garantiza espera limitada Algoritmo Descripcióndel algoritmo  El proceso que es ejecutado después de realizar sus tareasiniciales,aeste procesose le permite entrar (línea 8 y 21).  Cuando ya puede entrar verifica si otro proceso tiene la opción de poder entrar, si otro proceso también tiene la opción de poder entrar se da un interbloqueo.De lo contrario el proceso avanza a la sección crítica (línea 9 y 22).  Al salir de la sección crítica el procesocambia su opción (línea 11 y 24). Y permite al otro proceso avanzar a la sección crítica. Versión 3 - Colisión región critica no garantiza la exclusión mutua. La Terceraversióndel algoritmode Dekker es llamado Colisión región crítica no garantiza la exclusión mutua, como su nombre lo indica se da una colisión en la región crítica 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. Y el problema se da cuando los procesos después de haber tenido sus ráfagas de CPU pasan de la fase de comprobación y se tiene libre el camino para entrar a la región crítica, generando esto una colisión. Características  No garantizalaexclusiónmutua  Colisiónenlaregióncrítica Algoritmo boolean p1_esta_dentro, p2_esta_dentro; Proceso1() { while( true ) [REALIZA_TAREAS_INICIALES] while( p2_esta_dentro ){} boolean p1_puede_entrar, p2_puede_entrar; Proceso1() { while( true ) { [REALIZA_TAREAS_INICIALES] p1_puede_entrar = true; while( p2_puede_entrar ){} [SECCION_CRITICA] p1_puede_entrar = false; [REALIZA_TAREAS_FINALES] } } Proceso2() { while( true ) { [REALIZA_TAREAS_INICIALES] p2_puede_entrar = true; while( p1_puede_entrar ){} [SECCION_CRITICA] p2_puede_entrar = false; [REALIZA_TAREAS_FINALES] } } iniciar() { p1_puede_entrar = false; p2_puede_entrar = false; Proceso1(); Proceso2(); }
  • 5. p1_esta_dentro = true; [SECCIÓN_CRITICA] p1_esta_dentro = false; [REALIZA_TAREAS_FINALES] } } Proceso2() { while( true ) { [REALIZA_TAREAS_INICIALES] while( p1_esta_dentro ){} p2_esta_dentro = true; [SECCIÓN_CRITICA] p2_esta_dentro = false; [REALIZA_TAREAS_FINALES] } } iniciar() { p1_esta_dentro = false; p2_esta_dentro = false; Proceso1(); Proceso2(); } Descripcióndel Algoritmo  Al ejecutarse el proceso y después de realizar sus tareas iniciales, verificasi otro proceso está dentro de la sección critica (línea rojo).  Si el otro proceso está dentro entonces espera a que salga de la sección crítica. De lo contrario pasa la fase de comprobación y cambia su estado a que está dentro (línea verde).  Luego de pasar la sección crítica cambia su estado (línea azul), termina sus tareas finales. Versión 4 - Postergación Indefinida Cuarta versión del algoritmo de Dekker es llamado Postergación Indefinida, su nombre se debe a que en una parte del código es colocado un retardo con un tiempo aleatorio, y el retardo puede ser muy grande que no se sabe hasta cuándo entrara a la sección critica. Características  Garantiza laexclusiónmutua.  Un procesoo variosse quedan esperandoaque sucedaun evento que tal veznuncasuceda. Algoritmo boolean p1_puede_entrar, p2_puede_entrar; Proceso1() { while( true ) { [REALIZA_TAREAS_INICIALES] p1_puede_entrar = true; while( p2_puede_entrar ) { p1_puede_entrar = false; retardo( tiempo_x ); //tiempo_x es un tiempo Aleatorio p1_puede_entrar = true; } [SECCION_CRITICA] p1_puede_entrar = false; [REALIZA_TAREAS_FINALES] } } Proceso2() { while( true ) { [REALIZA_TAREAS_INICIALES] p2_puede_entrar = true; while( p1_puede_entrar ) { p2_puede_entrar = false; retardo( tiempo_x ); //tiempo_x es un tiempo aleatorio p2_puede_entrar = true; } [SECCION_CRITICA] p2_puede_entrar = false; [REALIZA_TAREAS_FINALES] } } iniciar() { p1_puede_entrar = false; p2_puede_entrar = false; Proceso1(); Proceso2(); }
  • 6. Descripcióndel algoritmo  Luego de realizar sus tareas iniciales el proceso solicita poder entrar en la sección crítica, si el otro proceso no puede entrar (línea rojo) ya que su estado es falso entonces el proceso entra si problema a la sección critica.  De lo contrario si el otro proceso también puede entrar entoncesse entra al ciclo donde el proceso actual se niega el paso así mismoy con unretardode x tiempo siendo este aleatorio (línea verde) se pausa el proceso, para darle vía 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 procesopuede entraren la sección critica.  Cambia su estado (línea azul) y luego realiza sus tareas finales. Versión 5- Algoritmo Optimo Quinta versión del algoritmo de Dekker Algoritmo Optimo, este algoritmo es una combinación del algoritmo 1 y 4. Características  Garantiza la exclusión mutua.  Progreso  Espera limitada Algoritmo boolean p1_puede_entrar, p2_puede_entrar; int turno; Proceso1() { while( true ) { [REALIZA_TAREAS_INICIALES] p1_puede_entrar = true; while( p2_puede_entrar ) { if( turno == 2 ) { p1_puede_entrar = false; while( turno == 2 ){} p1_puede_entrar = true; } } [REGION_CRITICA] turno = 2; p1_puede_entrar = false; [REALIZA_TAREAS_FINALES] } } Proceso2() { while( true ) { [REALIZA_TAREAS_INICIALES] p2_puede_entrar = true; while( p1_puede_entrar ) { if( turno == 1 ) { p2_puede_entrar = false; while( turno == 1 ){} p2_puede_entrar = true; } } [REGION_CRITICA] turno = 1; p2_puede_entrar = false; [REALIZA_TAREAS_FINALES] } } iniciar() { p1_puede_entrar = false; p2_puede_entrar = false; turno = 1; Proceso1(); Proceso2(); } Descripción  Se realizalastareas iniciales, luego se verificasi hay otro procesos que puede entrar, si lo hay se entra al ciclo y si es el turno de algún otro proceso (línea rojo) cambia su estado a ya no poder entrar a la sección crítica y nuevamente verificasi es el turno de algún otro proceso (línea verde) si lo es se
  • 7. queda en ciclado hasta que se da un cambio de turno, luego nuevamente retoma su estado de poder entrar a la sección critica, regresaal cicloy verificasi hayotro proceso que puede entrar entonces nuevamente se en cicla, de lo contrario entra a la sección critica.  Al salir de la sección critica el proceso cambia su turno, cambia su estado y realiza sus tareas finales.(línea azul) Conclusión Concluyo que este proceso de estudio de Dijkstra ha hecho una muy buena aportación en el proyecto que estamos dando a conocer con un tema muy importante que se utilizaenlainformática, ya que esta lleva una secuencia de pasos a seguir en el algoritmo de dekker El algoritmo de dekker es el que da la soluciónde problemas informáticos para y permite utilizar varios procesos en a un mismo recurso. Referencias  AprendiendoSoftwareDate A Live http://aprendiendo- software.blogspot.com/2011/12/al goritmo-de-dekker-version-1.html Postedby: Juan Jose GrajedaCuesi viernes,23de diciembre de 2011 Actualización:2015  AprendiendoSoftwareDate A Live http://aprendiendo- software.blogspot.com/2011/12/al goritmo-de-dekker-version-2- problema.html Postedby: Juan Jose GrajedaCuesi viernes,23de diciembre de 2011 Actualización:2015  AprendiendoSoftwareDate A Live http://aprendiendo- software.blogspot.com/2011/12/al goritmo-de-dekker-version-3- colision.html Postedby: Juan Jose GrajedaCuesi Viernes,23de diciembre de 2011 Actualización:2015  AprendiendoSoftwareDate A Live http://aprendiendo- software.blogspot.com/2011/12/al goritmo-de-dekker-version-4.html Postedby: Juan Jose GrajedaCuesi Ultimoaccesosábado,24 de diciembre de 2011 Actualización: 2015  AprendiendoSoftwareDate A Live http://aprendiendo- software.blogspot.com/2011/12/al goritmo-de-dekker-version-5.html Postedby: Juan Jose GrajedaCuesi Sábado,24 de diciembre de 2011 Actualización:2015  Wikigote https://es.wikiquote.org/wiki/Edsg er_Dijkstra Modificadapor últimavezel 26 abr 2014 a las21:40.