Sistemas Digitais III EE773 / NE853. Redes de Petri



Documentos relacionados
Seja uma rede de Petri definida pela tripla (L, T, A), e por sua marcação inicial M 0.

ULA Sinais de Controle enviados pela UC

3. Arquitetura Básica do Computador

Dadas a base e a altura de um triangulo, determinar sua área.

Componentes do Computador e. aula 3. Profa. Débora Matos

Arquitetura de Rede de Computadores

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

CAPÍTULO 6 CIRCUITOS SEQUENCIAIS IV: PROJETO DE REDES SEQUENCIAIS

28/9/2010. Unidade de Controle Funcionamento e Implementação

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

Projeto de Máquinas de Estado

Organização e Arquitetura de Computadores I

INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO

Capacidade = 512 x 300 x x 2 x 5 = ,72 GB

Programação Básica em STEP 7 Operações Binárias. SITRAIN Training for Automation and Drives. Página 6-1

Capítulo VIII Registradores de Deslocamento e Contadores

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

Algoritmos e Estrutura de Dados III. Árvores

Unidade Central de Processamento (CPU) Processador. Renan Manola Introdução ao Computador 2010/01

Árvores Binárias Balanceadas

CAPÍTULO 2 CARACTERÍSTICAS DE E/S E PORTA PARALELA

Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores.

Quadro de consulta (solicitação do mestre)

Autómatos Finitos Determinísticos

ARQUITETURA DE COMPUTADORES

Curso: Técnico de Informática Disciplina: Redes de Computadores. 1- Apresentação Binária

PROGRAMAÇÃO EM LINGUAGEM LADDER LINGUAGEM DE RELÉS

Notas da Aula 17 - Fundamentos de Sistemas Operacionais

CAP. I ERROS EM CÁLCULO NUMÉRICO

1. CAPÍTULO COMPUTADORES

1. NÍVEL CONVENCIONAL DE MÁQUINA (Cont.) 1.3. INSTRUÇÕES Conceitos Básicos

Aula 2 Modelo Simplificado de Computador

Aula 8 Circuitos Integrados

Funções de Posicionamento para Controle de Eixos

EA773 - Experimento 5

Sistemas de Numeração. Professor: Rogério R. de Vargas INFORMÁTICA 2014/2

Organização e Arquitetura de Computadores I

Memórias Prof. Galvez Gonçalves

Universidade Federal de Santa Catarina Departamento de Informática e Estatística Bacharelado em Ciências da Computação

BARRAMENTO DO SISTEMA

Aritmética Binária e. Bernardo Nunes Gonçalves

Circuitos Digitais Cap. 6

Sistemas de Numerações.

A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande

Introdução aos Computadores

3 Sistemas de Numeração:

2. Representação Numérica

Diagrama de transição de Estados (DTE)

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS

CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM

ARQUITETURA DE COMPUTADORES

Sistemas Computacionais II Professor Frederico Sauer

1.1. Organização de um Sistema Computacional

Resolução de problemas e desenvolvimento de algoritmos

4 Arquitetura básica de um analisador de elementos de redes

CALCULADORA SIMPLES COM ULA

Organização e Arquitetura de Computadores I. de Computadores

Introdução. INF1005 Programação I 33K Prof. Gustavo Moreira gmoreira@inf.puc-rio.br

1.6. Tratamento de Exceções

Introdução à Lógica de Programação

Universidade Federal de Santa Catarina Centro Tecnológico Departamento de Informática e Estatística Curso de Graduação em Ciências da Computação

Algoritmos não se aprendem: Copiando algoritmos Estudando algoritmos Algoritmos só se aprendem: Construindo algoritmos Testando algoritmos

Computadores XXI: Busca e execução Final

Sistemas Operacionais

ROTEIRO PARA ELABORAÇÃO DE PROJETOS

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados

Lição 1 Introdução à programação de computadores

Centro Tecnológico de Eletroeletrônica César Rodrigues. Atividade Avaliativa

PROGRAMAÇÃO II 4. ÁRVORE

Introdução. A Informação e sua Representação (Parte III) Universidade Federal de Campina Grande Departamento de Sistemas e Computação

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Exemplo de Subtração Binária

Lista de Exercícios. Vetores

NOTAS DE AULA Prof. Antonio Carlos Schneider Beck Filho (UFSM) Prof. Júlio Carlos Balzano de Mattos (UFPel) Arquitetura de Von Neumann

Engenharia de Software III

Técnicas de Caixa Preta de Teste de Software

Organização e Arquitetura de Computadores I

Engenharia de Requisitos

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

5 Entrada e Saída de Dados:

Princípios de Análise e Projeto de Sistemas com UML

LABORATÓRIO DE ELETRÔNICA DIGITAL Experiência 9: Análise de Circuitos com Contadores

Engenharia de Sistemas Computacionais

Máquinas Multiníveis

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

QUADRADO MÁGICO - ORDEM 4

Orientação a Objetos

Ferramentas de Modelação e Análise de Sistemas baseadas em Redes de Petri (RdP)

Protocolo TCP/IP. Neste caso cada computador da rede precisa de, pelo menos, dois parâmetros configurados:

2 Diagrama de Caso de Uso

1. NÍVEL CONVENCIONAL DE MÁQUINA

3 Arquitetura do Sistema

Organização e Arquitetura de Computadores I. de Computadores

Figura 1 - O computador

LÓGICA DE PROGRAMAÇÃO

APLICAÇÃO REDE APLICAÇÃO APRESENTAÇÃO SESSÃO TRANSPORTE REDE LINK DE DADOS FÍSICA 1/5 PROTOCOLOS DE REDE

Algoritmos: Lógica para desenvolvimento de programação de computadores. Autor: José Augusto Manzano. Capítulo 1 Abordagem Contextual

SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA

Transcrição:

Sistemas Digitais III EE773 / NE853 Redes de Petri PROF. FRANCISCO ENÉAS LEMOS PROF. EDSON LEMOS HORTA PROF. ORLANDO DEL BIANCO FILHO PROF. LUIS CALDAS PROF. MARIA CLAUDIA CASTRO 2 O SEM. / 2003

REDES DE PETRI 2 ÍNDICE 1- Revisão dos Modelos de Estruturas Digitais Elementares... 4 1.1- Modelo combinatório... 4 1.2- Modelo seqüencial Assíncrono... 4 1.3 - Modelo Seqüencial Síncrono... 6 2 - Uma metodologia para projetar Sistemas Digitais... 7 2.1 - Conceitos básicos... 7 2.2 - O Problema da descrição de tarefas e o Conceito de Algoritmo... 10 2.3 - O método de projeto... 12 2.4 - Exemplo de um projeto... 13 3 - O modelo de redes de Petri como um mecanismo formal de descrição e análise de sistemas... 19 3.1 - Histórico... 19 3.2 - Por que é necessário um mecanismo formal de descrição?... 19 3.3 - Apresentação do modelo de redes de Petri... 19 3.3.1 - Definição... 20 3.3.2 - Seqüência de disparo de transições... 22 3.3.3 - Diagrama de marcações da rede... 24 3.3.4 - Representação matricial das redes de Petri... 25 3.3.5 - Propriedades das redes... 27 3.4 - Exercícios propostos... 31 4 - Interpretação do modelo... 36 4.1 - Exemplos de aplicação no modelamento de sistemas... 37 4.2 - Modelamento de estruturas de controle digital... 40 4.3 - Exemplos de aplicação... 41 5 - Síntese de estruturas de controle... 48 5.1 - A síntese de máquinas de estado (unidades de controle) descritas com redes de Petri.... 48 5.2 - Exemplos de aplicação... 51 5.3 - Exercícios Propostos... 63

