Sistemas Digitais III EE773 / NE853. Redes de Petri

Tamanho: px
Começar a partir da página:

Download "Sistemas Digitais III EE773 / NE853. Redes de Petri"

Transcrição

1 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

2 REDES DE PETRI 2 ÍNDICE 1- Revisão dos Modelos de Estruturas Digitais Elementares Modelo combinatório Modelo seqüencial Assíncrono Modelo Seqüencial Síncrono Uma metodologia para projetar Sistemas Digitais Conceitos básicos O Problema da descrição de tarefas e o Conceito de Algoritmo O método de projeto Exemplo de um projeto O modelo de redes de Petri como um mecanismo formal de descrição e análise de sistemas Histórico Por que é necessário um mecanismo formal de descrição? Apresentação do modelo de redes de Petri Definição Seqüência de disparo de transições Diagrama de marcações da rede Representação matricial das redes de Petri Propriedades das redes Exercícios propostos Interpretação do modelo Exemplos de aplicação no modelamento de sistemas Modelamento de estruturas de controle digital Exemplos de aplicação Síntese de estruturas de controle A síntese de máquinas de estado (unidades de controle) descritas com redes de Petri Exemplos de aplicação Exercícios Propostos... 63

3 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.

4 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) ]

5 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) ]

6 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 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

7 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 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).

8 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

9 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 ) a) Estrutura em anel b) Estrutura totalmente conectada

10 REDES DE PETRI 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 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

11 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.

12 REDES DE PETRI 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.

13 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) 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 Multiplicador Produto 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.

14 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 Diagrama em Blocos do Sistema Digital Multiplicador

15 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.

16 REDES DE PETRI 16 Iteração Passo Multiplicando Multiplicador Produto 1 Valores Iniciais 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 Tabela 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:

17 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 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;

18 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 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.

19 REDES DE PETRI O MODELO DE REDES DE PETRI COMO UM MECANISMO FORMAL DE DESCRIÇÃO E ANÁLISE DE SISTEMAS 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 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 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.

20 REDES DE PETRI 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 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= ( ) 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.

21 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.

22 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 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 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 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 M i +k t i+k M i +k+1

23 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 = ( ), 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 = ( ) M 1 = ( ) M 2 = ( ) M 3 = ( ) M 4 = ( ) M 5 = ( ) L1 t2 t4 L3 t1 L2 t3 L4 t5 L t6 L 6 t7 t8 L7 t9 L t1 L t11 Fig Rede de Petri genérica

24 REDES DE PETRI 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 = ( ) 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 = ( ) M1 = ( ) M2 = ( ) M3 = ( ) M4 = ( ) M5 = ( ) M6 = ( ) M7 = ( ) 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.

25 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 Grafo de marcações subsequentes da rede indicada na fig 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.

26 REDES DE PETRI 26 Para a rede indicada na figura 3.6 as matrizes serão: e1 e e3 e t1 EE= ES = t2 M 0 = [1000] t 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 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.

27 REDES DE PETRI 27 Para a rede da fig 3.6, a matriz de incidência será: e1 e2 e3 e t1 I= t2 M 0 = [1000] t t 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.

28 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 Grafo de marcações da rede da fig.3.8a com M0 = (101)

29 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 t2 M1 M0 M2 t1 M 0 = (1 1) M 1 = (0 2) M 2 = (2 0) t3 Fig 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

30 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 =( ) M 1 =( ) M 2 = ( ) t1 M 3 = ( ) t2 M0 t2 M1 L4 t3 L3 M3 t1 t2 t3 M2 Fig 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 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 = ( ) M 1 = ( ) M 2 = ( ) Fig 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.

31 REDES DE PETRI Exercícios propostos 1) Dada a Rede de Petri, descrita pelas matrizes EE e ES, abaixo: e1 e2 e3 e4 e1 e2 e3 e4 t t EE = t ES = t M = [1, 1, 0, 0] t t t t 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

32 REDES DE PETRI 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?

33 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 t t I = t M0 = (1,1,1,0,0,0,0) t t t 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= E1 E2 E3 T1 T2 E4 E5 T3 T4 E6 E7 T5 T6

34 REDES DE PETRI 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

35 REDES DE PETRI Para a Rede de Petri descrita abaixo pede-se, para M0= : 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

36 REDES DE PETRI 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 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é-

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

