Minicurso Rede Petri

July 4, 2022 | Author: Anonymous | Category: N/A
Share Embed Donate


Short Description

Download Minicurso Rede Petri...

Description

 

 

Modelagem de Sistemas Computacionais usando Redes de Petri: aplicação em projeto, análise e avaliação Dulcinéia Oliveira da Penha1, Henrique Cota de3 Freitas2, Carlos Augusto Paiva da Silva Martins   2,3

Instituto de Informática, 1,3Programa de Pós-graduação em Engenharia Elétrica 1,2,3 Laboratório de Sistemas Digitais e Computacionais Pontifícia Universidade Católica de Minas Gerais Rua Dom José Gaspar 500 – 30.535-610 – Belo Horizonte – MG – Brasil 1

2

3

[email protected],( cota, capsm}@pucminas.br

 Abstract. In this

tutorial we present the concepts and essential characteristics of the Ordinary Petri Nets, its algebraic and graphical representations, definitions and properties. Moreover, we present some high level Petri Nets, as the Coloured Petri Nets and the Stochastic Petri Nets. Later, we present the modeling of trivial Nets, methods and tools and verification of problems Petri Netsusing and Petri the application of Petri Nets ofinvalidation problems related with computational systems modeling. Finally, we present and we analyze the main advantages, disadvantages and challenges of the application of Petri Nets in the computational system systemss modeling.

 Neste minicurso apresentamos os conceitos e características essenciais das Redes de Petri Ordinárias, suas representações algébricas e  gráficas, definições e propriedades Além disso, apresentamos algumas Redes de Petri de alto nível, como as Redes de Petri Coloridas e as Redes de Petri  Estocásticas. Posteriormente, apresentamos a modelagem de problemas triviais usando redes de Petri, métodos e ferramentas de validação e verificação de Redes de Petri e a aplicação de Redes de Petri em problemas relacionados com a modelagem de sistemas computacionais. Finalmente,

 Resumo.

apresentamos e analisamos as principais vantagens, desvantagens e desafios da aplicação de Redes de Petri na modelagem de sistemas computacionais.

1. Introdução Em 1962, o então aluno de doutorado Carl Adam Petri defendeu sua tese intitulada  Kommunikation mit Automaten (Communication with Automata)  [Petri 1962]. Seu objetivo era desenvolver um modelo em que as máquinas de estado fossem capazes de se comunicar. A característica principal alcançada por este modelo foi a possibilidade de representar a concorrência. Este modelo recebeu o nome de Redes de Petri em homenagem ao próprio autor e hoje podemos encontrar variações do modelo original sendo usados em diversas áreas da ciência para ajudar no estudo do comportamento e desempenho de diferentes sistemas. Podemos encontrar as Redes de Petri (RdP) [Girault 2002] [Desel 2000] [Maciel 1996] [Murata 1989] [Peterson 1981] [Peterson 1977]

 

  sendo utilizadas em áreas como economia, biologia, engenharia, computação, entre outras. As variações de RdP tais como Redes de Petri Coloridas, Temporizadas ou Estocásticas são modelos importantes e que não fazem parte da teoria original. No entanto, são representações que ganharam relevância por serem capazes de modelar sistemas forma mais ou intuitiva porque ainda não havia umdemodelo capazsimplificada de representar sistemas ouquesimplesmente envolviam temporizações ou comportamentos probabilísticos (estocásticos). Antes de apresentar os conceitos e elementos que compõem a Rede de Petri é importante responder uma pergunta: Por que precisamos modelar um sistema computacional [Jain 1991]? • Torna-se mais fácil o entendimento do funcionamento ou comportamento

de um sistema computacional existente? • O projeto do sistema computacional pode ser verificado e validado

através de um modelo antes da construção de um protótipo? •  A avaliação do funcionamento, comportamento e por conseqüência do seu

desempenho em relação a um histórico de projeto ou em relação a outros modelos de sistema existentes, também em fase de projeto é facilitada? •  É possível definir métricas de desempenho através do do modelo? São várias as respostas para justificar a modelagem de um sistema computacional. Podemos afirmar que o uso de um modelo facilita e justifica o  prosseguimento de novas etapas de projeto e análise antes da etapa final de avaliação. Entre estas etapas podemos citar uma diretamente dependente da existência física do sistema e que muitas vezes só deve ser realizada após uma fase anterior de validação, antes do protótipo ser construído: • Medição: A medição depende da existência física do sistema ou protótipo

do sistema. Você implementaria seu sistema antes de verificá-lo através de um modelo? É como programar sem projetar o algoritmo! Imagine o sistema(cluster  a ser medido (uma coleta[Buyya de dados para avaliação de resultados) é umque aglomerado ) de computadores 1999] [Almasi 1994]. Qual o custo financeiro para montar este cluster? Este cluster foi modelado anteriormente? Existe uma verificação/validação anterior à montagem do protótipo (cluster de servidores)? Existem alguns modelos analíticos e de simulação [Bressan 2002] [Jain 19991]  para validação de um projeto. As Redes de Petri fazem parte destes dois modelos. Podemos representar uma Rede de Petri através de descrições matemáticas e gráficas. Podemos também simular uma Rede de Petri através de ferramentas específicas de simulação [Drath 2004]. Existe um repositório de informações e simuladores de Redes de Petri que pode ser encontrado através da seguinte referência: [Petri Nets 2004]. O principal objetivo deste minicurso é apresentar conceitos, difundir conhecimentos e apresentar métodos e ferramentas para verificação/validação relativos a aplicação e modelagem de Redes de Petri em sistemas computacionais de forma simples e direta. Alguns modelos do nosso dia-a-dia são utilizados para facilitar o

 

  estudo do processo de modelagem em suas etapas principais. Pretendemos difundir as RdP como uma alternativa e um forte modelo de ajuda no processo de avaliação do comportamento e do desempenho de um sistema computacional.

2. Redes de Petri O principal objetivo deste tópico é apresentar as principais características Redes de Petri. Existem conceitos que não serão apresentados, mas que serãodasfacilmente encontrados nas referências citadas ao longo do texto. No entanto, procuramos sintetizar um grande volume de informações importantes e necessárias para o processo de modelagem de sistemas computacionais enquanto fase de projeto, análise ou avaliação.

2.1. Conceitos Básicos Por que as Redes de Petri se tornaram um importante modelo para representar diferentes sistemas? Uma Rede de Petri possui um conjunto de elementos capaz de descrever as diversas partes de um sistema que estamos habituados a tratar em Ciência da Computação [Hennessy 2003] [Tanenbaum 2003a, 2003b] [Buyya 1999] [Almasi 1994] [Jain 1991], tais como: concorrência, controle, conflitos, sincronização e compartilhamento, por exemplo. Portanto, para tratar concorrência, controle, conflitos, sincronização e compartilhamento não seria importante um modelo para representar a ocorrência destas características em um sistema? Uma Rede de Petri é composta pelos seguintes elementos: • Lugares ou  Places: representam uma condição, uma atividade ou um

recurso. • Fichas, Marcas ou Tokens: representam o estado de um sistema. • Transições: representam um evento. • Arcos: indicam os lugares de entrada ou saída para as transições.

Estes elementos podem ser representados graficamente como na figura 1:

Figura 1. Elementos de uma Rede de Petri

Portanto, ainda sem considerarmos a existência dos tokens, podemos definir uma Rede de Petri como R = (P, T, AE, AS) onde: • P = {P1, P2, ..., Pm} é um conjunto de places. • T = {T1, T2, …, Tn} é um conjunto de transições. • P ∩ T = ∅ os conjuntos P e T são disjuntos. • AE: P x T é o conjunto de arcos de entrada nas transições.

 

  • AS: T x P é o conjunto de arcos de saída das transições.

Para a figura 1 temos: • P = { Place 1, Place 2} • T = {Transição} • AE = { Place 1, Transição} • AS = {Transição, Place 2}

Qual a influência dos tokens em uma Rede de Petri? Quando modelamos um sistema através de Redes de Petri procuramos representar os estados antes e depois de cada evento neste sistema. O elemento responsável por indicar qual o estado de uma Rede de Petri é um token  (marca). Portanto, é de se esperar que uma Rede de Petri possua uma marcação inicial [Girault 2002] [Bressan 2002] [Murata 1989], que pode ser descrita através da seguinte notação, tomando como exemplo a figura 1: • M = (1, 0)

  Sendo

que o primeiro campo representa a quantidade de tokens no Place 1 e o segundo campo a quantidade de tokens no Place 2.

A marcação inicial faz parte do projeto do modelo, uma falha na definição da marcação inicial pode resultar em um modelo inconsistente ou com falhas de execução. Além da marca (token) presente dentro de um  place, possuímos um peso associado a cada arco. Este peso é muito importante e muitas vezes é necessário durante o projeto do modelo. A figura 2 ilustra uma outra Rede de Petri com pesos associados aos arcos.

Figura 2. Rede de Petri com peso nos arcos

A figura 2 ilustra os pesos associados a cada arco, no entanto podemos perceber que para esta figura (2a e 2b) existem dois momentos / estados distintos, um estado em que os  places P1 e P2 possuem tokens e outro que somente o  place P3 possui um ou dois tokens. Portanto, podemos considerar que existem duas marcações: uma inicial e outra final.

 

  • Marcação inicial para a figura 2a: M = (1, 1, 0) • Marcação final para a figura 2a: M = (0, 0, 2) • Marcação inicial para a figura 2b: M = (1, 1, 0) • Marcação final para a figura 2b: M = (0, 0, 1)

Com base na figura 2, podemos responder duas perguntas: • O que ocasionou o segundo estado da Rede de Petri ou a marcação final? • Por que a marcação final da figura 2a é diferente da figura 2b?