REDES DE PETRI 3 O PROCESSO DE PROJETO E IMPLEMENTAÇÃO DE ESTRUTURAS DIGITAIS ELEMENTARES A figura abaixo resume as 4 etapas principais deste processo: A primeira delas consiste na formulação escrita do problema, procurando defini-lo completamente, o que nem sempre é tarefa simples, tendo em vista que as descrições fornecidas ao projetista podem ser incompletas e conter inúmeras fontes mal entendidas. O estudo detalhado Do problema (etapa 2), implica em sua total compreensão e definição clara das condições de contorno envolvidas. A síntese propriamente dita, poderá então ser realizada. As etapas 3 e 4 correspondem à materialização da estrutura e verificação de seu correto funcionamento. Etapa (1) Etapa (2) Etapa (3) Etapa (4) Formulação inicial do problema e definição dos objetivos Estudo detalhado do problema e síntese da estrutura seqüêncial desejada Montagem da estrutura projetada Testes finais de verificação e eventual reformulação do projeto, até o funcionamento correto da estrutura Fig 1 - O processo de projeto e implementação de estruturas digitais elementares O comportamento de um sistema digital elementar pode ser determinado pelas relações que se estabelecem entre suas variáveis de entrada e saída. A síntese destas estruturas, consiste exatamente em determinar estas relações lógicas entre cada uma das variáveis de saída e as variáveis de entrada envolvidas. Estas relações, estabelecidas a partir da definição e descrição do problema, serão sintetizadas com base em modelos definidos a seguir.

REDES DE PETRI 4 1- REVISÃO DOS MODELOS DE ESTRUTURAS DIGITAIS ELEMENTARES 1.1- Modelo combinatório As saídas do sistema,s1, s2... sm, são funções booleanas binárias apenas das entradas e 1, e 2... e n do mesmo. Ou seja: o conjunto de saídas fornecido pelo sistema num instante ti é perfeitamente determinado conhecendo-se o conjunto das variáveis de entrada aplicado a ele nesse instante. e 1 S 1 = f 1 (e 1,e 2,...e n ) e 2 Sistema combinatório S 2 = f 2 (e 1,e 2,...e n )... F... e n S n = f 2 (e 1,e 2,...e n ) Ou genericamente: S = F [E] 1.2- Modelo seqüencial Assíncrono Fig. 1.1 Modelo combinatório Neste caso, as saídas são funções booleanas (binárias) não apenas das entradas, mas também do estado interno do sistema seqüencial. Estas funções podem ser definidas de duas maneiras distintas (porém equivalentes) de acordo com a adoção do modelo de Mealy ou de Moore para representação da máquina seqüencial. Modelo de Moore: A função de saída é determinada pelo estado presente e a atualização de estado (estado futuro) depende da entrada presente e do próprio estado, ou seja: z 1 = f 1 (x 1, x 2...x k ) x 2 = f 2 (x 1, x 2... x k ) conjunto de equações de saída z m = (x 1,x 2 x k ) Conjunto de equações de Estado: x 1 ( t + Dt ) = g 1 [ x 1 (t), x 2 (t) x k (t) ; e l (t), e 2 (t) e n (t) ] x 2 ( t + Dt ) = g 2 [ x 1 (t), x 2 (t) xk(t); e l (t), e 2 (t) e n (t) ] : : x k ( t + Dt ) = g k [ x 1 (t), x 2 (t) xk(t); e l (t), e 2 (t) e n (t) ]

REDES DE PETRI 5 Genericamente, podemos escrever dois grupos de equações que definem completamente o comportamento do sistema: Z(t) = F [ x(t) ] Equações de saída X( t + Dt ) = G [ x(t), E(t) ] Equações de Estado onde: E = conjunto de entradas permitidas pelo sistema Z = conjunto de saídas fornecidas X = conjunto de estados internos do sistema A figura 1.2 ilustra o modelo de Moore, onde F e G são funções da álgebra booleana binária, e ( ) representa um elemento de memória, capaz de armazenar o estado interno do sistema durante um certo tempo ( ). F Z estado presente E G D estado futuro Fig. 1.2 Modelo de Moore Modelo de Mealy: Neste modelo, tanto a função de saída, como a de atualização de estado, dependem da entrada e do estado presente, representados matematicamente como se segue: z 1 = f l [ ( x 1, x 2...x k ) ; ( e 1, e 2... e n ) ] z 2 = f 2 [ ( x 1, x 2...x k ) ; ( e 1, e 2...e n ) ] : : z n = f n [ ( x 1, x 2...x k ) ; ( e 1, e 2...e n ) ] equações de saída e para as funções de estados: x 1 ( t + Dt ) = g 1 [ x 1 (t), x 2 (t)... x k (t) ; e l (t), e 2 (t) e n (t) ] x 2 ( t + Dt ) = g 2 [ x 1 (t), x 2 (t)... x k (t) ; e l (t), e 2 (t) e n (t) ] : : x k ( t + Dt ) = g n [ x 1 (t), x 2 (t)... x k (t) ; e l (t), e 2 (t) e n (t) ]

REDES DE PETRI 6 Generalizando as equações, onde F, G são funções booleanas binárias, e E, Z, X representam os conjuntos já mencionados anteriormente, temos: Z(t) = F [ X(t). E(t) ] X(t + Dt ) = G [ X(t), E(t) ] conjunto de equações de saída conjunto de equações de estado F Z estado presente E G D estado futuro Fig. 1.3 Modelo de Mealy 1.3 - Modelo Seqüencial Síncrono Nos modelos síncronos, as interações com o sistema se dão em intervalos de tempo bem determinados sob o comando de um relógio externo ao circuito, ou seja: Os instantes de comutação do conjunto de variáveis de entrada e saída, e do estado, estão sempre referenciados ás variações de uma variável binária particular (denominada relógio externo) que chamaremos R(t), e que dentro dos objetivos deste estudo será sempre periódico. Os modelos de Moore e Mealy anteriormente definidos, podem então ser reescritos como sendo: A) Modelo de Moore: Z(tn) = F [ X(tn) ] X (tn) + 1) = G [ X(tn), E(tn) ] equações de saída equações de estado B) Modelo de Mealy Z (tn) = F [ X(tn), E(tn) ] X (tn + 1 ) = G [ X(tn),E(tn) ] equações de saída equações de estado

REDES DE PETRI 7 Onde as referências de tempo t0, tl... tn, poderão corresponder aos instantes para os quais o relógio externo tenha valor lógico ZERO ou UM, ou ainda poderão corresponder apenas aos instantes de variação positiva ou negativa do sinal de relógio (sensíveis à borda do sinal de relógio). t variações variações positivas negativas Fig. 1.4 Informação externa de sincronismo (sinal de relógio) No modelo seqüencial síncrono, portanto, a discretização da variável tempo é obtida pela introdução da variável R(t), que fisicamente corresponderá a um sinal externo de sincronismo. Este sinal (Relógio) define, em última análise, os instantes permitidos de interação do sistema com o meio externo. F S(t) E(t) estado atual G Memória próximo estado Fig 1.5 Modelo Seqüencial síncrono 2 - UMA METODOLOGIA PARA PROJETAR SISTEMAS DIGITAIS 2.1 - Conceitos básicos Um conceito essencial em sistemas digitais é que a função lógica destes sistemas pode ser descrita independente dos detalhes internos do mesmo, ou seja: O SISTEMA pode ser representado por módulos funcionais que se comportam de forma previsível, e seu comportamento analisado e determinado através de mecanismos formais de descrição, como por exemplo tabelas de fluxo ou diagramas de estado. Por comportamento do sistema, entende-se a relação que se estabelece entre suas variáveis de entrada e saída em função do tempo. Desta forma, surge a idéia de projetar um sistema digital complexo particionando-o em uma série de subsistemas mais simples, caracterizando o comportamento de cada uma dessas partes e a seguir, a maneira pela qual elas se relacionam dando origem ao sistema inicialmente desejado. (figura 2.1).

