0% encontró este documento útil (0 votos)
332 vistas6 páginas

Canibales

El documento presenta el problema de los caníbales y misioneros, donde los caníbales comen de una olla común. Si la olla está vacía, el caníbal despierta al cocinero para que la llene. El objetivo es analizar e implementar este problema usando semáforos y monitores, destacando ventajas y desventajas. Se presentan las funciones, diagrama de flujo y pseudocódigo para modelar el problema y la interacción entre los caníbales, cocinero y olla.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
332 vistas6 páginas

Canibales

El documento presenta el problema de los caníbales y misioneros, donde los caníbales comen de una olla común. Si la olla está vacía, el caníbal despierta al cocinero para que la llene. El objetivo es analizar e implementar este problema usando semáforos y monitores, destacando ventajas y desventajas. Se presentan las funciones, diagrama de flujo y pseudocódigo para modelar el problema y la interacción entre los caníbales, cocinero y olla.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

1.

DEFINICIN DEL PROBLEMA


En una tribu de canbales todos comen de la misma olla, la cual puede albergar N
raciones de comida. Cuando un canbal quiere comer, simplemente se sirve de la olla
comn, a no ser que est vaca. En ese caso, el canbal despierta al cocinero de la tribu y
espera hasta que ste haya rellenado la olla.

2. OBJETIVO
Analizar, comprender e implementar el problema de los canbales y misioneros,
haciendo uso de los semforos y monitores, destacando las ventajas y desventajas en la
implementacin.
3. ALGORITMO
Para la resolucin de este problema tendramos dos casos, uno en el cual un canbal
desea comer si hay misioneros en la olla pues se sirve uno, caso contrario si la olla se
encuentra vacia despierta al cocinero y espera a que ese llene la olla nuevamente.
Teniendo en cuenta el planteamiento tendramos las funciones q
4. DIAGRAMA DE FLUJO

5. PSEUDOCODIGO
Programa canbal_misionero

Variables
olla,m,j enteros

mutex,comer,cocina semaforos

proceso canibal

comenzar
repetir
espere mutex
si olla=0
comenzar
desbloquear cocina
espere comer
fin
j:=j+1
'Canibal comiendo'
olla=olla-1
desbloquear mutex
para siempre
fin

proceso cocinero
comenzar
repetir
espere cocina

olla=m
j=j+1
'Cocinero llena la olla'
desbloquear comer
para siempre
fin
//funcin principal
comenzar
j=0
inicializar mutex=1
inicializar cocina=0
inicializar comer=0
escribir

:Ingrese la cantidad de porciones de la olla'

leer m
cobegin
canibal
cocinero
coend
fin

6. CDIGO FUENTE
CDIGO EN SEMFOROS :
program prueba1;

var
olla,m,j:integer;
mutex,comer,cocina:semaphore;

process canibal;

begin
repeat

wait(mutex);
if olla=0 then
begin
signal(cocina);
wait(comer);
end;
j:=j+1;
writeln('Canibal comiendo');
olla:=olla-1;
signal(mutex);
forever
end;

process cocinero;
begin

repeat
wait(cocina);
olla:=m;
j:=j+1;
writeln('Cocinero llena la olla');
signal(comer);

forever
end;

begin
j:=0;
initial(mutex,1);
initial(cocina,0);
initial(comer,0);
writeln('Ingrese la cantidad de porciones de la olla');
readln(m);
cobegin
canibal;
cocinero;
coend;
end.

7. ARTCULO CIENTFICO

8. APLICACIN REAL

9. BIBLIOGRAFA
Palma mendes , j. t. (2003). programacion concurrente . espaa.
Vallejo Fernadez, D. (2012). programacion concurrente y tiempo real. Espaa:
Edlibrix.

También podría gustarte