A resposta da primeira pergunta é a seguinte: A função de uma transição é representar um evento, ou seja, a transição é responsável por modificar a marcação de uma Rede de Petri, portanto, modificar o estado de uma Rede de Petri. Esta ocorrência só é válida quando existem tokens nos places de entrada de uma transição. Sendo assim, se eu quiser modificar o estado ou a marcação de uma Rede de Petri, basta disparar as transições existentes. Na figura 2a e 2b, a transição T1 foi disparada e neste momento os tokens dos  places de entrada P1 e P2 foram responsáveis por habilitar este disparo. Como resultado de um disparo, os tokens dos  places de entrada são retirados e novos tokens  são colocados nos  places  de saída. A diferença na quantidade de tokens  da marcação de saída entre as figuras 2a e 2b é baseada nos pesos dos arcos. Portanto, o  peso no terceiro arco responde a segunda pergunta. Na figura 2a o peso do terceiro arco é 2 e por este motivo chegam ao  place P3 dois tokens. Na figura 2b o peso do terceiro arco é 1. Este peso impõe um limite e somente um token é colocado no  place P3 após o disparo da transição. Porém, existem situações que podem impedir o disparo de uma transição. As figuras 3 e 4 ilustram esta situação.

Figura 3. Situação 1 para não ocorrência de um disparo

Por que a transição T1 não pode ser disparada? Para o disparo de uma transição deve haver tokens  em todos os  places  de entrada. Na figura 3 o  place  P2 não possui tokens e por este motivo a transição T1 não pode ser disparada.

Figura 4. Situação 2 para não ocorrência de um disparo

Para a Rede de Petri da figura 4 o problema está associado aos pesos dos arcos de entrada da transição T1. Os pesos dos arcos de entrada da transição indicam quantos

 

 

tokens são necessários para o disparo da transição. No caso da figura 4 são necessários 3 tokens  em dois  places. Como podemos ver, nesta figura os  places  possuem apenas 1 token cada um, seria necessário que o  place P2 tivesse dois tokens, porque é exatamente este  place que possui um arco com peso 2 até a transição T1. Portanto, permanecendo desta forma, esta rede nunca mudará seu estado ou marcação inicial. Se esta Rede de Petri fosse o modelo que representasse um determinado sistema, haveria um erro de modelagem. Conforme já descrevemos a marcação inicial é muito importante e pode influenciar na execução do modelo. Uma vez que já abordamos os conceitos relativos à marcação e ao peso de um arco, podemos apresentar uma definição mais completa das Redes de Petri: • R = {P, T, A, PA, M 0) onde: 

P = {P1, P2, ..., Pm} é o conjunto de places.



T = {T1, T2, …, Tn} é o conjunto de transições.



P ∩  T = ∅  ∧  P ∪  T ≠  ∅  os conjuntos P e T são disjuntos e não vazios.



A: (P x T) ∪ (T x P) é o conjunto dos arcos.



PA: A  N são os pesos dos arcos. M0: P  N0 é a marcação inicial.



Em uma RdP existe uma situação chamada de conflito [Girault 2002] [Maciel 1996] [Murata 1989], encontrada quando modelamos atividades concorrentes. Para esta situação damos o nome de Confusion. Muitas vezes, para representar a concorrência ou atividades conflitantes, conforme será visto no tópico 5, é necessário modelar situações chamadas de Confusion. Um exemplo de conflito está ilustrado na figura 5. A situação apresentada na figura 5 é muito simples. Existem duas transições que  para estarem habilitadas precisam de 1 token em cada uma de suas entradas. O problema é que o  place  de entrada é único, P1 está compartilhado entre as duas transições e  possui apenas um token  e não dois como seria necessário. Nos resta fazer a seguinte  pergunta: Qual transição será disparada, T1 ou T2? Esta escolha será aleatória já que não existe nenhuma prioridade de uma transição em relação à outra.No entanto, se atribuíssemos funções a cada uma das transições, poderíamos ter uma situação típica de  e else. if  e

Figura 5. Exemplo de uma RdP com conflito

Podemos descrever uma Rede de Petri através de uma notação matricial e também pore 2.3. uma árvore de alcançabilidade. Estes dois conceitos são mostrados nos tópicos 2.2

 

 

2.2. Notação Matricial A notação matricial [Bressan 2002] é uma das formas de representar uma Rede de Petri. Como exemplo vamos analisar a rede da figura 6.

Figura 6. Uma Rede de Petri exemplo para notação matricial

A notação matricial pode ser feita usando três tipos de matrizes, sendo elas as seguintes: • Matriz de entrada (E): ETxP representa a quantidade de arcos de entrada em

cada transição. • Matriz de saída (S): STxP  representa a quantidade de arcos de saída em

cada transição. • Matriz de Incidência (I): I TxP = STxP – ETxP  As matrizes referentes à figura 6 estão ilustradas através da figura 7.

Figura 7. Notação matricial para o exemplo da figura 6

Através da notação matricial é possível modelar uma Rede de Petri graficamente, podemos extrair a quantidade de  places, transições e arcos. No entanto, somente estes elementos não são suficientes para um modelo completo. Como já vimos, ainda faltam os tokens e os pesos. Os tokens são solucionados através da marcação inicial. Portanto, é necessário informar M0. Qual é a marcação inicial da figura 6?

 Resposta: M 0 = (1, 1, 0, 0) Quais são os pesos de cada arco?

 

 

 Resposta: A principio cada arco possui peso igual a 1. No entanto, para responder será feito outra pergunta: Qual a diferença entre as RdP da figura 8?

Figura 8. RdP exemplo para descoberta do peso na notação matricial

As duas RdP são iguais. A diferença está apenas na representação gráfica. A matriz de saída terá a linha T1 mudada para (figura 9):

Figura 9. Mudança da linha T1 da notação matricial de saída da figura 7

Ou seja, para a figura 8b os pesos são sempre 1 em cada arco, para a figura 8a o  peso é representado com se fossem dois arcos de saída da transição T1.

2.3. Árvore de Alcançabilidade Quantos estados ou marcações são possíveis extrair de uma Rede de Petri? Que tipo de notação pode ser utilizado para representar cada uma destas marcações? Uma árvore de alcançabilidade [Bressan 2002] [Murata 1989] é capaz de responder estas duas perguntas. Através de uma árvore com raiz igual à marcação inicial é possível representar todas as marcações alcançáveis. É importante ressaltar que o conjunto de alcançabilidade pode ser finito, no entanto, é comum encontrarmos situações onde as marcações alcançadas não nos levam a um estado inicial, ou à marcação inicial, a raiz de nossa árvore. Portanto, o conjunto de alcançabilidade só é finito se em algum momento uma determinada marcação nos levar novamente à marcação inicial. A RdP da figura 10 é um exemplo de conjunto finito de marcações. A árvore de alcançabilidade desta rede está ilustrada na figura 11. O estado inicial é representado  pela marcação M 0 (2, 0, 0, 0), e portanto, esta é a nossa raiz. Durante a construção da árvore deve ser observado quais são as transições habilitadas para disparo para criação de cada nó (nova marcação).

 

 

Figura 10. Rede de Petri exemplo para árvore de alcançabilidade

A situação da figura 11 é a seguinte: • Após a definição da raiz, devemos observar quais transições estão

habilitadas. • Somente a transição T1 está habilitada e a marcação resultante é M 1(0, 1,

0, 0). • O place P2 não recebeu dois tokens porque o arco de saída de T1 tem peso

1. • A próxima transição habilitada é T4 resultando em uma marcação M 2(0, 0,

1, 1). •  Neste momento possuímos duas marcações habilitadas, T2 e T3 resultando

em um nível com dois nós (marcações M3 e M4). • Se dispararmos T2 a marcação resultante será M 3 (1, 0, 0, 1). • Se dispararmos T3 a marcação resultante será M 4 (1, 0, 1, 0). •  No momento em que RdP chega ao estado M 3  ou M 4 passamos a ter dois

 places  com tokens  (M3: P1 e P4 ou M4: P1 e P3), porém, a transição T1 não ficará habilitada enquanto o  place  P1 não tiver dois tokens. Esta situação só vai acontecer quanto houver o disparo de T3 ou T4 resultando novamente no estado inicial M0.

Figura 11. Árvore de alcançabilidade da RdP da figura 10

 

  Esta RdP possui um conjunto de alcançabilidade finito com cinco marcações (M0, M1, M2, M3, M4).

2.4. Variações das Redes de Petri Desde o trabalho original de Carl Adam Petri têm surgido muitas e diversas variantes ao seunecessidade modelo de redes de Petri. Pode-se que a(ou maior destas variantes nasceu da de adaptação das RdPafirmar Ordinárias de parte baixo-nível – estudadas até agora) à especificidade da aplicação para as quais a sua utilização era desejada. O modelo original das Redes de Petri falha na representação de duas importantes características: aspectos funcionais complexos, tais como, condições que determinam o fluxo de controle, e os aspectos de temporização. Para enfrentar estas duas limitações duas classes de extensões as RdP foram desenvolvidas: as RdP de alto-nível e as RdP temporizadas. Estas extensões serão apresentadas nos tópicos a seguir. No tópico das redes de alto nível, enfatizamos as Redes de Petri Coloridas, já que formam a categoria mais representativa e mais usada das Redes de Petri de alto nível.

2.4.1. Redes de Petri Temporizadas Até o momento estudamos RdP com transições que disparam a desde que os  places de entrada possuam tokens suficientes para a ocorrência do disparo. No entanto, pode ser necessário associar ao disparo um retardo. Sendo assim, para cada transição atribuímos um valor de tempo. Esta RdP é chamada de Rede de Petri Temporizada Determinística. Existe uma outra RdP Temporizada Probabilística (Estocástica), que será estudada no tópico 2.4.2. Portanto, em relação as RdP Temporizadas [Bressan 2002] [Murata 1989]  podemos extrair os seguintes significados: • Tempo de aquisição de um recurso. • Tempo de utilização de um recurso. • Tempo em que não necessita de um recurso. Vejamos o seguinte exemplo da figura 12: • A transição T1 temporizada em 1 segundo. • A transição T2 temporizada em 5 segundos. • As transições T3 e T4 não estão temporizadas.

