computação avançada - dei.isep.ipp.ptnpereira/aulas/compa/09/compa-mod1-teorica_v1.pdf · regras...

49
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 Índice 1. 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

Upload: phamtram

Post on 11-Dec-2018

219 views

Category:

Documents


0 download

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

49

DEI-ISEP, Março de 2007 Eduardo Tovar 97

Utilização da Ferramenta HP-SIM (11)

• Exemplo de um modelo em HP-SIM

DEI-ISEP, Março de 2007 Eduardo Tovar 98

Utilização da Ferramenta HP-SIM (12)

FIM