REDES DE PETRI 8 e 1 S 1 e 1 S 1 e 2 SISTEMA S 2 e 2 P 1 P 3 S 2 e 3 DIGITAL S 3 e 3 S 3 : : e n S n e n P 2 P 4 S n Fig. 2.1 Partições do Sistema Digital A idéia de particionar um sistema digital complexo permite caracterizar pelo menos duas atividades distintas (mas inter relacionadas) dentro do processo de projetar estes sistemas. A primeira se refere ao PROJETO DO SISTEMA propriamente dito, definindo conjuntos de partições ( P1, P2... P3 ) que irão realizar as tarefas necessárias, especificando o comportamento de cada uma das partições e suas necessidades em termos de entradas e saídas. Estas partições serão chamadas MÓDULOS FUNCIONAIS ( ou blocos funcionais ). A segunda, consiste em analisar os detalhes de funcionamento de cada um dos módulos funcionais descritos anteriormente. Esta atividade será denominada PROJETO LÓGICO DO SISTEMA. O processo de projetar e realizar Sistemas Digitais pode ser subdividido em 3 fases denominadas respectivamente: DEFINIÇÃO, DESCRIÇÃO E SÍNTESE. DEFINIÇÃO se relaciona com o projeto do sistema como um todo, sua divisão em módulos funcionais, as necessidades de entradas e saídas de cada módulo, e seu inter-relacionamento. DESCRIÇÃO diz respeito aos detalhes de operação lógica de cada um dos módulos, e SÍNTESE se relaciona com o projeto do hardware ou seja: os circuitos que vão executar a descrição proposta. A idéia de projetar sistemas digitais complexos como um conjunto de subsistemas mais simples, que se inter-relacionam, implica em caracterizar estas partições do projeto, e os tipos de tarefas que cada partição deve realizar. Para isso, será admitido que as tarefas mais simples, uma vez definidas, podem ser enquadradas em uma de três categorias: 1. Tarefas de Memorização 2. Tarefas de Transformação 3. Tarefas de Controle As tarefas de memorização serão realizadas em MÓDULOS DE MEMÓRIA, cuja função é armazenar informações durante um certo período de tempo. As informações armazenadas nas memórias serão valores digitais organizados um a um ( bit a bit ) ou em conjuntos de bytes ( 8 bits ) ou palavras. A memória tem uma organização interna que lhe é própria, onde cada palavra ocupa uma ou várias posições que são descritas por um ENDEREÇO. Do ponto de vista lógico, as memórias podem ser vistas pelos projetistas, como se fossem tabelas com um certo número de linhas e colunas, cujo tamanho varia de acordo com a capacidade da memória. Estes módulos recebem portanto, como entrada, o endereço de uma linha da tabela, e fornecem como saída as PALAVRAS correspondentes (colunas) armazenadas naquele endereço. As memórias PROM, EPROM, EEPROM são os exemplos típicos destes módulos, onde as informações contidas são gravadas pelo projetista a partir da definição e programação dos dados que ele deseja armazenar. Outros módulos de memórias podem permitir ler ou escrever diversas vezes o conteúdo de um determinado endereço com

REDES DE PETRI 9 acessos de escrita ou leitura da informação armazenada. Memórias deste tipo serão caracterizadas no presente estudo, como registradores ou memórias ditas de acesso direto (memórias RAM Randon Access Memory). OS MÓDULOS DE TRANSFORMAÇÃO vão se caracterizar por receber um certo conjunto de entradas e modificá-los segundo uma relação lógica bem definida, fornecendo um conjunto de saídas correspondente ao conjunto de entradas recebido. Exemplos de módulos de transformação usuais são os somadores, as Unidades Lógicas e Aritméticas (ULAs), os codificadores (multiplex), decodificadores (demultiplex), etc. Também serão considerados módulos de transformação as interfaces entre o sistema e o meio externo onde ele deve residir como por exemplo um led que transforma um sinal elétrico em sinal luminoso, ou uma fotocélula que indica ao sistema a ocorrência de um evento externo. OS MÓDULOS DE CONTROLE, como o próprio nome indica, devem controlar as operações dos módulos de memória e dos módulos de transformação. As saídas dos módulos de controle podem depender não somente de suas entradas presentes (num instante de tempo t0), mas também de entradas passadas ocorridas em instantes anteriores, o que é característico das estruturas seqüenciais, uma vez que descrevem sistemas digitais que evoluem por estados. É importante ressaltar que cada um dos módulos aqui mencionados não deve ser visto pelo projetista do sistema como partições estanques. Os módulos podem e devem ser agrupados, sempre que conveniente, para simplificar a descrição do sistema. Por exemplo, um módulo pode ser designado coletivamente como módulo de controle, mesmo que no seu interior existam módulos de memória ou de transformação desde que a sua função principal, ao contexto geral do sistema, seja a função de controle. Interconexão dos Módulos Um grupo de módulos no qual um sistema foi particionado deve ser conectado por fios que transportam as informações lógicas, que serão denominados LINHAS LÓGICAS. Um conjunto de linhas lógicas em paralelo para transportar palavras de informação denomina-se via de comunicação. A forma pela qual os módulos são conectados através das vias, denomina-se ESTRUTURA DA VIA, e ela é extremamente importante para a operação adequada do sistema. Como exemplos de estruturas de VIAS, podemos citar: (Fig. 2.2a até 2d ) 1 1 2 5 2 3 4 3 4 5 a) Estrutura em anel b) Estrutura totalmente conectada

REDES DE PETRI 10 1 2 5 2 3 4 5 4 3 1 chave comutadora c) Estrutura de via única d) Estrutura de via com estrela (ou de barramento) Fig. 2.2 Exemplos de Estrutura de Vias de comunicação. 2.2 - O Problema da descrição de tarefas e o Conceito de Algoritmo Descrever a operação de sistemas lógicos é, em sua essência, descrever todas as TAREFAS que ele deve realizar. Para a descrição destas tarefas, é fundamental rever o conceito de ALGORITMO, uma vez que ele é o ponto de partida para estas descrições e a realização de projetos de sistemas digitais. O Algoritmo é semelhante a uma receita para produzir um determinado resultado, mas deve ser definido de forma mais cuidadosa. A análise de um exemplo permitirá formular o conceito. O algoritmo representado a seguir, denomina-se algoritmo de EUCLIDES e está apresentado sob FORMA VERBAL, a qual consiste em: 1. Nome do Algoritmo 2. Breve descrição do seu propósito 3. Uma lista de seus passos ordenados A execução destes passos, na ordem indicada, realiza a tarefa desejada. Algoritmo de Euclides: - Dados dois números inteiros e positivos m e n, encontrar o seu máximo divisor comum. Passo 1: ( Encontrar o resto ) Dividir m por n, e seja r o resto. (0 < r < n ). Passo 2: ( Teste de zero ) Se r = 0 terminar o algoritmo e deixar n ser a resposta. Passo 3: ( Troca ) Se r > 0 trocar m por n e n por r e voltar ao passo 1. Uma forma mais conveniente de representar um algoritmo é por intermédio de fluxogramas. Um fluxograma é uma representação gráfica que indica a seqüência lógica de operações que devem ser realizadas para execução do algoritmo. Para representação dos fluxogramas, vamos utilizar apenas quatro tipos de blocos conforme indicado a seguir: (Fig. 2.3a até 3d). INÍCIO FIM a) Início de um processo b) Final de um processo

