Está en la página 1de 29

PROGRAMACION CONCURRENTE Y

DISTRIBUIDA

V.1 Redes de Petri: Descripción 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 representación y el análisis de procesos
concurrentes.
Su éxito se debe básicamente a la simplicidad de su mecanismo básico, si
bien, la representación de grandes sistemas es costosa.
Numerosos autores han extendido el modelo básico:
Redes de Petri Temporizadas o Timed Petri Nets: Introduciendo el concepto
de tiempo, para modelar el comportamiento temporal de los sistemas
dinámicos.
Red de Petri Estocástica (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 Teoría
de Colas
Red de Petri Coloreada (CPN): A los testigo se le añade atributos que se
denominan color. Permiten modelar sistemas concurrentes descritos mediante
flujos de datos.

Procodis’08: V.1- Descripción por redes de Petri José M.Drake 2

Notas:

2
Diagramas de estados
l1 r1
Los diagramas de estados es el
método mas usado para analizar A T1 B
sistemas dinámicos.
M l2 r2

C T2 D

Autómatas: C
1
A
Al pulsar M ambos carros se MAC

desplazan a la derecha. El regreso


lo hacen simultáneamente 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

Procodis’08: V.1- Descripción 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
especificación implica cambios D F B F D

drásticos del modelo


6 r3 7 r2 8 r1

Se requieren otros métodos 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

Procodis’08: V.1- Descripción 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 transición o
viceversa. p p
2 3

Un lugar pude contener un número


positivo o nulo de marcas. t t3
2
Distribución 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 → transición

Procodis’08: V.1- Descripción por redes de Petri José M.Drake 5

Notas:

5
Evolución de una RdP
Una transición está sensibilizada si todos sus lugares de entrada están
marcados
Transición sensibilizada => puede disparar
Disparo => evolución del estado: Retirada de una marca de cada lugar de
entrada, depósito de una marca en cada lugar de salida

t1 t2 t3

t1 t2 t3

Procodis’08: V.1- Descripción 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
Procodis’08: V.1- Descripción por redes de Petri José M.Drake 7

Notas:

7
Formalización de las RdP
Red de Petri (RdP): es una cuádrupla R = {P, T, α, β} tal que
P es un conjunto finito y no vacío de lugares
T es un conjunto finito y no vacío de transiciones
P∩T=Ø
α:P x T → N es la función de incidencia previa
β:T x P → N es la función 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}

Procodis’08: V.1- Descripción por redes de Petri José M.Drake 8

Notas:

8
Representación gráfica Representación 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

Procodis’08: V.1- Descripción por redes de Petri José M.Drake 9

Notas:

9
Representación 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⎥⎦

Procodis’08: V.1- Descripción por redes de Petri José M.Drake 10

Notas:

10
Cálculo de la evolución 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⎥⎦

Procodis’08: V.1- Descripción por redes de Petri José M.Drake 11

Notas:

11
Clasificación de RdP
• RdP ordinaria: sus funciones de incidencia sólo pueden tomar los valores 0 y 1:
α(p,t) ∈ {0,1}, β(t,p) ∈ {0,1}

Grafo de Estados (GE): ∀t∈T |•t| = 1 y |t•| = 1


Toda transición tiene una unica plaza de entrada y una única plaza
de salida

Grafo Marcado (GM): ∀p∈P |•p| = 1 y |p•| = 1


Todo lugar tiene como máximo una transición de entrada y
una transición de salida

RdP Libre Elección (RLE): ∀p∈P, |p•| > 1 => ∀tk∈p•, |•tk| = 1
Si ti y tj tienen una plaza de entrada común, esta es la única plaza
de ambas transiciones.

RdP Simple (RS):


Cualquier transición tiene como máximo una única plaza de
entrada compartida con otras transiciones.
Procodis’08: V.1- Descripción por redes de Petri José M.Drake 12

Notas:

12
Clasificación RdP
RdP generalizada (RdPG): las funciones de incidencia pueden tomar valores en todos
los números naturales => arcos con peso
RdP Generalizada

GE GM
RS
RLE

RdP Ordinaria

RdP binaria: M(p) ≤ 1 ∀p∈P t1 habilitada t1 no habilitada

RdP con arcos inhibidores: t1 t1

Procodis’08: V.1- Descripción por redes de Petri José M.Drake 13

Notas:

13
Modelo de representación
abc a
Entradas: b
c
(eventos discretos, condiciones lógicas externas), evento
Salidas: (eventos discretos, salidas a nivel),
Código asociado a las transiciones.
señal
set(s) s
Acc. impulsionales asociadas a transiciones
=> disparo instantáneo

abc a
b
c
Código/actividades en transiciones
----
=> disparo no instantáneo ----
---- w
----
----

Procodis’08: V.1- Descripción por redes de Petri José M.Drake 14

Notas:

14
Modos fundamentales
Ejecución secuencial

Ejecución concurrente

Procodis’08: V.1- Descripción 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

Procodis’08: V.1- Descripción 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

Procodis’08: V.1- Descripción 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

Procodis’08: V.1- Descripción por redes de Petri José M.Drake 18

Notas:

18
Exclusión mútua

Procodis’08: V.1- Descripción por redes de Petri José M.Drake 19

Notas:

19
Exclusión mutua con prioridad

Procodis’08: V.1- Descripción por redes de Petri José M.Drake 20

Notas:

20
Filósofos chinos

Piensa

Come

Procodis’08: V.1- Descripción por redes de Petri José M.Drake 21

Notas:

21
Ejemplo modelado: Carros con vía común
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 señales 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 común 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 simultánea de la vía
común, B es prioritario. El recorrido WA-U o WB-U se establece por un cambio de agujas
controlado por la acción G.

Procodis’08: V.1- Descripción por redes de Petri José M.Drake 22

Notas:

22
RdP: Carros con vía común
1 2
Transiciones => entradas de sensores
MA MB
Lugares => señales 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

Procodis’08: V.1- Descripción 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 sólo inspeccionan, y por lo tanto pueden acceder
simultáneamente a los datos
los redactores actualizan los datos y su trabajo debe estar en exclusión
mutua con el resto de usuarios
Cada usuario puede estar en uno de los siguientes estados:
activo, espera y reposo.

Procodis’08: V.1- Descripción 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 operación
F = fin de operación
Procodis’08: V.1- Descripción por redes de Petri José M.Drake 25

Notas:

25
Ejemplo Modelo: Transmisión datos

Se desea diseñar un sistema de transmisión de datos con las siguientes características:


- 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 política FIFO y enviados por línea serie (SCI)
mediante un sencillo protocolo con reenvío

STRB

PORTCL
T
DATO
SCI ACK/NACK
STRA

Procodis’08: V.1- Descripción por redes de Petri José M.Drake 26

Notas:

26
RdP: Transmisión 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

Procodis’08: V.1- Descripción por redes de Petri José M.Drake 27

Notas:

27
Ecuación de estado
Transición sensibilizada: Una transición 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 transición: Disparar una transición sensibilizada es la
operación que consiste en eliminar α(p,t) marcas de cada lugar de entrada
y añadir β(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 característico de una secuencia


σ ( σ i = nº de apariciones de ti en σ )
Procodis’08: V.1- Descripción por redes de Petri José M.Drake 28

Notas:

28
Ecuación de estado
Mk → marcado obtenido en el k-ésimo disparo
Uk → vector cuyas componentes son nulas salvo la i-ésima si ti es la
transición disparada en k-ésimo lugar
p1 p1

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

Mk = Mk−1 + CUk =
p3 p3

p2 σ p2
= Mk−2 + C (Uk−1 + Uk ) =
t2 t2

= Mk−3 + C (Uk−2 + Uk−1 + Uk ) =... =


p4 p4

2 2
t t
3 3

σ = t1t2 t2
k
= M0 + C ∑ U j = M0 + C σ
j=1
⎛ 1⎞
⎜ ⎟
σ = ⎜ 2⎟
⎜ ⎟
⎝ 0⎠

Procodis’08: V.1- Descripción por redes de Petri José M.Drake 29

Notas:

29

También podría gustarte