Seja uma rede de Petri definida pela tripla (L, T, A), e por sua marcação inicial M 0. AULA 22 ESTUDO E APLICAÇÕES DAS REDES DE PETRI COMO MECANISMO DE DESCRIÇÃO DE SISTEMAS. 6. Propriedades das redes Seja uma rede de Petri definida pela tripla (L, T, A), e por sua marcação inicial M 0.

Leia mais

ULA Sinais de Controle enviados pela UC

ULA Sinais de Controle enviados pela UC Solução - Exercícios Processadores 1- Qual as funções da Unidade Aritmética e Lógica (ULA)? A ULA é o dispositivo da CPU que executa operações tais como: Adição Subtração Multiplicação Divisão Incremento

Leia mais

3. Arquitetura Básica do Computador

3. Arquitetura Básica do Computador 3. Arquitetura Básica do Computador 3.1. Modelo de Von Neumann Dar-me-eis um grão de trigo pela primeira casa do tabuleiro; dois pela segunda, quatro pela terceira, oito pela quarta, e assim dobrando sucessivamente,

Leia mais

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

Dadas a base e a altura de um triangulo, determinar sua área. Disciplina Lógica de Programação Visual Ana Rita Dutra dos Santos Especialista em Novas Tecnologias aplicadas a Educação Mestranda em Informática aplicada a Educação ana.santos@qi.edu.br Conceitos Preliminares

Leia mais

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

Componentes do Computador e. aula 3. Profa. Débora Matos Componentes do Computador e modelo de Von Neumann aula 3 Profa. Débora Matos O que difere nos componentes que constituem um computador? Princípios básicos Cada computador tem um conjunto de operações e

Leia mais

Arquitetura de Rede de Computadores

Arquitetura de Rede de Computadores TCP/IP Roteamento Arquitetura de Rede de Prof. Pedro Neto Aracaju Sergipe - 2011 Ementa da Disciplina 4. Roteamento i. Máscara de Rede ii. Sub-Redes iii. Números Binários e Máscara de Sub-Rede iv. O Roteador

Leia mais

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES 3.1 - IDENTIFICADORES Os objetos que usamos no nosso algoritmo são uma representação simbólica de um valor de dado. Assim, quando executamos a seguinte instrução:

Leia mais

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

CAPÍTULO 6 CIRCUITOS SEQUENCIAIS IV: PROJETO DE REDES SEQUENCIAIS 92 CAPÍTULO 6 CIRCUITOS SEQUENCIAIS IV: PROJETO DE REDES SEQUENCIAIS Sumário 6.. Introdução... 94 6... Máquina de Estados de Moore... 94 6..2. Máquina de Estados de Mealy... 95 6.2. Projeto de Redes Sequenciais...

Leia mais

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

28/9/2010. Unidade de Controle Funcionamento e Implementação Arquitetura de Computadores Unidade de Controle Funcionamento e Implementação Prof. Marcos Quinet Universidade Federal Fluminense P.U.R.O. Operação da Unidade de Controle Unidade de controle: parte do

Leia mais

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br - Aula 2 - O NÍVEL DA MICROARQUITETURA 1. INTRODUÇÃO Este é o nível cuja função é implementar a camada ISA (Instruction Set Architeture). O seu projeto depende da arquitetura do conjunto das instruções

Leia mais

Projeto de Máquinas de Estado

Projeto de Máquinas de Estado Projeto de Máquinas de Estado Organizado por Rodrigo Hausen. Original de Thomas L. Floyd. Versão 0: 15 de março de 2013 http://compscinet.org/circuitos Resumo Grande parte deste texto, exemplos e estrutura

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Caminho de Dados Slide 1 Sumário Introdução Convenções Lógicas de Projeto Construindo um Caminho de Dados O Controle da ULA Projeto da Unidade de Controle Principal

Leia mais

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

INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO Capítulo 1 INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO 1.1 Histórico de Linguagens de Programação Para um computador executar uma dada tarefa é necessário que se informe a ele, de uma maneira clara, como ele

Leia mais

Capacidade = 512 x 300 x 20000 x 2 x 5 = 30.720.000.000 30,72 GB

