You are on page 1of 29

PROGRAMACION CONCURRENTE Y

DISTRIBUIDA

V.1 Redes de Petri: Descripcin de sistemas concurrentes.

J.M. Drake

Notas:

1
Redes de Petri
Las redes de Petri (PN) (C.A. Petri, 1962) son una herramienta de
modelado muy efectiva para la representacin y el anlisis de procesos
concurrentes.
Su xito se debe bsicamente a la simplicidad de su mecanismo bsico, si
bien, la representacin de grandes sistemas es costosa.
Numerosos autores han extendido el modelo bsico:
Redes de Petri Temporizadas o Timed Petri Nets: Introduciendo el concepto
de tiempo, para modelar el comportamiento temporal de los sistemas
dinmicos.
Red de Petri Estocstica (Stochastic Petri Net, SPN): Se especifica el
comportamiento temporal con variables aleatorias exponenciales. Son
isomorficas a las cadenas de Markov. Tienen mayor capacidad que la Teora
de Colas
Red de Petri Coloreada (CPN): A los testigo se le aade atributos que se
denominan color. Permiten modelar sistemas concurrentes descritos mediante
flujos de datos.

Procodis08: V.1- Descripcin por redes de Petri Jos M.Drake 2

Notas:

2
Diagramas de estados
l1 r1
Los diagramas de estados es el
mtodo mas usado para analizar A T1 B
sistemas dinmicos.
M l2 r2

C T2 D

Autmatas: C
1
A
Al pulsar M ambos carros se MAC

desplazan a la derecha. El regreso


lo hacen simultneamente r1 , r2
2
cuando ambos carros se B D
encuentren en el extremo derecho. r2 3 4 r1
D B

5 l1 , l2

A C
6 7
l2 l1

Procodis08: V.1- Descripcin por redes de Petri Jos M.Drake 3

Notas:

3
Diagramas de estados y sistemas concurrentes
1
El espacios de estados se hace MACE
muy complejo cuando se tratan r1 , r 2 , r 3
2
sistemas concurrentes. B D F

- Para N carros: 2N+1-1 estados


- Son pocos flexibles, Cambios de la 3 r2 , r 3 4 r1 , r 3 5 r1 , r 2
B
especificacin implica cambios D F B F D

drsticos del modelo


6 r3 7 r2 8 r1

Se requieren otros mtodos formales, F B


D A C E
por ejemplo Redes de Petri 9 l1 , l 2 , l 3
A C E

10 l2 , l 3 11 l1 , l 3 12 l1 , l 2
C E A E A C

13 l3 14 l2 15 l1

Procodis08: V.1- Descripcin por redes de Petri Jos M.Drake 4

Notas:

4
Redes de Petri
Una red de Petri (RdP) es un grafo p1
orientado con dos clases de nodos:
lugares (circunferencias) y t
1
transiciones (barras). Los arcos unen
un lugar con una transicin o
viceversa. p p
2 3

Un lugar pude contener un nmero


positivo o nulo de marcas. t t3
2
Distribucin de marcas en los
lugares, marcado estado de la
RdP. p4 p
5
Se asocian entradas y salidas a
lugares y transiciones p.e.: t4
salida lugar marcado
entrada transicin

Procodis08: V.1- Descripcin por redes de Petri Jos M.Drake 5

Notas:

5
Evolucin de una RdP
Una transicin est sensibilizada si todos sus lugares de entrada estn
marcados
Transicin sensibilizada => puede disparar
Disparo => evolucin del estado: Retirada de una marca de cada lugar de
entrada, depsito de una marca en cada lugar de salida

t1 t2 t3

t1 t2 t3

Procodis08: V.1- Descripcin por redes de Petri Jos M.Drake 6

Notas:

6
Modelos de los problemas de carros

r1 r2 r1 r2 r3

B D B D F

l1 l2 l1 l2 l3

A C A C E

M M

2 carros 3 carros
Procodis08: V.1- Descripcin por redes de Petri Jos M.Drake 7

Notas:

7
Formalizacin de las RdP
Red de Petri (RdP): es una cudrupla R = {P, T, , } tal que
P es un conjunto finito y no vaco de lugares
T es un conjunto finito y no vaco de transiciones
PT=
:P x T N es la funcin de incidencia previa
:T x P N es la funcin de incidencia posterior

RdP marcada: es un par {R, Mo}, donde R es una RdP y Mo


es un marcado inicial.
Marcado actual: M={m1, m2, m3, ..., mn}
Marcado inicial: Mo={mo1, mo2, mo3, ..., mon}

Procodis08: V.1- Descripcin por redes de Petri Jos M.Drake 8

Notas:

8
Representacin grfica Representacin matricial
Arco de pi a tj (pi,tj) 0 Matriz de incidencia previa: C =
Arco de tk a pi (tk,pi) 0 [cij] donde cij = (pi,tj)
Arcos etiquetados con un peso = Matriz de incidencia posterior: C+
(pi,tj) (tk,pi)
= [cij+] donde cij+ = (tj,pi)
p
1
Matriz de incidencia: C = C+ - C-

