SlideShare uma empresa Scribd logo
1 de 10
Baixar para ler offline
Ejemplos De Semaforos 08  De Septiembre del 2009
Base De Datos FILOSOFOS COMENSALES ,[object Object],[object Object],[object Object],[object Object],Proceso 1 Proceso 2 Proceso 3 Proceso 4 Proceso n
Solucion Del Problema: ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Base De Datos FILOSOFOS COMENSALES Proceso(Integer i){ Repeat Hace_cosas(); Solicita_BD(i); Usa_BD(); Devuelve_BDD(); Hace_MasCosas(); } Solicita_BDD( Integer i){ Down(Exc_Mut); Status[i]=‘h’; test(i); up(Exc_Mut); Down(Exc_Mut); } Devuelve_BDD(Integer i){ Down(Exc_Mut); status[i]=‘P’; suma=suma-i; for j=50 down to 1 test(i); up(Exc_mut); } Test(Integer i){ If(suma+i<=100 and status[i]=‘h’) suma=suma+i; status[i]=‘c’; up(Sem[i]); }
Fumadores ,[object Object],[object Object],[object Object],Fosforo Papel Tabaco Cant Infinita Cant Infinita
Solucion Del Problema: ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Fumadores Agente(){ Repeat Hace_Cosas(); Tomar_Ingredientes(); Down(Esperar_fumador); if(Ingredientes==tabaco and papel){ up(fumador_fosforos); }else if(Ingredientes== tabaco and fosforos) {up(fumador_papel);} else{ Up(fumador_tabaco); } Hace_mas_cosas(); Until_fin; } Fum_Tabaco(){ Repeat Down(fumador_tabaco); Fumar(); Up(Esperar_fumador); Until_fin }
Puente Como Carretera ,[object Object],[object Object],[object Object],[object Object]
Solucion Del Problema: ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]

Mais conteúdo relacionado

Semelhante a Ejemplos de semaforos para problemas de exclusión mutua y sincronización de procesos

Semelhante a Ejemplos de semaforos para problemas de exclusión mutua y sincronización de procesos (20)

Fp02
Fp02Fp02
Fp02
 
Diseño experimental ortogonal pdf
Diseño experimental ortogonal pdfDiseño experimental ortogonal pdf
Diseño experimental ortogonal pdf
 
Arreglos
ArreglosArreglos
Arreglos
 
Lenguaje c++
Lenguaje c++Lenguaje c++
Lenguaje c++
 
Elementos básicos de c++
Elementos básicos de c++Elementos básicos de c++
Elementos básicos de c++
 
Elementos básicos de c++
Elementos básicos de c++Elementos básicos de c++
Elementos básicos de c++
 
10 programas a tu eleccion
10 programas a tu eleccion10 programas a tu eleccion
10 programas a tu eleccion
 
PRESENTACIONES DE LA INSTRUCCIÓN FOR
PRESENTACIONES DE LA INSTRUCCIÓN FORPRESENTACIONES DE LA INSTRUCCIÓN FOR
PRESENTACIONES DE LA INSTRUCCIÓN FOR
 
Problemas con for
Problemas con forProblemas con for
Problemas con for
 
Lenguaje c++
Lenguaje c++Lenguaje c++
Lenguaje c++
 
Ejercicio 10
Ejercicio 10Ejercicio 10
Ejercicio 10
 
Clase lenguaje c xxxxxx
Clase lenguaje c xxxxxxClase lenguaje c xxxxxx
Clase lenguaje c xxxxxx
 
Clase lenguaje c xxxxxx
Clase lenguaje c xxxxxxClase lenguaje c xxxxxx
Clase lenguaje c xxxxxx
 
Clase lenguaje c
Clase lenguaje c Clase lenguaje c
Clase lenguaje c
 
Diseño algoritmosoo sentenciascondicionales
Diseño algoritmosoo sentenciascondicionalesDiseño algoritmosoo sentenciascondicionales
Diseño algoritmosoo sentenciascondicionales
 
Algoritmos secuenciales resueldos
Algoritmos  secuenciales resueldosAlgoritmos  secuenciales resueldos
Algoritmos secuenciales resueldos
 
Guión practica precipitación
Guión practica precipitaciónGuión practica precipitación
Guión practica precipitación
 
Algebraico
Algebraico Algebraico
Algebraico
 
Taller Python
Taller PythonTaller Python
Taller Python
 
TDD Workshop
TDD WorkshopTDD Workshop
TDD Workshop
 

Ejemplos de semaforos para problemas de exclusión mutua y sincronización de procesos

  • 1. Ejemplos De Semaforos 08 De Septiembre del 2009
  • 2.
  • 3.
  • 4. Base De Datos FILOSOFOS COMENSALES Proceso(Integer i){ Repeat Hace_cosas(); Solicita_BD(i); Usa_BD(); Devuelve_BDD(); Hace_MasCosas(); } Solicita_BDD( Integer i){ Down(Exc_Mut); Status[i]=‘h’; test(i); up(Exc_Mut); Down(Exc_Mut); } Devuelve_BDD(Integer i){ Down(Exc_Mut); status[i]=‘P’; suma=suma-i; for j=50 down to 1 test(i); up(Exc_mut); } Test(Integer i){ If(suma+i<=100 and status[i]=‘h’) suma=suma+i; status[i]=‘c’; up(Sem[i]); }
  • 5.
  • 6.
  • 7. Fumadores Agente(){ Repeat Hace_Cosas(); Tomar_Ingredientes(); Down(Esperar_fumador); if(Ingredientes==tabaco and papel){ up(fumador_fosforos); }else if(Ingredientes== tabaco and fosforos) {up(fumador_papel);} else{ Up(fumador_tabaco); } Hace_mas_cosas(); Until_fin; } Fum_Tabaco(){ Repeat Down(fumador_tabaco); Fumar(); Up(Esperar_fumador); Until_fin }
  • 8.
  • 9.
  • 10.