Figura 12. Exemplo de RdP temporizada

 

  Para este exemplo podemos extrair as seguintes observações: • A transição T1 está temporizada para disparar em 1s, sempre que existir

um token em sua entrada (token no place P2). • A transição T2 está temporizada para disparar em 5s, sempre que existir

um token em sua entrada (token no place P2). • Durante os 4 primeiros segundos a transição T1 estará habilitada. No

quinto segundo as transições T1 e T2 estarão habilitadas e haverá um conflito de disparo. A principal vantagem de uma RdP temporizada é a relação de tempo, que antes não havia. No entanto, trabalhar com uma RdP temporizada significa poder alterar a definição de estado da rede. A relação de tempo altera os estados/marcações alcançáveis. Por este motivo, é muito importante saber utilizar o tempo na RdP para que seu projeto ou modelo não entre por exemplo em um deadlock .

2.4.2. Redes de Petri Estocásticas e Redes de Petri Estocásticas Generalizadas Redes de Petri Temporizadas Determinísticas são vantajosas para modelagem de sistemas onde a relação de tempo é constante ou determinística, já que associam a cada transição um retardo (ou duração) fixo entre o tempo em que ela está habilitada e o tempo de disparo. No entanto, redes temporizadas determinísticas não são suficientes  para modelar sistemas estocásticos, que possuem taxas aleatórias. Sistemas Sis temas de produção onde o tempo de funcionamento real entre 2 paradas de uma máquina é aleatório são um exemplo destes sistemas. Outro exemplo são sistemas computacionais com taxas aleatórias de geração de processos. Para estes casos as Redes de Petri Ordinárias foram estendidas para modelarem sistemas estocásticos. As Redes de Petri Estocásticas [Haas 2002] [Bressan 2002] associam uma distribuição exponencial ao tempo de disparo de cada transição habilitada da rede. Dessa forma, a rede passa a ser probabilística, sendo descrita por um processo estocástico. Formalmente, uma Rede de Petri Estocástica é definida por: • RdP-E = {P, T, A, PA, M 0, D} onde: 

P (conjunto de  places), T (conjunto de transições), A (conjunto de arcos), PA (pesos dos arcos) e M 0 (marcação inicial) são definidos exatamente como nas Redes de Petri Ordinárias descritas anteriormente.



D: conjunto das taxas de disparo associadas às transições que obedecem a uma distribuição exponencial. Tais taxas de disparo  podem ter o seu valor dependente da marcação. A dependência da taxa de disparo da transição j sobre uma marcação M é denotada por D j(M).

Em muitos sistemas, não é necessário associarem-se tempos a todos os eventos, e conseqüentemente a todas as transições da Rede de Petri Estocástica. As Redes de Petri Estocásticas generalizadas (RdP-EG) incluem transições que não gastam tempo  para disparar, particionando as transições em dois conjuntos: transições imediatas e transições temporizadas.

 

  Transições imediatas, uma vez habilitadas, disparam em tempo zero. Transições temporizadas disparam com tempos aleatórios, descritos por distribuições exponenciais.  Nas RdP-EG as taxas de disparo estão associadas somente às transições temporizadas. A definição formal da RdP-EG é semelhante à das Redes de Petri Estocásticas, diferenciando somente no conjunto D das taxas de disparo, que nas RdP-EG são associados somente às transições temporizadas, e não mais a todas as transições como na RdP Estocásticas. Uma RdP Estocástica é isomórfica a uma Cadeia de Markov (CM) [Haas 2002] [Norris 1998] [Bolch 1998] finita e de tempo contínuo, na qual as marcações são os estados da cadeia e as taxas de transição de estado da cadeia são retiradas das médias de tempo de disparo das transições da rede. Portanto, a marcação M(t) da RdP Estocástica é um processo markoviano homogêneo. O conjunto de alcance da Rede de Petri Estocástica é o mesmo de sua correspondente ordinária (Rede de Petri que resulta ao se retirarem os tempos associados às transições), o que facilita a sua análise.

2.4.3. Redes de Petri Coloridas O das Redes de Petri P etri Coloridasque (RdP-C) 2002] [Maciel 1996] é aprincipal redução objetivo do tamanho do modelo, permitindo  individualizados (coloridos) tokens[Girault representem diferentes processos ou recursos em uma mesma sub-rede. Inicialmente, os tokens das RdP Coloridas eram representados por cores ou mesmo por padrões que  possibilitam a distinção dos tokens. Em trabalhos mais recentes, os tokens são representados por estruturas de dados complexas não relacionando cores aos tokens, a não ser pelo fato de estes são distinguíveis. Deste modo, os tokens  podem conter informações. Além disso, cada  place armazena tokens de um certo tipo definido e arcos realizam operações sobre os tokens. As transições são consideradas “expressões de guarda”. Uma RdP-C é composta por três partes: estrutura, inscrições e declarações. A estrutura é um grafo direcionado, com dois tipos de nós ( places e transições), com arcos interconectando nós de tipos diferentes. As inscrições são associadas aos  places, transições e arcos. • Cada  place tem as seguintes inscrições: Nome (para identificação); Color   Set   (especificando os tipos de tokens  que podem residir no  place); Marcação inicial (multi-conjunto de tokens coloridos). • Cada transição tem as seguintes inscrições: Nome (para identificação);

Guarda (expressão booleana contendo algumas das variáveis). • Cada arco tem as seguintes inscrições: Expressão do arco (contendo

algumas das variáveis). As declarações são tipos, funções, operações e variáveis. Quando a expressão do arco é avaliada, ela gera um multi-conjunto de tokens  coloridos. Expressões podem conter constantes, variáveis, funções e operações definidas nas declarações, e não  produzem efeito colateral. Formalmente, uma Rede de Petri Colorida é definida por:

 

  • RdP-C = (R, Σ , C, G, E, I) onde: 

R = {P, T, A} exatamente como definidos nas Redes de Petri Ordinárias descritas anteriormente.



Σ: conjunto de tipos não-vazios chamados cores,



C: função de cor definida por P  cor , G: função de guarda definida por T   exp, onde exp é uma expressão tal que: ∀  ti  ∈  T | Tipo(G(t)) = Boolean ∧  Tipo(Var(G(t))) ∈ Σ],





E: função de expressões de arco definida por A   expressões, tal que: ∀ a ∈ A | Tipo (E(a)) = C  ∧ Tipo(Var(E(a))) ∈ Σ],



I: expressão de inicialização definida por P   marcações0(p), tal que: ∀  pi  ∈  P | Tipo(I(p)) = C(p)  ∧  Var(I(p)) = ∅. Var(t) é o conjunto de variáveis associadas à transição t. Essas variáveis  podem ser associadas às transições de duas maneiras: nas expressões de guarda (G(t), t ∈ T) e nas expressões dos arcos (E(a), a ∈A) que interconectam lugares e transições.

2.4.3.1. Definição formal do comportamento: • A distribuição de tokens é uma função M: P

  Σ e

uma marcação de uma Rede de Petri Colorida é uma distribuição de tokens. A marcação inicial das redes coloridas é obtida através da avaliação da expressão de inicialização para cada place da rede, ou seja, M 0(p) = I(p) ∀ p ∈ P.

• A distribuição de ligações é uma função Y: T  B. Denomina-se elemento de Y o par (t, b), onde b é uma ligação tal que b ∈ Y (t). • Variáveis são ligadas (binding ) dinamicamente aos valores dos tokens nos

 places de entrada, durante a avaliação de cada transição.  Cada possível ligação é avaliada, uma por vez, em ordem aleatória. 

Todas as ocorrências de uma variável devem ser ligadas a uma mesma cor.



Variáveis associadas a diferentes transições são totalmente independentes.

• Um passo é um multi-conjunto de elementos ligados ou uma distribuição

de ligações não-vazia.  Um passo Y é habilitado em uma marcação M se a seguinte  propriedade é satisfeita: ∀ p ∈ P: ∑(t,b) ∈ Y E(p,t) ≤ M(p), ∀ p ∈  P.   Quando um passo Y é habilitado em uma marca M 1 ele pode ocorrer, mudando a marcação M1 para outra marcação M 2, definida por: ∀ p ∈ P: M2(p) = (M1(p) – ∑(t,b) ∈Y E(p,t)) + ∑(t,b) ∈Y E(t,p), onde E(p,t) e E(t,p) correspondem às expressões dos arcos de entrada e saída da transição (em t) do passo, respectivamente.

 

 