REDES DE PETRI 11 c) Bloco de instrução (executa a instrução designada internamente) d) Bloco de decisão Fig. 2.3 Notação básica de Fluxogramas O mesmo algoritmo de Euclides encontra-se agora representado na figura 2.4 através de um fluxograma. INÍCIO m n m n não sim n r r = 0? Resposta = n Fig.2.4 Fluxograma do Algoritmo de Euclides Um algoritmo também pode ser encarado como um processo, uma rotina, etc.. A palavra algoritmo, entretanto, terá um significado que vai além de um simples conjunto de regras numa determinada seqüência, que realiza uma determinada tarefa. Ele deve possuir características adicionais definidas da seguinte forma: 1. Deve ser FINITO: - Um algoritmo deve sempre terminar depois de um número finito de passos. 2. Deve ser PRECISO: - Cada passo do algoritmo deve ser definido de forma precisa. As ações executadas devem ser rigorosamente definidas, e sem ambigüidades. 3. ENTRADAS: - Um algoritmo pode ou não necessitar de entradas, que são condições iniciais a ele fornecidas. (O algoritmo de Euclides requer m e n inteiros e positivos). 4. SAÍDAS: - Um algoritmo possui uma ou mais saídas que são quantidades relacionadas com as entradas, ou características do próprio algoritmo ( o algoritmo de Euclides possui uma saída no passo 2 ). 5. Deve ser ÚTIL: - Um algoritmo deve produzir um resultado útil, ou seja: O resultado do algoritmo deve levar a um resultado prático que tenha alguma aplicação.

REDES DE PETRI 12 2.3 - O método de projeto O que foi exposto até aqui permite fazer uma primeira descrição das atividades envolvidas no processo de projetar sistemas digitais, e isto está representado no diagrama da figura 2.5, onde existem cinco etapas de projeto: INÍCIO DEFINIÇÃO DESCRIÇÃO não satisfatória AVALIAÇÃO satisfatória SÍNTESE TESTE falhas FIM correto Fig. 2.5 Fluxograma da atividade de projetar. Etapa 1: Definição: Consiste em estudar o sistema a ser realizado, de modo a definir um conjunto de requisitos do projeto e verificar, em função da complexidade do problema, se será necessário particionálo ou não em MÓDULOS FUNCIONAIS mais convenientes para a solução, os quais posteriormente serão interligados para constituir o sistema completo. Consiste também em esboçar as tarefas que serão realizadas pelos módulos funcionais, definir suas entradas e saídas e a forma pela qual eles deverão ser interligados. Etapa 2: Descrição: Tendo em vista as partições do problema definidas na fase 1, esta fase consiste em descrever ALGORITMOS para que as partições executem as tarefas desejadas.

REDES DE PETRI 13 Etapa 3: Avaliação: Avaliar a operação das fases 1 e 2, verificando se são satisfatórias, ou seja, se satisfazem a todos os requisitos do projeto. Etapa 4: Síntese: Consiste em transcrever as descrições dos algoritmos em um conjunto de módulos de circuitos (hardware) capazes de executar as tarefas correspondentes. Etapa 5:- Teste: Fazer medidas de funcionamento do circuito, de modo a comprovar que as tarefas são realizadas corretamente. A primeira parte do fluxograma da figura 2.5 (Avaliação das duas fases iniciais) é sem dúvida o ponto crítico da atividade de projetar. Quando o projetista consegue avaliar as duas fases iniciais satisfazendo os requisitos do projeto, ele passa a aplicar uma técnica de síntese que irá leva-lo à materialização da estrutura desejada. A seguir serão analisadas, de forma mais detalhada, as três etapas básicas da atividade de projetar (Definição, Descrição e Síntese). 2.4 - Exemplo de um projeto Este item analisa a fase de definição do projeto de um multiplicador binário para operar com números inteiros e positivos de até 16 bits. A colocação do problema Evidentemente, a realização do projeto de um multiplicador deve iniciar pela compreensão do algoritmo que será utilizado nas operações de multiplicação. A forma mais simples de rever este algoritmo é aplica-lo em números decimais, estendendo-o a seguir às operações com números binários. No exemplo que se segue, o algoritmo convencional é aplicado em base decimal, limitando o uso apenas de dígitos 0 e 1 (uma vez que o mesmo algoritmo será usado posteriormente em base binária). Multiplicar (1000)base10 por (1001)base 10 Multiplicando 1 0 0 0 Multiplicador 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 Produto 1 0 0 1 0 0 0 Conforme o exemplo indica, o algoritmo pega os dígitos do multiplicador, um de cada vez da direita para a esquerda, fazendo a multiplicação de cada dígito do multiplicador pelo multiplicando, e colocando produtos intermediários à esquerda dos resultados anteriores. Cabe também observar que o número de dígitos do produto é maior que o número de dígitos da parcelas, ou seja: Se o comprimento do multiplicando for N dígitos e o do multiplicador for M dígitos, o resultado poderá ter até M + N dígitos. Finalmente, cabe ressaltar que se tivermos apenas dígitos zero e um (caso específico de base binária), cada passo da multiplicação fica simples, e teremos apenas duas possibilidades: a) Copiar o multiplicando no lugar apropriado quando o dígito multiplicador for UM (1 x multiplicando); b) Colocar ZERO se o dígito do multiplicando for zero.

REDES DE PETRI 14 Como as multiplicações em base binária oferecem sempre apenas dígitos ZERO ou UM, tem-se sempre apenas estas duas escolhas, e pode-se definir um algoritmo para realizar tarefa de multiplicação desejada. Este algoritmo, entretanto, não deve ser considerado (do ponto de vista de projeto do sistema digital) de forma isolada, mas em conjunto com os circuitos digitais (hardware) que irão implementa-lo. Uma primeira interação entre o algoritmo e o Hardware para realiza-lo A figura 2.6 apresenta um diagrama em blocos de um sistema digital capaz de realizar o algoritmo da multiplicação desejado em base binária. Como devem ser multiplicados números de até 16 bits, o registrador do multiplicando, a ALU (Unidade lógica aritmética) e o registrador de produto devem possuir 32 bits. O multiplicando começa ocupando apenas a metade do registrador (R_CANDO) e vai sendo deslocado em um bit para a esquerda em cada passo. Estes deslocamentos inserem sempre ZEROS à direita. O multiplicador é colocado no registrador correspondente (R_DOR), e vai sendo deslocado para a direita, um bit a cada passo da execução do algoritmo. O sistema deve iniciar com o registrador do produto (R_PROD) contendo apenas ZEROS. A unidade de controle, ao controlar a execução do algoritmo, decide quando deslocar os registradores do multiplicando, do multiplicador e também quando deve escrever novos valores no registrador de produto. A figura 2.7, adiante, apresenta o fluxograma correspondente ao algoritmo da multiplicação binária que foi adotado para este sistema, ou seja: Se o bit menos significativo do multiplicador for igual a UM, some o multiplicando ao produto e a seguir faça os deslocamentos necessários. Se este bit for igual a ZERO, faça apenas os deslocamentos ( do multiplicando 1 bit para a esquerda, e do multiplicador um bit para a direita). Estes passos devem ser repetidos 16 vezes para completar a operação (lembrar que a multiplicação é de dois números de 16 bits). ZERO MULTIPLICANDO MULTIPLICADOR 16 bits 16 bits 16 bits DIR SHIFT_LEFT REG. do MULTIPLICANDO REG. do MULTIPLICANDO R_CANDO LOAD1 R_DOR ESQ LOAD2 SHIFT_RIGHT 32 bits R_DOR(0) 32 bits ALU * * 64 bits unidade INC_CNT de controle RESET LOAD3 CONTADOR FIM_16 (MOD_16) REG. do PRODUTO R_PROD INÍCIO Fig.2.6 - Diagrama em Blocos do Sistema Digital Multiplicador