t
1
2 p1 1 0 1
p p 1 0 1
3
C = 2
p3 2 1 0
p2 t2
p4 0 1 2
p
4

2
t
3

Procodis08: V.1- Descripcin por redes de Petri Jos M.Drake 9

Notas:

9
Representacin matricial de una red de Petri
0 0 0 0 1
1 0 0 1 0
C+
0 0 0 0
Matriz incidencia posterior 1
0 1 0 0 0
0 0 1 0 0

1 0 0 0 0
0 1 0 0 0
C-
0 1 0 0
Matriz incidencia previa 0
0 0 0 1 1
0 0 0 0 1

1 0 0 0 1
1 1 0 1 0
C=C+-C-
Matriz incidencia 1 0 1 0 0

0 1 0 1 1
0 0 1 0 1

Procodis08: V.1- Descripcin por redes de Petri Jos M.Drake 10

Notas:

10
Clculo de la evolucin con RdP

M i +1 = M i + CU

1
0

U1 = 0 Se dispara t1

0
0

1 1 0 0 0 1 1 0
0 1 1 0 1 0 0 1

M 1 = 0 + 1 0 1 0 0 0 = 1

0 0 1 0 1 1 0 0
0 0 0 1 0 1 0 0

Procodis08: V.1- Descripcin por redes de Petri Jos M.Drake 11

Notas:

11
Clasificacin de RdP
RdP ordinaria: sus funciones de incidencia slo pueden tomar los valores 0 y 1:
(p,t) {0,1}, (t,p) {0,1}

Grafo de Estados (GE): tT |t| = 1 y |t| = 1


Toda transicin tiene una unica plaza de entrada y una nica plaza
de salida

Grafo Marcado (GM): pP |p| = 1 y |p| = 1


Todo lugar tiene como mximo una transicin de entrada y
una transicin de salida

RdP Libre Eleccin (RLE): pP, |p| > 1 => tkp, |tk| = 1
Si ti y tj tienen una plaza de entrada comn, esta es la nica plaza
de ambas transiciones.

RdP Simple (RS):


Cualquier transicin tiene como mximo una nica plaza de
entrada compartida con otras transiciones.
Procodis08: V.1- Descripcin por redes de Petri Jos M.Drake 12

Notas:

12
Clasificacin RdP
RdP generalizada (RdPG): las funciones de incidencia pueden tomar valores en todos
los nmeros naturales => arcos con peso
RdP Generalizada

GE GM
RS
RLE

RdP Ordinaria

RdP binaria: M(p) 1 pP t1 habilitada t1 no habilitada

RdP con arcos inhibidores: t1 t1

Procodis08: V.1- Descripcin por redes de Petri Jos M.Drake 13

Notas:

13
Modelo de representacin
abc a
Entradas: b
c
(eventos discretos, condiciones lgicas externas), evento
Salidas: (eventos discretos, salidas a nivel),
Cdigo asociado a las transiciones.
seal
set(s) s
Acc. impulsionales asociadas a transiciones
=> disparo instantneo

abc a
b
c
Cdigo/actividades en transiciones
----
=> disparo no instantneo ----
---- w
----
----

Procodis08: V.1- Descripcin por redes de Petri Jos M.Drake 14

Notas:

14
Modos fundamentales
Ejecucin secuencial

Ejecucin concurrente

Procodis08: V.1- Descripcin por redes de Petri Jos M.Drake 15

Notas:

15
Modelo de Productor-Consumidor

P1: Dispuesto a producir


T1: Produce elemento
P2: Dispuesto a entregar
T2: Entrega elemento
P3: Dispuesto a recibir
T3: Recibe elemento
P4: Dispuesto a consumir
T4: Consume elemento
P5: Buffer

Procodis08: V.1- Descripcin por redes de Petri Jos M.Drake 16

Notas:

16
Modelo Productor-Consumidor con buffer limitado

P1: Dispuesto a producir


T1: Produce elemento
P2: Dispuesto a entregar
T2: Entrega elemento
P3: Dispuesto a recibir
T3: Recibe elemento
P4: Dispuesto a consumir
T4: Consume elemento
P5: Elementos transferidos
P6: Huecos disponibles

Procodis08: V.1- Descripcin por redes de Petri Jos M.Drake 17

Notas:

17
Modelo Productor-Consumidor: 2 prod.x2 cons.

Consumidor 1
Productor 1

Consumidor 2
Productor 2

Procodis08: V.1- Descripcin por redes de Petri Jos M.Drake 18

Notas:

18
Exclusin mtua

Procodis08: V.1- Descripcin por redes de Petri Jos M.Drake 19

Notas:

19
Exclusin mutua con prioridad

Procodis08: V.1- Descripcin por redes de Petri Jos M.Drake 20

Notas:

20
Filsofos chinos

Piensa

Come

Procodis08: V.1- Descripcin por redes de Petri Jos M.Drake 21

Notas:

21
Ejemplo modelado: Carros con va comn
MA lA
rA lB rB
LA A
WA G B MU

WB U
MB LB