Capacidade = 512 x 300 x 20000 x 2 x 5 = 30.720.000.000 30,72 GB Calculando a capacidade de disco: Capacidade = (# bytes/setor) x (méd. # setores/trilha) x (# trilhas/superfície) x (# superfícies/prato) x (# pratos/disco) Exemplo 01: 512 bytes/setor 300 setores/trilha

Leia mais

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

Programação Básica em STEP 7 Operações Binárias. SITRAIN Training for Automation and Drives. Página 6-1 Conteúdo Página Operações Lógicas Binárias: AND, OR...2 Operações Lógicas Binárias: OR Exclusivo (XOR)...3 Contatos Normalmente Abertos e Normalmente Fechados. Sensores e Símbolos... 4 Exercício...5 Resultado

Leia mais

Capítulo VIII Registradores de Deslocamento e Contadores

Capítulo VIII Registradores de Deslocamento e Contadores Capítulo VIII Registradores de Deslocamento e Contadores 1 Introdução Vimos no capítulo anterior que flip-flops são dispositivos capazes de memorizar o seu estado (SET ou RESET). Neste capítulo estudaremos

Leia mais

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

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br Introdução O computador como ferramenta indispensável: Faz parte das nossas vidas; Por si só não faz nada de útil; Grande capacidade de resolução

Leia mais

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

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software PROCESSO DE DESENVOLVIMENTO DE SOFTWARE Introdução Modelos de Processo de Desenvolvimento de Software Os modelos de processos de desenvolvimento de software surgiram pela necessidade de dar resposta às

Leia mais

Algoritmos e Estrutura de Dados III. Árvores

Algoritmos e Estrutura de Dados III. Árvores Algoritmos e Estrutura de Dados III Árvores Uma das mais importantes classes de estruturas de dados em computação são as árvores. Aproveitando-se de sua organização hierárquica, muitas aplicações são realizadas

Leia mais

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

Unidade Central de Processamento (CPU) Processador. Renan Manola Introdução ao Computador 2010/01 Unidade Central de Processamento (CPU) Processador Renan Manola Introdução ao Computador 2010/01 Componentes de um Computador (1) Computador Eletrônico Digital É um sistema composto por: Memória Principal

Leia mais

Árvores Binárias Balanceadas

Árvores Binárias Balanceadas Árvores Binárias Balanceadas Elisa Maria Pivetta Cantarelli Árvores Balanceadas Uma árvore é dita balanceada quando as suas subárvores à esquerda e à direita possuem a mesma altura. Todos os links vazios

Leia mais

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

CAPÍTULO 2 CARACTERÍSTICAS DE E/S E PORTA PARALELA 8 CAPÍTULO 2 CARACTERÍSTICAS DE E/S E PORTA PARALELA A porta paralela, também conhecida por printer port ou Centronics e a porta serial (RS-232) são interfaces bastante comuns que, apesar de estarem praticamente

Leia mais

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

Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores. Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores. 7.3.1.2 Registradores: São pequenas unidades de memória, implementadas na CPU, com as seguintes características:

Leia mais

Quadro de consulta (solicitação do mestre)

Quadro de consulta (solicitação do mestre) Introdução ao protocolo MODBUS padrão RTU O Protocolo MODBUS foi criado no final dos anos 70 para comunicação entre controladores da MODICON. Por ser um dos primeiros protocolos com especificação aberta

Leia mais

Autómatos Finitos Determinísticos

Autómatos Finitos Determinísticos Ficha 2 Autómatos Finitos Determinísticos 2.1 Introdução Se olharmos, de forma simplificada, para um computador encontramos três componentes principais: a) A unidade de processamento central b) As unidades

Leia mais

ARQUITETURA DE COMPUTADORES - 1866

ARQUITETURA DE COMPUTADORES - 1866 7 Unidade Central de Processamento (UCP): O processador é o componente vital do sistema de computação, responsável pela realização das operações de processamento e de controle, durante a execução de um

Leia mais

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

Curso: Técnico de Informática Disciplina: Redes de Computadores. 1- Apresentação Binária 1- Apresentação Binária Os computadores funcionam e armazenam dados mediante a utilização de chaves eletrônicas que são LIGADAS ou DESLIGADAS. Os computadores só entendem e utilizam dados existentes neste

Leia mais

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

PROGRAMAÇÃO EM LINGUAGEM LADDER LINGUAGEM DE RELÉS 1 PROGRAMAÇÃO EM LINGUAGEM LADDER LINGUAGEM DE RELÉS INTRODUÇÃO O processamento interno do CLP é digital e pode-se, assim, aplicar os conceitos de lógica digital para compreen8 der as técnicas e as linguagens

Leia mais

Notas da Aula 17 - Fundamentos de Sistemas Operacionais

Notas da Aula 17 - Fundamentos de Sistemas Operacionais Notas da Aula 17 - Fundamentos de Sistemas Operacionais 1. Gerenciamento de Memória: Introdução O gerenciamento de memória é provavelmente a tarefa mais complexa de um sistema operacional multiprogramado.

Leia mais

CAP. I ERROS EM CÁLCULO NUMÉRICO

CAP. I ERROS EM CÁLCULO NUMÉRICO CAP. I ERROS EM CÁLCULO NUMÉRICO 0. Introdução Por método numérico entende-se um método para calcular a solução de um problema realizando apenas uma sequência finita de operações aritméticas. A obtenção

Leia mais

1. CAPÍTULO COMPUTADORES

1. CAPÍTULO COMPUTADORES 1. CAPÍTULO COMPUTADORES 1.1. Computadores Denomina-se computador uma máquina capaz de executar variados tipos de tratamento automático de informações ou processamento de dados. Os primeiros eram capazes

Leia mais

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

1. NÍVEL CONVENCIONAL DE MÁQUINA (Cont.) 1.3. INSTRUÇÕES Conceitos Básicos 1. NÍVEL CONVENCIONAL DE MÁQUINA (Cont.) 1.3. INSTRUÇÕES Conceitos Básicos Já estudamos anteriormente que os processadores funcionam (ou melhor, o seu hardware funciona) através de ordens simples e básicas,

Leia mais

Aula 2 Modelo Simplificado de Computador

Aula 2 Modelo Simplificado de Computador Aula 2 Modelo Simplificado de Computador Um computador pode ser esquematizado de maneira bastante simplificada da seguinte forma: Modelo Simplificado de Computador: Memória Dispositivo de Entrada Processador

Leia mais

Aula 8 Circuitos Integrados

Aula 8 Circuitos Integrados INTRODUÇÃO À ENGENHRI DE COMPUTÇÃO PONTIFÍCI UNIVERSIDDE CTÓLIC DO RIO GRNDE DO SUL FCULDDE DE ENGENHRI ula Circuitos Integrados Introdução Portas Lógicas em Circuitos Integrados Implementação de Funções

Leia mais

Funções de Posicionamento para Controle de Eixos

Funções de Posicionamento para Controle de Eixos Funções de Posicionamento para Controle de Eixos Resumo Atualmente muitos Controladores Programáveis (CPs) classificados como de pequeno porte possuem, integrados em um único invólucro, uma densidade significativa

Leia mais

EA773 - Experimento 5

EA773 - Experimento 5 EA773 - Experimento 5 Wu Shin - Ting DCA - FEEC - Unicamp 19 de Novembro de 2009 O projeto consiste em implementar uma calculadora com memória com uso de barramento de 8 bits. Neste documento são discutidos

Leia mais

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

Sistemas de Numeração. Professor: Rogério R. de Vargas INFORMÁTICA 2014/2 INFORMÁTICA Sistemas de Numeração Professor: Rogério R. de Vargas 2014/2 Sistemas de Numeração São sistemas de notação usados para representar quantidades abstratas denominadas números. Um sistema numérico

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Aritmética Computacional Slide 1 Sumário Unidade Lógica e Aritmética Representação de Números Inteiros Aritmética de Números Inteiros Representação de Números

Leia mais

Memórias Prof. Galvez Gonçalves

Memórias Prof. Galvez Gonçalves Arquitetura e Organização de Computadores 1 s Prof. Galvez Gonçalves Objetivo: Compreender os tipos de memória e como elas são acionadas nos sistemas computacionais modernos. INTRODUÇÃO Nas aulas anteriores

Leia mais

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

Universidade Federal de Santa Catarina Departamento de Informática e Estatística Bacharelado em Ciências da Computação Universidade Federal de Santa Catarina Departamento de Informática e Estatística Bacharelado em Ciências da Computação INE5406 - Sistemas Digitais semestre 2011/1 Prof. José Luís Güntzel guntzel@inf.ufsc.br

Leia mais

BARRAMENTO DO SISTEMA

BARRAMENTO DO SISTEMA BARRAMENTO DO SISTEMA Memória Principal Processador Barramento local Memória cachê/ ponte Barramento de sistema SCSI FireWire Dispositivo gráfico Controlador de vídeo Rede Local Barramento de alta velocidade

Leia mais

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

Aritmética Binária e. Bernardo Nunes Gonçalves Aritmética Binária e Complemento a Base Bernardo Nunes Gonçalves Sumário Soma e multiplicação binária Subtração e divisão binária Representação com sinal Sinal e magnitude Complemento a base. Adição binária

Leia mais

Circuitos Digitais Cap. 6

Circuitos Digitais Cap. 6 Circuitos Digitais Cap. 6 Prof. José Maria P. de Menezes Jr. Objetivos Flip-Flops e Dispositivos Correlatos Latch com portas NAND Latch com portas NOR Sinais de Clock e Flip-Flops com Clock Flip-Flop S-C

Leia mais

Sistemas de Numerações.

Sistemas de Numerações. Matemática Profº: Carlos Roberto da Silva; Lourival Pereira Martins. Sistema de numeração: Binário, Octal, Decimal, Hexadecimal; Sistema de numeração: Conversões; Sistemas de Numerações. Nosso sistema

Leia mais

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

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 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 região de armazenamento formada por bytes ou palavras, cada

Leia mais

Introdução aos Computadores

Introdução aos Computadores Os Computadores revolucionaram as formas de processamento de Informação pela sua capacidade de tratar grandes quantidades de dados em curto espaço de tempo. Nos anos 60-80 os computadores eram máquinas

Leia mais

3 Sistemas de Numeração:

3 Sistemas de Numeração: 3 Sistemas de Numeração: Os computadores eletrônicos têm como base para seu funcionamento a utilização de eletricidade. Diferente de outras máquinas que a presença ou ausência de eletricidade apenas significam

Leia mais

2. Representação Numérica

2. Representação Numérica 2. Representação Numérica 2.1 Introdução A fim se realizarmos de maneira prática qualquer operação com números, nós precisamos representa-los em uma determinada base numérica. O que isso significa? Vamos

Leia mais

Diagrama de transição de Estados (DTE)

Diagrama de transição de Estados (DTE) Diagrama de transição de Estados (DTE) O DTE é uma ferramenta de modelação poderosa para descrever o comportamento do sistema dependente do tempo. A necessidade de uma ferramenta deste tipo surgiu das

Leia mais

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIAS DA COMPUTAÇÃO BACHARELADO AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS Orientando: Oliver Mário

Leia mais

CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM

CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM 71 Introdução Difere dos níveis inferiores por ser implementado por tradução A tradução é usada quando um processador está disponível para uma mensagem fonte mas

Leia mais

ARQUITETURA DE COMPUTADORES

ARQUITETURA DE COMPUTADORES ARQUITETURA DE COMPUTADORES Aula 02: Conceitos Básicos Conceitos Básicos Conceitos fundamentais: dado, informação e processamento de dados Conceitos de algoritmo, algoritmo ótimo, hardware. Software e

Leia mais

Sistemas Computacionais II Professor Frederico Sauer

Sistemas Computacionais II Professor Frederico Sauer Sistemas Computacionais II Professor Frederico Sauer Livro-texto: Introdução à Organização de Computadores 4ª edição Mário A. Monteiro Livros Técnicos e Científicos Editora. Atenção: Este material não

Leia mais

1.1. Organização de um Sistema Computacional

1.1. Organização de um Sistema Computacional 1. INTRODUÇÃO 1.1. Organização de um Sistema Computacional Desde a antiguidade, o homem vem desenvolvendo dispositivos elétricoeletrônicos (hardware) que funciona com base em instruções e que são capazes

Leia mais

Resolução de problemas e desenvolvimento de algoritmos

Resolução de problemas e desenvolvimento de algoritmos SSC0101 - ICC1 Teórica Introdução à Ciência da Computação I Resolução de problemas e desenvolvimento de algoritmos Prof. Vanderlei Bonato Prof. Cláudio Fabiano Motta Toledo Sumário Análise e solução de

Leia mais

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

4 Arquitetura básica de um analisador de elementos de redes 4 Arquitetura básica de um analisador de elementos de redes Neste capítulo é apresentado o desenvolvimento de um dispositivo analisador de redes e de elementos de redes, utilizando tecnologia FPGA. Conforme

Leia mais

CALCULADORA SIMPLES COM ULA

CALCULADORA SIMPLES COM ULA CALCULADORA SIMPLES COM ULA Versão 2012 RESUMO 1 Esta experiência tem por objetivo a utilização de circuitos integrados de operações lógicas e aritméticas para o desenvolvimento de circuitos que executam

Leia mais

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

Organização e Arquitetura de Computadores I. de Computadores Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Organização e Arquitetura de I Organização Básica B de (Parte V, Complementar)

Leia mais

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

Introdução. INF1005 Programação I 33K Prof. Gustavo Moreira gmoreira@inf.puc-rio.br Introdução INF1005 Programação I 33K Prof. Gustavo Moreira gmoreira@inf.puc-rio.br introdução Tópicos conceitos básicos o que é um programa um programa na memória decifrando um código referência Capítulo

Leia mais

1.6. Tratamento de Exceções

1.6. Tratamento de Exceções Paradigmas de Linguagens I 1 1.6. Tratamento de Exceções Uma exceção denota um comportamento anormal, indesejado, que ocorre raramente e requer alguma ação imediata em uma parte do programa [GHE 97, DER

Leia mais

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

Introdução à Lógica de Programação Introdução à Lógica de Programação Sistemas Numéricos As informações inseridas em um computador são traduzidos em dados, ou seja, em sinais que podem ser manipulados pelo computador. O computador trabalha

Leia mais

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

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 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 Aula 6-T 2. Máquinas Sequencias Síncronas: Comparação entre

Leia mais

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

Algoritmos não se aprendem: Copiando algoritmos Estudando algoritmos Algoritmos só se aprendem: Construindo algoritmos Testando algoritmos 1. INTRODUÇÃO A ALGORITMOS O uso de algoritmos é quase tão antigo quanto a matemática. Com o passar do tempo, entretanto, ele foi bastante esquecido pela matemática. Com o advento das máquinas de calcular

Leia mais

Computadores XXI: Busca e execução Final

Computadores XXI: Busca e execução Final Computadores XXI: Busca e execução Final A6 Texto 6 http://www.bpiropo.com.br/fpc20060123.htm Sítio Fórum PCs /Colunas Coluna: B. Piropo Publicada em 23/01/2006 Autor: B.Piropo Na coluna anterior, < http://www.forumpcs.com.br/viewtopic.php?t=146019

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Aula 13 Gerência de Memória Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: SO - Prof. Edilberto Silva Prof. José Juan Espantoso Sumário

Leia mais

ROTEIRO PARA ELABORAÇÃO DE PROJETOS

ROTEIRO PARA ELABORAÇÃO DE PROJETOS APRESENTAÇÃO ROTEIRO PARA ELABORAÇÃO DE PROJETOS Breve histórico da instituição seguido de diagnóstico e indicadores sobre a temática abrangida pelo projeto, especialmente dados que permitam análise da

Leia mais

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

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Um Sistema Gerenciador de Banco de Dados (SGBD) é constituído por um conjunto de dados associados a um conjunto de programas para acesso a esses

Leia mais

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

Lição 1 Introdução à programação de computadores Lição Introdução à programação de computadores Introdução à Programação I Objetivos Ao final desta lição, o estudante será capaz de: Identificar os diferentes componentes de um computador Conhecer linguagens

Leia mais

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

Centro Tecnológico de Eletroeletrônica César Rodrigues. Atividade Avaliativa 1ª Exercícios - REDES LAN/WAN INSTRUTOR: MODALIDADE: TÉCNICO APRENDIZAGEM DATA: Turma: VALOR (em pontos): NOTA: ALUNO (A): 1. Utilize 1 para assinalar os protocolos que são da CAMADA DE REDE e 2 para os

Leia mais

PROGRAMAÇÃO II 4. ÁRVORE

PROGRAMAÇÃO II 4. ÁRVORE 4. ÁRVORE PROGRAMAÇÃO II Prof. Jean Eduardo Glazar Uma árvore impõe uma estrutura hierárquica em uma coleção de itens. Um exemplo familiar é a árvore genealógica. Árvores despontam de forma natural em

Leia mais

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

Introdução. A Informação e sua Representação (Parte III) Universidade Federal de Campina Grande Departamento de Sistemas e Computação Universidade Federal de Campina Grande Departamento de Sistemas e Computação Introdução à Computação A Informação e sua Representação (Parte III) Prof.a Joseana Macêdo Fechine Régis de Araújo joseana@computacao.ufcg.edu.br

Leia mais

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

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP) Hardware (Nível 0) Organização O AS/400 isola os usuários das características do hardware através de uma arquitetura de camadas. Vários modelos da família AS/400 de computadores de médio porte estão disponíveis,

Leia mais

Exemplo de Subtração Binária

Exemplo de Subtração Binária Exemplo de Subtração Binária Exercícios Converta para binário e efetue as seguintes operações: a) 37 10 30 10 b) 83 10 82 10 c) 63 8 34 8 d) 77 8 11 8 e) BB 16 AA 16 f) C43 16 195 16 3.5.3 Divisão binária:

Leia mais

Lista de Exercícios. Vetores

Lista de Exercícios. Vetores Lista de Exercícios Vetores LINGUAGEM DE PROGRAMAÇÃO PROF. EDUARDO SILVESTRI. WWW.EDUARDOSILVESTRI.COM.BR ATUALIZADO EM: 13/03/2007 Página 1/1 1. Faça um programa que crie um vetor de inteiros de 50 posições

Leia mais

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

NOTAS DE AULA Prof. Antonio Carlos Schneider Beck Filho (UFSM) Prof. Júlio Carlos Balzano de Mattos (UFPel) Arquitetura de Von Neumann Universidade Federal de Santa Maria NOTAS DE AULA Prof. Antonio Carlos Schneider Beck Filho (UFSM) Prof. Júlio Carlos Balzano de Mattos (UFPel) Arquitetura de Von Neumann O modelo (ou arquitetura) de von

Leia mais

Engenharia de Software III

Engenharia de Software III Engenharia de Software III Casos de uso http://dl.dropbox.com/u/3025380/es3/aula6.pdf (flavio.ceci@unisul.br) 09/09/2010 O que são casos de uso? Um caso de uso procura documentar as ações necessárias,

Leia mais

Técnicas de Caixa Preta de Teste de Software

Técnicas de Caixa Preta de Teste de Software Técnicas de Caixa Preta de Teste de Software Na maioria de projetos de teste, o tempo para a realização dos mesmos sempre é curto e os números de testes a serem realizados nas aplicações são inúmeros.

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Caminho de Dados Slide 1 Sumário Introdução Convenções Lógicas de Projeto Construindo um Caminho de Dados O Controle da ULA Projeto da Unidade de Controle Principal

Leia mais

Engenharia de Requisitos

Engenharia de Requisitos Engenharia de Requisitos Introdução a Engenharia de Requisitos Professor: Ricardo Argenton Ramos Aula 08 Slide 1 Objetivos Introduzir a noção de requisitos do sistema e o processo da engenharia de requisitos.

Leia mais

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

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia. 1 Introdução aos Sistemas de Informação 2002 Aula 4 - Desenvolvimento de software e seus paradigmas Paradigmas de Desenvolvimento de Software Pode-se considerar 3 tipos de paradigmas que norteiam a atividade

Leia mais

5 Entrada e Saída de Dados:

5 Entrada e Saída de Dados: 5 Entrada e Saída de Dados: 5.1 - Arquitetura de Entrada e Saída: O sistema de entrada e saída de dados é o responsável pela ligação do sistema computacional com o mundo externo. Através de dispositivos

Leia mais

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

Princípios de Análise e Projeto de Sistemas com UML Princípios de Análise e Projeto de Sistemas com UML 2ª edição Eduardo Bezerra Editora Campus/Elsevier Capítulo 9 Modelagem de estados Todos os adultos um dia foram crianças, mas poucos se lembram disso.

Leia mais

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

