teoria

download teoria

of 57

description

petri

Transcript of teoria

  • Introduccin a las

    Redes de Petri

  • Redes de Petri

    Notacin formal, operacional, grfica.

    Sistemas asincrnicos y concurrentes.

  • Redes de Petri - Definicin

    Una Red de Petri es un multigrafo bipartito dirigido representado por una cudrupla PN =

    donde

    P = {p1, p2, ..., pn} conjunto finito de lugares (places), n 0

    T = {t1, t2, ..., tm} conjunto finito de transiciones, m 0

    I: T P P denota los multisets o bolsas de P.

    pi I(tj) si existe un arco de pi a tj

    O: T P

    pi O(tj) si existe un arco de tj a pi

  • Ejemplo 1

    P = {p1, p2, p3, p4, p5, p6, p7}

    T = {t1, t2, t3, t4, t5, t6}

    I(t1) = {p1} O(t1) = {p4}

    I(t2) = {p2} O(t2) = {p5}

    I(t3) = {p3, p4} O(t3) = {p6}

    I(t4) = {p3, p5} O(t4) = {p7}

    I(t5) = {p6} O(t5) = {p1, p3}

    I(t6) = {p7} O(t6) = {p2, p3}

    t1 t2

    t3 t4

    t5 t6

    p1 p2

    p4 p3

    p5

    p7 p6

    p4

  • Ejemplo 2

    p1 p2

    t1

    P = {p1, p2}

    T = {t1}

    I(t1) = {p1, p1}

    O(t1) = {p2, p2, p2}

  • Si un arco va desde un place a una

    transicin, al place se lo llama input place

    (lugar de entrada) de la transicin.

    Si un arco va desde una transicin a un

    place, al place se lo llama output place

    (lugar de salida) de la transicin.

  • Redes de Petri

    Marcacin y ejecucin

    Una red de Petri recibe su estado marcando

    sus places.

    Una marcacin (marking) consiste en asignar un nmero entero no negativo de tokens a cada place.

    En las redes tradicionales de Petri los tokens son indistinguibles y no representan informacin especfica.

  • p1 p2

    t1

    Ejemplo de red marcada

    P = {p1, p2}

    T = {t1}

    I(t1) = {p1, p1}

    O(t1) = {p2, p2, p2}

  • Marcacin

    Una marcacin de una Red de Petri

    PN = es una funcin:

    : P {0, 1, 2, ...}

    que asigna un nmero entero no negativo de

    tokens a cada place de la red.

  • Marcacin

    Una marcacin puede representarse como un vector de dimensin n (n es el nmero de lugares de la red).

    p1 p2

    t1

    (p1) = 2 (p2) = 0

    = (2,0)

  • Red de Petri marcada

    Una Red de Petri marcada

    M =

    es un una estructura de Red de Petri

    PN = y un marking .

  • t1 t2

    t3 t4

    t5 t6

    p1 p2

    p4 p3

    p5

    p7 p6

    P = {p1, p2, p3, p4, p5, p6, p7}

    T = {t1, t2, t3, t4, t5, t6}

    I(t1) = {p1} O(t1) = {p4}

    I(t2) = {p2} O(t2) = {p5}

    I(t3) = {p3, p4} O(t3) = {p6}

    I(t4) = {p3, p5} O(t4) = {p7}

    I(t5) = {p6} O(t5) = {p1, p3}

    I(t6) = {p7} O(t6) = {p2, p3}

    = (1, 1, 1, 0, 0, 0, 0)

  • Ejecucin de una Red de Petri

    Durante la ejecucin de la red el nmero y

    posicin de los tokens puede variar dando

    lugar a una nueva marcacin.

    Cada marcacin corresponde a un estado de

    la red.

  • Reglas de Ejecucin

    1. Una transicin puede disparar si est

    habilitada.

    2. Una transicin est habilitada si en cada uno

    de sus input places existen al menos tantos

    tokens como arcos existan desde el place a la

    transicin.

    p1 p2

    t1

    p1 p2

    t1 no habilitada

    t1

    t1 habilitada,

    puede disparar

  • Reglas de Ejecucin

    3. Cuando una transicin dispara, en cada uno de sus

    input places se remueven tantos tokens como arcos

    existan desde el input place hacia la transicin, y en

    cada uno de los output places de la transicin se

    insertan tantos tokens como arcos existan desde la

    transicin al output place.

    p1 p2

    t1

    p1 p2

    t1

    Dispar t1

    p3 p3 p4 p4

  • Reglas de Ejecucin

    Formalmente, una transicin t T est habilitada en una red de Petri PN = sii

    p I(t) : (p) #(p, I(t))

    donde

    #(p, I(t)) es el nmero de arcos desde p a t.

  • Reglas de Ejecucin

    Formalmente, el disparo de una transicin t T con un marking resulta en un nuevo marking definido por:

    p P : (p) = (p) #(p, I(t)) + #(p, O(t))

    donde

    #(p, I(t)) es el nmero de arcos desde p a t.

    #(p, O(t)) es el nmero de arcos desde t a p.

  • Ejecucin de una Red de Petri

    0 = (1, 1, 1, 0, 0, 0, 0)

    t1 y t2

    estn

    habilitadas.

    p1 p2

    t1 t2

    t3 t4

    t5 t6

    p4 p3

    p5

    p7 p6

  • Ejecucin de una Red de Petri

    secuencia de

    disparos: (t1)

    t2 y t3 quedaron

    habilitadas.

    t1 t2

    t3 t4

    t5 t6

    p1 p2

    p4 p3

    p5

    p7 p6

    0 = (1, 1, 1, 0, 0, 0, 0)

    1 = (0, 1, 1, 1, 0, 0, 0)

  • Ejecucin de una Red de Petri

    secuencia de

    disparos: (t1,t2)

    t3 y t4 quedaron

    habilitadas.

    t1 t2

    t3 t4

    t5 t6

    p1 p2

    p4 p3

    p5

    p7 p6

    0 = (1, 1, 1, 0, 0, 0, 0)

    1 = (0, 1, 1, 1, 0, 0, 0)

    2 = (0, 0, 1, 1, 1, 0, 0)

  • Ejecucin de una Red de Petri

    0 = (1, 1, 1, 0, 0, 0, 0)

    1 = (0, 1, 1, 1, 0, 0, 0)

    2 = (0, 0, 1, 1, 1, 0, 0)

    3 = (0, 0, 0, 1, 0, 0, 1)

    secuencia de

    disparos: (t1,t2,t4)

    t6 qued

    habilitada.

    t1 t2

    t3 t4

    t5 t6

    p1 p2

    p4 p3

    p5

    p7 p6

  • Ejecucin de una Red de Petri

    0 = (1, 1, 1, 0, 0, 0, 0)

    1 = (0, 1, 1, 1, 0, 0, 0)

    2 = (0, 0, 1, 1, 1, 0, 0)

    3 = (0, 0, 0, 1, 0, 0, 1)

    4 = (0, 1, 1, 1, 0, 0, 0)

    secuencia de

    disparos: (t1,t2,t4,t6)

    t2 y t3 quedaron

    habilitadas. ...

    t1 t2

    t3 t4

    t5 t6

    p1 p2

    p4 p3

    p5

    p7 p6

  • Ejecucin de la Red de Petri

    La secuencia de disparos dada es una de las

    posibles secuencias, no la nica.

    El modelo es no determinstico, en el sentido

    que dado un marking inicial 0 distintas evoluciones de la red son posibles.

  • Ejecucin de una Red de Petri

    t1 siempre habilitada

    t1 t3

    t2

  • Modelado con Redes de Petri

    Una transicin, usualmente, modela un evento o accin.

    El disparo de la transicin representa la ocurrencia de tal evento o la ejecucin de la accin.

    Una transicin est habilitada, si se satisfacen las condiciones necesarias para la ocurrencia de tal evento o accin.

    La presencia de tokens en los input places modelan tales condiciones.

  • Modelado con Redes de Petri

    t1 t2

    t3 t4

    t5 t6

    p1 p2

    p4 p3

    p5

    p7 p6

    t1 = proceso 1 solicita

    recurso

    t3 = proceso 1 toma

    recurso

    t5 = proceso 1 libera

    recurso

    Eventos del

    proceso 1

  • Modelado con Redes de Petri

    t1 t2

    t3 t4

    t5 t6

    p1 p2

    p4 p3

    p5

    p7 p6

    t2 = proceso 2 solicita

    recurso

    t4 = proceso 2 toma

    recurso

    t6 = proceso 2 libera

    recurso

    Eventos del

    proceso 2

  • Modelado con Redes de Petri

    t1 t2

    t3 t4

    t5 t6

    p1 p2

    p4 p3

    p5

    p7 p6

    p3 representa la

    disponibilidad o

    no de un recurso.

  • Modelado con Redes de Petri

    Transiciones concurrentes

    t1 t2

    t3 t4

    t5 t6

    p1 p2

    p4 p3

    p5

    p7 p6

    t1 y t2 habilitadas y

    el disparo de una

    no deshabilita la

    otra =>

    concurrentes

  • Modelado con Redes de Petri

    Transiciones en conflicto

    t1 t2

    t3 t4

    t5 t6

    p1 p2

    p4 p3

    p5

    p7 p6

    t3 y t4 habilitadas y

    el disparo de una

    deshabilita la otra

    => en conflicto

  • Modelado con Redes de Petri

    Starvation

    secuencia de

    disparos:

    (t2)

    t1 t2

    t3 t4

    t5 t6

    p1 p2

    p4 p3

    p5

    p7 p6

  • Modelado con Redes de Petri

    Starvation

    secuencia de

    disparos:

    (t2,t4)

    t1 t2

    t3 t4

    t5 t6

    p1 p2

    p4 p3

    p5

    p7 p6

  • Modelado con Redes de Petri

    Starvation

    secuencia de

    disparos:

    (t2,t4,t6)

    t1 t2

    t3 t4

    t5 t6

    p1 p2

    p4 p3

    p5

    p7 p6

  • Modelado con Redes de Petri

    Starvation

    secuencia de

    disparos:

    (t2,t4,t6,t2)

    t1 t2

    t3 t4

    t5 t6

    p1 p2

    p4 p3

    p5

    p7 p6

  • Modelado con Redes de Petri

    Starvation

    secuencia de

    disparos:

    (t2,t4,t6,t2,t4)

    t1 t2

    t3 t4

    t5 t6

    p1 p2

    p4 p3

    p5

    p7 p6

  • Modelado con Redes de Petri

    Starvation

    secuencia de disparos:

    (t2,t4,t6,t2,t4,t6,...)

    starvation de proceso 1

    t1 t2

    t3 t4

    t5 t6

    p1 p2

    p4 p3

    p5

    p7 p6

  • Modelado con Redes de Petri

    Deadlock

    t3 t4

    t3 t4

    t5 t6

    p4 p5

    p6

    p3

    p7

    p9 p8

    p1 p2

    t1 t2

    t1: proc1 solicita ambos recursos

    t3: proc1 toma un recurso

    t3: proc1 toma otro recurso

    t5: proc1 libera ambos recursos

    t2: proc2 solicta ambos recursos

    t4: proc2 toma un recurso

    t4: proc2 toma otro recurso

    t6: proc2 libera ambos recursos

  • Modelado con Redes de Petri Una posible ejecucin sin deadlock

    secuencia de

    disparos:

    (t1) t3 t4

    t3 t4

    t5 t6

    p4 p5

    p6

    p3

    p7

    p9 p8

    p1 p2

    t1 t2

  • Modelado con Redes de Petri Una posible ejecucin sin deadlock

    t3 t4

    t3 t4

    t5 t6

    p4 p5

    p6

    p3

    p7

    p9 p8

    p1 p2

    t1 t2

    secuencia de

    disparos:

    (t1, t3)

  • Modelado con Redes de Petri Una posible ejecucin sin deadlock

    t3 t4

    t3 t4

    t5 t6

    p4 p5

    p6

    p3

    p7

    p9 p8

    p1 p2

    t1 t2

    secuencia de

    disparos:

    (t1, t3, t3)

  • Modelado con Redes de Petri Una posible ejecucin sin deadlock

    t3 t4

    t3 t4

    t5 t6

    p4 p5

    p6

    p3

    p7

    p9 p8

    p1 p2

    t1 t2

    secuencia de

    disparos:

    (t1, t3, t3, t5)

  • Modelado con Redes de Petri Una posible ejecucin con deadlock

    secuencia de

    disparos:

    (t1) t3 t4

    t3 t4

    t5 t6

    p4 p5

    p6

    p3

    p7

    p9 p8

    p1 p2

    t1 t2

  • Modelado con Redes de Petri Una posible ejecucin con deadlock

    secuencia de

    disparos:

    (t1, t2)

    t3 t4

    t3 t4

    t5 t6

    p4 p5

    p6

    p3

    p7

    p9 p8

    p1 p2

    t1 t2

  • Modelado con Redes de Petri Una posible ejecucin con deadlock

    secuencia de

    disparos:

    (t1, t2, t3)

    t3 t4

    t3 t4

    t5 t6

    p4 p5

    p6

    p3

    p7

    p9 p8

    p1 p2

    t1 t2

  • Modelado con Redes de Petri Una posible ejecucin con deadlock

    secuencia de

    disparos:

    (t1, t2, t3, t4)

    deadlock (ninguno

    de los procesos

    puede continuar)

    t3 t4

    t3 t4

    t5 t6

    p4 p5

    p6

    p3

    p7

    p9 p8

    p1 p2

    t1 t2

  • DTE para Productor-Consumidor

    Primera aproximacin

    (a) proceso productor; (b) proceso consumidor; (c) buffer.

    Suponemos un buffer con capacidad para 1 mensaje.

  • PN para Productor-Consumidor

    Primera aproximacin

    p1 p2

    produce

    write

    1

    c1 c2

    read

    consume

    0

    write

    read

  • DTE para Productor-Consumidor

  • PN para Productor-Consumidor

    p1 p2

    produce

    c1 c2 read

    consume

    1 0

    write

  • Limitaciones de las Redes de Petri

    tradicionales y algunas extensiones

    Limitacin: los tokens son annimos.

    p.e. la presencia de un token en un place

    puede denotar la presencia de un mensaje en

    un buffer pero no lo que el mensaje dice.

    Extensin: asignacin de valores a tokens

    ms asociacin de predicados y acciones

    a las transiciones.

  • t1 t2

    p1

    p2

    p3

    p5 p4

    7

    4 1 3 4

    p1 < p2

    p4:=p2+p1

    p2 = p3

    p4:=p3-p2

    p5:= p2+p3

    t1 habilitada: tuplas ready: (3,7) (3,4)

    elecciones no determinsticas

    t2 habilitada: tuplas ready: (4, 4)

  • t1 t2

    p1

    p2

    p3

    p5 p4

    1

    4 4

    p1 < p2

    p4:=p2+p1

    p2 = p3

    p4:=p3-p2

    p5:= p2+p3

    sec. de disparos: (t1)

    t1 deshabilitada.

    t2 habilitada: tuplas ready: (4, 4)

    10

  • t1 t2

    p1

    p2

    p3

    p5 p4

    1

    p1 < p2

    p4:=p2+p1

    p2 = p3

    p4:=p3-p2

    p5:= p2+p3

    sec. de disparos: (t1, t2)

    10 8

    0

  • Limitaciones de las Redes de Petri

    tradicionales y algunas extensiones

    Limitacin: no se pueden fijar polticas de

    seleccin cuando varias transiciones estn

    habilitadas.

    Extensin: asignacin esttica o dinmica

    de prioridades a las transiciones.

  • t1 t2

    p1

    p2

    p3

    p5 p4

    prioridad = 2 prioridad = 1

    t1 y t2 habilitadas, dispara t2 porque tiene mayor

    prioridad.

  • Limitaciones de las Redes de Petri

    tradicionales y algunas extensiones

    Limitacin: Problemas con el manejo del tiempo.

    p.e. un proceso enva mensajes a una cierta velocidad. Estos

    son colocados en un buffer y procesados. Si un mensaje no

    es tomado del buffer antes del arribo del prximo, es

    sobrescrito por el nuevo.

    Extensiones: Redes de Petri con tiempo donde a cada

    transicin se le asocia un par que indica el

    intervalo de tiempo dentro del cual debe disparar.

  • t1 t2

    p1

    p2

    p3

    p5 p4

    prioridad = 2

    tmin = 2

    tmax = 3

    prioridad = 1

    tmin = 1

    tmax = 4