Em outras palavras, um passo Y = (t, b) está habilitado quando o número de marcas de cores correspondente à ligação do passo é maior ou igual à avaliação da expressão do arco que interliga os lugares de entrada à transição t. A primeira soma é chamada de remoção de marcas (dos lugares de entrada) enquanto a segunda é chamada de adição de marcas (aos lugares de saída). Além disso, dizemos que M 2  é diretamente alcançável de M1 pela ocorrência do passo Y, no qual denotamos: M1 [Y > M2.

• Uma seqüência de ocorrência é uma seqüência de marcações e passos: 

M1  [ Y1  > M2  [ Y2  > M3 ... Mn  [ Yn  > Mn+1 tal que Mi  [ Yi  > Mi+1   para todo i ∈ 1...n é alcançável de M.

A Figura 13 apresenta um exemplo simplificado de Rede de Petri Colorida [Maciel 1996], onde os tokens são identificados apenas por cores. Entretanto, os tokens   podem ser estruturas mais complexas. Como podemos observar no exemplo da Figura 13, os arcos são rotulados com cores (a, b e c). Para que uma transição desta rede esteja habilitada, é necessário que os  places de entradas desta transição tenham tokens do tipo (cor) associado ao arco que liga estes  places  à transição. A transição t 0  não está habilitada porque não há um token da cor a no place p0. A transição t1 está habilitada  porque há um token da cor a  no  place  p1  e tokens  das cores a  e b no  place  p2, satisfazendo as condições rotuladas nos arcos que saem destes  places, ligando-os à transição t1. O disparo desta transição retira os tokens de cores associadas aos arcos dos  places  de entrada e adiciona tokens  da cor associada ao arco que liga a transição aos  places de saída. Deste modo, um token de cor c é acrescentado ao place p4.

Figura 13. Exemplo de Rede de Petri Colorida [Maciel 1996]

2.4.3.2. Análise das Redes de Petri Coloridas  Análise de Alcançabilidade: Alcançabilidade:

Árvore de alcançabilidade:

 

  •Organiza todas as marcações alcançáveis, e todas as possíveis seqüências de

disparo, em uma árvore, onde: Cada

nó corresponde a uma marcação alcançável

Cada

arco corresponde a um disparo de uma (única) transição, para uma (única) cor, pela qual a marcação de origem é levada à marcação de destino.

•Em geral possui número muito grande (talvez infinito) de elementos.

Redução da Árvore de Alcançabilidade: •Árvores de alcançabilidade geralmente possuem classes de marcações

equivalentes. •Para cada classe de equivalência, somente a sub-árvore de um dos nós é

desenvolvida, enquanto os demais tornam-se folhas da árvore. •Marcações de cobertura: Seja

P o conjunto dos lugares da rede, e sejam m1  e m2  duas marcações, tais que m1 [ σ > m2:



m2 cobre m1 se: ∀ p ∈ P, m2(p) ≥ M1(p)



m2 cobre estritamente m1 se: m2 cobre m1, e m1 ≠ m2 



Há

Se m2  cobre estritamente m1, cada coeficiente que foi incrementado de m1 para m2 pode assumir um valor ilimitado e,  portanto, é substituído pelo símbolo ω. perda de informação.

•Marcações duplicatas: Se

há vários nós com marcações idênticas, apenas a árvore de um deles é desenvolvida, e os demais são marcados como duplicatas.  Não há perda de informação. •Marcações equivalentes: Generalização O  Não

de duplicata, para Redes de Petri de Alto Nível:

projetista identifica relações de simetria entre cores nas marcações.

há perda de informação.

2.5. Propriedades das Redes de Petri  Neste tópico procuramos mostrar um breve sumário das propriedades [Maciel 1996] comportamentais e estruturais relacionadas às Redes de Petri.

 

 

2.5.1. Propriedades Comportamentais (influenciadas pela marcação) Alcançabilidade: Indica a possibilidade de alcançarmos um determinado conjunto de marcações após disparos de transições a partir de uma marcação inicial. Limitação: Uma RdP pode ser dita como k-limitada. Em uma RdP 3-limitada, nenhum dos places pode exceder o número de tokens definido por k, neste caso, três. Segurança: A propriedade de segurança é um complemento à propriedade limitação. Um place k-limitado é um place seguro. Se estivermos modelando uma porta lógica, a RdP dever ser 1-limitado. A RdP é segura se em todos os seus estados os  places tiverem um ou nenhum token (1 ou 0 - binário). Vivacidade: Uma RdP livre de impasses ( deadlocks). Neste caso não existe a ocorrência de uma transição que não possa ser disparada. Uma transição morta é uma transição que não pode mais ser disparada. Uma RdP morta se encontra em impasse total, ou seja, todas as transições estão mortas. Cobertura: Quando uma determinada marcação pode ser obtida através de uma outra marcação. Este é o problema cobertura de uma marcação. Persistência: Se para qualquer par de transições habilitadas, o disparo de uma delas não desabilita o disparo da outra. Reversibilidade: Quando existe o retorno à marcação inicial ou uma outra marcação qualquer. Justiça: Diz respeito à quantidade de disparos de uma transição em relação à outra.

2.5.2. Propriedades Estruturais (não influenciadas pela marcação) Limitação: Se a RdP é limitada estruturalmente para qualquer marcação inicial. Conservação: Independente dos disparos das transições existentes na RdP, o número de tokens não se altera (não há criação ou destruição). Repetitividade: Uma RdP é repetitiva se para uma determinada marcação e um conjunto de disparos de transições, houver o disparo ilimitado de todas as transições da RdP. Consistência: Uma RdP é consistente se for possível voltar ao estado inicial M0  disparando pelo menos uma vez todas as transições da RdP.

3. Modelagem Usando Redes de Petri O objetivo deste tópico é apresentar as etapas necessárias para modelagem de  problemas tipicamente triviais do nosso dia-a-dia. Para iniciar o processo de modelagem precisamos responder a seguinte  pergunta: Você conhece o sistema que será modelado? modelado? Antes do processo de modelagem é necessário analisar o sistema objeto de estudo. Seria um erro dos mais inocentes acreditar em um pré-conhecimento sem o devido estudo de e todas análise do sistema. Analisar eum o funcionamento as partes que o compõem, maissistema do isso,significa significa entender entender se

 

  todo o sistema ou apenas uma parte deve ser modelado. O não conhecimento do sistema  pode produzir um modelo que não reflete a realidade e, portanto, não verifica e não valida o sistema em análise. As etapas que iremos descrever constituem uma base para modelagem usando Redes de Petri, são elas: • Definir uma lista de condições: estados,  places de sua RdP. • Definir uma lista de ações: transições de sua RdP. • Criar matrizes de entrada e de saída para representar as relações entre

transições e places. • Representar graficamente uma RdP para cada transição. • Unir todas as RdP por transição em uma RdP completa, que represente o

sistema modelado. • Definir a marcação inicial da RdP.

3.1. Modelar o comportamento de ligar e desligar uma lâmpada O sistema deve seremodelado: possuímos lâmpada e precisamos modelar seuseguinte comportamento de ligar desligar usando Redesuma de Petri. Primeira etapa: Definir uma lista de condições (Tabela 1). Segunda etapa: Definir uma lista de ações (Tabela 1). Tabela 1. Lista de condições e ações para comportamento de uma lâmpada

Lista de condições P1: Lâmpada desligada. P2: Lâmpada ligada.

Lista de ações T1: Ligar lâmpada. T2: Desligar lâmpada

Criar matrizes de entrada e saída para representar relações entre transições e  places (Tabela 2 e Tabela 3). Tabela 2. Matriz de entrada T1 T2

P1 1 0

P2 0 1

Tabela 3. Matriz de saída T1 T2

P1 0 1

P2 1 0

Representar graficamente uma RdP para cada transição (figura 14).

Figura 14. RdP para cada transição das tabelas 2 e 3

O modelo completo já como a marcação inicial está representado na figura 15. Marcação inicial: M0(1,0).

 

 

Figura 15. Modelo completo em RdP para o comportamento da lâmpada

Antes de finalizar este exemplo, vamos fazer duas perguntas: Este modelo está completo? Ele reflete a realidade? Este modelo não está considerando o tempo de vida da lâmpada após os sucessivos ligar e desligar. Como podemos modelar, considerando mais este elemento do sistema? Vamos supor que em média as lâmpadas possam ser ligadas 4 vezes (apenas um exemplo) e depois elas queimam. Sendo assim, o novo  place  P3 representaria Tempo de vida (não estamos falando de transições temporizadas). O modelo ficaria da seguinte forma (figura 16):

Figura 16. Modelo completo em RdP considerando também tempo de vida

3.2. Modelar um sistema de corrida de dois carros Um grupo de pilotos decidiu testar dois carros de corrida para saber qual era o mais rápido. Basicamente o sistema [Girault 2002] era composto por: • Dois carros de corrida. • Um fiscal de bandeirada para iniciar a corrida.

Quando o fiscal recebe As sinallistas dos de doiscondições carros (sinal de pronto), ele dá a  bandeirada para iniciar a corrida. e ações são apresentadas através da tabela 4. Tabela 4. Lista de condições e ações para a corrida dos dois carros

Lista de condições P1: Carro A preparando para iniciar. P2: Carro A esperando para iniciar. P3: Carro A correndo. P4: Sinal de pronto do carro A. P5: Sinal de início para carro A. P6: Fiscal esperando pelos sinais de pronto. P7: Fiscal enviando sinal de início (bandeirada).

Lista de ações T1: Enviar sinal de pronto (carro A). T2: Iniciar corrida (carro A). T3: Enviar sinal de início (fiscal). T4: Enviar sinal de pronto (carro B). T5: Iniciar corrida (carro B). ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

P8: Sinal de pronto do carro B. P9: Sinal de início para o carro B.

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

 

P10: Carro B preparando para iniciar. P11: Carro B esperando para iniciar. P12: Carro B correndo.

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

As matrizes de entrada e saída que relacionam as condições e as ações estão ilustradas através das tabelas 5 e 6. Tabela 5. Matriz de entrada para a corrida dos dois carros T1 T2 T3 T4 T5

P1 1 0 0 0 0

P2 0 1 0 0 0

P3 0 0 0 0 0

P4 0 0 1 0 0

P5 0 1 0 0 0

P6 0 0 1 0 0

P7 0 0 0 0 0

P8 0 0 1 0 0

P9 0 0 0 0 1

P10 0 0 0 1 0

P11 0 0 0 0 1

P12 0 0 0 0 0

P11 0 0 0 1 0

P12 0 0 0 0 1

Tabela 6. Matriz de saída para a corrida dos dois carros T1 T2 T3 T4 T5

P1 0 0 0 0 0

P2 1 0 0 0 0

P3 0 1 0 0 0

P4 1 0 0 0 0

P5 0 0 01 0

P6 0 0 0 0 0

P7 0 0 01 0

P8 0 0 0 1 0

P9 0 0 01 0

P10 0 0 0 0 0

A figura 17 ilustra a representação gráfica da RdP por transição.

Figura 17. RdP para cada transição das tabelas 5 e 6

O modelo completo da RdP com a marcação inicial M (1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0) está ilustrado na figura 18.

 

 

Figura 18. RdP completa para o sistema de corrida entre dois carros

3.3. Modelagem usando Redes de Petri Coloridas Quando um sistema é grande e complexo, a sua modelagem através de Redes de Petri Ordinárias vai gerar uma rede grande e complexa. Nestes casos, é indicado o uso de Redes de Petri Coloridas que permitem a redução do tamanho dos modelos. Primeiramente modelaremos um sistema de linha de manufatura usando Redes de Petri Ordinárias e em seguida, modelaremos o mesmo sistema usando Redes de Petri Coloridas.

3.3.1. Linha de Manufatura usando Redes de Petri Ordinárias O sistema a ser modelado é o de manufatura de dois produtos distintos através de duas linhas de manufatura, onde as máquinas são compartilhadas no processo de fabricação. Os produtos são fabricados através de dois processos distintos, P e Q. O processo P é dividido em seis estágios (p1, p2, p3, p4, p5, p6) e o processo Q é dividido em cinco estágios (q1, q2, q3, q4, q5). Além disso, temos duas máquinas r   e  s, que são recursos compartilhados entre os processos. Portanto, o sistema é composto por: • Seis estágios do processo P. • Cinco estágios do processo Q. • Duas máquinas compartilhadas entre os processos.

As listas de estados e ações estão descritas na tabela 7. Tabela 7. Lista de estados e ações para a linha de manufatura

Lista de condições P1: Executando estágio 0 do processo P. P2: Executando estágio 1 do processo P. P3: Executando estágio 2 do processo P. P4: Executando estágio 3 do processo P.

Lista de ações T1: Iniciar estágio 1 de P. T2: Iniciar estágio 2 de P. T3: Iniciar estágio 3 de P. T4: Iniciar estágio 4 de P.

P5: Executando estágio 4 do processo P. P6: Executando estágio 5 do processo P.

T5: Iniciar estágio 5 de P. T6: Iniciar estágio 1 de Q.

 

 

P7: Executando estágio 0 do processo Q. P8: Executando estágio 1 do processo Q. P9: Executando estágio 2 do processo Q. P10: Executando estágio 3 do processo Q. P11: Executando estágio 4 do processo Q.

T7: Iniciar estágio 2 de Q. T8: Iniciar estágio 3 de Q. T9: Iniciar estágio 4 de Q. T10: Reiniciar processo P. T11: Reiniciar processo Q.

P12: Máquina r  disponível. P13: Máquina s Máquina s  disponível.

-------------------------------------------------------------------------------------------------------------------------------------------------------------

As matrizes de entrada e saída que relacionam as condições e as ações estão ilustradas através das tabelas 8 e 9. Tabela 8. Matriz de entrada para a linha de manufatura T1 T2 T3 T4 T5 T6 T7 T8 T9 T10 T11

P1 1 0 0 0 0 0 0 0 0 0 0

P2 0 1 0 0 0 0 0 0 0 0 0

P3 0 0 1 0 0 0 0 0 0 0 0

P4 0 0 0 1 0 0 0 0 0 0 0

P5 0 0 0 0 01 0 0 0 0 0

P6 0 0 0 0 0 0 0 0 0 1 0

P7 0 0 0 0 0 1 0 0 0 0 0

P8 0 0 0 0 0 0 1 0 0 0 0

P9 0 0 0 0 0 0 0 1 0 0 0

P10 0 0 0 0 0 0 0 0 1 0 0

P11 0 0 0 0 0 0 0 0 0 0 1

P12 0 1 0 0 0 1 0 0 0 0 0

P13 0 0 0 1 0 0 0 1 0 0 0

P12 0 0

P13 0 0 0 0 1 0 0 0 1 0 0

Tabela 9. Matriz de saída para a linha de manufatura T1 T2 T3 T4 T5 T6 T7 T8 T9 T10 T11

P1 0 0 0 0 0 0 0 0 0 1 0

P2 1 0 0 0 0 0 0 0 0 0 0

P3 0 1 0 0 0 0 0 0 0 0 0

P4 0 0 01 0 0 0 0 0 0 0

P5 0 0 0 1 0 0 0 0 0 0 0

P6 0 0 0 0 1 0 0 0 0 0 0

P7 0 0 0 0 0 0 0 0 0 0 1

P8 0 0 0 0 0 1 0 0 0 0 0

P9 0 0 0 0 0 0 1 0 0 0 0

P10 0 0 0 0 0 0 0 1 0 0 0

P11 0 0 0 0 0 0 0 0 1 0 0

A figura 19 ilustra a representação gráfica da RdP por transição.

01 0 0 1 0 0 0 0

 

 

Figura 19. RdP para cada transição das tabelas 8 e 9

O modelo completo da RdP com a marcação inicial M 0 (2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 1) está ilustrado na figura 20.

Figura 20. Rede de Petri Ordinária para o sistema de manufatura

Esta rede modela um sistema de manufatura com dois processos compartilhando duas máquinas. A adição de um novo processo compartilhando as mesmas máquinas exigiria que a rede modelasse todos os estágios desse novo processo, através de estados, ações e relações entre este processo e os dois já existentes, e entre este processo e os recursos disponíveis. Percebemos então que, aumentando o número de processos, a Rede de Petri que modela o sistema crescerá significativamente. Neste caso, é interessante usar Redes de Petri Coloridas, que reduziria significativamente o tamanho da rede e a tornaria escalável através da alteração apenas da marcação inicial e da função dos arcos. A estrutura continua a mesma.

3.3.2. Linha de Manufatura usando Redes de Petri Coloridas A figura 21 apresenta a RdP Colorida que modela o sistema de manufatura da figura 20.  Na rede colorida, os estágios de produção de cada produto são unificados (  ss0,  s1, s 2, s 3,   s4, s 5) e representados através de  places comuns. Nesta rede, os tokens de cores (tipos)

 

  distintas diferenciam os processos. Do mesmo modo, as máquinas (recursos) foram unificadas em um mesmo place e as cores (tipos) dos tokens distinguem a máquina.

Figura 21. Rede de Petri Colorida para o sistema de manufatura [Maciel 1996]

O conjunto de cores que representam os processos é da cor  Proc*I , onde Proc =  p|q  e  I = INT . As cores associadas ao place recurso  (máquinas) correspondem às máquinas disponíveis sendo rec = r|s. As expressões de inicialização dos places nãomarcados são omitidas. As funções de inicialização dos places são:  + 1’  ss   s0 = 2’( p  p,0) s  s1 = 1’(q,0)recurso = 2’r  + Deste modo, o place  s0 possui dois tokes, onde a cor do processo é  p e o zero corresponde ao número de iterações realizadas. As marcas inicialmente disponíveis no  place recurso são dois tokens da cor r  e  e um da cor s. Inicialmente, as transições t 0  e t 1  estão habilitadas. Para que transição  s1  seja disparada a variável  x do arco que liga o place recurso  a  s1 recebe um token da cor q, sendo associado ao arco o valor 2’r . O disparo de t 1 remove um token da cor (q,0) do  place s1 e dois tokens da cor 2’r  do  do place recurso.

4. Métodos e Ferramentas de Validação e Verificação de Redes de Petri Conforme descrevemos na Introdução, existem modelos analíticos, de simulação e medição enquanto de projeto, análise e avaliação de exige um sistema computacional [Jain processo 1991]. Destes três, apenas o modelo de medição que o

 

  sistema exista fisicamente. As Redes de Petri podem ser utilizadas como ferramentas de validação e verificação através dos modelos analíticos e de simulação conforme veremos a seguir: O modelo analítico para RdP pode ser dividido em três métodos de análise [Murata 1989]: •  Análise por enumeração: Este método está baseado no uso de árvores de

alcançabilidade ou grafos de alcançabilidade. Conforme descrito no tópico 2.3, é construída uma árvore com raiz igual à marcação inicial da RdP e a  partir do disparo de cada transição habilitada são encontradas as marcações (folhas) alcançáveis. O grafo de alcançabilidade pode ser modelado considerando os nós como as marcações, e as arestas como os disparos de transições. •  Análise por matriz de incidência e equação de estado: É possível

descrever RdP através de equações algébricas. Neste material não abordamos equações algébricas, mas matrizes foram discutidas no tópico 2.2. •  Análise por redução ou decomposição (transformações): Em alguns casos

é possível reduzir o tamanho de uma RdP para uma composição mais simples. Este método deve ser aplicado quando for possível manter as  propriedades que se pretende analisar. Podemos dividir este método em seis partes ilustrado através da figura 22. a) Fusão de places em série.  b) Fusão de transições em série. c) Fusão de transições em paralelo. d) Fusão de places em paralelo. e) Eliminação de places em loop. f) Eliminação ddee transições em loop.

