9 Fiabilidade, testes e tolerância a falhas
|
|
- Marta Amorim Tuschinski
- 9 Há anos
- Visualizações:
Transcrição
1 9 Fiabilidade, testes e tolerância a falhas Um sistema fiável é o resultado de um processo sólido de desenho, boa engenharia, e um processo sólido de testes. Neste capítulo vamos discutir fiabilidade, e como a melhorar, através de testes ao sistema e de tolerância a falhas. 9.1 Bugs, faltas, falhas e defeitos Embora seja comum associar a estes termos o mesmo significado, há muita diferença entre eles. O termo bug significa que existe um erro num sistema sem ninguém ser responsável. O termo preferível é o defeito. Este defeito evidencia-se, na operação do sistema, como ma falta. Se esta falha implicar que um dos requisitos do sistema não foi cumprido, temos então uma falha. 9.2 Fiabilidade Esta característica desejável para um sistema pode ser definido, informalmente, de vários modos. Podemos definir um sistema fiável como: - Aquele em que podemos confiar; - Está livre de erros catastróficos; - Os seus resultados são previsíveis; - É um sistema robusto (no contexto de pode recuperar de erros). Especificamente para sistemas de tempo real, fiabilidade pode ser caracterizada por: - Determinismo de eventos; - Determinismo temporal; - Carga temporal razoável - Carga de memória razoável Definição formal Admitamos que S é um sistema de software e que T denota o instante de tempo em que uma falha do sistema ocorre. Então, a fiabilidade do sistema S, no tempo t, denotada por probabilidade que T seja maior que t, isto é: ( ) rt (), é a rt () = PT> t (9.1) 9-1
2 Deste modo, um sistema com rt () = 1 nunca tem falhas. De acordo com a distribuição assumida para a função de falha, temos diferentes modelos para caracterizar a fiabilidade de um sistema. Um modelo normalmente utilizado assume uma distribuição exponencial. Assim, a probabilidade de falhas é grande ao início (o que tem lógica, dada ser um novo código) e decresce com o tempo (à medida que os erros vão sendo resolvidos). O seguinte modelo usa uma função como a ilustrada na fig Intensidade da falha tempo Fig. 9-1: Função de falha Este modelo é bastante usada para descrever a evolução das falhas em hardware (o aumento da intensidade das falhas após um certo tempo tem a ver com o envelhecimento dos componentes), mas não é tão vulgar para software. Em termos de software, o aumento da intensidade é devido a erros provocados por alterações ao software, ou pela utilização mais exigente do software, à medida que o utilizador vai tendo experiência com ele Calculando a fiabilidade do sistema Há algumas técnicas que podem ser utilizadas para estimar a fiabilidade de um sistema. Vamos referirmo-nos a 3 técnicas: o modelo de blocos de processos, a métrica de McCabe e a métrica de Halstead O modelo de blocos de processos Entende-se um sistema como sendo constituído por uma série de sub-sistemas, denominados por blocos de processos, ligados entre si em série ou em paralelo. A probabilidade de falha, ou, ao contrário, a fiabilidade de um sistema podem ser calculadas utilizando simples regras de probabilidade. Este método assume independência de cada bloco (que é uma 9-2
3 simplificação exagerada, dado poder haver comunicação de dados entre blocos) e só suporta controlo de fluxo síncrono. Se dois sub-sistemas estiverem ligados em paralelo, como é ilustrado na fig. 9.2, então o sistema conjunto só falha se ambos os sistemas falharem. 1 2 Fig. 9-2: Sub-sistemas em paralelo Como a função de falha é dada por ( 1 rt ( )) conjunto é:, então a função de falha para o sistema req () t ( r1() t )( r2() t ) () = () + () () () 1 = 1 1 r t r t r t r t r t eq (9.2) Para um sistema série, o sistema falha quando algum dos sub-sistemas falha. 1 2 Fig. 9-2: Sub-sistemas em série Neste caso, eq () = () () r t r t r t 1 2 (9.3) Métrica de McCabe Alguns especialistas acreditam que a fiabilidade do software pode ser estimado através de características do código fonte. Uma dessas métricas, introduzidas por McCabe, é baseada na complexidade do fluxo de controlo. Esta técnica admite que um programa pode ser visto como um grafo em que cada nó representa um bloco de código sequencial, enquanto cada 9-3
4 mudança síncrona de fluxo representa um arco. Do mesmo modo que no caso anterior, mudanças de fluxo assíncronas não são suportadas. Num sistema multitarefa, cada tarefa é representada por um grafo, que pode ser obtido directamente dos grafos de fluxos, diagramas de fluxo de dados, redes de Petri, ou de autómatos finitos. Admita-se que existem p grafos, e nós, e n arcos. Então a complexidade ciclomática, C, é dada por: C= e n+ 2 p (9.4) A hipótese de McCabe é a de que C reflecte a dificuldade em perceber, testar e manter o software. Segundo ele, se 3 C 7, o programa está bem estruturado Métrica de Halstead Os dois métodos anteriores têm o problema de que não contemplam mudanças de fluxo de controlo assíncronas, que acontecem em sistemas de tempo real. Este método não sofre desta desvantagem. Esta métrica depende de características do código: η 1 1. : o número de instruções distintas begin-end, e de GOTO ou análogas; estas são chamadas de operadores; η 2 2. : o número de linhas distintas terminadas por ; em C ou análogas; estão são chamadas de operadores; 3. N 1 : o número total de ocorrências de operadores no programa; 4. N 2 : o número total de ocorrências de operandos no programa; Com estas características, Halstead propões as seguintes medidas: O vocabulário, η= η + η ; 1 2 O comprimento do programa, N = N + N ; O volume do programa, V = Nlog 2 η ; 1 2 ( ) ( ) O volume potencial, V* = 2+ η log 2+ η ; O nível do programa, L= V */ V Halstead sugeriu que L mede o nível de abstracção do programa. À medida que L aumenta, a fiabilidade também aumenta. Uma outra medida introduzida é o esforço requerido para desenvolver o programa. E= V / L Diminuindo E, aumenta a fiabilidade do programa. 9-4
5 9.3 Testes É importante referir que o objectivo de testar um sistema não é apenas o de detectar erros, dado que um teste só detecta a presença de erros, e não a sua ausência. A finalidade última de testar um sistema é de verificar se um sistema satisfaz os seus requisitos. Desta maneira, no ciclo de desenvolvimento de um sistema deve ser construído um plano de testes, com critérios objectivos que permitam determinar se o sistema cumpre ou não os requisitos. Este plano deve testar o sistema módulo a módulo, sub-sistema a sub-sistema, e finalmente o sistema total Testes a módulos As técnicas abaixo descritas podem ser utilizadas pelo programador, ou pelo um grupo independente de testes Testes caixa negra Neste tipo de testes, só as entradas e saídas são relevantes; como as saídas são geradas em função das entradas não é considerado. Tem a vantagem de poder ser utilizado para qualquer tipo de módulo, e a desvantagem de não fornecer qualquer informação sobre a habilidade do programador, não podendo também identificar código inatingível. Para cada módulo, um determinado número de casos de teste são gerados, dependente da funcionalidade do módulo, número de entradas/saídas, etc. Se para qualquer caso de teste um erro é detectado, é corrigido e toda a bateria de testes novamente aplicada. Para gerar os casos de teste, pode-se usar: 1. Geração exaustiva (força bruta) todas as combinações possíveis das entradas são geradas; isto é sempre possível, mas pode ser proibitivo em termos de tempo; 2. Casos de canto (corner cases) por exemplo, os valores máximo, mínimo e médio para cada variável são testados; 3. Casos patológicos combinações não usuais que podem conduzir a erros; 4. Testes estatísticos testes aleatórios ou assumindo uma determinada distribuição de probabilidade para cada entrada Sempre que possível, geração exaustiva deve ser usada. Se tal não for possível, é normalmente utilizada uma combinação das outras técnicas. 9-5
6 Testes caixa branca Estes testes são desenhados para testar todos os possíveis fluxos do programa. Normalmente não é apenas o programador que testa todo o código, mas porções diferentes de códigos são passadas a diferentes grupos, que além de testar o código inspeccionam-no para testar todos os possíveis erros e eventualmente melhorar o código Métodos formais de prova Um tipo de testes de caixa branca interpreta as especificações e o código gerado como especificações verificáveis que são provadas matematicamente. Além de não serem muito viáveis para grandes sistemas, necessitam de conceitos de lógica temporal ou de álgebra de processos que está fora do âmbito desta disciplina. Não há muitas ferramentas comerciais que implementem estas técnicas Testes ao nível do sistema ou de sub-sistemas Após todos os módulos serem testados individualmente, então os sub-sistemas ou o sistema total precisa de ser testado. Aqui, a equipa de programadores passa o produto para a equipa de teste. O teste de um sistema ou sub-sistema é um teste do tipo caixa preta, e assim todos os métodos atrás referidos podem ser usados. Se um erro for detectado nesta fase, o erro deve ser reparado. Idealmente, o módulo onde o erro foi detectado deve ser sujeito a testes de módulo, antes de se continuar os testes do sistema ou sub-sistema. Após o sistema testado pela equipa de testes, segue-se o denominado teste-alfa. Aqui, o sistema é distribuído pela empresa, e testado. Seguem-se os testes-beta, onde o produto é distribuído por alguns consumidores que se disponibilizam para utilizar o sistema. Um outro tipo de testes, que ocorre mais tarde na vida de um sistema, é o teste de regressão. Se houver novas versões de software, então a bateria de testes a que o sistema foi inicialmente submetido deve ser aplicada ao novo produto, eventualmente com casos de testes adicionais Testes estatísticos Uma técnica que pode ser usada também ao nível do módulo como ao nível do sistema é o uso de testes estatísticos. Se se conhecer a função distribuição de probabilidade para cada entrada podem-se gerar números aleatórios tirados dessa distribuição. Os principais problemas com este tipo de testes são, na maior parte das vezes, o desconhecimento da(s) 9-6
7 distribuição(ões), e o facto de os erros mais difíceis de serem detectados serem exactamente aqueles que tem uma menor probabilidade de ocorrência Teste de stress Neste caso o sistema é submetido a forte perturbações nas entradas (por exemplo várias interrupções sucessivas), seguidas de poucas perturbações na entrada, por um largo período de tempo. 9.4 Tolerância a falhas Tolerância a falhas significa a habilidade do sistema de continuar a funcionar na presença de uma falha de hardware ou software. A fiabilidade de um sistema de tempo real pode ser melhorada, utilizando tolerância a falhas, de duas maneiras: tolerância espacial, isto é, a utilização de métodos que envolvem redundância em software ou em hardware, e tolerância temporal, isto é, a utilização de métodos que toleram a falha do cumprimento de metas temporais Solução geral A fiabilidade do hardware pode ser melhorada usando tolerância a falhas espacial usando 3 ou mais dispositivos ligados por um esquema de votação maioritária. Por vezes é também usado um ou mais pares de dispositivos redundantes. Cada elemento de um par compara a sua saída com a do seu companheiro. Se os resultados diferem, então o par declara-se em erro, e as suas saídas são ignoradas. Esquemas de votação podem também ser usados para software. Diferente informação pode ser usada para melhorar a estimativa de uma dada variável Checkpoints Em localizações fixas do código, resultados intermédios podem ser escritos em ficheiros ou posições de memória. Estas localizações, chamadas de s, podem ser usados durante a operação do sistema ou durante a verificação do sistema. Se os s forem usados durante o teste, isto é chamado de test probe. Estes pontos de prova introduzem pequenos erros temporais que são difíceis de diagnosticar. 9-7
8 Bloco 1 Bloco 2 Bloco 3 Fig. 9-3: Implementação de Técnica de recuperação Os s podem ser usados conjuntamente com técnicas de recuperação (recovery) para aumentar a fiabilidade do sistema. Neste caso, pontos pré-determinados do código são pontos de reset. Nestes pontos os s são testados para verificar se os resultados são razoáveis. Se o são, então passa-se para o próximo bloco de recuperação. Se não são, esse bloco é corrido novamente, ou o controlo é passado para outro anterior, com eventualmente novos dados, o que possibilita que o sistema recupere de uma eventual falha. Bloco 1 Bloco 2 Bloco 3 Testa resultados intermédios Restart Fig. 9-3: Implementação de um bloco de recuperação Cada bloco de recuperação funciona assim, de um certo modo, como um bloco em paralelo, aumentando a fiabilidade do sistema Programação de n versões Qualquer sistema pode bloquear por ter sido executada uma mudança de fluxo não testada e entrar num estado em que não existe saída. Para diminuir a possibilidade de estas situações acontecerem, podem-se introduzir processadores redundantes que executam software com as mesmas especificações, mas produzidos por diferentes programadores. A possibilidade de os diferentes sistemas bloquearem no mesmo ponto é assim altamente reduzida. Dado que 9-8
9 normalmente cada sistema tem um watchdog timer, o sistema total pode rapidamente chegar à conclusão que esse processador está inoperativo, e ignorá-lo. Esta técnica é chamada de programação de n versões. Os processadores redundantes podem usar um esquema de votação para decidir das saídas, ou pode ser usado um esquema master-slave. Neste caso o master está on-line, a produzir saídas aplicadas ao processo, enquanto o slave só vigia a sua operação. Se, no entanto, for detectada alguma anomalia no master, o slave fica on-line Software de teste incorporado Uma outra forma de aumentar a fiabilidade do hardware é incorporar software de teste no código (built-in test software BITS). Como exemplo, se um canal de I/O não está a funcionar correctamente, o software pode encerrá-lo e reconfigurar o sistema. BITS têm importantes vantagens, mas torna-se difícil depois determinar análises de performance de pior caso Teste de CPU O CPU é provavelmente o dispositivo mais importante do sistema. Podem-se desenhar testes para validar o bom funcionamento do CPU em todos os modos de endereçamento. Este conjunto de testes é no entanto demorado, e por isso deve ser executado em background, e com as interrupções inibidas Testes de memória Há dois tipos de erros de memória: erro de conteúdo, denominado de soft error, e erro da célula de memória, denominado hard error Memória ROM Muitas vezes a memória ROM é testada utilizando checksums, que são essencialmente adições binárias para toda a memória ROM. Este valor é comparado com a checksum original, calculada na linkage e armazenada numa posição de memória ROM. A desvantagem que este método tem é a de que um número par de erros em cada bit pode-se anular, e portanto não se trata de um sistema muito fiável. O método mais utilizado é utilizar um código redundante cíclico (cyclic redundant code CRC), que trata o conteúdo da memória total como uma cadeia enorme de bits, associando-a a uma polinomial de ordem muito elevada. Esta é conhecida como a polinomial de mensagem. Uma segunda polinomial de mais baixa ordem (tipicamente de ordem 16) é 9-9
10 chamada de polinomial geradora, é dividida pela polinomial da mensagem, a qual é acrescida de um conjunto de bits a 0 para cada termo na polinomial geradora. O resultado da divisão é um quociente e um resto, sendo o 1º descartado e o 2º usado para detectar todos os erros de 1-bit e virtualmente todos os erros de bits múltiplos. Não permite, no entanto, diagnosticar a causa do erro Memória RAM Dada a natureza dinâmica desta memória, as técnicas anteriores não podem ser utilizadas. Uma maneira de proteger esta memória contra erros é adicionar bits extra, para implementar um código de Hamming. Dependendo do número de bits, chamados de sindroma, erros de 1 ou mais bits podem ser detectados e corrigidos. Chips que implementam a detecção e correcção de erros (error detection and correction EDC) estão disponíveis comercialmente. Durante uma operação de leitura ou de escrita, os dados passam pelo chip, são comparados com o sindroma e as correcções são implementadas. De salientar que numa operação de leitura os conteúdos da memória não são alterados, o que quer dizer que numa operação de leitura subsequente todo o processo é repetido. Numa operação de escrita o código é computado e armazenado simultaneamente com os dados. Isto é chamado de RAM scrubbing. Na ausência de hardware para teste e correcção, um conjunto de testes, normalmente executados na inicialização, é utilizada para testar a memória Outros dispositivos A outros dispositivos estão normalmente associados hardware timers, que indicam se o dispositivo está ou não on-line. BITS podem também estar incorporados nos dispositivos e no software para aumentar a fiabilidade Interrupções espúrias e perdidas Interrupções não desejadas são chamadas de espúrias. Podem acontecer por ruído, descargas de alimentação, e outros factores. Interrupções perdidas podem ter causas semelhantes Tratamento de interrupções espúrias O método mais utilizado é incorporar redundância nas interrupções. Além de provocar uma interrupção, uma flag adicional é levantada para indicar uma interrupção válida. A rotina de tratamento da interrupção testa essa flag adicional, baixando-a e continuando o tratamento da interrupção se a flag estiver levantada. Em caso contrário, trata-se de uma interrupção espúria e a rotina deve terminar o mais rapidamente possível. 9-10
11 Interrupções perdidas Estas são mais difíceis de serem detectadas e corrigidas. Podem-se utilizar watchdog timers em software que são ligados ou desligados pela rotina em questão. Rotinas de mais alta prioridade e executando a uma taxa mais alta podem verificar essas posições de memória de modo a garantir que a frequência de interrupções é correcta. Caso não seja, a tarefa é reinicializada ou um erro indicado. 9-11
Sistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com
Sistemas Operacionais Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Estruturas de Sistemas de Computação O sistema operacional precisa garantir a operação correta do sistema de computação. Operação
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
Interrupções. As interrupções são casos especiais de chamadas de procedimentos.
Interrupções Uma interrupção é equivalente a uma chamada de procedimento. A chamada é equivalente a um CALL gerado pela execução de uma instrução. As interrupções são casos especiais de chamadas de procedimentos.
O que é RAID? Tipos de RAID:
O que é RAID? RAID é a sigla para Redundant Array of Independent Disks. É um conjunto de HD's que funcionam como se fosse um só, isso quer dizer que permite uma tolerância alta contra falhas, pois se um
B.I.S.T. Built-In Self Test
Instituto Superior de Engenharia do Porto Mestrado de Engenharia Electrotécnica Automação e Sistemas Disciplina de Síntese Alto Nível de Componentes Programáveis B.I.S.T. Built-In Self Test Elaborado por:
Admistração de Redes de Computadores (ARC)
Admistração de Redes de Computadores (ARC) Instituto Federal de Educação, Ciência e Tecnologia de Santa Catarina - Campus São José Prof. Glauco Cardozo glauco.cardozo@ifsc.edu.br RAID é a sigla para Redundant
RAID. Propõe o aumento da confiabilidade e desempenho do armazenamento em disco. RAID (Redundant Array of Independent Disks )
RAID O que é um RAID? RAID RAID (Redundant Array of Independent Disks ) Matriz Redundante de Discos Independentes Propõe o aumento da confiabilidade e desempenho do armazenamento em disco. RAID Surgiu
Ao longo do presente capítulo será apresentada uma descrição introdutória da tecnologia FPGA e dos módulos básicos que a constitui.
3 Tecnologia FPGA Ao longo do presente capítulo será apresentada uma descrição introdutória da tecnologia FPGA e dos módulos básicos que a constitui. 3.1. FPGA: Histórico, linguagens e blocos Muitos dos
Projeto de Arquitetura
Introdução Projeto de Arquitetura (Cap 11 - Sommerville) UNIVERSIDADE FEDERAL DE ALAGOAS Curso de Ciência da Computação Engenharia de Software I Prof. Rômulo Nunes de Oliveira Até agora, estudamos: Os
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
Tolerância a Faltas. 8/28/2003 José Alves Marques. Sistema Computacional
Tolerância a Faltas Sistema Computacional Sistema computacional: Formado por um conjunto de componentes internas Contém um estado interno Está sujeito a um conjunto de entradas, ou estímulos externos Tem
Arquitetura e Organização de Computadores I
Arquitetura e Organização de Computadores I Interrupções e Estrutura de Interconexão Prof. Material adaptado e traduzido de: STALLINGS, William. Arquitetura e Organização de Computadores. 5ª edição Interrupções
Arquitetura de Computadores. Tipos de Instruções
Arquitetura de Computadores Tipos de Instruções Tipos de instruções Instruções de movimento de dados Operações diádicas Operações monádicas Instruções de comparação e desvio condicional Instruções de chamada
16.36: Engenharia de Sistemas de Comunicação Aula 14: Códigos cíclicos e detecção de erros
16.36: Engenharia de Sistemas de Comunicação Aula 14: Códigos cíclicos e detecção de erros Eytan Modiano Códigos Cíclicos Um código cíclico é um código de bloco linear onde c é uma palavra-chave, e também
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
Sistemas Operacionais
Sistemas de Entrada/Saída Sistema de Entrada/Saída - Redundant Array of Independent Disks 0 - Matriz de Discos sem Tolerância a Falhas 1 - Espelhamento 2 - Código de Hamming 3 - Transferência Paralela
3. O NIVEL DA LINGUAGEM DE MONTAGEM
3. O NIVEL DA LINGUAGEM DE MONTAGEM Nas aulas anteriores tivemos a oportunidade de discutir dois diferentes níveis presentes na maioria dos computadores atuais. Nesta aula dedica-se a outro nível que também
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
Sistemas Operacionais Gerência de Dispositivos
Universidade Estadual de Mato Grosso do Sul UEMS Curso de Licenciatura em Computação Sistemas Operacionais Gerência de Dispositivos Prof. José Gonçalves Dias Neto profneto_ti@hotmail.com Introdução A gerência
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
Sistemas Distribuídos: Conceitos e Projeto Introdução a Tolerância a Falhas
Sistemas Distribuídos: Conceitos e Projeto Introdução a Tolerância a Falhas Francisco José da Silva e Silva Laboratório de Sistemas Distribuídos (LSD) Departamento de Informática / UFMA http://www.lsd.ufma.br
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
RAID Redundat Arrays of Inexpensive Disks
RAID Redundat Arrays of Inexpensive Disks Criado em alternativa para os discos grandes e caros. Justificativa: Substituindo discos grandes por muitos discos pequenos, o desempenho melhoraria mais cabeças
Sistemas Operacionais
Sistemas Operacionais RAID Marcelo Diniz http://marcelovcd.wordpress.com/ O que é RAID? RAID RAID (Redundant Array of Independent Disks ) Matriz Redundante de Discos Independentes Recuperar informação
Especificação Operacional.
Especificação Operacional. Para muitos sistemas, a incerteza acerca dos requisitos leva a mudanças e problemas mais tarde no desenvolvimento de software. Zave (1984) sugere um modelo de processo que permite
Memória Cache. Prof. Leonardo Barreto Campos 1
Memória Cache Prof. Leonardo Barreto Campos 1 Sumário Introdução; Projeto de Memórias Cache; Tamanho; Função de Mapeamento; Política de Escrita; Tamanho da Linha; Número de Memórias Cache; Bibliografia.
Modelo Cascata ou Clássico
Modelo Cascata ou Clássico INTRODUÇÃO O modelo clássico ou cascata, que também é conhecido por abordagem top-down, foi proposto por Royce em 1970. Até meados da década de 1980 foi o único modelo com aceitação
EAGLE TECNOLOGIA E DESIGN CRIAÇÃO DE SERVIDOR CLONE APCEF/RS
EAGLE TECNOLOGIA E DESIGN CRIAÇÃO DE SERVIDOR CLONE APCEF/RS Relatório Nº 03/2013 Porto Alegre, 22 de Agosto de 2013. ANÁLISE DE SOLUÇÕES: # RAID 1: O que é: RAID-1 é o nível de RAID que implementa o espelhamento
EA960 Redundância e Confiabilidade: RAID
EA960 Redundância e Confiabilidade: RAID Faculdade de Engenharia Elétrica e de Computação (FEEC) Universidade Estadual de Campinas (UNICAMP) Prof. Levy Boccato 1 Motivação Revisitando a lei de Amdahl:
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.
O protocolo MODBUS define também o tipo diálogo entre os equipamentos, define por exemplo quem pode enviar dados e em que altura.
Universidade de Aveiro Departamento de Engenharia Mecânica Informática Industrial 2010/2011 5 PROTOCOLO DE COMUNICAÇÃO MODBUS 5.1 Protocolo de comunicação MODBUS Este protocolo foi proposto em 1979 pela
AVALIAÇÃO À DISTÂNCIA 1 GABARITO
Fundação CECIERJ - Vice Presidência de Educação Superior a Distância Curso de Tecnologia em Sistemas de Computação UFF Disciplina INTRODUÇÃO À INFORMÁTICA... AD1 2 semestre de 2008. Data... AVALIAÇÃO À
SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com
- Aula 2-1. PRINCÍPIOS DE SOFTWARE DE ENTRADA E SAÍDA (E/S) As metas gerais do software de entrada e saída é organizar o software como uma série de camadas, com as mais baixas preocupadas em esconder as
Prof.: Roberto Franciscatto. Capítulo 1.2 Aspectos Gerais
Sistemas Operacionais Prof.: Roberto Franciscatto Capítulo 1.2 Aspectos Gerais Estrutura do Sistema Operacional Principais Funções do Sistema Operacional Tratamento de interrupções e exceções Criação e
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
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
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
Introdução aos Sistemas Operativos
Introdução aos Sistemas Operativos Computadores e Redes de Comunicação Mestrado em Gestão de Informação, FEUP 06/07 Sérgio Sobral Nunes mail: sergio.nunes@fe.up.pt web: www.fe.up.pt/~ssn Sumário Definição
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
Organização e Arquitetura de Computadores
Organização e Arquitetura de Computadores Entrada e saída Alexandre Amory Edson Moreno Nas Aulas Anteriores Foco na Arquitetura e Organização internas da Cleo Modelo Von Neuman Circuito combinacional Circuito
Manual do Gestor da Informação do Sistema
Faculdade de Engenharia da Universidade do Porto Licenciatura Informática e Computação Laboratório de Informática Avançada Automatização de Horários Manual do Gestor da Informação do Sistema João Braga
c. Técnica de Estrutura de Controle Teste do Caminho Básico
1) Defina: a. Fluxo de controle A análise de fluxo de controle é a técnica estática em que o fluxo de controle através de um programa é analisado, quer com um gráfico, quer com uma ferramenta de fluxo
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,
Engenharia de Software II
Engenharia de Software II Aula 8 http://www.ic.uff.br/~bianca/engsoft2/ Aula 8-17/05/2006 1 Ementa Processos de desenvolvimento de software Estratégias e técnicas de teste de software (Caps. 13 e 14 do
SISTEMAS DIGITAIS. Memórias. Prof. Guilherme Arroz Prof. Carlos Sêrro Alterado para lógica positiva por Guilherme Arroz.
SISTEMAS DIGITAIS Memórias Alterado para lógica positiva por Guilherme Arroz Sistemas Digitais 1 Tipos de memórias Existem vários tipos de memórias em sistemas digitais As memórias internas dos dispositivos,
Comunicação de Dados
UNISUL 2013 / 1 Universidade do Sul de Santa Catarina Engenharia Elétrica - Telemática 1 Comunicação de Dados Aula 6 Agenda Projeto da camada de enlace de dados Detecção e correção de erros Protocolos
Codificação de Canal
Laboratório de Processamento de Sinais Laboratório de Sistemas Embarcados Universidade Federal do Pará 26 de janeiro de 2012 Sumário 1 Introdução a 2 Códigos de Blocos Lineares 3 Códigos Cíclicos Introdução
Relatório de Estágio
ÍNDICE 1. Descrição da empresa 2. Descrição do problema 2.1 Subcontratação da produção 2.2 Relacionamento da empresa 2.3 Dois departamentos de qualidade 2.4 Inspecções actualmente efectuadas 2.5 Não conformidades
Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 04 - Concorrência. Cursos de Computação
Cursos de Computação Sistemas Operacionais Prof. M.Sc. Sérgio Teixeira Aula 04 - Concorrência Referência: MACHADO, F.B. ; MAIA, L.P. Arquitetura de Sistemas Operacionais. 4.ed. LTC, 2007. Mono x Multiprogramação
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
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...
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
GIAE VERSÃO 2.1.1 28 JUNHO DE 2011 MUITO IMPORTANTE
GIAE VERSÃO 2.1.1 28 JUNHO DE 2011 MUITO IMPORTANTE Devido a um bug detectado no motor da base de dados, situação agora corrigida pelo fabricante, esta nova actualização do GIAE é disponibilizada numa
Unidade VI. Validação e Verificação de Software Teste de Software. Conteúdo. Técnicas de Teste. Estratégias de Teste
Unidade VI Validação e Verificação de Software Teste de Software Profa. Dra. Sandra Fabbri Conteúdo Técnicas de Teste Funcional Estrutural Baseada em Erros Estratégias de Teste Teste de Unidade Teste de
Disciplina: Introdução à Informática Profª Érica Barcelos
Disciplina: Introdução à Informática Profª Érica Barcelos CAPÍTULO 4 1. ARQUITETURA DO COMPUTADOR- HARDWARE Todos os componentes físicos constituídos de circuitos eletrônicos interligados são chamados
Sistemas Operativos I
Gestão da Memória Luis Lino Ferreira / Maria João Viamonte Fevereiro de 2006 Gestão da Memória Gestão de memória? Porquê? Atribuição de instruções e dados à memória Endereços lógicos e físicos Overlays
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
implementação Nuno Ferreira Neves Faculdade de Ciências de Universidade de Lisboa Fernando Ramos, Nuno Neves, Sistemas Operativos, 2014 2015
Sistemas de ficheiros: implementação Nuno Ferreira Neves Faculdade de Ciências de Universidade de Lisboa Objetivos da aula Descrever algunsdetalhes daimplementação deumsistema de ficheiros Discutir algoritmos
1.3. Componentes dum sistema informático HARDWARE SOFTWARE
1.3. Componentes dum sistema informático Computador Sistema Informático HARDWARE SOFTWARE + Periféricos Sistema Operativo Aplicações HARDWARE - representa todos os componentes físicos de um sistema informático,
Márcio Leandro Moraes Rodrigues. Frame Relay
Márcio Leandro Moraes Rodrigues Frame Relay Introdução O frame relay é uma tecnologia de chaveamento baseada em pacotes que foi desenvolvida visando exclusivamente a velocidade. Embora não confiável, principalmente
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
Sistemas Operacionais Processos e Threads
Sistemas Operacionais Processos e Threads Prof. Marcos Monteiro, MBA http://www.marcosmonteiro.com.br contato@marcosmonteiro.com.br 1 Estrutura de um Sistema Operacional 2 GERÊNCIA DE PROCESSOS Um processo
CHECK - LIST - ISO 9001:2000
REQUISITOS ISO 9001: 2000 SIM NÃO 1.2 APLICAÇÃO A organização identificou as exclusões de itens da norma no seu manual da qualidade? As exclusões são relacionadas somente aos requisitos da sessão 7 da
4. Tarefa 16 Introdução ao Ruído. Objetivo: Método: Capacitações: Módulo Necessário: Análise de PCM e de links 53-170
4. Tarefa 16 Introdução ao Ruído Objetivo: Método: Ao final desta Tarefa você: Estará familiarizado com o conceito de ruído. Será capaz de descrever o efeito do Ruído em um sistema de comunicações digitais.
Entrada e Saída. Interface entre periféricos, processador e memória. Fonte: Minho - Portugal 1
Entrada e Saída Interface entre periféricos, processador e memória Fonte: Minho - Portugal 1 Ligação Processador/Memória - Periférico Processador Memória Controlo Dados Controlador Fonte: Minho - Portugal
TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO. SISTEMAS DE GESTÃO DE BASE DE DADOS Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO
TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO CONCEITOS BÁSICOS 1 Necessidade das base de dados Permite guardar dados dos mais variados tipos; Permite
Sistemas Tolerantes a Falhas
Sistemas Tolerantes a Falhas Ténicas de TF para Diversidade de Dados Prof. Jó Ueyama 1 Introdução A diversidade de dados vem complementar as técnicas de diversidade vistas até agora A diversidade de dados
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
RAID 1. RAID 0 2. RAID 1
EJAV - ESCOLA ESTADUAL DE EDUCAÇÃO BÁSICA E PROFISSIONAL JOSÉ APRÍGIO BRANDÃO VILELA Curso Técnico de Informática Professor Jonathas José de Magalhães AULA 08 - RAID RAID O desempenho das memórias secundárias
Teste de Software. Objetivos e Limites. Objetivos e Limites. Objetivos e Limites. Objetivos e Limites. Objetivos e Limites
Teste de Software Prof. Avelino F. Zorzo PUCRS Elaborado inicialmente pelo prof. Bernardo Copstein Teste é uma coisa óbvia? Qual a complexidade da questão? tá pronto, profi, é só testar... ué, mas pra
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
PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br
- Aula 5 - O NÍVEL DA LINGUAGEM DE MONTAGEM 1. INTRODUÇÃO É relativamente fácil compreender os fundamentos da programação de computadores, sob o ponto de vista da inteligibilidade dos comandos de alto
Servidores Virtuais. Um servidor à medida da sua empresa, sem investimento nem custos de manutenção.
es Virtuais Um servidor à medida da sua empresa, sem investimento nem custos de manutenção. O que são os es Virtuais? Virtual é um produto destinado a empresas que necessitam de um servidor dedicado ligado
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
2 Atualidade de uma base de dados
2 Atualidade de uma base de dados Manter a atualidade de uma base de dados é um problema que pode ser abordado de diferentes maneiras. Cho e Garcia-Molina [CHO] definem esse problema da seguinte forma:
Juciara Nepomuceno de Souza Rafael Garcia Miani. Teste de Software
Juciara Nepomuceno de Souza Rafael Garcia Miani Teste de Software Técnicas de Teste de Software Testabilidade Operabilidade; Observabilidade; Controlabilidade; Decomponibilidade; Simplicidade; Estabilidade;
UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação
SOFT DISCIPLINA: Engenharia de Software AULA NÚMERO: 10 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir os conceitos de coesão e acoplamento. DESENVOLVIMENTO Projetar
Alta Disponibilidade na IPBRICK
Alta Disponibilidade na IPBRICK IPBRICK International 5 de Dezembro de 2012 1 Conteúdo 1 Introdução 3 1.1 Vantagens.................................... 3 2 Requisitos HA 4 3 Configuração HA 4 3.1 Serviço
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
3 SCS: Sistema de Componentes de Software
3 SCS: Sistema de Componentes de Software O mecanismo para acompanhamento das chamadas remotas se baseia em informações coletadas durante a execução da aplicação. Para a coleta dessas informações é necessário
ARQUITETURA DE COMPUTADORES
1 ARQUITETURA DE COMPUTADORES U C P Prof. Leandro Coelho Plano de Aula 2 Aula Passada Definição Evolução dos Computadores Histórico Modelo de Von-Neumann Básico CPU Mémoria E/S Barramentos Plano de Aula
CT-234. Análise de Algoritmos e Complexidade Estrutural. Carlos Alberto Alonso Sanches
CT-234 Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural Carlos Alberto Alonso Sanches CT-234 4) Árvores balanceadas AVL, Rubro-Negras, B-Trees Operações em árvores binárias de busca
Engenharia de Software Sistemas Distribuídos
Engenharia de Software Sistemas Distribuídos 2 o Semestre de 2009/2010 FEARSe Requisitos para a 1 a entrega 18 de Março de 2010 1 Introdução O projecto conjunto das disciplinas de Engenharia de Software
TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com
- Aula 5-1. A CAMADA DE TRANSPORTE Parte 1 Responsável pela movimentação de dados, de forma eficiente e confiável, entre processos em execução nos equipamentos conectados a uma rede de computadores, independentemente
Entendendo como funciona o NAT
Entendendo como funciona o NAT Vamos inicialmente entender exatamente qual a função do NAT e em que situações ele é indicado. O NAT surgiu como uma alternativa real para o problema de falta de endereços
R S Q 0 0 1 0 1 0 1 0 0 1 1 0 Tabela 17 - Tabela verdade NOR
19 Aula 4 Flip-Flop Flip-flops são circuitos que possuem a característica de manter os bits de saída independente de energia, podem ser considerados os princípios das memórias. Um dos circuitos sequenciais
Programação 2ºSemestre MEEC - 2010/2011. Programação 2º Semestre 2010/2011 Enunciado do projecto
Mestrado Integrado em Engenharia Electrotécnica e de Computadores Programação 2º Semestre 2010/2011 Enunciado do projecto O projecto a desenvolver pelos alunos consistirá numa sistema de monitorização,
1. Avaliação de impacto de programas sociais: por que, para que e quando fazer? (Cap. 1 do livro) 2. Estatística e Planilhas Eletrônicas 3.
1 1. Avaliação de impacto de programas sociais: por que, para que e quando fazer? (Cap. 1 do livro) 2. Estatística e Planilhas Eletrônicas 3. Modelo de Resultados Potenciais e Aleatorização (Cap. 2 e 3
1 Transmissão digital em banda base
1 Transmissão digital em banda base A transmissão digital oferece algumas vantagens no que diz respeito ao tratamento do sinal, bem como oferecimento de serviços: Sinal pode ser verificado para avaliar
Acronis Servidor de Licença. Manual do Utilizador
Acronis Servidor de Licença Manual do Utilizador ÍNDICE 1. INTRODUÇÃO... 3 1.1 Descrição geral... 3 1.2 Política de licenças... 3 2. SISTEMAS OPERATIVOS SUPORTADOS... 4 3. INSTALAR O SERVIDOR DE LICENÇA
UPS. Unidades de Alimentação Ininterrupta
UPS Uma UPS é um dispositivo que, quando em funcionamento correcto, ajuda a garantir que a alimentação dos equipamentos que estão a ela ligados, não sejam perturbados, fornecendo energia, através de uma
Redes de Comunicações. Redes de Comunicações
Capítulo 0 Introdução 1 Um pouco de história Século XVIII foi a época dos grandes sistemas mecânicos Revolução Industrial Século XIX foi a era das máquinas a vapor Século XX principais conquistas foram
Índice. Como aceder ao serviço de Certificação PME? Como efectuar uma operação de renovação da certificação?
Índice Como aceder ao serviço de Certificação PME? Como efectuar uma operação de renovação da certificação? Como efectuar uma operação de confirmação de estimativas? Como aceder ao Serviço de Certificação
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.
Níveis de RAID - RAID 0
RAID RAID é acrônimo para Redundant Array of Inexpensive Disks. Este arranjo é usado como um meio para criar um subsistema de unidade de disco, rápido e confiável, através de discos individuais. RAID é
Modelos de cobertura em redes WIFI
Comunicação sem fios Departamento de Engenharia Electrotécnica Secção de Telecomunicações Mestrado em Fisica 2005/2006 Grupo: nº e Modelos de cobertura em redes WIFI 1 Introdução Nos sistemas de comunicações
MÓDULO 8 ARQUITETURA DOS SISTEMAS DE BANCO DE DADOS
MÓDULO 8 ARQUITETURA DOS SISTEMAS DE BANCO DE DADOS Quando falamos em arquitetura, normalmente utilizamos esse termo para referenciar a forma como os aplicativos computacionais são estruturados e os hardwares