El algoritmo de Peterson es un algoritmo de programación concurrente para exclusión mutua, que permite a dos o más procesos o hilos de ejecución compartir un recurso sin conflictos, utilizando sólo memoria compartida para la comunicación.
[editar]
Algoritmo
bandera[0] = 0
bandera[1] = 0
turno = 0
p0: bandera[0] = 1 p1: bandera[1] = 1
turno = 1 turno = 0
while( bandera[1] && turno == 1 ); while( bandera[0] && turno == 0 );
//no hace nada. espera. //no hace nada. espera.
// sección crítica // sección crítica
... ...
// fin de la sección crítica // fin de la sección crítica
bandera[0] = 0 bandera[1] = 0
Un algoritmo es un conjunto finito de instrucciones o pasos que sirven para ejecutar una tarea o resolver un problema. La palabra algoritmo deriva del nombre del matemático árabe Al Juarismí, que vivió entre los siglos VIII y IX.
2006-10-05 13:45:32
·
answer #1
·
answered by bit bit 3
·
0⤊
2⤋
bandera, del ingles flag, indicador que normalmente tiene dos estados, activado y desactivado para dar cuenta del estado de una determinada condición.
2006-10-05 20:45:36
·
answer #2
·
answered by Nochero 5
·
2⤊
0⤋
El término "bandera" se utiliza generalmente para denotar una variable booleana que indica una condicion especial, por ejemplo de salida de un algoritmo.
Por ejemplo, una bandera "salir" en un algoritmo que hace cuentas:
salir = false;
i = 10;
while ( not (Salir) ) do:
i = i * 2 + 1;
if ( i > 100) then:
salir = true;
end
En este caso se opera sobre la variable "i" y se utiliza una bandera llamada "salir" para denotar el fin del bucle.
También podrías preguntar directamente por la condición de salida en la condición del while, pero a veces no es tan sencillo especificar la condición de salida en dicha condición, por lo cual se simplifica mediante el uso de banderas.
2006-10-05 20:51:04
·
answer #3
·
answered by Anonymous
·
1⤊
0⤋
Existen las banderas, son variables por lo general de tipo boolenas (que pueden asumir dos valores: true o false, 1 o 0) y se utilizan de la siguiente foma:
supone que este if esta dentro de una funcion:
if(num>0)
{
numero = numero +num;
bandera = 1;
}
else
{
numero = numero -num;
bandera = 0;
}
return bandera;
Es un ejemplo muy basico y hasta pavo, pero sirve...
si te fijas en el codigo lo que hace es lo siguiente: cuando un numero es mayor a cero a una variable "numero" se le suma el numero "num" y se pone la bandera en 1, si "num" es menor que cero, se le resta a "numero", y la bandera se pone en 0. Esto te sirve para saber que operacion se hizo, si suma o resta, si la bandera esta en 1 es porque la operacion fue suma, si esta en 0 es porque es resta, al final se retorna el estado de la bandera al lugar en el que se invoca la funcion. Basicamente ese es el uso de las banderas
2006-10-05 20:50:22
·
answer #4
·
answered by Just Me 4
·
1⤊
0⤋
Si nos remontamos a la epoca del assembler, bandera o flag, servia para determinar cierto estado durante la ejecucion de una instruccion, la cual podia invocar a una interrupcion, diciendolo en espanhol, te permitia saber si estabas en un estado o no, prendido o apagado, entrada, salida, de valores booleanos. conocidas son las instrucciones JZ JLE... que hacian saltos de acuerdo a si estaba activado el flag de cero o si era menor igual etc.
2006-10-05 23:42:50
·
answer #5
·
answered by Richie 2
·
0⤊
0⤋
if (x>50)
{
bandera=true;
}
eso es una bandera, pero ve al zocalo, ahí hay mas
2006-10-05 21:08:21
·
answer #6
·
answered by Don Chani 1
·
0⤊
1⤋