Figura 22. Método de análise por redução ou decomposição [Murata 1989]

Outro modelo muito importante durante o uso das Redes de Petri é a simulação. Entre as vantagens da simulação podemos citar as seguintes: • Efeitos das animações e gráficos ajudam no aprendizado e entendimento

do sistema simulado.

 

  • Permite manter um maior controle sobre o experimento, o que muitas

vezes não é possível no sistema real. • Permite estudar o sistema durante o longo período de tempo simulado.

 Na URL http://www.daimi.au.dk/PetriNets/tools/complete_db.html  http://www.daimi.au.dk/PetriNets/tools/complete_db.html  [Petri Nets 2004] podemos encontrar uma lista completa No de vários de Redes de Petri disponíveis comercialmente e gratuitamente. tópico simuladores 4.1 descrevemos o simulador Visual Object Net ++, desenvolvido por um grupo de pesquisadores alemães.

4.1. Ferramenta de simulação Visual Object Net ++  É muito difícil encontrar uma ferramenta de simulação de Redes de Petri que suporte todas as variações encontradas sobre RdP. Algumas ferramentas se limitam a simular apenas RdP Ordinárias, outras apenas RdP Estocásticas e etc. O simulador Visual Object Net ++  (VisObjNet) é bastante simples e oferece uma interface fácil de usar. Suas características básicas são: • Suporta Redes de Petri Temporizadas. • Suporta elementos discretos e contínuos. •  Não suporta Redes de Petri Coloridas e Estocásticas. • Análise simples de desempenho. • Configuração de velocidade de simulação. • Possui um editor gráfico. • Animação de tokens.

