Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Sistemas II Unidad 7
Sistemas II Unidad 7
Un lenguaje de modelado.
Características de las redes de Petri 4
Acotamiento,
Dinamicidad
alcanzabilidad, etc.
Adecuadas para modelar 5
Secuencialidad
Concurrencia
Sincronización
Conflicto
Precedencia
Prioridad
Aplicaciones 6
— Sistemas de manufactura
— utilizado para representar líneas de producción,
— líneas de ensamble automatizadas,
— sistema de producción automotriz,
— sistemas de manufactura flexible,
— sistemas just-in-time,
— Redes de computadoras
— Diseño de software
— Modelado de sistemas concurrentes y/o distribuidos
— Modelado y análisis de protocolos de comunicación
— Topología de redes
Componentes de Redes de Petri 7
2. Transiciones.
lugar
transicion
arco de entrada
arco de salida
Una marca
Redes de Petri - Definición 9
Una Red de Petri es un multigrafo bipartito dirigido representado
por una cuádrupla PN = <P, T, I, O>
donde
O: T → P∞
lugar = estado
marca
Estado activo
transicion
=
un evento
Ejemplo 1 11
p1 p2
P = {p1, p2, p3, p4, p5, p6, p7}
T = {t1, t2, t3, t4, t5, t6}
t1 t2 I(t1) = {p1} O(t1) = {p4}
p3
p4 p5 I(t2) = {p2} O(t2) = {p5}
I(t3) = {p3, p4} O(t3) = {p6}
t5 t6
Ejemplo 2 12
p1 p2
t1
P = {p1, p2}
T = {t1}
I(t1) = {p1, p1}
O(t1) = {p2, p2, p2}
Marcación y ejecución de RdP 13
M: P → {0, 1, 2, ...}
Un lector en una
esperando biblioteca:
> esperando,
start_reading > leyendo
leyendo
stop_reading
17
Un lector en una
esperando biblioteca:
> esperando,
start_reading > leyendo
leyendo
stop_reading
18
Un lector en una
esperando biblioteca:
> esperando,
strt_reading > leyendo
leyendo
stop_reading
19
Un lector en una
esperando biblioteca:
> esperando,
strt_reading > leyendo
leyendo
stop_reading
20
Un lector en una
esperando biblioteca:
> esperando,
strt_reading > leyendo
leyendo
stop_reading
Ejercicio 21
leyendo
stop_reading
Red de Petri marcada 22
M = <RdP, M>
t5 t6
M = (1, 1, 1, 0, 0, 0, 0)
Ejemplo 6
Movimiento del carrito, estando en reposo en el extremo izquierdo se pone en marcha mediante un botón
pulsador M, hacia la derecha. Cuando toca el final de carrera B invierte su marcha hacia la izquierda. Cuando
24
toca el final de carrera A se para, esperando una nueva orden de marcha.
t1 t1
p1 • p2 p1 •• p2
t1 no habilitada t1 habilitada,
puede disparar
Reglas de Ejecución 27
3. Cuando una transición dispara, en cada uno
de sus input places se remueven tantos tokens
como arcos existan desde el input place hacia
la transición, y en cada uno de los output
places de la transición se insertan tantos tokens
como arcos existan desde la transición al output
place.
t1 t1
p1 ••• p2 p1 • ••• p2
Disparó t1
•
• p4
p3
p4
p3
Reglas de Ejecución 28
Donde:
#(p, I(t)) es el número de arcos desde p a t.
Reglas de Ejecución 29
Donde:
• •
M0 = (1, 1, 1, 0, 0, 0, 0)
t1 t2
p3
p4 p5
• t1 y t2
están
t3 t4
p6 p7 habilitadas.
t5 t6
Ejecución de una Red de Petri 31
p1 p2
•
M0 = (1, 1, 1, 0, 0, 0, 0)
t1 t2
p3 M1 = (0, 1, 1, 1, 0, 0, 0)
p4 p5
• •
•secuencia de
disparos: (t1)
t3 t4
p6 p7 •t2 y t3 quedaron
habilitadas.
t5 t6
Ejecución de una Red de Petri
32
p1 p2
M0 = (1, 1, 1, 0, 0, 0, 0)
t1 t2
p3 M1 = (0, 1, 1, 1, 0, 0, 0)
p4 p5
• • • M2 = (0, 0, 1, 1, 1, 0, 0)
t3 t4
p6 p7 •secuencia de
disparos: (t1,t2)
•t3 y t4 quedaron
t5 t6 habilitadas.
Ejecución de una Red de Petri 33
p1 p2
M0 = (1, 1, 1, 0, 0, 0, 0)
t1 t2
p3 M1 = (0, 1, 1, 1, 0, 0, 0)
p4 p5
• M2 = (0, 0, 1, 1, 1, 0, 0)
M3 = (0, 0, 0, 1, 0, 0, 1)
t3 t4
p6 p7
• •secuencia de
disparos: (t1,t2,t4)
t5 t6 •t6 quedó
habilitada.
Ejecución de una Red de Petri 34
p1 p2
• M0 = (1, 1, 1, 0, 0, 0, 0)
M1 = (0, 1, 1, 1, 0, 0, 0)
t1 t2
p3 M2 = (0, 0, 1, 1, 1, 0, 0)
p4 p5
• • M3 = (0, 0, 0, 1, 0, 0, 1)
M4 = (0, 1, 1, 1, 0, 0, 0)
t3 t4
p6 p7
•secuencia de
disparos: (t1,t2,t4,t6)
t5 t6 •t2 y t3 quedaron
habilitadas. ...
Ejecución de la Red de Petri 35
t3 t4
p6 p7
t1 = proceso 1 solicita recurso
t3 = proceso 1 toma recurso
t5 t6
t5 = proceso 1 libera recurso
Modelado con Redes de Petri 37
p1 p2
• •
t1 t2
p3 Eventos del
p4 p5
• proceso 2
t3 t4
p6 p7
t3 t4
p6 p7
t5 t6
Modelado con Redes de Petri
39
Transiciones concurrentes
p1 p2
• •
t1 t2
p3
p4 p5
•
t3 t4 t1 y t2 habilitadas
p6 p7 y el disparo de una
no deshabilita la
otra =>
t5 t6 concurrentes
Modelado con Redes de Petri
40
Transiciones en conflicto
p1 p2
t1 t2 t3 y t4 habilitadas y
p3
p4 p5 el disparo de una
• • • deshabilita la otra
=> en conflicto
t3 t4
p6 p7
t5 t6
Modelado con Redes de Petri Starvation
41
p1 p2
• Secuencia de
disparos: (t2)
t1 t2
p3
p4 p5
• •
t3 t4
p6 p7
t5 t6
Modelado con Redes de Petri Starvation
42
p1 p2
•
secuencia de
t1 t2 disparos: (t2,t4)
p3
p4 p5
t3 t4
p6 p7
•
t5 t6
Modelado con Redes de Petri Starvation
43
p1 p2
• •
t1 t2
p3
p4 p5
•
t3 t4
p6 p7 secuencia de
disparos: (t2,t4,t6)
t5 t6
Modelado con Redes de Petri Starvation
44
p1 p2
• secuencia de
disparos:
t1 t2
p3 (t2,t4,t6,t2)
p4 p5
• •
t3 t4
p6 p7
t5 t6
Modelado con Redes de Petri
45
Starvation
p1 p2
• secuencia de
disparos:
t1 t2
p3 (t2,t4,t6,t2,t4)
p4 p5
t3 t4
p6 p7
•
t5 t6
Modelado con Redes de Petri
46
Starvation
p1 p2
• • secuencia de disparos:
t1 t2
(t2,t4,t6,t2,t4,t6,...)
p3
p4 p5 ⇓
• starvation de proceso 1
t3 t4
p6 p7
t5 t6
Ejemplo 9 47
p1 p2
• •
t1: proc1 solicita ambos recursos
t1 p3 t2
p4 t3’: proc1 toma un recurso
•• p5
t3’’: proc1 toma otro recurso
t5 t6
Modelado con Redes de Petri
48
Una posible ejecución sin deadlock
p1 p2
•
t1 p3 t2
p4 •• p5 secuencia de
• disparos:
t3’ t4’ (t1)
p6 p7
t3’’ t4’’
p8 p9
t5 t6
Modelado con Redes de Petri
49
Una posible ejecución sin deadlock
p1 p2
•
t1 p3 t2
p4 • p5 secuencia de
disparos:
t3’ t4’ (t1, t3’)
p6 p7
•
t3’’ t4’’
p8 p9
t5 t6
Modelado con Redes de Petri
50
Una posible ejecución sin deadlock
p1 p2
•
t1 p3 t2
p4 p5 secuencia de
disparos:
t3’ t4’ (t1, t3’, t3’’)
p6 p7
t3’’ t4’’
p8 p9
•
t5 t6
Modelado con Redes de Petri
51
Una posible ejecución sin deadlock
p1 p2
• •
t1 p3 t2
p4 •• p5 secuencia de
disparos:
t3’ t4’ (t1, t3’, t3’’, t5)
p6 p7
t3’’ t4’’
p8 p9
t5 t6
Modelado con Redes de Petri
52
Una posible ejecución con deadlock
p1 p2
•
t1 p3 t2
p4 •• p5 secuencia de
• disparos:
t3’ t4’ (t1)
p6 p7
t3’’ t4’’
p8 p9
t5 t6
Modelado con Redes de Petri
53
Una posible ejecución con deadlock
p1 p2
t1 p3 t2
p4 •• p5 secuencia de
• • disparos:
t3’ t4’ (t1, t2)
p6 p7
t3’’ t4’’
p8 p9
t5 t6
Modelado con Redes de Petri
54
Una posible ejecución con deadlock
p1 p2
t1 p3 t2
p4 • p5 secuencia de
• disparos:
t3’ t4’ (t1, t2, t3’)
p6 p7
•
t3’’ t4’’
p8 p9
t5 t6
Modelado con Redes de Petri
55
Una posible ejecución con deadlock
p1 p2
t1 p3 t2
p4 p5 secuencia de
disparos:
t3’ t4’ (t1, t2, t3’, t4’)
p6 p7
• • deadlock
(ninguno de los
t3’’ t4’’
p8 p9
procesos puede
continuar)
t5 t6
Ejemplo 10. Brazo Robótico 56
a) Después de que la RdP. se ‘dispara’ dos veces (se producen dos transiciones), buscar un estado en el que todas
las transiciones estén ‘muertas’.
b) Suponer que se aplica la siguiente secuencia de disparo (t3, t1, t3, t1,.....). Demostrar que no se puede realizar
dicha secuencia de una manera indefinida.
write consume
p1
• p2 c1
• c2
produce read 1
read
0 •
write
RdP para Productor-Consumidor
62
consume
c1 • c2
read
0
• 1
write
p1 • p2
produce
Limitaciones de las Redes de Petri 63
tradicionales y algunas extensiones
p1 < p2 p2 = p3
t1 t2
p4:=p2+p1 p4:=p3-p2
p4 p5 p5:= p2+p3
p1 < p2 p2 = p3
t1 t2
p4:=p2+p1 p4:=p3-p2
p4 p5 p5:= p2+p3
10
p1 < p2 p2 = p3
t1 t2
p4:=p2+p1 p4:=p3-p2
p4 p5 p5:= p2+p3
10 8
0
prioridad = 1 t1 t2 prioridad = 2
p4 p5