LABORATÓRIO DE ELETRÔNICA DIGITAL Experiência 9: Análise de Circuitos com Contadores 45 1. Objetivos Realizar a analise detalhada de todos os blocos constituintes de um relógio digital. Implementar um relógio digital. 2. Conceito Um contador é construído a partir de flip-flops (T, D JK,

Leia mais

Engenharia de Sistemas Computacionais

Engenharia de Sistemas Computacionais Engenharia de Sistemas Detalhes no planejamento UNIVERSIDADE FEDERAL DE ALAGOAS Curso de Ciência da Computação Engenharia de Software I Prof. Rômulo Nunes de Oliveira Introdução Na aplicação de um sistema

Leia mais

Máquinas Multiníveis

Máquinas Multiníveis Infra-Estrutura de Hardware Máquinas Multiníveis Prof. Edilberto Silva www.edilms.eti.br edilms@yahoo.com Sumário Conceitos básicos Classificação de arquiteturas Tendências da tecnologia Família Pentium

Leia mais

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

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá. INTRODUÇÃO A lógica de programação é extremamente necessária para as pessoas que queiram trabalhar na área de programação, seja em qualquer linguagem de programação, como por exemplo: Pascal, Visual Basic,

Leia mais

QUADRADO MÁGICO - ORDEM 4

QUADRADO MÁGICO - ORDEM 4 CONCEITO Partindo da definição original, os QUADRADOS MÁGICOS devem satisfazer três condições: a) tabela ou matriz quadrada (número de igual ao número de ); b) domínio: com elementos assumindo valores

Leia mais

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

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

Ferramentas de Modelação e Análise de Sistemas baseadas em Redes de Petri (RdP) Ferramentas de Modelação e Análise de Sistemas baseadas em Redes de Petri (RdP) Existem inúmeras ferramentas (software) baseadas em RdP que permitem desenvolver modelar e analisar sistema de RdP. Algumas

Leia mais

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

Protocolo TCP/IP. Neste caso cada computador da rede precisa de, pelo menos, dois parâmetros configurados: Protocolo TCP/IP Neste caso cada computador da rede precisa de, pelo menos, dois parâmetros configurados: Número IP Máscara de sub-rede O Número IP é um número no seguinte formato: x.y.z.w Não podem existir

Leia mais

2 Diagrama de Caso de Uso

2 Diagrama de Caso de Uso Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Caso de Uso (Use Case) Autoria:Aristófanes Corrêa

Leia mais

1. NÍVEL CONVENCIONAL DE MÁQUINA

1. NÍVEL CONVENCIONAL DE MÁQUINA 1. NÍVEL CONVENCIONAL DE MÁQUINA Relembrando a nossa matéria de Arquitetura de Computadores, a arquitetura de Computadores se divide em vários níveis como já estudamos anteriormente. Ou seja: o Nível 0

Leia mais

3 Arquitetura do Sistema

3 Arquitetura do Sistema 3 Arquitetura do Sistema Este capítulo irá descrever a arquitetura geral do sistema, justificando as decisões de implementação tomadas. Na primeira seção iremos considerar um conjunto de nós interagindo

Leia mais

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

Organização e Arquitetura de Computadores I. de Computadores Universidade Federal de Campina Grande Unidade Acadêmica de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Organização e Arquitetura de Computadores I Organização Básica B de Computadores

Leia mais

Figura 1 - O computador

Figura 1 - O computador Organização e arquitectura dum computador Índice Índice... 2 1. Introdução... 3 2. Representação da informação no computador... 4 3. Funcionamento básico dum computador... 5 4. Estrutura do processador...

Leia mais

LÓGICA DE PROGRAMAÇÃO

LÓGICA DE PROGRAMAÇÃO Todos direitos reservados. Proibida a reprodução, mesmo parcial, por qualquer processo mecânico, eletrônico, reprográfico, etc., sem a autorização, por escrito, do(s) autor(es) e da editora. LÓGICA DE

Leia mais

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

APLICAÇÃO REDE APLICAÇÃO APRESENTAÇÃO SESSÃO TRANSPORTE REDE LINK DE DADOS FÍSICA 1/5 PROTOCOLOS DE REDE 1/5 PROTOCOLOS DE O Modelo OSI O OSI é um modelo usado para entender como os protocolos de rede funcionam. Para facilitar a interconexão de sistemas de computadores, a ISO (International Standards Organization)

Leia mais

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

Algoritmos: Lógica para desenvolvimento de programação de computadores. Autor: José Augusto Manzano. Capítulo 1 Abordagem Contextual Algoritmos: Lógica para desenvolvimento de programação de computadores Autor: José Augusto Manzano Capítulo 1 Abordagem Contextual 1.1. Definições Básicas Raciocínio lógico depende de vários fatores para

Leia mais

SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA

SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA 1. INTRODUÇÃO O conceito de concorrência é o princípio básico para o projeto e a implementação dos sistemas operacionais multiprogramáveis. O sistemas multiprogramáveis

Leia mais