Académique Documents
Professionnel Documents
Culture Documents
finitos
Caractersticas
Simple
Formal
Operacional
Nmero finito de estados
Definicin
Una mquina de estados finitos M consiste
de:
Representacin grfica
Grafo
Cuando se origina
alguna de las dos
seales, se invoca
automticamente
una accin de
recuperacin (existe
una accin de
temperatura y una
accin de presin).
Si, despus de un
rato, la accin de
recuperacin tiene
xito, el sistema es
automticamente reinicializado al estado
normal y un mensaje
de todo OK es
emitido.
Si la
recuperacin no
tiene xito, la
seal de alarma
debe ser lanzada
y la planta debe
ser apagada.
El sistema debe
tambin ser apagado si
se est tratando de
recuperar de algn tipo
de anormalidad (de
temperatura o presin)
y la otra seal aparece.
Sistema productor-consumidor
Problemas en el modelo
Modelo sincrnico.
Introduccin a las
Redes de Petri
Redes de Petri
I: T P
O: T P
pi O(tj) si existe un arco de tj a pi
Ejemplo 1
p1
p2
t1
t2
p3
p4
p5
t3
p7
t5
t6
O(t1) = {p4}
I(t2) = {p2}
O(t2) = {p5}
O(t3) = {p6}
t4
p6
I(t1) = {p1}
I(t5) = {p6}
I(t6) = {p7}
Ejemplo 2
p2
p1
t1
P = {p1, p2}
T = {t1}
I(t1) = {p1, p1}
O(t1) = {p2, p2, p2}
Redes de Petri
Marcacin y ejecucin
p2
t1
P = {p1, p2}
T = {t1}
I(t1) = {p1, p1}
O(t1) = {p2, p2, p2}
Marcacin
Una marcacin de una Red de Petri
PN = <P, T, I, O> es una funcin:
: P {0, 1, 2, ...}
que asigna un nmero entero no negativo de
tokens a cada place de la red.
Marcacin
p2
t1
(p1) = 2 (p2) = 0
= (2,0)
p1
t1
t2
p3
p4
p2
p5
t3
p7
t5
t6
O(t1) = {p4}
I(t2) = {p2}
O(t2) = {p5}
O(t3) = {p6}
t4
p6
I(t1) = {p1}
I(t5) = {p6}
I(t6) = {p7}
= (1, 1, 1, 0, 0, 0, 0)
Reglas de Ejecucin
1.
2.
t1
t1
p1
t1 no habilitada
p2
p1
t1 habilitada,
puede disparar
p2
Reglas de Ejecucin
3.
p1
t1
p2
p1
p2
Dispar t1
p4
p3
p4
p3
Reglas de Ejecucin
Formalmente, una transicin t T est habilitada
en una red de Petri PN = <P, T, I, O> 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.
t1
t2
p3
p4
0 = (1, 1, 1, 0, 0, 0, 0)
p5
t3
estn
t4
p6
p7
t5
t6
t1 y t2
habilitadas.
t1
t2
p3
p4
0 = (1, 1, 1, 0, 0, 0, 0)
p5
t3
secuencia de
disparos: (t1)
t4
p6
p7
t5
t6
1 = (0, 1, 1, 1, 0, 0, 0)
t2 y t3 quedaron
habilitadas.
t2
p3
p4
0 = (1, 1, 1, 0, 0, 0, 0)
t3
p5
1 = (0, 1, 1, 1, 0, 0, 0)
2 = (0, 0, 1, 1, 1, 0, 0)
t4
p6
p7
t5
t6
secuencia de
disparos: (t1,t2)
t3 y t4 quedaron
habilitadas.
t2
p3
p4
0 = (1, 1, 1, 0, 0, 0, 0)
p5
1 = (0, 1, 1, 1, 0, 0, 0)
2 = (0, 0, 1, 1, 1, 0, 0)
t3
3 = (0, 0, 0, 1, 0, 0, 1)
t4
p6
t5
t6
p7
secuencia de
disparos: (t1,t2,t4)
t6 qued
habilitada.
t1
t2
p3
p4
0 = (1, 1, 1, 0, 0, 0, 0)
p5
2 = (0, 0, 1, 1, 1, 0, 0)
t3
3 = (0, 0, 0, 1, 0, 0, 1)
t4
p6
p7
t5
1 = (0, 1, 1, 1, 0, 0, 0)
t6
4 = (0, 1, 1, 1, 0, 0, 0)
secuencia de
disparos: (t1,t2,t4,t6)
t2 y t3 quedaron
habilitadas. ...
t1
t3
t1 siempre habilitada
t1
t2
p3
p4
Eventos del
proceso 1
p5
t3
t1 = proceso 1 solicita
recurso
t4
p6
p7
t5
t6
t3 = proceso 1 toma
recurso
t5 = proceso 1 libera
recurso
t1
t2
p3
p4
Eventos del
proceso 2
p5
t3
t2 = proceso 2 solicita
recurso
t4
p6
p7
t5
t6
t4 = proceso 2 toma
recurso
t6 = proceso 2 libera
recurso
t1
t2
p3
p4
p5
t3
t4
p6
p7
t5
t6
p3 representa la
disponibilidad o
no de un recurso.
t1
t2
p3
p4
p5
t3
t4
p6
p7
t5
t6
t1 y t2 habilitadas
y el disparo de una
no deshabilita la
otra =>
concurrentes
p4
t2
t3
p5
t4
p6
p7
t5
t6
t3 y t4 habilitadas
y el disparo de una
deshabilita la otra
=> en conflicto
Starvation
secuencia de
disparos:
t1
t2
p3
p4
t3
p5
t4
p6
p7
t5
t6
(t2)
Starvation
secuencia de
disparos:
t1
t2
p3
p4
p5
t3
t4
p6
t5
t6
p7
(t2,t4)
Starvation
secuencia de
disparos:
t1
t2
p3
p4
p5
t3
t4
p6
p7
t5
t6
(t2,t4,t6)
Starvation
secuencia de
disparos:
t1
t2
p3
p4
t3
p5
t4
p6
p7
t5
t6
(t2,t4,t6,t2)
Starvation
secuencia de
disparos:
t1
t2
p3
p4
p5
t3
t4
p6
t5
t6
p7
(t2,t4,t6,t2,t4)
Starvation
secuencia de disparos:
t1
p3
p4
(t2,t4,t6,t2,t4,t6,...)
t2
p5
starvation de proceso 1
t3
t4
p6
p7
t5
t6
p3
t1
p4
t2
p5
t4
t3
p6
p7
t3
p8
t4
t5
t6
deadlock
p3
t1
t2
p4
p5
t4
t3
p6
(t1)
p7
t3
p8
t4
p9
t5
t6
secuencia de
disparos:
deadlock
p3
t1
t2
p4
p5
t4
t3
p6
(t1, t3)
p7
t3
p8
t4
p9
t5
t6
secuencia de
disparos:
deadlock
p3
t1
t2
p4
p5
t4
t3
p6
t3
p8
t4
p9
t5
t6
secuencia de
disparos:
deadlock
p3
t1
t2
p4
p5
t4
t3
p6
t3
p8
t4
p9
t5
t6
secuencia de
disparos:
deadlock
p3
t1
t2
p4
p5
t4
t3
p6
(t1)
p7
t3
p8
t4
p9
t5
t6
secuencia de
disparos:
p5
t4
t3
p6
(t1, t2)
p7
t3
p8
t4
p9
t5
t6
secuencia de
disparos:
p5
t4
t3
p6
t3
p8
t4
p9
t5
t6
secuencia de
disparos:
p5
t4
t3
p6
t3
p8
p7
t4
p9
t5
t6
secuencia de
disparos:
deadlock (ninguno
de los procesos
puede continuar)
PN para ProductorConsumidor
Primerawrite
aproximacin
consume
p1
p2
c1
produce
c2
read
read
write
PN para ProductorConsumidorconsume
c1
c2
read
1
write
p1
p2
produce
p2
p1
p1 < p2
p4:=p2+p1
7
3
t1
t2
p3
p2 = p3
p4:=p3-p2
p5 p5:= p2+p3
p4
p2
p1
p1 < p2
p4:=p2+p1
t1
p4
t2
10
p3
p2 = p3
p4:=p3-p2
p5 p5:= p2+p3
p2
p1
p1 < p2
p4:=p2+p1
p3
t1
p4
t2
10
0
p2 = p3
p4:=p3-p2
p5 p5:= p2+p3
8
p2
p1
prioridad = 1
t1
p4
p3
t2 prioridad = 2
p5
p2
p1
prioridad = 1
tmin = 1
tmax = 4
t1
p4
t2
p3
prioridad = 2
p5 tmin = 2
tmax = 3