Dos carros A y B transportan cierto material desde los puntos de carga LA y LB,
respectivamente, hasta el punto de descarga D. Los diferentes movimientos son
controlados mediante las seales lA, lB, rA, rB. Si A est en LA y el pulsador MA
est oprimido, comienza un ciclo LA-U-LA:
- Espera eventual en WA hasta que la zona comn a los dos carros est libre, con el fin
de evitar colisiones;
- Espera obligatoria en U hasta MU (pulsador de fin de descarga).
El carro B tiene un funcionamiento similar pero, en caso de demanda simultnea de la va
comn, B es prioritario. El recorrido WA-U o WB-U se establece por un cambio de agujas
controlado por la accin G.

Procodis08: V.1- Descripcin por redes de Petri Jos M.Drake 22

Notas:

22
RdP: Carros con va comn
1 2
Transiciones => entradas de sensores
MA MB
Lugares => seales de salida
14 rA rB 15

WA WB
MA lA
4 3 5
rA lB rB
WB LA A
rA ,G 6 7 rB WA G B MU
U U
WB U
G 8 9 MB L B
MU MU

l A ,G 10 11 l B
WA WB
12 13
lA lB
LA LB

Procodis08: V.1- Descripcin por redes de Petri Jos M.Drake 23

Notas:

23
Ejemplo modelo: Lectores y escritores
Dos conjuntos de usuarios (lectores y redactores) tienen que
coordinarse para acceder a unos datos comunes:
los lectores slo inspeccionan, y por lo tanto pueden acceder
simultneamente a los datos
los redactores actualizan los datos y su trabajo debe estar en exclusin
mutua con el resto de usuarios
Cada usuario puede estar en uno de los siguientes estados:
activo, espera y reposo.

Procodis08: V.1- Descripcin por redes de Petri Jos M.Drake 24

Notas:

24
RdP: Modelo de lectores y escritores (2L y 2E)

X1 X2

RL 1 RL 2 RR 1 RR 2

DL 1 DL 2 DR 1 DR 2

EL 1 EL 2 ER 1 ER 2

CL 1 CL 2 CR 1 CR 2

AL 1 AL 2 AR 1 AR 2

FL 1 FL 2 FR 1 FR 2

1 letra: R = reposo 2 letra: Li = i-simo lector


E = espera Rj = j-simo redactor
A = activo
D = demanda de recurso
C = comienzo operacin
F = fin de operacin
Procodis08: V.1- Descripcin por redes de Petri Jos M.Drake 25

Notas:

25
Ejemplo Modelo: Transmisin datos

Se desea disear un sistema de transmisin de datos con las siguientes caractersticas:


- El sistema recibe datos (8 bits) de un puerto paralelo (p.e. PORTCL del 68HC11
con handshake)
- Cada dato es procesado e introducido en un buffer con capacidad para 8 datos
- Los datos son sacados del buffer con poltica FIFO y enviados por lnea serie (SCI)
mediante un sencillo protocolo con reenvo

STRB

PORTCL
T
DATO
SCI ACK/NACK
STRA

Procodis08: V.1- Descripcin por redes de Petri Jos M.Drake 26

Notas:

26
RdP: Transmisin datos

NACK C5
P1 ACK

TC51 TC52
TP1 llegada_dato
leer() llegada_caracter TC4

P2 C4

TP2 enviar()
procesar()
TC3

P3 C3
H
TP3
sacar() TC2

P4 MUTEX C2

TP4 meter()
TC1
O

C1

Procodis08: V.1- Descripcin por redes de Petri Jos M.Drake 27

Notas:

27
Ecuacin de estado
Transicin sensibilizada: Una transicin t T est sensibilizada por el
marcado M cada uno de sus lugares de entrada posee al menos (p,t)
marcas. Es decir, se exige que p t M(p) (p,t).
Disparo de un transicin: Disparar una transicin sensibilizada es la
operacin que consiste en eliminar (p,t) marcas de cada lugar de entrada
y aadir (t,p) marcas a cada lugar de salida. Es decir al disparar t se
obtiene:
M j ( p ) = M i ( p ) + (t , p ) ( p, t )p P

y se representa M i ]t > M j

M 0 ]ti > M1 ]t j > M 2 ...]tr > M q


Secuencia de disparos:
= tit j ...tr M 0 ] > M q

Vector caracterstico de una secuencia


( i = n de apariciones de ti en )
Procodis08: V.1- Descripcin por redes de Petri Jos M.Drake 28

Notas:

28
Ecuacin de estado
Mk marcado obtenido en el k-simo disparo
Uk vector cuyas componentes son nulas salvo la i-sima si ti es la
transicin disparada en k-simo lugar
p1 p1

Uk ( i) = 1,Uk ( j ) = 0, j i t1 t1
2 2

Mk = Mk1 + CUk =
p3 p3

p2 p2
= Mk2 + C (Uk1 + Uk ) =
t2 t2

= Mk3 + C (Uk2 + Uk1 + Uk ) =... =


p4 p4

2 2
t t
3 3

= t1t2 t2
k
= M0 + C U j = M0 + C
j=1
1

= 2

0

Procodis08: V.1- Descripcin por redes de Petri Jos M.Drake 29

Notas:

29

You might also like