fbpx
Wikipedia

Algoritmo de Peterson

El algoritmo de Peterson, también conocido como solución de Peterson,[1]​ 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.

Peterson desarrolló en 1981 el algoritmo básico para dos procesos,[2]​ como una simplificación del algoritmo de Dekker. El algoritmo básico puede generalizarse fácilmente a un número arbitrario de procesos.[3]

Algoritmo para dos procesos

 bandera[0] = false  bandera[1] = false  turno // No es necesario asignar un turno  p0: bandera[0] = true p1: bandera[1] = true  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] = false bandera[1] = false 

Los procesos p0 y p1 no pueden estar en la sección crítica al mismo tiempo: si p0 está en la sección crítica, entonces bandera[0] = true, y ocurre que bandera[1] = false, con lo que p1 ha terminado la sección crítica, o que la variable compartida turno = 0, con lo que p1 está esperando para entrar a la sección crítica. En ambos casos, p1 no puede estar en la sección crítica.

Algoritmo para N procesos

// Variables compartidas bandera: array[0..N-1] of -1..n-2; /* inicializada a –1 */ turno: array[0..N-2] of 0..n-1; /* inicializada a 0 */ // Protocolo para Pi ( i=0,...,N-1 ) j:0..N-2; /* variable local indicando la etapa */ for j = 0 to N-2 {  bandera[i] = j;  turno[j] = i;  while [( k  i : bandera[k]  j)  (turno[j] == i)] do;  } <sección crítica> bandera[i] = -1; 

Véase también

Referencias

  1. Silberschatz, Abraham (2005). Fundamentos de sistemas operativos (7ª edición). McGraw-Hill Interamericana. pp. 174-175. ISBN 0-471-69466-5. 
  2. G. L. Peterson: "Myths About the Mutual Exclusion Problem", Information Processing Letters 12(3) 1981, 115–116
  3. En Operating Systems Review, enero de 1990 ("Proof of a Mutual Exclusion Algorithm", M Hofri).
  •   Datos: Q903721

algoritmo, peterson, este, artículo, sobre, informática, detectó, siguiente, problema, favor, edítalo, para, mejorarlo, carece, fuentes, referencias, aparezcan, fuente, acreditada, este, aviso, puesto, junio, 2014, algoritmo, peterson, también, conocido, como,. En este articulo sobre informatica se detecto el siguiente problema Por favor editalo para mejorarlo Carece de fuentes o referencias que aparezcan en una fuente acreditada Este aviso fue puesto el 12 de junio de 2014 El algoritmo de Peterson tambien conocido como solucion de Peterson 1 es un algoritmo de programacion concurrente para exclusion mutua que permite a dos o mas procesos o hilos de ejecucion compartir un recurso sin conflictos utilizando solo memoria compartida para la comunicacion Peterson desarrollo en 1981 el algoritmo basico para dos procesos 2 como una simplificacion del algoritmo de Dekker El algoritmo basico puede generalizarse facilmente a un numero arbitrario de procesos 3 Indice 1 Algoritmo para dos procesos 2 Algoritmo para N procesos 3 Vease tambien 4 ReferenciasAlgoritmo para dos procesos Editarbandera 0 false bandera 1 false turno No es necesario asignar un turno p0 bandera 0 true p1 bandera 1 true turno 1 turno 0 while bandera 1 amp amp turno 1 while bandera 0 amp amp turno 0 no hace nada espera no hace nada espera seccion critica seccion critica fin de la seccion critica fin de la seccion critica bandera 0 false bandera 1 false Los procesos p0 y p1 no pueden estar en la seccion critica al mismo tiempo si p0 esta en la seccion critica entonces bandera 0 true y ocurre que bandera 1 false con lo que p1 ha terminado la seccion critica o que la variable compartida turno 0 con lo que p1 esta esperando para entrar a la seccion critica En ambos casos p1 no puede estar en la seccion critica Algoritmo para N procesos Editar Variables compartidas bandera array 0 N 1 of 1 n 2 inicializada a 1 turno array 0 N 2 of 0 n 1 inicializada a 0 Protocolo para Pi i 0 N 1 j 0 N 2 variable local indicando la etapa for j 0 to N 2 bandera i j turno j i while k i bandera k j turno j i do lt seccion critica gt bandera i 1 Vease tambien EditarAlgoritmo de la panaderia de LamportReferencias Editar Silberschatz Abraham 2005 Fundamentos de sistemas operativos 7ª edicion McGraw Hill Interamericana pp 174 175 ISBN 0 471 69466 5 G L Peterson Myths About the Mutual Exclusion Problem Information Processing Letters 12 3 1981 115 116 En Operating Systems Review enero de 1990 Proof of a Mutual Exclusion Algorithm M Hofri Datos Q903721 Obtenido de https es wikipedia org w index php title Algoritmo de Peterson amp oldid 136251120, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos