teoria
-
Upload
eynar-david-linares-ledezma -
Category
Documents
-
view
212 -
download
0
description
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