REDES DE PETRI 15 INÍCIO Carregue o multiplicador e o Multiplicando nos registros Some o multiplicando ao produto e coloque o resultado no registrador produto = 1 teste o bit 0 = 0 multiplicador Desloque o reg. do multiplicando de 1 bit à esquerda e Desloque o reg. do multiplicador de 1 bit à direita Incrementa a contagem dos passos 16 vezes? MENOR MAIOR Resultado está No Reg. Produto Fim Fig. 2.7 : Algoritmo da multiplicação que utiliza o sistema digital da fig.2.6 para sua implementação. De modo a ilustrar a aplicação do algoritmo, a tabela (figura 2.8) apresenta de forma detalhada cada passo da multiplicação, usando números de 8 bits ao invés de 16 bits, para facilitar a visualização do algoritmo. Lembrar que com isto, serão executados apenas 8 passos e o resultado terá um total de 16 bits. A título de exercício, esta tabela deve ser completada pelo aluno, para uma perfeita compreensão do algoritmo, e portanto, das tarefas que o sistema digital (que ele deseja projetar) deverá realizar.

REDES DE PETRI 16 Iteração Passo Multiplicando Multiplicador Produto 1 Valores Iniciais 0000 0000 0100 0111 0001 1010 0000 0000 0000 0000 2 Prod= Prod*Mcando Desl. Esq. Mcando Desl. Dir. Mdor 3 Prod= Prod*Mcando Desl. Esq. Mcando Desl. Dir. Mdor 4 Prod= Prod*Mcando Desl. Esq. Mcando Desl. Dir. Mdor 5 Prod= Prod*Mcando Desl. Esq. Mcando Desl. Dir. Mdor 6 Prod= Prod*Mcando Desl. Esq. Mcando Desl. Dir. Mdor 7 Prod= Prod*Mcando Desl. Esq. Mcando Desl. Dir. Mdor 8 Prod= Prod*Mcando Desl. Esq. Mcando Desl. Dir. Mdor 0000 0000 1000 1110 0000 1101 0000 0000 0000 0000 Tabela 2.8 - Tabela para descrição passo a passo do algoritmo da multiplicação (a ser preenchida pelo aluno) CONCLUSÕES IMPORTANTES SOBRE A ANÁLISE DESTE EXEMPLO: 1) A composição de um sistema digital genérico Um sistema digital é usualmente dividido em duas partes principais: um fluxo de dados (FD) e uma unidade de controle (UC). O fluxo de dados é responsável pelas transformações de dados que ocorrem dentro do sistema digital, enquanto que a unidade de controle ordena as operações que devem ser conduzidas para realizar essas transformações (fig.2.9). Interligando esses dois módulos, existem os sinais de controle, aqueles que saem da unidade de controle e vão para o fluxo de dados, e os sinais de estado, aqueles que saem do fluxo de dados e vão para a unidade de controle. Os sinais de controle determinam que operações que devem ser realizadas no fluxo de dados, quando essas operações devem ser executadas e em que seqüência elas devem se suceder para que a funcionalidade do sistema seja corretamente implementada. Os sinais de estado possibilitam à unidade de controle observar o estado do fluxo de dados para poder tomar decisões sobre quais operações devem ser feitas a seguir. Portanto, a estrutura de um sistema digital genérico é a seguinte:

REDES DE PETRI 17 Sinais externos de Sinais externos de entrada do controle entrada do F. D. Sinais de controle. : UC Sinais de saída do controle p/ meio externo. : Sinais de estado FD sinais de saída do F. D. p/ meio externo Fig. 2.9 - Estrutura de um sistema digital genérico As entradas do fluxo de dados são os seus pontos de controles. Um ponto de controle pode ser um sinal de seleção ou um sinal de acionamento ( clock ). Os sinais de seleção indicam as transformações e as trajetórias que devem ser executadas num determinado instante de operação do módulo (por exemplo, as variáveis de seleção de um multiplex). Os sinais de acionamento determinam quais registradores devem receber novos valores naquele instante. Os sinais de acionamento determinam também quando os registradores devem ser atualizados (por exemplo, sinais de LOAD de registradores). As saídas do fluxo de dados são os sinais de estado. Esses sinais são determinados de forma a tornar disponível à unidade de controle todas as informações que devem ser testadas, para que ela possa determinar o que fazer no ciclo atual e qual deve ser o próximo ciclo (por exemplo testar o bit menos significativo do multiplicador). Evidentemente, além dos sinais trocados entre o fluxo de dados e a unidade de controle, existem os sinais de entrada de dados, que vêem de fora do módulo para o fluxo de dados, os sinais de saída de dados, que saem do fluxo de dados, e vão para fora do módulo, os sinais de entrada de controle, que vêm de fora do módulo para a unidade de controle e os de saída de controle, que saem da unidade de controle e vão para fora do sistema. 2) Como o exemplo do Multiplicador se insere nestes conceitos? O sistema multiplicador pode ser esquematizado conforme indica a figura 2.10, onde as variáveis envolvidas na solução do problema estão indicadas, e podem ser definidas conforme se segue: Definição das variáveis da Unidade de Controle INÍCIO: Entrada do controle que permite iniciar uma operação no sistema; LOAD1, LOAD2, LOAD3: Saídas que acionam carga paralela no reg. respectivo; SHIFT LEFT: Saída que desloca registrador respectivo um bit para a esquerda; SHIFT RIGHT: Saída que desloca registrador respectivo um bit para a direita; RESET: Saída que permite zerar o contador módulo 16;

REDES DE PETRI 18 INC_CONT: Saída do controle que incrementa o contador módulo 16; FIM_16: Entrada do controle que indica o final de 16 contagens; R_DOR(0): Bit menos significativo do reg. Multiplicador (entrada do controle). Início Multiplicando e Multiplicador (*) LOAD1 LOAD2 LOAD3 SHIFT LEFT SHIFT RIGHT RESET INC_CONT FIM_16 R_DOR(0) Produto (*) pode ser 1 barramento compartilhado ou 2 barramentos independentes Fig. 2.10 - Estrutura do sistema digital Multiplicador. O estudo da fase definição do projeto do multiplicador permitiu mostrar a importância da aplicação de uma metodologia para concepção, projeto e implementação de sistemas digitais de maior complexidade. Os capítulos que se seguem irão abordar de forma detalhada as fases seguintes da metodologia, ou seja: fases de descrição, síntese (simulação) e implementação de projetos de sistema digitais. O capítulo 3 analisa o problema da Descrição, mostrando que para descrever sistemas digitais são necessários mecanismos formais de descrição que auxiliam o projetista ao seu trabalho de identificar e descrever as tarefas que o sistema que está sendo projetado deverá executar. O modelo de redes de Petri será usado como mecanismo formal de descrição. O capítulo 4 interpreta este modelo, de forma a criar um mecanismo que permita realizar facilmente a passagem da fase de descrição para a fase de síntese do projeto, o que é analisado no capítulo 5, permitindo que o projetista transforme suas descrições de tarefas em unidades de controle digitais capazes de sincronizar e implementar a execução destas tarefas.

