computação avançada - dei.isep.ipp.ptnpereira/aulas/compa/09/compa-mod1-teorica_v1.pdf · regras...
TRANSCRIPT
1
Computação Avançada
Módulo 1 (Aula Teórica)Modelação e Análise de Sistemas Computacionais
Eduardo Tovar <[email protected]>
DEI-ISEP, Março de 2007 Eduardo Tovar 2
Índice1. Introdução2. Noções Básicas de Redes de Petri (RdP)3. Regras de Evolução das RdP4. RdP Generalizadas5. Componentes de Modelação em RdP6. Análise Computacional de Modelos RdP7. Utilização da Ferramenta HP-SIM
2
DEI-ISEP, Março de 2007 Eduardo Tovar 3
Introdução (1)
• modernos sistemas computacionais têm:– crescente complexidade (e distribuição)– crescente exigência de confiança no funcionamento e de
qualidade de serviço
• daí a necessidade de: – utilizar ferramentas e métodos rigorosos nas fases de
especificação, teste e análise de desempenho do sistema– assegurar, logo na fase de concepção e especificação, elevada
probabilidade de o sistema estar isento de erros de concepção
DEI-ISEP, Março de 2007 Eduardo Tovar 4
Introdução (2)• ferramentas formais de modelação de sistemas
de eventos discretos que permitam– especificação formal e não ambígua do sistema– grande capacidade de modelação
• mecanismos de concorrência e sincronização• paralelismo• fluxo condicional e repetitivo• temporização• etc.
– facilidade de validação do modelo e, mais importante, de validação, análise e teste do sistema modelado
– ergonomia de utilização (também gráfica), e facilidade de exploração computacional do modelo
3
DEI-ISEP, Março de 2007 Eduardo Tovar 5
Introdução (3)• estamos a falar de Redes de Petri (RdP)
– introduzidas em 1962 por Carl Adam Petri (Alemanha)• Petri, C. A., “Fundamentals of a Theory of Asynchronous Information Flow”, Proc. of
IFIP Congress 62. --- Amsterdam: North Holland Publ. Comp., 1963, Pages: 386-390• Petri, C. A., “Kommunikation mit Automaten”, Bonn: Institut für Instrumentelle
Mathematik, Schriften des IIM Nr. 2, 1962, Second Edition:, New York: Griffiss Air Force Base, Technical Report RADC-TR-65--377, Vol.1, 1966, Pages: Suppl. 1, Englishtranslation
– na web (página de repositório de RdPs):• http://www.informatik.uni-hamburg.de/TGI/PetriNets/
DEI-ISEP, Março de 2007 Eduardo Tovar 6
Índice1. Introdução √2. Noções Básicas de Redes de Petri (RdP)3. Regras de Evolução das RdP4. RdP Generalizadas5. Componentes de Modelação em RdP6. Análise Computacional de Modelos RdP7. Utilização da Ferramenta HP-SIM
4
DEI-ISEP, Março de 2007 Eduardo Tovar 7
Noções Básicas de RdP (1)• elementos de definição de uma RdP
– posição, representada pelo símbolo:
– transição, representada pelo símbolo:
– marca (ou testemunho), representada pelo símbolo:
– arco (orientado), representado por:
DEI-ISEP, Março de 2007 Eduardo Tovar 8
Noções Básicas de RdP (2)• uma posição (Px)pode ser
interpretada como:– uma condição; um estado de
espera; um estado provisório, um recurso; uma posição geográfica; etc.
• uma transição (tx) corresponde a uma ocorrência ou acontecimento (evento)
• uma marca pode representar:– uma condição satisfeita; um
objecto está presente; um recurso disponível; etc.
P1
t2 t3
t1
t4
P2 P3
P4 P5
5
DEI-ISEP, Março de 2007 Eduardo Tovar 9
Noções Básicas de RdP (3)• as posições e as transições
são interligadas por arcos:– que são orientados– ligam uma posição a uma
transição ou uma transição a uma posição
– têm obrigatoriamente de ter uma posição ou uma transição nas extremidades
P1
t2 t3
t1
t4
P2 P3
P4 P5
DEI-ISEP, Março de 2007 Eduardo Tovar 10
• neste exemplo de RdP, que modela um sistema, existem:– 5 posições:
– 4 transições:
– e uma marcação inicial (o vector de marcação):
• a marcação (número de marcas em cada posição) define, para um determinado instante, o estado do sistema
Noções Básicas de RdP (4)
{ }54321 ,,,, PPPPPP =
P1
t2 t3
t1
t4
P2 P3
P4 P5
{ }4321 ,,, ttttt =
5
4
3
2
1
0
00001
PPPPP
M
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
=
6
DEI-ISEP, Março de 2007 Eduardo Tovar 11
• relativamente às interligações entre as posições e transições:
– matriz de incidência anterior (W-) às transições (arcos P → t):
– matriz de incidência posterior (W+) às transições (arcos t → P):
Noções Básicas de RdP (5)P1
t2 t3
t1
t4
P2 P3
P4 P5
5
4
3
2
1
4321
10001000010000100001
PPPPP
W
tttt
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
=−
5
4
3
2
1
4321
01000010000100011000
PPPPP
W
tttt
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
=+
DEI-ISEP, Março de 2007 Eduardo Tovar 12
• as matrizes de incidência W- e W+
e o vector de marcação inicial M0definem uma RdP, e constituem uma alternativa à representação gráfica
– considere a seguinte RdP:
– qual o modelo gráfico?
Noções Básicas de RdP (6)
0100001010010000
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
=+W
1000010000100001
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
=−W
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
=
0001
0M
7
DEI-ISEP, Março de 2007 Eduardo Tovar 13
• as matrizes de incidência W- e W+
e o vector de marcação inicial M0definem uma RdP
– passos para o modelo gráfico:
Noções Básicas de RdP (7)
0100001010010000
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
=+W
1000010000100001
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
=−W
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
=
0001
0M
solução:
existem 4 posições e 4 transições:
P1
P2
P3
P4
t1
t2
t3
t4
DEI-ISEP, Março de 2007 Eduardo Tovar 14
• as matrizes de incidência W- e W+
e o vector de marcação inicial M0definem uma RdP
– passos para o modelo gráfico:
Noções Básicas de RdP (8)
0100001010010000
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
=+W
1000010000100001
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
=−W
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
=
0001
0M
solução:
a partir da marcação inicial M0:
P1
P2
P3
P4
t1
t2
t3
t4
8
DEI-ISEP, Março de 2007 Eduardo Tovar 15
• as matrizes de incidência W- e W+
e o vector de marcação inicial M0definem uma RdP
– passos para o modelo gráfico:
Noções Básicas de RdP (9)
0100001010010000
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
=+W
1000010000100001
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
=−W
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
=
0001
0M
solução:
utilizando a informação de W-:
P1
P2
P3
P4
t1
t2
t3
t4
DEI-ISEP, Março de 2007 Eduardo Tovar 16
• as matrizes de incidência W- e W+
e o vector de marcação inicial M0definem uma RdP
– passos para o modelo gráfico:
1000010000100001
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
=−W
Noções Básicas de RdP (10)
0100001010010000
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
=+W
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
=
0001
0M
solução:
mais a informação de W-:
P1
P2
P3
P4
t1
t2
t3
t4
9
DEI-ISEP, Março de 2007 Eduardo Tovar 17
Índice1. Introdução √2. Noções Básicas de Redes de Petri (RdP) √3. Regras de Evolução das RdP4. RdP Generalizadas5. Componentes de Modelação em RdP6. Análise Computacional de Modelos RdP7. Utilização da Ferramenta HP-SIM
DEI-ISEP, Março de 2007 Eduardo Tovar 18
Regras de Evolução das RdP (1)
• numa RdP, a marcação (n.º de marcas em cada posição) define o estado do sistema modelado num determinado instante
• a evolução de estado do sistema corresponde, no modelo, à evolução da marcação da RdP
• a evolução dá-se por “disparo” de uma transição
10
DEI-ISEP, Março de 2007 Eduardo Tovar 19
Regras de Evolução das RdP (2)
• REGRA 1 (condição para o disparo de uma transição):– uma transição está habilitada (pode disparar) por uma
determinada marcação se, e só se, todas as posições anteriores à transição têm pelo menos uma marca
– exemplos:
P1
P2
t1P3
Ex. 1: t1 pode disparar
P1
P3
t1P4
Ex. 2: t1 não pode disparar
P2 P1
t1
Ex. 3: t1 pode disparar
P2
P3
t1
Ex. 4: t1 pode disparar
P1
DEI-ISEP, Março de 2007 Eduardo Tovar 20
Regras de Evolução das RdP (3)
• REGRA 2 (evolução da marcação após disparo):– após o disparo de uma transição:
• o número de marcas de cada posição anterior à transição diminui em uma unidade• e o número de marcas de cada posição posterior à transição aumenta em uma unidade
– exemplos:
P1
P2
t1P3
Ex. 1:
P1
P2
t1P3
→(após disparo
de t1)
Ex. 2:
→(após disparo
de t1)
t1
P1
t1
P1
11
DEI-ISEP, Março de 2007 Eduardo Tovar 21
Regras de Evolução das RdP (4)
• REGRA (3) (eventos discretos):– num determinado instante só pode disparar uma transição (o disparo de uma
transição − e a correspondente evolução da rede − corresponde a tempo nulo)
t1
P1
P3
t2
→(ou dispara t1 e t2 já
não estará habilitada)
P2
t1
P1
P3
t2
P2
t1
P1
P3
t2
P2→(ou dispara t2 e t1 já
não estará habilitada)
Exemplo:
DEI-ISEP, Março de 2007 Eduardo Tovar 22
Regras de Evolução das RdP (5)
• voltando a este exemplo de RdP– a marcação inicial é:
– t1 é a única transição habilitada, pelo que só t1 pode disparar
P1
t2 t3
t1
t4
P2 P3
P4 P5
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
=
00001
0M
12
DEI-ISEP, Março de 2007 Eduardo Tovar 23
Regras de Evolução das RdP (6)– após o disparo de t1 a
marcação resultante é a seguinte:
– t2 e t3 passam a estar habilitadas
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
=
00110
1M
P1
t2 t3
t1
t4
P2 P3
P4 P5
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
=
00001
0M1t
DEI-ISEP, Março de 2007 Eduardo Tovar 24
Regras de Evolução das RdP (7)– se para M1 for t2 a disparar, a
marcação resultante é a seguinte:
– só t3 passa a estar habilitada a partir de M2
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
=
00110
1M
P1
t2 t3
t1
t4
P2 P3
P4 P5
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
=
00001
0M1t ⎥
⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
=
01100
2M2t
13
DEI-ISEP, Março de 2007 Eduardo Tovar 25
Regras de Evolução das RdP (8)– se para M1 for t2 a disparar, a
marcação resultante é a seguinte:
– só t2 passa a estar habilitada a partir de M3
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
=
00110
1M
P1
t2 t3
t1
t4
P2 P3
P4 P5
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
=
00001
0M1t
3t
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
=
10010
3M
DEI-ISEP, Março de 2007 Eduardo Tovar 26
Regras de Evolução das RdP (9)– a partir de M3 só t2 pode
disparar, e a partir de M2 só t3pode disparar, e a marcação resultante é igual:
– só t4 passa a estar habilitada a partir de M4
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
=
00110
1M
P1
t2 t3
t1
t4
P2 P3
P4 P5
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
=
00001
0M1t ⎥
⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
=
01100
2M
3t
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
=
10010
3M
2t
2t
3t
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
=
11000
4M
14
DEI-ISEP, Março de 2007 Eduardo Tovar 27
Regras de Evolução das RdP (10)– a partir de M4 só t4 pode
disparar, e obtém-se uma marcação igual à marcação inicial (M0):
– o que obtivemos foi um gráfico de marcações acessíveis
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
=
00110
1M
P1
t2 t3
t1
t4
P2 P3
P4 P5
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
=
00001
0M1t ⎥
⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
=
01100
2M
3t
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
=
10010
3M
2t
2t
3t
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
=
11000
4M
4t
DEI-ISEP, Março de 2007 Eduardo Tovar 28
Regras de Evolução das RdP (11)
• Modelo RdP de um Sistema: EXEMPLO A– a refeição dos filósofos (Dijkstra's Dining Philosophers):
• filósofos foram a um congresso– parte (mais) importante do congresso: jantar de gala
» comida chinesa» mesas de quatro» utilização de pauzinhos chineses (hashis) para comer» só quatro pauzinhos por mesa, um entre cada filósofo» os filósofos ou meditam, ou comem (se o pauzinho de cada lado −
partilhado com o vizinho de mesa − estiver disponível)
15
DEI-ISEP, Março de 2007 Eduardo Tovar 29
Regras de Evolução das RdP (12)
• exemplo da refeição dos filósofos:– modelo RdP
F1 medita
F1 come
F2
F3
F4
Pauzinho P1
P2P3
P4
DEI-ISEP, Março de 2007 Eduardo Tovar 30
Regras de Evolução das RdP (13)
• exemplo da refeição dos filósofos:– transições habilitadas
F1 medita
F1 come
F2
F3
F4
Pauzinho P1
P2P3
P4
16
DEI-ISEP, Março de 2007 Eduardo Tovar 31
Regras de Evolução das RdP (14)
• exemplo da refeição dos filósofos:– filósofo 2 decide comer– só o F4 pode tb. comer
F1 medita
F1 come
F2
F3
F4
Pauzinho P1
P2P3
P4
DEI-ISEP, Março de 2007 Eduardo Tovar 32
Regras de Evolução das RdP (15)• NOTA: para além de
uma transição ter de estar habilitada, existe uma condição lógica(verdadeira ou falsa) a ela associada:
– a transição tx estáhabilitada, mas o filósofo F2 continua a comer (condição boleana farto é falsa)
– a transição ty estáhabilitada, mas o filósofo F4 continua a meditar (condição boleana fome é falsa)
F1 medita
F1 come
F2
F3
F4
Pauzinho P1
P2P3
P4
txty
17
DEI-ISEP, Março de 2007 Eduardo Tovar 33
Regras de Evolução das RdP (16)• por simplificação, essas
condições lógicas às vezes não aparecem explicitamente nos modelos
• pode acontecer que a condição lógica associada a uma transição seja sempre verdadeira
• para explicitar isso vamos utilizar a seguinte notação
– transição sempre verdadeira (disparo imediato):
– transição condicionada por um valor lógico (por exemplo tempo):
F1 medita
F1 come
F2
F3
F4
Pauzinho P1
P2P3
P4
tx
DEI-ISEP, Março de 2007 Eduardo Tovar 34
Regras de Evolução das RdP (17)
• modelo RdP de um Sistema: EXEMPLO B– Numa plataforma computacional existe um processo (Proc. 1) que executa continuamente.
O Proc. 1 corresponde à execução sequencial de 4 procedimentos (A, B, C, D), cada um dos quais demora algum tempo a executar.
– Existe na mesma plataforma um outro processo (Proc. 2). Proc. 2 tem dois estados (WAIT e MONITOR). Sempre que Proc. 1 começa a executar o procedimento B ou o D, e enquanto de mantiver a executar um desses procedimentos, Proc. 2 deve executar MONITOR (procedimento que demora algum tempo).
A B C D
START
WAIT
MONITOR
Proc. 1 Proc. 2
18
DEI-ISEP, Março de 2007 Eduardo Tovar 35
Regras de Evolução das RdP (18)
• modelo RdP de um Sistema: EXEMPLO B
A B C D
START
WAIT
MONITOR
Proc. 1 Proc. 2
Disparo desta transição depende do estado de Proc. 1
DEI-ISEP, Março de 2007 Eduardo Tovar 36
Regras de Evolução das RdP (19)
• modelo RdP de um Sistema: EXEMPLO B
A B C D
START
WAIT
MONITOR
Proc. 1 Proc. 2
O disparo desta transição passa a depender da LEITURA (não altera a marcação da posição “lida”) da posição B.
Falta acrescentar a sincronização com a posição D…
19
DEI-ISEP, Março de 2007 Eduardo Tovar 37
Regras de Evolução das RdP (20)
• modelo RdP de um Sistema: EXEMPLO B
A B C D
START
WAIT
MONITOR
Proc. 1 Proc. 2
Assim estamos a condicionar o disparo da transição à existência de uma marca em B e uma marca em D (coisa que nunca pode acontecer no Proc. 1). É um AND lógico.
Queremos um OR lógico…
DEI-ISEP, Março de 2007 Eduardo Tovar 38
Regras de Evolução das RdP (21)
• modelo RdP de um Sistema: EXEMPLO B
A B C D
START
WAIT
MONITOR
Proc. 1 Proc. 2
A evolução em Proc. 2 de WAIT para MONITOR pode fazer-se ou por … ou por … Ora aí está um OR lógico…
20
DEI-ISEP, Março de 2007 Eduardo Tovar 39
Regras de Evolução das RdP (22)
• modelo RdP de um Sistema: EXEMPLO B
A B C D
START
WAIT
MONITOR
Proc. 1 Proc. 2
A evolução em Proc. 2 de WAIT para MONITOR dá-se ou se houver uma marca em B, ou se houver uma marca em D
DEI-ISEP, Março de 2007 Eduardo Tovar 40
Regras de Evolução das RdP (23)
• modelo RdP de um Sistema: EXEMPLO B – (utilizando Labeled Petri Nets – LPN)
• associado a uma transição existe uma etiqueta – par (operadores, condição lógica)
• a ferramenta que vamos utilizar não permite etiquetas• por outro lado, perde-se (com operadores mais complexos) a objectividade
e clareza do modelo gráfico e regras
A B C D
START
Proc. 1WAIT
MONITOR
Proc. 2
(go ← TRUE, ) (go ← FALSE, ) (go ← TRUE, )
(go ← FALSE, )
( , )
( , go )( , st )
21
DEI-ISEP, Março de 2007 Eduardo Tovar 41
Índice1. Introdução √2. Noções Básicas de Redes de Petri (RdP) √3. Regras de Evolução das RdP √4. RdP Generalizadas5. Componentes de Modelação em RdP6. Análise Computacional de Modelos RdP7. Utilização da Ferramenta HP-SIM
DEI-ISEP, Março de 2007 Eduardo Tovar 42
RdP Generalizadas (1)• modelo RdP de um Sistema:
– Numa plataforma computacional podem ser lançados processos que vão ler uma estrutura de dados. Por uma questão de performance do sistema, não são autorizados mais do que 5 leitores em simultâneo.
Fila Leitores
Processos a Ler
Formalização da limitação de capacidade da posição “Processos a Ler”
22
DEI-ISEP, Março de 2007 Eduardo Tovar 43
RdP Generalizadas (2)• modelo RdP de um Sistema:
– Numa plataforma computacional podem ser lançados processos que vão ler uma estrutura de dados. Por uma questão de performance do sistema, não são autorizados mais do que 5 leitores em simultâneo.
Fila Leitores
Processos a Ler
Esta transição estáhabilitada, pode disparar…
DEI-ISEP, Março de 2007 Eduardo Tovar 44
RdP Generalizadas (3)• modelo RdP de um Sistema:
– Numa plataforma computacional podem ser lançados processos que vão ler uma estrutura de dados. Por uma questão de performance do sistema, não são autorizados mais do que 5 leitores em simultâneo.
Fila Leitores
Processos a Ler
Como existe capacidade e esta transição é de disparo imediato…
23
DEI-ISEP, Março de 2007 Eduardo Tovar 45
RdP Generalizadas (4)• modelo RdP de um Sistema:
– Numa plataforma computacional podem ser lançados processos que vão ler uma estrutura de dados. Por uma questão de performance do sistema, não são autorizados mais do que 5 leitores em simultâneo.
Fila Leitores
Processos a Ler
Situação em que há 3 processos a ler em simultâneo…
DEI-ISEP, Março de 2007 Eduardo Tovar 46
RdP Generalizadas (5)• modelo RdP de um Sistema:
– Numa plataforma computacional podem ser lançados processos que vão ler uma estrutura de dados. Por uma questão de performance do sistema, não são autorizados mais do que 5 leitores em simultâneo.
Fila Leitores
Processos a Ler
Situação em que há 5 processos a ler em simultâneo e 1 à espera (capacidade esgotada)…
24
DEI-ISEP, Março de 2007 Eduardo Tovar 47
RdP Generalizadas (6)• modelo RdP de um Sistema:
– Numa plataforma computacional podem ser lançados processos que vão ler uma estrutura de dados. Por uma questão de performance do sistema, não são autorizados mais do que 5 leitores em simultâneo.
Fila Leitores
Processos a Ler
Só quando um dos processos leitor acabar é que o pendente pode começar a ler…
DEI-ISEP, Março de 2007 Eduardo Tovar 48
RdP Generalizadas (7)• modelo RdP de um Sistema (com processos que escrevem):
– … Podem também ser lançados processos que vão escrever a estrutura de dados (nenhum outro poderá estar a ler)…
Fila Leitores
Processos a Ler
Mas com esta especificação, poderão estar vários (até 5) a escrever em simultâneo!!!
Fila Escritores
Escrever
25
DEI-ISEP, Março de 2007 Eduardo Tovar 49
RdP Generalizadas (8)• modelo RdP de um Sistema (com processos que escrevem):
– … Podem também ser lançados processos que vão escrever a estrutura de dados (nenhum outro poderá estar a ler)…
Fila Leitores
Processos a Ler
Isto é exclusão mútua (de acesso a um recurso partilhado), o problema é que sópermite 1 leitor de cada vez, o que não corresponde ao sistema pretendido
Fila Escritores
Escrever
DEI-ISEP, Março de 2007 Eduardo Tovar 50
RdP Generalizadas (9)• generalização das regras das RdP
– os arcos têm pesos associados (até aqui o seu peso era sempre “1”)• generalização da REGRA 1 (condição para o disparo de uma transição):
– uma transição está habilitada (pode disparar) por uma determinada marcação se, e só se, todas as posições anteriores à transição têm um número de marcas igual ou superior ao peso do arco que as liga à transição
P1
P2
t1P3
Ex. 1: t1 pode disparar
P1
P3
t1P4
Ex. 2: t1 não pode disparar
P2 P1
t1
Ex. 3: t1 pode disparar
P2
P3
t1
Ex. 4: t1 pode disparar
P12
3
2
4 3
2
26
DEI-ISEP, Março de 2007 Eduardo Tovar 51
RdP Generalizadas (10)• generalização das regras das RdP
– os arcos têm pesos associados (até aqui o seu peso era sempre “1”)• generalização da REGRA 2 (evolução da marcação após disparo):
– o número de marcas de cada posição anterior à transição diminui em número igual ao peso do arco que liga a posição à transição
– e o número de marcas de cada posição posterior à transição aumenta em número igual ao peso do arco que liga a posição à transição
P1
P2
t1P3
Ex. 1:
P1
P2
t1P3
→(após disparo
de t1)
Ex. 2:→
(após disparo de t1)
t1
P1
t1
P12 2
3 3
2 2
DEI-ISEP, Março de 2007 Eduardo Tovar 52
RdP Generalizadas (11)• modelo RdP de um Sistema (com processos que escrevem):
– … Podem também ser lançados processos que vão escrever a estrutura de dados (nenhum outro poderá estar a ler)…
Fila Leitores
Processos a Ler
Solução!!!
Fila Escritores
Escrever
5
5
27
DEI-ISEP, Março de 2007 Eduardo Tovar 53
RdP Generalizadas (12)• modelo RdP de um Sistema (com processos que escrevem):
– … Podem também ser lançados processos que vão escrever a estrutura de dados (nenhum outro poderáestar a ler)…
Fila Leitores
Processos a Ler
Fila Escritores
Escrever
5
5
P1
P2
P3
P4
P5
t1
t2
t3
t4
t5
t6
050010100000010000000100000010
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
=−W
500100010000001000000010000001
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
=+W
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
=
50000
0M
DEI-ISEP, Março de 2007 Eduardo Tovar 54
RdP Generalizadas (13)• as RdP generalizadas têm sempre um equivalente RdP ordinária (pesos dos
arcos sempre “1”), mas é difícil, como se pode deduzir do exemplo do controlo de acessos a uma estrutura de dados, obter o equivalente
– vejamos um exemplo mais simples:
P1
t1
t2P2 P3
2
t1
P1
t2P2 P3
28
DEI-ISEP, Março de 2007 Eduardo Tovar 55
Índice1. Introdução √2. Noções Básicas de Redes de Petri (RdP) √3. Regras de Evolução das RdP √4. RdP Generalizadas √5. Componentes de Modelação em RdP6. Análise Computacional de Modelos RdP7. Utilização da Ferramenta HP-SIM
DEI-ISEP, Março de 2007 Eduardo Tovar 56
Componentes de Modelação (1)• nos modelos RdP, existem algumas “figuras de modelação”
(componentes de modelação) muito comuns– incluem-se (já vimos alguns):
• paralelismo• sincronização• partilha de recursos• memorização• leitura• limitação de capacidade • alternância• alternância com exclusão• contador• leitura de zero marcas• etc.
29
DEI-ISEP, Março de 2007 Eduardo Tovar 57
Componentes de Modelação (2)• paralelismo
– após o disparo de t1 e atéao disparo tz, existem duas evoluções em paralelo:
• de P1 e a Px, e de de P2 e a Py
• cada uma tem a sua dinâmica temporal própria
– no exemplo, as duas sequências independentes vão sincronizar em tz
tx ty
t1
tz
P1 P2
Px Py
DEI-ISEP, Março de 2007 Eduardo Tovar 58
Componentes de Modelação (3)• sincronização
– à semelhança do exemplo anterior, em a) érepresentada um sincronização recíproca
– em b), a sequência do lado esquerdo é independente da sequência do lado direito (o inverso não éverdade)
– t2 só pode disparar após o disparo de t1
– este acontecimento émemorizado em Pm
t1P2 P4
P1 P3
a)
t1 Pm
Px
Py
b)
t2
30
DEI-ISEP, Março de 2007 Eduardo Tovar 59
Componentes de Modelação (4)• partilha de recursos
– no exemplo ao lado, as operações A, B, C e D partilham o recurso Rec
A
B
C
D
Rec
DEI-ISEP, Março de 2007 Eduardo Tovar 60
Componentes de Modelação (5)• partilha de recursos (2)
– e se houvesse 2 recursos Rec disponíveis (mas A, B, C e D só podem utilizar 1 de cada vez)?
• notar a utilização de limitadores de capacidadepara as operações A, B, C e D
A
B
C
D
Rec
31
DEI-ISEP, Março de 2007 Eduardo Tovar 61
Componentes de Modelação (6)• memorização
– em a), P1 memoriza o facto de t1 ter disparado, e autoriza o disparo posterior de t2
• de notar que t2 poderia ficar habilitada por via de marcas provenientes de outro subsistema
– em b), P1 vai memorizando um número, por exemplo de pedidos pendentes de serviço (no fundo trata-se de um contador)
t1
P2
a)
P1
P2
b)
t1
P1
t2
DEI-ISEP, Março de 2007 Eduardo Tovar 62
Componentes de Modelação (7)• leitura
– o disparo da transição t1 écondicionado pela existência de pelo menos uma (ou pelo menos duas − b)) marca em P1, sem, no entanto, alterar, por via desse disparo, a marcação de P1
P1
P2
a)
t1
P1
P2
b)
t1
2
2
32
DEI-ISEP, Março de 2007 Eduardo Tovar 63
Componentes de Modelação (8)• limitação de capacidade
– vários exemplos de limitação de capacidade de P1 a 3 marcas
P1
a)t1
t2
P1
b)t1
t2
P1
c)t1
t2
2
DEI-ISEP, Março de 2007 Eduardo Tovar 64
Componentes de Modelação (9)• alternância
– os processos A e B, utilizam, em exclusão mútua, o recurso Rec, e em alternância
A BRec
33
DEI-ISEP, Março de 2007 Eduardo Tovar 65
Componentes de Modelação (10)
• alternância (2)– o que está na página
anterior, é alternância com exclusão mútua:
• pode ser simplificado…A B
Rec
DEI-ISEP, Março de 2007 Eduardo Tovar 66
Componentes de Modelação (11)
• contador– em b) com overload em 10
P1
a)t1
t2
P1
b)t1
t2
11
34
DEI-ISEP, Março de 2007 Eduardo Tovar 67
Componentes de Modelação (12)
• leitura de zero marcas– leitura de P2: se P2 tiver
uma marca, é disparada t2; se tem zero é disparada t3
• P3 funciona não como limitador mas como o “valor máximo” de P2
• se P3 tiver 100 marcas, P2terá 0 marcas
P1
t1
t2 t3
100
100100
P2P3
DEI-ISEP, Março de 2007 Eduardo Tovar 68
Componentes de Modelação (13)
• vamos agora ilustrar alguns destes conceitos com um exemplo– admita a análise e especificação de um software de controlo de um
sistema industrial computorizado• as peças a processar entram no sistema num buffer de entrada (IN) e
podem ser processadas ou na máquina 1 (M1) ou na máquina 2 (M2), ambas com capacidade 1; as peças maquinadas são colocadas num bufferde saída (OUT); as 4 operações de transporte e manipulação são executadas por um robô
IN OUT
M1
M2
ROBÔ
Move 1
Move 2
Move 3
Move 4
35
DEI-ISEP, Março de 2007 Eduardo Tovar 69
Componentes de Modelação (14)
• modelo RdP– o fluxo das operações, o
“OU” máquina 1 “OU” 2, permitem facilmente esboçar o esqueleto da rede
MV1
IN
MV2
OUT
MV3 MV4
M1 M2
DEI-ISEP, Março de 2007 Eduardo Tovar 70
Componentes de Modelação (15)
• modelo RdP– o fluxo das operações, o
“OU” máquina 1 “OU” 2, permitem facilmente esboçar o esqueleto da rede
– acrescentar a noção de capacidade limitada das máquinas
MV1
IN
MV2
OUT
MV3 MV4
M1 M2
36
DEI-ISEP, Março de 2007 Eduardo Tovar 71
Componentes de Modelação (16)
• modelo RdP– o fluxo das operações, o
“OU” máquina 1 “OU” 2, permitem facilmente esboçar o esqueleto da rede
– acrescentar a noção de capacidade limitada das máquinas
– acrescentar recurso partilhado (robô) pelas operações de movimento
MV1
IN
MV2
OUT
MV3 MV4
M1 M2
robô
DEI-ISEP, Março de 2007 Eduardo Tovar 72
Componentes de Modelação (17)
• modelo RdP (análise)– o raciocínio parece
correcto, mas a análise permite verificar que a especificação estáerrada:
– admitindo que chega um componente ao buffer de entrada (IN)
MV1
IN
MV2
OUT
MV3 MV4
M1 M2
robô
37
DEI-ISEP, Março de 2007 Eduardo Tovar 73
Componentes de Modelação (18)
• modelo RdP (análise)– esse componente pode
ser processado na M1, pelo que é feita a operação de transporte MV1 (o recurso robô está disponível)
MV1
IN
MV2
OUT
MV3 MV4
M1 M2
robô
DEI-ISEP, Março de 2007 Eduardo Tovar 74
Componentes de Modelação (19)
• modelo RdP (análise)– finda a operação de
transporte, o recurso robô é libertado e começa o processamento do componente em M1; e admita que entretanto chega um novo componente a IN
MV1
IN
MV2
OUT
MV3 MV4
M1 M2
robô
38
DEI-ISEP, Março de 2007 Eduardo Tovar 75
Componentes de Modelação (20)
• modelo RdP (análise)– esse novo componente
poderá ser processado em M2, mas a especificação do modelo não impede que seja processado em M1, pelo que começa a ser feita a operação de transporte MV1
• resulta uma situação de bloqueio!!!
– a partir deste estado, só pode disparar a transição de entrada em IN
MV1
IN
MV2
OUT
MV3 MV4
M1 M2
robô
DEI-ISEP, Março de 2007 Eduardo Tovar 76
Componentes de Modelação (21)• modelo RdP (correcão do
modelo)– a condição para iniciar o
transporte para M1 (ou M2) deve ser ter robô disponível e máquinas vazias
– esta RdP simples pôde ser facilmente analisada (e o problema identificado) por “trace” manual das evoluções possíveis
• não exequível em modelos mais complexos, dai:
– ferramentas computacionais que utilizam modelos de RdPpara analisar um sistema
MV1
IN
MV2
OUT
MV3 MV4
M1 M2
robô
39
DEI-ISEP, Março de 2007 Eduardo Tovar 77
Índice1. Introdução √2. Noções Básicas de Redes de Petri (RdP) √3. Regras de Evolução das RdP √4. RdP Generalizadas √5. Componentes de Modelação em RdP √6. Análise Computacional de Modelos RdP7. Utilização da Ferramenta HP-SIM
DEI-ISEP, Março de 2007 Eduardo Tovar 78
Análise Computacional de Modelos (1)
• voltemos a um exemplo de RdP jáanalisado em termos de marcações acessíveis:
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
=
00110
1M
P1
t2 t3
t1
t4
P2 P3
P4 P5
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
=
00001
0M1t ⎥
⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
=
01100
2M
3t
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
=
10010
3M
2t
2t
3t
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
=
11000
4M
4t
40
DEI-ISEP, Março de 2007 Eduardo Tovar 79
Análise Computacional de Modelos (2)
• esta RdP corresponde a:– matriz de incidência anterior (W-) às
transições (arcos P → t):
– matriz de incidência posterior (W+) às transições (arcos t → P):
– marcação inicial:
5
4
3
2
1
4321
10001000010000100001
PPPPP
W
tttt
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
=−
P1
t2 t3
t1
t4
P2 P3
P4 P5
5
4
3
2
1
4321
01000010000100011000
PPPPP
W
tttt
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
=+
5
4
3
2
1
0
00001
PPPPP
M
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
=
DEI-ISEP, Março de 2007 Eduardo Tovar 80
Análise Computacional de Modelos (3)
• trace de evolução do modelo– para uma determinada marcação, que transição pode disparar?
• no pseudo-código acima, a função habilitada(tra) verifica se a transição tra pode ser disparada de acordo com a Regra 1 das RdP
• a função condicao(tra) verifica o valor da condição lógica associada àtransição tra (por exemplo, um temporizador ter expirado)
for tra = 1 to tra = NUM_TRA doif habilitada(tra) = TRUE and condicao(tra) = TRUE then
exit forend if
end for
41
DEI-ISEP, Março de 2007 Eduardo Tovar 81
Análise Computacional de Modelos (4)
• trace de evolução do modelo– função habilitada(tra)?
• para uma marcação (nº de marcas existente em cada posição), cada coluna da matriz W- (peso dos arcos anteriores à transição) “diz” quantas marcas são necessárias em cada posição para que a transição correspondente a essa coluna esteja habilitada
– por exemplo, para M0:
5
4
3
2
1
4321
10001000010000100001
PPPPP
W
tttt
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
=−
5
4
3
2
1
0
00001
PPPPP
M
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
=
Todos os elementos de M0são maiores ou
iguais aos elementos desta
coluna
Só t1 estáhabilitada por M0
DEI-ISEP, Março de 2007 Eduardo Tovar 82
Análise Computacional de Modelos (5)
• trace de evolução do modelo– como determinar a marcação resultante (Regra 2) do disparo de tra
que estava habilitada por uma marcação m?• função evolucao(m,tra)?
– no pseudo-código acima, m é um vector com dimensão igual ao número de posições da RdP
– tra_disp é um vector com dimensão igual ao número de transições da RdP, e tem todos os valores a 0, à excepção do elemento que corresponde a tra (esse elemento terá o valor 1)
– W = (W+ − W-)
function evolucao(m as vec_marcacao, tra as integer) as vec_marcacaotra_disp = vect(tra)evolucao = m + W x tra_disp
end function
42
DEI-ISEP, Março de 2007 Eduardo Tovar 83
Análise Computacional de Modelos (6)
• trace de evolução do modelo– vejamos o resultado de
evolucao(M0,1)para a RdPexemplo:
[ ]0001_ =disptra
P1
t2 t3
t1
t4
P2 P3
P4 P5
5
4
3
2
1
4321
11001010
010100111001
PPPPP
WWW
tttt
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
−−
−−
−
=−= −+
DEI-ISEP, Março de 2007 Eduardo Tovar 84
Análise Computacional de Modelos (7)
• trace de evolução do modelo– vejamos o resultado de
evolucao(M0,1)para a RdPexemplo:
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
=
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡−
+
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
=×+=
00110
00111
00001
_)1,( 00 disptraWMMevolucao
P1
t2 t3
t1
t4
P2 P3
P4 P5cada elemento do vector resultante desta
multiplicação, corresponde à soma das multiplicações de cada elemento da linha de W por cada elemento de
tra_disp
43
DEI-ISEP, Março de 2007 Eduardo Tovar 85
Análise Computacional de Modelos (8)
• utilizando a representação matricial da RdP e funções: que permitam verificar se uma transição está habilitada por uma determinada marcação e marcação resultante após o disparo de uma transição– facilmente se obtém uma árvore n-ária das marcações acessíveis (não
considera condições lógicas associadas às transições)– facilmente se detectam situações de bloqueio (a partir de determinada
marcação algumas ou todas as transições deixam de poder ser disparadas)
– pode fazer-se simulação temporal do sistema e análise de desempenho– etc.
DEI-ISEP, Março de 2007 Eduardo Tovar 86
Índice1. Introdução √2. Noções Básicas de Redes de Petri (RdP) √3. Regras de Evolução das RdP √4. RdP Generalizadas √5. Componentes de Modelação em RdP √6. Análise Computacional de Modelos RdP √7. Utilização da Ferramenta HP-SIM
44
DEI-ISEP, Março de 2007 Eduardo Tovar 87
Utilização da Ferramenta HP-SIM (1)
• o HP-SIM é uma ferramenta não comercial que permite fazer simulação temporal de sistemas modelados por RdP– algumas especificidades
• transições temporizadas• limitação explícita de capacidade das posições (artificialismo de
simplificação de modelos)• existência de arcos especiais (artificialismo de simplificação de
modelos)– arco de teste (para fazer leitura a uma posição)– arco inibidor (leitura de zero marcas)
DEI-ISEP, Março de 2007 Eduardo Tovar 88
Utilização da Ferramenta HP-SIM (2)
• transições temporizadas– nas transições, é possível definir um delay de disparo; um temporizador
associado é despoletado a partir do momento em que uma transição fica habilitada
Fila Escritores
Processos a Escrever
10
2
delay de 10: esta transição vai disparar de 10 em 10 unidades de tempo (está
sempre habilitada)
delay de 2: esta transição vai disparar 2 unidades de tempo
depois de a posição “processos a escrever” ficar com uma marca, altura em
que ficará habilitada
45
DEI-ISEP, Março de 2007 Eduardo Tovar 89
Utilização da Ferramenta HP-SIM (3)
• transições temporizadas– nas transições, só existe um temporizador, pelo que se a posição a temporizar
tiver capacidade superior a 1, é preciso replicar a posição para simular correctamente o tempo
Fila Leitores
Processos a Ler
10
2
delay de 10: esta transição vai disparar de 10 em 10 unidades de tempo (está
sempre habilitada)
delay de 2: esta transição vai disparar 2 unidades de tempo
depois de a posição “processos a escrever” ficar com uma marca, altura em que ficará habilitada, e
de 2 em 2 unidades de tempo enquanto estiver habilitada
DEI-ISEP, Março de 2007 Eduardo Tovar 90
Utilização da Ferramenta HP-SIM (4)
• transições temporizadas– nas transições, só existe um temporizador (limitação da implementação do
HP-SIM − devia haver um array de temporizadores por posição), pelo que se a posição a temporizar tiver capacidade superior a 1, é preciso replicar a posição para modelar correctamente o tempo
Fila Leitores
Processos a Ler
10
2 2 2
46
DEI-ISEP, Março de 2007 Eduardo Tovar 91
Utilização da Ferramenta HP-SIM (5)
• limitação de capacidade explícita das posições– uma das propriedades das posições no HP-SIM diz respeito a limitação de
explícita de capacidade (por defeito, no HP-SIM é 1 − atenção); por isso épossível simplificar o modelo anterior (do lado direito das posições é indicada a capacidade); simplifica, mas perde-se a clareza do modelo
Fila Leitores
Processos a Ler
10
2 2 2
100
1 1 1
DEI-ISEP, Março de 2007 Eduardo Tovar 92
Utilização da Ferramenta HP-SIM (6)
• ainda sobre as transições temporizadas
– como é utilizada a transição posterior à posição para modelar tempo associado ao processo representado pela posição, é preciso ter atenção se essa transição posterior não vai deixar de estar habilitada durante a contagem do temporizador (que recomeçará a contar outra vez quando a transição voltar a estar habilitada)
• nesse caso, a modelação de tempo fica completamente falseada!!!
MV1
IN
MV2
OUT
MV3 MV4
M1 M2
robô
20
4
30 25
3
5 6
47
DEI-ISEP, Março de 2007 Eduardo Tovar 93
Utilização da Ferramenta HP-SIM (7)
• ainda sobre as transições temporizadas
– solução: isolar as posições que se pretendem temporizar:
MV1
IN
MV2
OUT
MV3 MV4
M1 M2
robô
20
4
30 25
3
5 6
txM1
30
4
transição de disparo imediato
DEI-ISEP, Março de 2007 Eduardo Tovar 94
Utilização da Ferramenta HP-SIM (8)
• arcos especiais do HP-SIM– a RdP ao lado representa
o serviço periódico de mensagens (duas filas de prioridades HI e LOW)
20
FILA HI100 100
FILA LOW
100100
100100
15
5
2
Serviço
Envia MSG
48
DEI-ISEP, Março de 2007 Eduardo Tovar 95
Utilização da Ferramenta HP-SIM (9)
• arcos especiais do HP-SIM– no HP-SIM, a leitura tem
de ser feita com um arco de “teste” (no HP-SIM éum arco tracejado)
20
FILA HI100 100
FILA LOW
100
100
15
5
2
Serviço
Envia MSG
Arco de teste
(leitura)
DEI-ISEP, Março de 2007 Eduardo Tovar 96
Utilização da Ferramenta HP-SIM (10)
• arcos especiais do HP-SIM– no HP-SIM, existe um
terceiro tipo de arco: arcoinibidor (a posição anterior tem de ter 0 marcas para que a transição posterior a essa posição possa disparar)
20
FILA HI FILA LOW
15
5
2
Serviço
Envia MSG
Arco inibidor