Este simulador foi desenvolvido para máquinas com sistema operacional Windows. Para instalar, basta descompactar o arquivo obtido através da homepage  do simulador (http://www.systemtechnik.tu-ilmenau.de/~drath/visual_E.htm (http://www.systemtechnik.tu-ilmenau.de/~drath/visual_E.htm)) [Drath 2004]. É possível encontrar simuladores mais completos, porém costumam ser simuladores comerciais. Esta é uma boa lacuna para ser preenchida! Alguém se habilita a desenvolver um simulador de RdP Temporizadas, Coloridas e Estocásticas? 4.1.1. Guia de utilização do VisObjNet O principal objetivo deste tópico é apresentar o VisObjNet [Drath 2004], algumas de suas interfaces e como simular uma Rede de Petri. Este simulador apresenta suporte a elementos discretos e contínuos. No entanto, não estaremos simulando uma RdP contínua. Algumas observações a respeito destes elementos: • Transição contínua: Seu disparo pode estar associado a um valor constante

ou a uma função •  Place contínuo: Possui tokens com valores reais.

A figura 23 ilustra a interface principal o VisObjNet, dividida em 4 módulos:

 

  • Menu: funções associadas à gerencia de arquivos, tais como abrir e salvar,

e botões de acesso rápido para representação gráfica das Redes de Petri. •  Properties: Módulo referente às propriedades de cada elemento da Rede

de Petri. Neste módulo podemos alterar questões como quantidade de tokens em um place e peso de um arco, por exemplo. •  Factory: Possui um breve tutorial e opções rápidas para acessar ou deletar

arquivos. • Edição: Tela onde são construídas as Redes de Petri.

Figura 23. Interface principal do VisObjNet

As figuras 24 e 25 ilustram o módulo “ Properties”. Marcando um elemento no módulo de edição, as propriedades deste aparecerão conforme ilustrado na figura 24. Se for necessário informações a respeito de todos os elementos da RdP, basta escolher uma das opções relativas a cada elemento, conforme ilustrado na figura 25. Através do módulo de propriedades podemos alterar os seguintes parâmetros  para cada elemento: •  Places: Nome, variável (pode ser usada em funções), tipo (discreto ou

contínuo), quantidade de tokens iniciais, visibilidade do rótulo e tamanho. • Transições: Nome, atraso (temporização ou função no caso de elemento

contínuo), tipo (discreto ou contínuo), cor, visibilidade do rótulo, tamanho,  prioridade e Reservation.

 

  • Arcos: Peso, visibilidade do rótulo e tipo ( normal , inhibitor   e  static test

arc). Maiores informações sobre os tipos de arcos podem ser encontradas em [Maciel 1996].

Figura 24. Interface das propriedades dos  places, transições e arcos

Figura 25. Interface de informações relativas aos  places, transições e arcos

A figura 26 ilustra a opção para início de uma simulação. Entre os botões de acesso rápido que existem no primeiro módulo de interface, existe o botão Start . Este botão abre uma nova interface de botões para gerenciar a simulação. A função de cada botão é a seguinte: • Step: Usando este botão, a RdP será simulada através de passos. Será

sempre necessária a intervenção do usuário apertando este botão. Somente as transições habilitadas serão disparadas a cada passo. •  Run: A RdP será simulada sem prazo de tempo definido para parar.

Enquanto houver uma transição habilitada para disparo a rede continuará sendo simulada. •  Run to event : É necessário um evento provocado pelo usuário. A inserção

de um token em um determinado place provoca o início da simulação. • Stop: Pára a simulação. Este botão não impede a continuação da simulação

a partir do estado em que foi finalizada.

 

 

Figura 26. Simulando a execução de uma RdP (comportamento da lâmpada)

A figura 27 ilustra o módulo de interface de opções. Neste módulo é possível encontrar campos de configuração (os dois últimos campos ainda não foram projetados) referentes aos seguintes itens: • Representação: Tipo de grid . • Simulação: Tempo de simulação para mudança de um estado (100ms é o

 padrão) e tipo de animação. des empenho. • Performance: Análise simplificada de desempenho.

Figura 27. Interface de opções

5. Aplicação de Redes de Petri em Sistemas Computacionais Como apresentamos ao longo do texto, as Redes de Petri são um importante modelo  para modelagem de sistemas, em particular de sistemas computacionais. O principal motivo disso são as propriedades inerentes às redes de Petri que facilitam a modelagem de características típicas dos problemas de computação como concorrência, controle, conflitos, sincronização, compartilhamento, entre outros.  Neste tópico apresentaremos exemplos de modelagem de sistemas computacionais usando Redes de Petri Ordinárias, Coloridas e Estocásticas. Ao contrário dos exemplos apresentados no tópico 3, neste tópico não apresentaremos todas as fases de modelagem dos sistemas. Apresentaremos o modelo (Rede de Petri)

 

  completo, suas condições e ações. Nos modelos usando Redes de Petri Coloridas são usadas diferentes linguagens para as inscrições da rede.

5.1. Semáforo Um típico problema computacional é o caso de comunicação entre processos concorrentes [Tanenbaum 2003b], que compartilham um recurso do sistema. O compartilhamento pode gerar situações indesejáveis. Uma das soluções para problemas de compartilhamento é o uso de semáforo. Um semáforo é uma variável inteira não negativa que é manipulada por instruções de down  e up. O semáforo indica quando o recurso associado a ele está sendo utilizado por um dos processos concorrentes: •

S > 0: nenhum processo está utilizando o recurso



S = 0: processo impedido de utilizar o recurso

A Região crítica é uma área do processo onde é realizado o acesso ao recurso compartilhado.  Neste exemplo apresentamos a rede que modela dois processos concorrendo por um recurso e usando um semáforo para resolver os problemas de compartilhamento [Bressan 2002]. Os processos são p e q. Cada um possui 3 estados ( p1, p2, p3, q1, q2, q3). O terceiro estado de cada processo ( p3,  q3) é referente a região crítica (recurso compartilhado). O semáforo é representado pelo estado R (Recurso). A figura 28 apresenta a Rede de Petri Ordinária que modela um semáforo.

Figura 28. Rede de Petri Ordinária que modela um semáforo

5.2. Produtor/Consumidor A relação Produtor/Consumidor [Tanenbaum 2003b] é uma situação bastante comum em sistemas computacionais. Nesta situação dois processos compartilham um buffer de tamanho fixo. O produtor insere informação no buffer e o consumidor retira informação do buffer. Existem dois problemas em questão: primeiro se o produtor quer inserir, mas o buffer está cheio, e segundo se o consumidor quer retirar, mas o buffer está vazio. Os estados do sistema são: esperando para produzir, esperando para consumir,  produzindo item, colocando item no buffer, retirando iitem tem do buffer, consumindo item, tamanho do buffer, buffer. As ações são: produzir item, preparar para colocar item no  buffer, colocar item no buffer e produzir novo item, retirar do buffer, consumir item, consumir novo item [Bressan 2002] [Desel 2000] [Silva 2000]. A marcação inicial da rede possui um token  no  place  do início do processo  produtor (esperando para produzir ) e um token  no  place  do início do processo

 

  consumidor (esperando para consumir ). ). Além disso, possui m tokens no  place tamanho do buffer, onde m  é igual ao tamanho do buffer. A figura 29 apresenta a rede que modela um sistema Produtor/Consumidor usando Redes de Petri Ordinárias.

Figura 29. Rede de Petri Ordinária que modela um sistema Produtor/Consumidor

5.3. Modelo de máquina PRAM Em um sistema PRAM ( Parallel  Parallel Random Access Machine) [Almasi 1994], cada  processador à memória compartilhada do sistema. Deste comum modo, doa comunicação tem entre acesso os processos é realizada através de acessos à memória sistema. O sistema PRAM é um tipo de semáforo (Exemplo 5.3.), tendo a memória como recurso compartilhado. No PRAM acessos à memória são gerados por cada  processador. Para modelar um gerador de acessos para cada RAM ( Random  Random Access  Machine) usamos redes de Petri temporizadas [Penha 2004]. Os estados da rede são: Gerador de Acessos de P1, Gerador de Acesso de P2, P1 esperando para acessar a memória, P2 esperando para acessar a memória, P1 acessando memória, P2 acessando memória, Memória disponível. A Figura 30 apresenta a Rede de Petri temporizada que modela um sistema PRAM ( Parallel  Parallel Random Access Machine) EREW ( Exclusive  Exclusive Read/Exclusive Write) com dois processadores (RAMs). A geração de acessos em máquinas paralelas é aleatória. Como este exemplo usa redes de Petri temporizadas, para que a geração seja aleatória foi necessário fazer uma adaptação na geração de acessos, acrescentando uma transição na geração de acessos. Portanto, as ações da rede são: Gerar processo P1, Não gerar processo P1, Gerar  processo P2, Não gerar processo P2, Acessar Aces sar memória para P1, Acessar a memória para P2, Liberar a memória de P1, Liberar a memória de P2. A marcação inicial da rede possui um token  no place  Memória Disponível   (já que o sistema só pode realizar uma operação na memória por vez - EREW) e nos Geradores de Acessos de cada processador. Como podemos perceber, o uso de Redes de Petri Ordinárias ou Temporizadas  para modelar este sistema não foi o mais adequado. Primeiro porque a geração de acessos é um processo estocástico e o modelo usando redes temporizadas não reflete adequadamente este comportamento estocástico, apesar da transição inserida para geração aleatória acessos. Neste caso, de RedeOdeaumento Petri maisdoadequada Estocástica. Alémdedisso, o modelo nãoo étipo escalável. número édea

 

   processadores provocaria um aumento significativo na rede, tanto nos estados, quanto nas transições e nos arcos. Portanto, a modelagem de um sistema PRAM seria mais adequada utilizando Redes de Petri Coloridas e Estocásticas.