REDES DE PETRI 19 3 - O MODELO DE REDES DE PETRI COMO UM MECANISMO FORMAL DE DESCRIÇÃO E ANÁLISE DE SISTEMAS 3.1 - Histórico As redes de Petri foram originalmente propostas por Carl Adam Petri, em 1962, na Universidade de Darmstadt - Alemanha. Formulada como um modelo gráfico para descrever processamento de informações em sistemas, essas redes ao longo de vários anos de desenvolvimento, ganharam também um suporte matemático importante que as tornaram uma ferramenta extremamente adequada para modelamento e análise de inúmeras aplicações, tais como: Projeto de hardware, protocolos de comunicação, compiladores e sistemas operacionais, programação paralela e bancos de dados, circuitos lógicos programáveis etc... apenas para citar um contexto mais diretamente ligado à ciência da computação. Outras áreas onde o modelo também tem sido aplicado com sucesso são, por exemplo: Controle industrial de processos e automação da manufatura, avaliação de desempenho, modelamento de redes neurais, etc...é importante que o leitor tenha em conta sua abrangência, para que possa tirar proveito dele, procurando aplica-lo à solução de outros problemas que não aqueles diretamente ligados à concepção e projeto de hardware digital conforme será abordado neste curso. 3.2 - Por que é necessário um mecanismo formal de descrição? Quando um sistema vai ser concebido, ou quando ele já existe e necessita ser analisado para sofrer manutenção ou modificações, é comum encontrar situações onde o sistema foi descrito de forma incompleta ou confusa, muitas vezes numa linguagem coloquial, que permite diversas interpretações diferentes e subjetivas para características ou funções que deveriam ter uma única interpretação. Um mecanismo formal de descrição, portanto, deve ser capaz de auxiliar a elaboração das especificações do sistema, evitar as ambigüidades na descrição de suas funções, e também ser de fácil compreensão. A idéia de usar um mecanismo formal de descrição, entretanto, não deve parar por aqui. Deve-se pensar também em analisar e validar as especificações, detectando erros e inconsistências antes mesmo de qualquer tentativa de implementação. A análise de especificações de um sistema deve ser entendida como sendo uma forma de mostrar que certas propriedades do sistema são verdadeiras em qualquer caso, evitando porém ter que enumerar e demonstrar todos os casos possíveis. Validar especificações de um sistema significa demonstrar que, em qualquer caso e respeitadas as condições impostas pelo meio onde o sistema irá residir, ele será capaz de responder às exigências feitas nas especificações. Dentro do âmbito dos sistemas estudados neste curso, o processo de análise e validação de especificações é muito importante, pois obriga o projetista a ir fundo em suas considerações a respeito do projeto, eliminando ambigüidades e incoerências, o que acaba por simplificar as etapas posteriores de implementação e testes, gerando uma documentação final extremamente útil, que pode inclusive conter procedimentos operacionais e de manutenção, visando garantir as especificações durante todo o tempo de vida útil concebido para o sistema. Portanto, é dentro desse contexto que as redes de Petri devem ser examinadas no âmbito desse curso. 3.3 - Apresentação do modelo de redes de Petri Este item apresenta essas redes como um modelo abstrato, através de uma série de definições e propriedades. A seguir, será associada uma interpretação ao modelo, tornando-o adequado à descrição dos problemas que serão objeto de estudo do curso.

REDES DE PETRI 20 3.3.1 - Definição Trata-se de um modelo gráfico constituído de dois tipos de NÓS : Os Lugares e as Transições. Estes NÓS são interligados através de arcos orientados. Dessa forma, as redes de Petri podem ser definidas como uma tripla [L, T, A], onde: L = { l1, l2,... lm } é um conjunto finito de lugares, representados por círculos; T = { t1, t2,...tn } um conjunto finito de transições, representadas por barras; A = { a1, a2,...aj } um conjunto finito de arcos orientados, representados por setas que interligam etapas e transições. A figura3.1 apresenta o grafo de uma rede de petri genérica. Nesta rede, também deve ser associada à cada transição um conjunto de Lugares de Entrada e Lugares de Saída da transição. Os lugares de entrada são aqueles de onde saem os arcos orientados em direção às transições (na figura 3.1, L5 e L6 são lugares de entrada de t5). De forma análoga, os arcos orientados do Lugar para a Transição determinam os lugares de saída da transição ( L3 e L4 são lugares de saída de t2). L3 t3 L5 L1 t1 t2 t5 L4 t4 L6 Fig. 3.1 : Rede de Petri genérica O grafo apresentado permite representar o comportamento estático dos sistemas que desejamos modelar com o uso destas redes. Entretanto, elas também permitem descrever o comportamento dinâmico dos sistemas, o que é caracterizado através do conceito de MARCA e de MARCAÇÃO das redes, definidos a seguir: As marcas são entidades que existem dentro dos lugares da rede, são representadas por pontos, e podem ser produzidas ou consumidas pelas transições de acordo com um conjunto de regras de disparo destas transições, regras estas definidas formalmente no item 3.3.2. A marcação da rede corresponde ao número de marcas que ela possui num certo instante, e a forma pela qual estas marcas estão distribuídas nas suas etapas. No estado inicial da rede, ela possui uma certa distribuição de marcas que deverá ser considerada numa análise qualquer. Esta marcação será denominada M0 (marcação inicial da rede). As marcações de uma rede genérica podem ser representadas através de um vetor, como por exemplo na figura 3.1, pelo vetor M0= ( 101100 ) que corresponde ao número de marcas respectivas nos lugares L1 a L6 num instante t0. Portanto, uma rede de Petri genérica fica definida quando é fornecido o seu grafo e a sua marcação inicial correspondente.

REDES DE PETRI 21 Regras de Evolução Para compreender a forma pela qual as redes de Petri evoluem ao longo do tempo e podem modelar o comportamento dinâmico de um sistema, será introduzido o conceito de validação e disparo das transições da rede. Definição 1 : Uma transição genérica da rede é dita habilitada, quando todos os lugares de entrada desta transição possuem pelo menos uma marca (as transições t1, t3 e t4 da fig.3.1 estão habilitadas). Uma transição habilitada pode disparar, e o seu disparo provocará uma evolução na marcação da rede. Definição 2 : O disparo de uma transição habilitada se faz de acordo com as seguintes regras: a) Remover uma marca de cada um dos lugares de entrada da transição; b) Colocar uma marca em cada um dos lugares de saída da transição A fig.3.2 apresenta duas marcações possíveis na evolução da rede já apresentada na figura 3.1. L3 t3 L5 L1 t1 t2 t5 L4 t4 L6 3.2a) Evolução da marcação inicial (fig.3.1) pelo disparo de t1 e t3 L3 t3 L5 L1 t1 t2 t5 L4 t4 L6 3.2b) Evolução da rede da figura 3.2a) pelo disparo de t2 Os arcos podem ser ponderados (associados a um número inteiro e positivo como indicado na fig.3.3). Um arco com peso W equivale a um conjunto de W-arcos em paralelo. Arcos representados sem ponderação equivalem ao valor unitário de W. O número de marcas existentes numa determinada etapa num determinado instante, também poderá ser associado ao conjunto de números inteiros positivos. Por exemplo, na rede da figura 3.3, a letra K dentro de L1 e L3 indica que existem K marcas dentro de cada um desses lugares no instante representado.

REDES DE PETRI 22 L1 K t1 W t2 L2 L3 K L4 t3 W t4 Fig.3.3 : Representação da ponderação de arcos e marcas O disparo da transição t1 implica em retirar uma marca do lugar L1 e W marcas do lugar L3 (K W), e colocar uma marca em L2. De forma análoga, o disparo de t3 implica em retirar uma marca de L2 e colocar uma marca em L1 e W marcas em L3 A seguir, é fornecida uma definição formal das redes de Petri, onde foram agregados também os conceitos de ponderação dos arcos e de marcação inicial da rede: Uma rede de Petri é uma quíntupla { L, T, A, W, M0 } L = { l1, l2,... lm } é um conjunto finito de lugares; T = { t1, t2,...tn } um conjunto finito de transições; A = { a1, a2,...aj } um conjunto finito de arcos orientados; W : F = {1, 2, 3, 4,...} é uma função de ponderação; M0 : P = { 1, 2, 3,...} é a marcação inicial da rede. 3.3.2 - Seqüência de disparo de transições Seja S uma seqüência finita de transições pertencentes ao conjunto T = {t 1 t 2... t i...t n } de transições da rede, ou seja: S = {t i, t i + 1...t i+ k }. S será uma seqüência de transições ativáveis a partir de uma certa marcação Mi da rede, se e somente se, existem as marcações M i+1, M i + 2... M i+(k + 1) e estas marcações forem alcançáveis a partir do disparo das transições correspondentes, ou seja: M i t i M i +1 t i+1 Mi +2 - - -- M i +k t i+k M i +k+1

REDES DE PETRI 23 Exemplo: Na rede indicada na figura 3.4, a seqüência de transições - S = {t1, t3, t5, t6, t7, t1, t2, t4} é uma seqüência ativável a partir de Mo = (100000000), pois temos a seguinte evolução das marcações: Mo t 1 M1 t3 M 2 t 5 M 3 t 6 M 4 t 7 M 0 t 1 M 1 t 2 M 5 t 4 M1 M 0 = (1 0 0 0 0 0 0 0 0 ) M 1 = (0 1 0 0 0 0 0 0 0 ) M 2 = (0 0 0 1 1 0 0 0 0) M 3 = (0 0 0 1 0 1 0 0 0) M 4 = (0 0 0 0 0 0 1 0 0) M 5 = (0 0 1 0 0 0 0 0 0) L1 t2 t4 L3 t1 L2 t3 L4 t5 L t6 L 6 t7 t8 L7 t9 L t1 L t11 Fig.3.4 - Rede de Petri genérica

REDES DE PETRI 24 3.3.3 - Diagrama de marcações da rede O diagrama de marcações da rede será definido a partir do conceito de classe de marcações alcançáveis de M 0, cuja notação usada será M 0. Trata-se de um conjunto de marcações M i da rede, acessíveis a partir de uma marcação inicial M 0, ou seja: Para as quais existe ao menos uma seqüência de disparo S i, atingível a partir de M 0, e que conduza a M i. M i M 0, se somente se, Si tal que M 0 S i M i Obs: Si pode ser uma sequência vazia e portanto, M 0 M 0 Para o exemplo da figura 3.4, a partir da marcação inicial M 0 = (100000000) temos a seguinte classe de marcações alcançáveis: M 0 = { M 0, M 1, M 2, M 3, M 4, M 5, M 6, M 7 } onde: M0 = (100000000) M1 = (010000000) M2 = (000110000) M3 = (000101000) M4 = (000000100) M5 = (001000000) M6 = (000000010) M7 = (000000001) Para outra marcação inicial M j, a classe de marcações subsequentes será diferente. Existe, portanto, uma classe associada a cada marcação inicial da rede. Definição : Diagrama de Marcações de uma rêde Este diagrama é representado através de um grafo orientado onde o conjunto de NÓS é M 0, e o conjunto de arcos (Mi, Mj) é definido como se segue: Mi M 0, M j M 0 e t T / M i t M j (Mi, Mj) A Sobre cada arco estão indicadas as transições que, quando ativadas, provocam a mudança da marcação Mi para Mj.

REDES DE PETRI 25 Exemplo: O diagrama de marcações subsequentes da rede, indicada na figura 3.4, é apresentado na figura 3.5. M 0 t 1 M 1 t 3 M 2 t 5 M 3 t 6 M 4 t 8 M 6 t 4 M t 2 t 9 5 t 10 t 7 M 7 t 11 Fig.3.5 - Grafo de marcações subsequentes da rede indicada na fig.3.4 3.3.4 - Representação matricial das redes de Petri Uma rede de Petri também pode ser representada matematicamente, por meio de matrizes. Vamos examinar dois tipos de representação distintos: A) Representação por "ETAPAS DE ENTRADAS" e "ETAPAS DE SAÍDA" das TRANSIÇÕES. Neste caso, temos duas matrizes que denominaremos respectivamente: EE (matriz de etapas de entrada), e ES (matriz de etapas de saída). Estas matrizes possuem um número de colunas igual ao número de ETAPAS (lugares) da rede, e um número de linhas igual ao número de TRANSIÇÕES, sendo seus elementos definidos da seguinte forma: Matriz de Etapas de entrada (EE) a ij = 1: se existe um arco interligando a etapa J com a transição i a ij = 0: não existe arco ligando a etapa J com a transição i. Matriz de etapas de Saída (ES) b ij = 1: se existe um arco interligando a transição i com a etapa J. b ij = 0: não existe arco de ligação da transição i com a etapa J. Se associarmos a estas duas matrizes o vetor M 0 da marcação inicial, teremos uma descrição completa da rede.

REDES DE PETRI 26 Para a rede indicada na figura 3.6 as matrizes serão: e1 e e3 e 1 0 0 0 0 1 1 0 t1 EE= 0 1 0 0 ES = 0 0 0 1 t2 M 0 = [1000] 0 0 1 0 0 0 0 1 t3 0 0 0 1 1 0 0 0 t4 a 22 = 1 Existe um arco ligando b 24 = 1 Existe um arco a etapa 2 com a ligando a transição transição 2 2 com a etapa 4 t1 e1 t2 e2 t3 e3 e4 t4 Fig.3.6 - Rede de Petri representada de forma matricial B) Representação por MATRIZ DE INCIDÊNCIA A matriz de incidência também possui um número de colunas igual ao número de ETAPAS da rede, e um número de linhas igual ao número de TRANSIÇÕES, e de modo que: C ij = 1 : se existe um arco que liga a transição i à etapa J C ij = -1 : se existe um arco ligando a etapa J com a transição i. C ij = 0 : se não existe nenhum arco entre a transição i e a etapa J.

REDES DE PETRI 27 Para a rede da fig 3.6, a matriz de incidência será: e1 e2 e3 e4-1 1 1 0 t1 I= 0-1 0 1 t2 M 0 = [1000] 0 0-1 1 t3 1 0 0-1 t4 3.3.5 - Propriedades das redes Seja uma rede de Petri definida pela tripla (L, T, A), e por sua marcação inicial M 0. A) Rede Demarcada Definição de Lugar Demarcado Um lugar L i do conjunto L = { L1 L2... Ln} é dito demarcado a partir da marcação inicial M 0, se e somente se, para todas as marcações M i M 0 existe um número N, inteiro e positivo, tal que: o número de marcas contidas no lugar Li em qualquer caso é menor ou igual a N, ou seja: M i (L i ) N. Definição de rede Demarcada Uma rede de Petri é dita demarcada, a partir de uma marcação inicial M0, se e somente se, todos os lugares Li do conjunto E são demarcados para M0. Para o exemplo da figura 3.7, a seqüência de disparo S = (t1, t2, t3) é ativável indefinidamente. Isto provoca um crescimento ilimitado do número de marcas na rede. Esta rede, portanto não é demarcada. e2 t2 e1 t1 e3 t3 Fig.3.7 Rede não Demarcada Pode-se demonstrar que uma rede de Petri é demarcada para uma marcação M0, se e somente se, a classe de marcações subsequentes de M0 é finita. A análise do caráter demarcado de uma rede é muito importante, pois permite detectar erros de descrição dos sistemas.

REDES DE PETRI 28 B) Rede de Petri Segura Uma rede de Petri é dita segura a partir de uma marcação inicial M0, se e somente se, todos os lugares da rede são demarcados com N=1, ou seja: Cada lugar da rêde pode conter apenas uma ou nenhuma marca para qualquer marcação possível da rêde. Exemplo: A rede da figura 3.8a é segura para M0 = (100), pois seu diagrama de marcações (indicado na figura 3.8b) mostra que todas as etapas são demarcadas para n = 1 t1 L2 L1 t2 L 3 M 1 t 1 t 3 M 0 = (1 0 0) M 0 M 1 = (0 1 0) t 4 t 2 M 2 = (0 0 1 ) t3 t4 M 2 (a) (b) Fig.3.8a - Rede segura para a marcação M 0 = (100) A mesma rede indicada na fig.3.8a, entretanto, não é segura para M0 = (101), conforme indica seu diagrama de marcações (figura 3.9). t2 t3 t1 M1 M0 t2 M2 t3 t4 t4 t2 t4 t1 M4 M3 t3 t1 M5 M 0 = (1 0 1) M 1 = (0 1 1 ) M 2 = (0 0 2) M 3 = (2 0 0) M 4 = (1 1 0) M 5 = (0 2 0) Fig. 3.9. - Grafo de marcações da rede da fig.3.8a com M0 = (101)

REDES DE PETRI 29 C) Rede de Petri Viva. Uma rede de Petri é viva a partir de uma marcação inicial M 0, se e somente se, para todas as transições t i pertencentes ao conjunto T, e todas as marcações Mi de M0, existir numa seqüência de disparo S englobando t i e ativável a partir de Mi. No exemplo da figura 3.10 vemos, pelo diagrama de marcações, que a transição t3 não dispara nunca, pois não existe nenhuma seqüência de disparo da rede, que torne esta transição ativável, seja a partir de M0=(10) ou de M1=(01). A rede da figura 3.10, portanto, não é viva. P 1 T 1 T3 M0 T1 M1 T2 P 2 T 2 Mo = (10) M1 = (01) Fig.3.10 Rede Viva para M0 = (11) Neste mesmo exemplo (fig.3.10), entretanto, se tomarmos M0 = (11) como marcação inicial, obteremos o diagrama de marcações da figura 3.11. t2 M1 M0 M2 t1 M 0 = (1 1) M 1 = (0 2) M 2 = (2 0) t3 Fig. 3.11 - Novo Diagrama de Marcações M0 = (11) A partir de qualquer uma das marcações Mi, pode-se obter uma seqüência ti englobando todas as transições da rede. S 0 = {t 3, t 1, t 2 } S 1 = {t 2, t 1, t 3 } e S 2 = {t 1, t 2, t 3 } Esta mesma rede, portanto, é viva para M 0 = (11) O caráter vivo de uma rede de Petri é muito importante porque: Ele assegura que a rede não possui bloqueios (deadlock). O bloqueio corresponde a uma marcação, a partir da qual, nenhuma transição pode ser disparada. Ele assegura também que todas as partes da rede são acessíveis. t2 t1

REDES DE PETRI 30 D) - Rede de Petri Reinicializável Uma rede de Petri é reicializável para uma marcação inicial M0, se e somente se, para todas as marcações Mi, de M0 existir uma seqüência de disparos S, ativável a partir de Mi, que conduz novamente à marcação inicial M0. No exemplo da fig.3.12, não existe seqüência de disparos a partir de nenhuma das três marcações M1, M2 e M3, que conduza novamente à M0. Esta rede, portanto, não é reinicializável, embora seja viva. L1 L2 M 0 =(0 1 0 1) M 1 =(0 0 1 1) M 2 = (1 1 0 0) t1 M 3 = (1 0 1 0) t2 M0 t2 M1 L4 t3 L3 M3 t1 t2 t3 M2 Fig.3.12 - Rede reinicializável para M 0 = (1100) Na mesma rede (fig.3.12), entretanto, se partirmos da marcação inicial M0 = (1100), obteremos o diagrama de marcação da figura 3.13. Este diagrama indica que a partir de qualquer marcação M i, é possível encontrar uma sequência S i que conduz a M0. S 0 = {t 2, t 1, t 3 } S 1 = {t 1, t 3 } S 2 = {t 3 } A rede é, portanto, reinicializável para esta nova marcação inicial, e igualmente viva. M0 t2 M1 t1 M2 t3 M 0 = (1 1 0 0) M 1 = (1 0 1 0) M 2 = (0 0 1 1) Fig. 3.13 - Diagrama de marcações da rede (fig. 3.12) p/ M 0 = (1100) O caráter reinicializável de uma rede traduz, portanto, sua capacidade de descrever sistemas que retornam ao estado inicial após terem executado uma sequência de tarefas exigidas.

REDES DE PETRI 31 3.4 - Exercícios propostos 1) Dada a Rede de Petri, descrita pelas matrizes EE e ES, abaixo: e1 e2 e3 e4 e1 e2 e3 e4 t1 1 0 0 0 t1 0 0 1 0 EE = t2 0 0 1 0 ES = t2 1 0 0 0 M = [1, 1, 0, 0] t3 1 1 0 0 t3 0 0 1 1 t4 0 0 0 1 t4 0 1 0 0 Pede-se: a) A matriz de Incidência b) As marcações possíveis e o grafo de marcações da rede c) A rede é reinicializável? Por que? d) A rede é segura? Por que? e) A rede é viva? Por que? t1 e1 t2 e3 t3 e2 e4 t4

REDES DE PETRI 32 2. Dada a Rede de Petri abaixo: e1 e2 e3 t1 t2 e4 e5 t3 t4 com M0 = [ 1, 1, 1, 0, 0 ] Pede-se: a) As marcações possíveis e o diagrama de marcações b) A matriz de Incidência c) A rede é demarcada? Por que? d) A rede é segura? Por que? e) A rede é viva? Por que? f) A rede é reinicializável? Por que?

REDES DE PETRI 33 3) Dada a Rede de Petri, descrita pela sua matriz de Incidência I, abaixo: e1 e2 e3 e4 e5 e6 e7 t1-1 -1 0 1 0 0 0 t2 0-1 -1 0 1 0 0 I = t3 1 0 0-1 0 1 0 M0 = (1,1,1,0,0,0,0) t4 0 0 0 0-1 0 1 t5 0 1 0 0 0-1 0 t6 0 1 1 0 0 0-1 Pede-se: a) Desenhar a rede de Petri respectiva b) As matrizes de Entrada e Saída c) As possíveis marcações para esta rede e o diagrama de marcações d) Explicar se essa rede é viva, segura e reinicializável para a marcação inicial dada e) Repetir os itens (c) e (d) para a marcação inicial M0=0000011 E1 E2 E3 T1 T2 E4 E5 T3 T4 E6 E7 T5 T6

REDES DE PETRI 34 4. Para a rede de Petri abaixo pede-se: a) As matrizes de Entrada e Saída b) As marcações possíveis e o diagrama de marcações para M0=10001 c) Explicar se a rede, para a marcação dada, é viva, segura e reinicializável. d) Repetir os itens (b) e (c) para a marcação M0=01100 E1 E2 E3 T1 T2 T3 E4 E5 T4 T5

REDES DE PETRI 35 5. Para a Rede de Petri descrita abaixo pede-se, para M0=0101100: a) A matriz de Incidência b) As marcações possíveis e o diagrama de marcações c) Esta rede, para a marcação inicial definida, seria demarcada, reinicializável, segura e viva? Justifique suas respostas. E1 E2 T1 E3 E4 T2 T3 E5 E6 E7 T4 T5

REDES DE PETRI 36 4 - INTERPRETAÇÃO DO MODELO Até este ponto, as redes de Petri foram definidas como um modelo abstrato. Uma rede, entretanto, passa a representar um sistema quando é associada uma interpretação às entidades que a compõe, ou seja: aos LUGARES, às TRANSIÇÕES e às MARCAS. O exemplo a seguir ilustra o conceito de interpretar uma rede de Petri para descrever a solução do seguinte problema: Um barqueiro precisa atravessar um rio levando um lobo, uma cabra e um maço de couve. Em cada travessia, somente podem ir no barco o barqueiro e uma das três cargas que devem ser transportadas. A fig. 4.1 descreve uma possível solução para este problema, com redes de Petri, nas seguintes condições: 1) o lobo e a cabra ou 2) a cabra e a couve nunca podem ficar sozinhos, sem o barqueiro, em qualquer lado do rio Tira a cabra LÔBO CABRA COUVE Barqueiro com a cruza o rio Coloca Lôbo no Cruzando o rio cruza o rio Barqueiro sozinho Cruza o rio Coloca cabra Barqueiro sozinho Cruza o rio Coloca couve no Bote Cruza o rio Cruza o rio Deixa o Lôbo Deixa a cabra Deixa a couve e coloca a cabra LÔBO CABRA COUVE Fig. 4.1 - Descrição do problema do barqueiro Algumas interpretações típicas utilizadas no modelamento de sistemas descritos com essas redes são as seguintes: As transições representam eventos e os lugares representam condições. Uma transição possui um certo número de lugares de entrada e lugares de saída, que passam a representar respectivamente pré-