2 Algoritmo de Peterson.pptx

Embed Size (px)

Citation preview

  • 7/24/2019 2 Algoritmo de Peterson.pptx

    1/9

    lgoritmode

    eterson

    *Mara Miroslava Valdez Pintor

    *Antonio Eduardo de la Cruz Hernndez

  • 7/24/2019 2 Algoritmo de Peterson.pptx

    2/9

    e

    Una solucin posible es la proporcionada por

    Peterson (1981). En esta solucin se

    introduce una variable adicional, que

    denominaremos turno, que solamente

    resultar til cuando se produca unproblema de peticin simultnea de acceso a

    la re!in cr"tica.

  • 7/24/2019 2 Algoritmo de Peterson.pptx

    3/9

    Cada proceso tiene un turno para entrar en la seccin critica Si un proceso desea entrar, debe activar su seal y puede que

    tenga que esperar a que llegue su turno

    Cuando dos o mas procesos secuenciales en cooperacin ejecutan todos

    ellos asncronamente y comparten datos comunes se produce el problema

    de la seccin critica.

    Un proceso productor genera informacin que es utiliada por un proceso

    consumidor. !ara que los procesos productores y consumidores ejecuten

    concurrentemente, tenemos que crear un conjunto de buffers que puedan

    ser alimentados por el productor y vaciados por el consumidor.

    "l consumidor tiene que esperar si todos los buffers se encuentran vacos,

    y el productor tiene que esperar si todos los buffers est#n llenos.Una solucin simple al problema de la seccin critica nos la proporciona

    !eterson. "sta solucin es b#sicamente una combinacin del $lgoritmo que

    asocia cada proceso con su variable de cerradura y de una pequea

    modificacin del $lgoritmo de $lternancia "stricta.

  • 7/24/2019 2 Algoritmo de Peterson.pptx

    4/9

    !ermite comprobar una de las solucione

    propuestas para la concurrencia de

    procesos.

    "l proceso !adre y el proceso %ijo

    comparten una ona de memoria, porlo que tienen que ponerse de acuerdo

    para no coincidir en la peticin de la

    misma. "l problema se resuelve por

    medio de variables de cierre que

    indican la intencin del proceso deentrada en su seccin critica, y una

    variable que establece el orden de

    entrada. "l ultimo proceso que &aya

    ejecutado sus instrucciones cede el

    turno, esperando mientras el otro

    proceso quiere entrar a su seccin

    critica y tenga el turno correspondiente.

    "l numero de iteraciones para los

    procesos se da como argumento por

    lnea de comandos, as como el nombre

    del fic&ero de salida de los resultados.

  • 7/24/2019 2 Algoritmo de Peterson.pptx

    5/9

    #enta$as%'"s aplicable a cualquier numero de procesos con memoria

    compartida tanto del monoprocesador como de

    multiprocesador.'"s simple y f#cil de verificar.

    '!uede usarse para varias secciones criticas.

    &esventa$as %'(a espera activa consume muc&o tiempo de procesador.

    '!uede producirse inanicin cuando un proceso abandona la

    seccin critica y &ay procesos esperando.

    ')nterbloqueo* procesos de baja prioridad contra procesos de

    alta prioridad

  • 7/24/2019 2 Algoritmo de Peterson.pptx

    6/9

    E'clusin utua% olucin de Peterson

    module"+clusion-utua!

    var flag/,flag0* booleanturno* integer

    procedure bloqueo1var miflag, suflag* boolean suturno*integer2

    be!in

    miflag *3 true

    turno *3 suturno *+ile suflag and 1turno 3 suturno2 do end

    end bloqueo

    procedure desbloqueo1var miflag* boolean2

    begin miflag *3 falseend desbloqueo

  • 7/24/2019 2 Algoritmo de Peterson.pptx

    7/9

    process !/

    begin

    loop

    bloqueo1flag/,flag0,02 14Uso del recurso Seccin Crtica42

    desbloqueo1flag/2

    145esto del proceso42

    end

    end !/

    process !0

    be!in

    loop

    bloqueo1flag0,flag/,/2 14Uso del recurso Seccin Crtica42

    desbloqueo1flag02

    145esto del proceso42

    endend !0

    be!in 14"+clusion-utua!42

    flag/ *3 6$(S"

    flag0 *3 6$(S"

    cobe!in

    !/

    !0

    coend

    end "+clusion-utua!.

  • 7/24/2019 2 Algoritmo de Peterson.pptx

    8/9

    Si slo uno de los procesos intenta acceder a la seccin crtica lo

    podr# &acer sin ning7n problema. Sin embargo, si ambos

    intentan entrar a la ve el valor de turno se pondr# a / y 0 pero

    slo un valor de ellos permanecer# al escribirse sobre el otro,permitiendo el acceso de un proceso a su regin crtica.

    "l algoritmo permite resolver el problema de la e+clusin mutua y

    garantia que ambos procesos usar#n de forma consecutiva el

    recurso en el caso de que lo soliciten a la ve y se impedir# el

    cierre del otro proceso. Si, por ejemplo, !/ &a entrado en su

    seccin crtica bloqueando el acceso de !0 8ste entrar# una ve

    &aya finaliado aqu8l, ya que cuando !/ sale de su regin crtica

    desactiva su indicador, permitiendo el acceso de !0 si una ve

    que !/ sale de su seccin crtica !0 no est# en ejecucin, !/deber# permanecer en espera &asta que !0 &aya entrado y &aya

    desactivado su indicador. 9e esta manera se evita que !0 pueda

    quedar relegado por !/ en el uso del recurso, es decir ambos

    goan de la misma prioridad en el uso del recurso.

  • 7/24/2019 2 Algoritmo de Peterson.pptx

    9/9

    Gracias por su

    atencin!Alguna pregunta?