Figura 30. Rede de Petri temporizada para o sistema PRAM [Penha 2004]

5.4. Protocolo de comunicação Uma área muito importante atualmente é a de protocolos de comunicação [Tanenbaum 2003a]. E as redes de Petri são muito úteis na modelagem e análise desses protocolos.  Neste exemplo vamos usar Redes de Petri Ordinárias para modelar um protocolo de comunicação simples com um transmissor e um receptor. O transmissor envia uma mensagem para o receptor, o receptor recebe então a mensagem e envia um ack  para   para o transmissor. Este tipo de protocolo também é conhecido como  simplex  stop-and-wait  stop-and-wait   ee sua descrição pode ser encontrada na referência [Tanenbaum 2003a]. De uma maneira geral é realizado um controle de fluxo, ou seja, para o transmissor enviar o próximo  pacote, é necessário quesão o considerados receptor envie uma erros confirmação, umtransmissão.  feedback   ou simplesmente um ack . Não possíveis durante uma A figura 31 apresenta a Rede de Petri que modela este protocolo simples de comunicação [Maciel 1996]. Os estados, ações e marcação inicial podem ser observados na figura.

Figura 31. Rede de Petri Ordinária de um protocolo simples de comunicação

 

  Um outro protocolo de comunicação que também está descrito na referência [Tanenbaum 2003a] é o simplex para um canal com ruído. Neste caso, é considerada uma situação normal onde existem erros. Portanto, os quadros podem ser danificados ou simplesmente perdidos. A figura 32 ilustra o modelo de Redes de Petri para este  protocolo [Tanenbaum 2003a].

Figura 32. Rede de Petri Ordinária de um protocolo simplex para canal com ruído

 Neste protocolo o que diferencia um quadro recebido do próximo quadro é o número de seqüência de tamanho igual a um bit, portanto, seq. 0 ou seq. 1 conforme descrito na figura 32. Já que estamos considerando as possíveis perdas de quadros, são utilizadas as transições Perder seq. 0, Perder seq. 1 e Perder Ack , que poderão de forma aleatória perder os quadros de seqüência 0 ou 1 ou um quadro de confirmação (Ack). É importante ressaltar que, os  places  Seq. 0 na linha, Seq. 1 na linha e  Ack na linha  estão em uma situação de conflito, já que existem saídas para mais de uma transição, confirmando portanto, as condições aleatórias das transições descritas acima.

5.5. Pipeline  O paralelismo  pipelined  [Hennessy   [Hennessy 2003] explora os aspectos temporais das aplicações  paralelas. Um sistema  pipeline é composto por um determinado número de estágios que  podem ser executados simultaneamente. Quando Quando um estágio i encerra sua atividade, este transfere o resultado obtido para o próximo estágio i+1  e aguarda novos dados do estágio anterior i-1. Os dados a serem processados são passados de estágio a estágio seqüencialmente. Deste modo, a comunicação entre os estágios é restrita aos estágios vizinhos.  Neste exemplo, modelamos um sistema  pipeline  simples [Maciel 1996] , com duas unidades funcionais. Para que um dado seja processado, a unidade deve estar ociosa. Ao receber dado na entrada, a unidade funcional A processa o dado e envia para a entrada da unidade funcional B. A unidade funcional A pode então receber novos dados. A unidade funcional B, ao receber o dado processado por A, termina o  processamento e envia o resultado para a saída do sistema.

 

  Portanto, os estados do sistema são: Entrada do sistema (p0), entrada da unidade funcional A vazia (p3), entrada da unidade A bloqueada (p1), saída da unidade A vazia (p4), saída da unidade A bloqueada (p5), unidade A processando (p2), entrada da unidade B vazia (p8), entrada da unidade A bloqueada (p7), transferência de dado entre a unidade A e a unidade B (p6), entrada da unidade B (p10), unidade B processando (p9), saída da unidade B (p11), saída do sistema (p12). As ações do sistema são: ler entrada da unidade A (t0), unidade A processa dado (t1), escrever resultado na saída da unidade A (t2), iniciar transferência de dado da unidade A para a unidade B (t4), finalizar processo de transferência de dado entre A e B (t3), unidade B processa dado (t5), escrever resultado na saída da unidade B (t6), escrever dado na saída do sistema (t7). Um token  no  place p0 indica que existe dado a ser processado pelo sistema. A transição t0 só está habilitada quando houver informação disponível e a unidade A estiver habilitada para efetuar a leitura do dado. A transição t1 só pode ser disparada se houver dado na entrada da unidade A ( place  place  p1) e se a saída desta unidade estiver habilitada (p4). A figura 33 apresenta a rede que modela este sistema sist ema pipeline.

Figura 33. Rede de Petri Ordinária de sistema  pipeline de duas unidades funcionais

5.6. Sistema FIFO A Figura 34 apresenta uma Rede de Petri de alto nível bastante simples que modela um sistema de filas do tipo FIFO ( First  First In-First Out ) [Tanenbaum 2003b]. O sistema FIFO consiste de uma fila de elementos de dados, onde elementos podem ser adicionados ou removidos. elementoselemento são adicionados final da fila e removidos do início da fila. Deste modo,Os o primeiro a entrar éno o primeiro a sair.

Figura 34. Rede de Petri de alto nível para o sistema FIFO [Barros 1996]

 

  A Rede de Petri de alto nível não tem necessariamente tokens  coloridos, mas tokens como tipos de dados. No entanto, a rede possui inscrições. Os estados da rede são: elemento a ser adicionado na fila (A1), elemento adicionado na fila (A2), elemento a ser removido da fila (R1), elemento removido da fila (R2) e a fila propriamente dita. As ações da rede são: adicionar elemento na lista e remover elemento da lista.

5.7. Jantar dos Filósofos  Neste exemplo apresentamos a rede que modela um típico problema de computação: o  jantar dos Filósofos [Tanenbaum 2003b]. Para iniciar nossos estudos na modelagem de sistemas computacionais com Redes de Petri Coloridas apresentamos um modelo usando Redes de Petri Ordinária e sua evolução para uma Rede de Petri Colorida [Barros 1996] [Maciel 1996]. 5.7.1 Jantar dos Filósofos usando Redes de Petri Ordinárias O problema do jantar dos filósofos consiste de filósofos que podem estar comendo,  pensando ou com fome. Os filósofos estão sentados ao redor de uma mesa e cada um tem um garfo e um prato de comida à sua frente. Entretanto, para que um filósofo possa comer, ele precisa de dois garfos (o seu e o do seu vizinho). O problema é então o fato de que, se todos os filósofos pegarem o garfo da direita em um mesmo instante e aguardarem a liberação do garfo da esquerda, o sistema entrará em deadlock  (impasse).   (impasse). Modelaremos uma rede com cinco filósofos e, conseqüentemente, cinco talhares.

Figura 35. Rede de Petri Ordinária para o problema do jantar dos fil filósofos ósofos

Portanto, os estados da rede são: Filósofo 1 pensando, Filósofo 1 comendo, Filósofo 2 pensando, Filósofo 2 comendo, Filósofo 3 pensando, Filósofo 3 comendo, Filósofo 4 pensando, Filósofo 4 comendo, Filósofo 5 pensando, Filósofo 5 comendo, Garfo 1, Garfo 2, Garfo 3, Garfo 4, Garfo 5. As ações da rede são: Filósofo 1 pega talher, Filósofo 1 libera talher, Filósofo 2 pega talher, Filósofo 2 libera talher, Filósofo 3  pega talher, Filósofo 3 libera talher, Filósofo 4 pega talher, Filósofo 4 libera talher, Filósofo 5 pega talher, Filósofo 5 libera talher. Por questões de simplificação, na nossa

 

  rede não modelamos os estados dos filósofos com fome. Neste caso, estes estados estão representados pelo disparo da transição pega talher: um filósofo pega talheres quando está com fome. A figura 35 apresenta a Rede de Petri Ordinária para o problema do  jantar dos filósofos.

5.7.2. Jantar dos Filósofos usando Redes de Petri Coloridas Como podemos perceber a Rede de Petri Ordinária que modela o problema do jantar dos filósofos é complexa, grande e repetitiva.O aumento do número de filósofos tornaria a rede ainda maior e mais complexa e alteraria sua estrutura. Além disso, os mesmos estados e ações são repetidos para cada filósofo. Deste modo, a substituição de uma RdP Ordinária por uma RdP Colorida é  bastante adequada, eliminando os processos repetitivos e fazendo com a rede seja escalável de forma que o aumento do número de filósofos pode ser feito simplesmente alterando a marcação inicial dos  places  (filósofos) pensando e G (garfos) livres  e das funções left() e right().  Neste caso, cada conjunto de  places é substituído por um único  place colorido contendo tokens  coloridos. A fusão dos (repetitivos)  places  resulta na fusão dos respectivos (e repetitivos) arcos. Para isto, são atribuídas funções aos arcos de forma a determinar quais tokens  devem ser adicionados ou retirados dos  places. É o caso das funções left() e right(), que selecionam os garfos corretos para cada filósofo.

Figura 36. Rede de Petri Colorida para o problema do jantar dos filósofos

 No modelo apresentado na figura 36, os filósofos e os garfos são distinguidos  pela forma do token.Além disso, cada filósofo e cada garfo é caracterizado por uma cor diferente. Inicialmente, a rede possui cinco tokens de cores distintas no place (filósofos)  pensando  e cinco tokens  de cores distintas no  place  (garfos) livres. A função left(filósofo) seleciona o garfo em frente ao filósofo i (garfo i) e a função right(filósofo) seleciona o garfo à direita do filósofo i (garfoi+1).  Na figura 37 apresentamos o comportamento da rede da figura 35 antes e após o disparo da transição  pega talheres  para o filósofo 1 (vermelho). No canto inferior direito da figura 37 apresentamos a disposição dos filósofos e dos talheres na mesa.

 

 

Figura 37. Comportamento dinâmico da Rede de Petri Colorida para o problema do jantar dos filósofos

Como podemos perceber, a modelagem usando Redes de Petri Colorida reduziu significativamente o modelo e eliminou  places, transições e arcos repetitivos, unificando-os.

5.8. Sistema paralelo simples (Estocástica)  Neste exemplo apresentamos um sistema paralelo [Almasi 1994] simples modelado com Redes de Petri Estocástica [Haas 2002] [Silva 2000]. A figura 38 mostra a Rede de Petri que modela o sistema paralelo [Silva 2000]. A Figura 39 mostra o diagrama de estados que é a cadeia de Markov associada aos nós da árvore de alcançabilidade da Rede de Petri apresentada na Figura 38. O vetor de probabilidades é calculado através da resolução do sistema de n

equações lineares vetor * Q = 0 , sendo que

vetor i = 1 , onde n = número de estados da ∑ i 1 =

cadeia de Markov correspondente. A taxa de disparo de P3+P4 é W (T  par 1 ) + (WT  par 2 ) . Qual a probabilidade de T  par 1  

W  (T  par 1 ) disparar? É de . Portanto: W  (T  par 1 ) + W  (T  par  2 ) µ1 = (W (T  par 1 ) + W (T  par 2 ))

Do mesmo modo, λ contproc = W (T contproc ) .

W (T  par 1 ) = W (T  par 1 ) . W (T  par 1 ) + W (T  par 2 )

µ2  =

W (T  par 2 ) .  Logo:

Qual o significado de W (T  fimproc )  e W (T contproc ) ?

λ  fimproc

= W (T  fimproc )   e

 

  • A atividade de verificação é igual a 0.0001. Considerando uma taxa de

10000, e definindo que a probabilidade de  fimproc / contproc  é 99% vs. 1%, temos que portanto, W (T  fimproc ) = 9900  e W (T contproc ) = 100 .

Figura 38. Rede de Petri Estocástica de um sistema paralelo simples

Figura 39. Diagrama de estados

Deste modo, os parâmetros (definidos e calculados) da rede são apresentados na Tabela 10. Tabela 10. Parâmetros da Rede de Petri Estocástica do sistema paralelo

Transições

Taxa

Valor

Semântica

Tnovodado  Tinicio  T par1  T par2  T sinc  T fimproc  Tcontproc  TI/O  Tverif  

λ  τ  µ1  µ2  σ  α  β  ν  θ 

1 1000 10 5 2500 9900 100 25 0,5

Servidor infinito Servidor único Servidor único Servidor único Servidor único Servidor único Servidor único Servidor único Servidor único

A operação de verificação tem, por definição, uma média de duração de 0,0001 unidades de tempo, e resulta em sucesso em 99% das vezes e em falha em 1% das vezes. Os índices de performance para este sistema são: • Vazão da transição TI/O: 1.504 sucessos/unidade de tempo

 

  •  Número médio de itens em teste: 0,031 • Tempo de produção médio: 0,33 unidades de tempo.

6. Conclusões Considerando osimportante resultados apresentados minicurso podemos concluir que as Redes de Petri são um recurso para anomodelagem de sistemas, particularmente de sistemas computacionais. Esta importância é fundamentada nas propriedades inerentes às Redes de Petri que facilitam a modelagem de características típicas dos sistemas computacionais, entre as quais podemos destacar: compartilhamento, concorrência, conflito, controle e sincronização. Entretanto, a modelagem de sistemas computacionais que possuem algumas características probabilísticas, como a máquina PRAM, utilizando Redes de Petri Ordinárias e Temporizadas não é o ideal. Neste caso, o ideal seria utilizar uma Rede de Petri Estocástica. A modelagem usando Redes de Petri Coloridas, normalmente permite uma redução no tamanho do modelo devido à unificação de  places  places,, transições e arcos. O grau de redução Rede de( places, modelos originais e principalmente da quantidade deda repetições  Petri placesé, dependente transações edos arcos) existentes. Esperamos ter alcançado nossos principais objetivos com a preparação e apresentação deste minicurso, apresentando os principais conceitos das Redes de Petri Ordinárias e de algumas extensões como as Redes de Petri Coloridas e as Redes de Petri Estocásticas. Além disso, apresentamos exemplos de modelagem de problemas triviais com Redes de Petri e exemplos de utilização de Redes de Petri na modelagem de sistemas computacionais e na solução de problemas relacionados com os mesmos. Entre as diversas possíveis sugestões de estudos mais avançados e trabalhos futuros podemos destacar: aprofundamento do estudo das Redes de Petri Coloridas e das Redes de Petri Estocásticas, estudo de outras variações de Redes de Petri, utilização dos diversos tipos de Redes de Petri na modelagem e solução de problemas relacionados com sistemas computacionais, e utilização de outras ferramentas de validação/verificação de Redes de estudo Petri e finalmente o projeto e desenvolvimento de ferramentas de validação e verificação de Redes de Petri, como analisadores e simuladores de Redes de Petri.

 

 

7. Referências Almasi, G. S., Gottlieb, A.A. (1994), “Highly Parallel Computing”, 2nd. Edition, Benjamim/Cummings. Barros, J. P. M. P. de R. um (1996), “CpPNeTS: uma Classe de Redes de PetriDissertação de Alto-nível. Implementação sistema de suporte à sua aplicação e análise”, de mestrado, Faculdade de Ciências e Tecnologia, Departamento de Informática, Universidade Nova de Lisboa, Lisboa. URL: http://www.estig.ipbeja.pt/~jpb/BarrosTeseDeMestrado.pdf   (último acesso em outubro de 2004) Bolch, G., et al (1998), “Queueing Networks and Markov Chains: Modeling and Performance Evaluation With Computer Science Applications”, Editora WileyInterscience Bressan, G. (2002), “Modelagem e Simulação de Sistemas Computacionais” Capítulo sobre Redes de Petri, LARC-PCS/EPUSP, www.larc.usp.br/conteudo/universo/pcs012/modsim05.pdf   (último acesso em outubro de 2004) Buyya, R. (1999), “High Performance Cluster Computing”, Volume 1, Prentice Hall Desel, J. (2000), “Place/Transitions Nets I”, Introductory Tutorial Petri Nets, Petri Nets 2000, 21st  International Conference on Application And Theory of Petri Nets, Denmark, pp 111-160. Drath, R., Visual Object Net ++ (2004). URL: http://www.systemtechnik.tuilmenau.de/~drath/visual_E.htm,, Technical University of Ilmenau, Alemanha (último ilmenau.de/~drath/visual_E.htm acesso em outubro de 2004). Girault, C., Valk, R. (2002), “Petri Nets for Systems Engineering: A Guide for Modeling, Verification and Application”, Springer Verlag. Haas, P. J. (2002) “Stochastic Petri Nets: Modeling, Stability, Simulation”, SpringerVerlag 1st edition Hennessy, J. L., Patterson, D. A. (2003) “Computer Architecture: A Quantitative Approach” 3rd Edition, Morgan Kaufmann Publishers. Jain, R. (1991), “The Art of Computer Systems Performance Analyses”, John Wiley. Maciel, P. R., et al. (1996), “Introdução às Redes de Petri e Aplicações”, X Escola de Computação, Campinas SP. Murata, T. (1989) "Petri Nets: Properties, Analysis and Applications", Proceedings of the IEEE, Vol. 77, pp. 541-580.  Norris, J. R. (1998), (1998), “Markov Chains”, Cam Cambridge bridge University Pres Presss Penha, D. O., Freitas, H. C., Martins, C. A. P. S. (2004) “Modelo de Memória Reconfigurável para Sistemas Paralelos”, V Workshop em Sistemas Computacionais de Alto Desempenho, Sociedade Brasileira de Computação, Foz do Iguaçu. Peterson, J. L. (1977), “Petri Nets”, ACM Computing Surveys, vol. 9, No. 3, pp. 223252

 

  Peterson, J. L. (1981), “Petri Net Theory and the Modeling of Systems”, Englewood Cliffs, Prentice Hall http://www.daimi.au.dk/PetriNets/   (último acesso em Petri Nets World (2004). URL: http://www.daimi.au.dk/PetriNets/ outubro de 2004) Petri, C. A., (1962), “Kommunikation Bonn: Instrumentelle Mathematik, Schriften des IIM Nr.mit 3, Automaten”, 1962. Também em Institut inglês, für “Communication with Automata”, New York: Griffiss Air Force Base, Tech. Rep.RADC-TR-65-377, vol. 1, Suppl. 1, 1966 Silva, M. (2000), “Place/Transitions Nets II”, Introductory Tutorial Petri Nets, Petri  Nets 2000, 21st International Conference on Application And Theory of Petri Nets, Denmark, pp 199-216. Tanenbaum, A. S. (2003a), “Redes de Computadores”, Campus, Tradução da 4a edição. Tanenbaum, A. S. (2003b), “Sistemas Operacionais Modernos”, Prentice-Hall, Tradução da 2a edição.

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF