22 resultados para Gerencia : Falhas
em Lume - Repositório Digital da Universidade Federal do Rio Grande do Sul
Resumo:
Este trabalho investiga a aplicação de métodos e técnicas de correlação de alarmes na detecção e diagnóstico de falhas em sistemas supervisionados por computador. Atualmente, alguns centros de supervisão ainda não se utilizam destas técnicas para o tratamento das informações recebidas de suas redes de supervisão, ficando para os operadores a responsabilidade de identificar estas correlações. Com o crescente volume de informações recebidas pelos centros de supervisão, devido ao aumento da heterogeneidade e do número de equipamentos supervisionados, torna a identificação manual da correlação dos alarmes lenta e pouco precisa. Objetivando melhorar a qualidade do serviços prestados pelos centros de supervisões, este trabalho propõe o uso de uma rede Bayesiana como método de correlação de alarmes e uma técnica de limitação de escopo para atingir uma melhor performance na propagação desta correlação. Através dos conceitos desenvolvidos neste trabalho, foi implementado um protótipo de correlação de alarmes para um sistema de supervisão existente no mercado, neste protótipo modela-se a rede Bayesiana em um banco de dados relacional e, como resultado desta implementação apresenta-se a interface desenvolvida para a supervisão.
Resumo:
O presente trabalho realiza uma validação experimental, através da técnica de injeção de falhas por software, de sistemas de informações que utilizam gerenciadores de banco de dados distribuídos comerciais. Estes experimentos visam a obtenção de medidas da dependabilidade do SGBD utilizado, levantamento do custo de seus mecanismos de tolerância a falhas e a real aplicabilidade de SGBDs comerciais em sistemas de missão crítica. Procurou-se avaliar e validar as ferramentas de injeção de falhas utilizadas, no caso específico deste trabalho a ComFIRM e o FIDe. Inicialmente são introduzidos e reforçados os conceitos básicos sobre o tema, que serão utilizados no decorrer do trabalho. Em seguida são apresentadas algumas ferramentas de injeção de falhas em sistemas distribuídos, bem como os modelos de falhas em banco de dados distribuídos. São analisados alguns estudos de aplicação de ferramentas de injeção de falhas em bancos de dados distribuídos. Concluída a revisão bibliográfica é apresentado o modelo de software e hardware que foi implementado, destacando o gerador de cargas de trabalho GerPro-TPC e o gerenciador de injeções e resultados GIR. O GerPro-TPC segue as especificações TPC-c para a simulação de um ambiente transacional comercial padrão e o GIR realiza a integração das ferramentas de injeção de falhas utilizadas, bem como a elaboração do cenário de falhas a injetar e a coleta dos resultados das falhas injetadas. Finalmente são descritos os experimentos realizados sobre o SGBD PROGRESS. São realizados 361 testes de injeções de falhas com aproximadamente 43.000 falhas injetadas em experimentos distintos. Utiliza-se dois modelos de falhas: um focado em falhas de comunicação e outro em falhas de hardware. Os erros resultantes das falhas injetadas foram classificados em erros ignorados/mascarados, erros leves, erros graves e erros catastróficos. Dos modelos de falhas utilizados as que mais comprometeram a dependabilidade do SGBD foram as falhas de hardware. As falhas de comunicação somente comprometeram a disponibilidade do sistema alvo.
Resumo:
O modelo de objetos apresenta-se como um modelo promissor para o desenvolvimento de software tolerante a falhas em virtude de características inerentes ao próprio modelo de objetos, tais como abstração de dados, encapsulamento, herança e reutilização de objetos (componentes). O uso de técnicas orientadas a objetos facilita o controle da complexidade do sistema porque promove uma melhor estruturação de seus componentes e também permite que componentes já validados sejam reutilizados [LIS96]. Técnicas básicas para tolerância a falhas em software baseiam-se na diversidade de projeto e de implementação de componentes considerados críticos. Os componentes diversitários são gerenciados através de alguma técnica que tenha por objetivo assegurar o fornecimento do serviço solicitado, como, por exemplo, a conhecida técnica de blocos de recuperação. Reflexão Computacional é a capacidade que um sistema tem de fazer computações para se auto analisar. Ela é obtida quando o programa pára sua execução por um período de tempo para fazer computações sobre si próprio; analisa seu estado, se o processamento está correto, se pode prosseguir com a execução e atingir o objetivo satisfatoriamente; se não precisa mudar de estratégia ou algoritmo de execução, fazendo, ainda, processamentos necessários para o sucesso da execução. Um sistema de programação distribuída consiste basicamente em vários aplicativos executados em diferentes computadores, os quais realizam troca de mensagens para solucionar um problema comum. A comunicação entre os computadores é realizada através da rede que os interliga. As Redes que controlam sistemas críticos são normalmente de pequena escala pois redes de grandes dimensões podem apresentar atrasos e baixa confiabilidade. Portanto, a abordagem aqui proposta consiste em utilizar, em um ambiente distribuído, uma arquitetura reflexiva aliada a técnicas do domínio da tolerância a falhas para promover a separação entre as atividades de controle, salvamento, recuperação, distribuição e validação de componentes e as funcionalidades executadas pelo próprio componente, a fim de que falhas não venham a prejudicar a disponibilidade, confiabilidade e clareza de determinadas computações. A proposta apóia-se num estudo de caso, implementado na linguagem de programação Java, com seus protocolos de reflexão computacional e de comunicação.
Resumo:
Um dos modos de avaliar a confiabilidade de um produto é verificando o comportamento das falhas em testes de uso contínuo. Contudo, essa informação não permite saber em que data a falha ocorrerá. Para resolver esse impasse abordamos na presente dissertação a modelagem dos tempos de falha ao longo do calendário. A modelagem desses tempos permite uma melhor administração do sistema de garantia e assistência técnica, além de possibilitar a empresa estimar e monitorar a confiabilidade do produto. Para proceder com a modelagem, é preciso, inicialmente, conhecer a distribuição de três variáveis: o tempo de vida do produto, em horas de uso contínuo; o tempo de uso do produto, em horas por dia; e o intervalo de tempo entre a manufatura e a venda, em dias. Conhecendo o comportamento dessa variáveis duas alternativas de solução são apresentadas: (a) Modelagem via simulação de Monte Carlo e (b) Modelagem através de solução matemática fechada. São discutidos os casos em que há um ou vários grupos de clientes que utilizam o produto.
Resumo:
Este trabalho define e implementa um sistema de controle de consumo para redes de computadores, objetivando aumentar o tempo de operação da rede em caso de operação com recursos limitados e redução de consumo de energia em situações de fornecimento normal. Na definição do sistema, denominado NetPower, foi estabelecida uma estrutura através da qual um gerente (coordenador) monitora as atividades dos equipamentos vinculados à rede, e determina alterações nos estados de consumo respectivos, de acordo com as necessidades ou atendimento de padrões de otimização. Aos equipamentos podem ser atribuídos diferentes privilégios em uma hierarquia adaptável a diversos ambientes. Um reserva oferece opção às falhas do gerente. A implementação está baseada no protocolo SNMP (Simple Network Management Protocol) para a gerência e são considerados preponderantemente os padrões para controle de consumo dos equipamentos Advanced Power Management, APM, e Advanced Configuration and Power Interface Specification, ACPI. Além da arquitetura do gerente e dos agentes, foi definida também uma MIB (Management Information Base) para controle de consumo. No projeto do sistema, foi privilegiado o objetivo de utilização em qualquer ambiente de rede, sem preferência por equipamentos de algum fabricante específico ou por arquitetura de hardware. Tecnologias de domínio público foram utilizadas, quando possível. No futuro este sistema pode fazer parte da distribuição de sistemas operacionais, incorporando controle de consumo às redes. No texto é feita uma comparação entre os softwares existentes para controle de consumo, são apresentados os recursos de controle de consumo disponíveis nos equipamentos de computação, seguido da descrição do protocolo de gerência utilizado. Em seguida, é apresentada a proposta detalhada do sistema de controle e descrita da implementação do protótipo.
Resumo:
Neste trabalho apresentam-se pocedimentos para análise não linear de estruturas de materiais compostos laminados reforçados por fibras. A formulação é baseada em uma descrição cinemática incremental Lagrangeana Total, que permite o tratamento de deslocamentos arbitrariamente grandes com pequenas deformações, utilizando elementos finitos tridimensionais degenerados deduzidos para a análise de cascas. As estruturas são consideradas como submetidas a cargas mecânicas e a ações de temperatura e de umidade. O material é suposto elástico linear com propriedades dependentes, ou não, dos valores da temperatura e da concentração de umidade, ou viscoelástico linear com uma relação constitutiva em integral hereditária , e com comportamento higrotermo-reologicamente simples. As lâminas são consideradas como sujeitas a falhas, as quais são detectadas através de critérios macroscópicos, baseados em tensões ou em deformações. As equações não lineares de equilíbrio são resolvidas através de procedimentos iterativos e as deformações dependentes do tempo são avaliadas pelo método das variáveis de estado. Diversos exemplos numéricos de estruturas submetidas à flexão, flambagem elástica e viscoelástica e falhas são apresentados.
Resumo:
Este trabalho apresenta um método para detectar falhas no funcionamento de máquinas rotativas baseado em alterações no padrão de vibração do sistema e no diagnóstico da condição de operação, por Lógica Fuzzy. As modificações ocorridas são analisadas e servem como parâmetros para predizer falhas incipientes bem como a evolução destas na condição de operação, possibilitando tarefas de manutenção preditiva. Utiliza-se uma estrutura mecânica denominada de Sistema Rotativo (Figura 1), apropriada para as simulações das falhas. Faz-se a aquisição de dados de vibração da máquina usando-se um acelerômetro em chip biaxial de baixa potência. As saídas são lidas diretamente por um contador microprocessador não requerendo um conversor A/D. Um sistema de desenvolvimento para processamento digital de sinais, baseado no microprocessador TMS320C25, o Psi25, é empregado na aquisição dos sinais de vibração (*.dat), do Sistema Rotativo. Os arquivos *.dat são processados através da ferramenta matemática computacional Matlab 5 e do programa SPTOOL. Estabelece-se o padrão de vibração, denominado assinatura espectral do Sistema Rotativo (Figura 2) Os dados são analisados pelo sistema especialista Fuzzy, devidamente calibrado para o processo em questão. São considerados, como parâmetros para a diferenciação e tomada de decisão no diagnóstico do estado de funcionamento pelo sistema especialista, a freqüência de rotação do eixo-volante e as amplitudes de vibração inerentes a cada situação de avaria. As falhas inseridas neste trabalho são desbalanceamentos no eixovolante (Figura 1), através da inserção de elementos desbalanceadores. A relação de massa entre o volante e o menor elemento desbalanceador é de 1:10000. Tomando-se como alusão o conhecimento de especialistas no que se refere a situações normais de funcionamento e conseqüências danosas, utilizam-se elementos de diferentes massas para inserir falhas e diagnosticar o estado de funcionamento pelo sistema fuzzy, que apresenta o diagnóstico de formas qualitativa: normal; falha incipiente; manutenção e perigo e quantitativa, sendo desta maneira possível a detecção e o acompanhamento da evolução da falha.
Resumo:
A prestação de serviços tem sido um importante diferencial dentro do cenário competitivo atual. Para empresas de manufatura, um desses serviços de destaque é o atendimento à garantia, o qual deve ser desenhado de forma a maximizar a satisfação do cliente, operando dentro de custos otimizados. Para permitir a alocação mais eficiente de recursos aos serviços de atendimento à garantia, é importante entender o comportamento das falhas do produto durante o período de garantia, o qual depende da confiabilidade do produto, do tempo e intensidade de uso e do volume de vendas. Esta dissertação trata da aplicação e adaptação de um modelo apropriado para a predição de falhas durante o período de garantia. Esse modelo poderá auxiliar as organizações a manter controle sobre o custo do atendimento à garantia, auxiliando na melhoria contínua dos serviços prestados.
Resumo:
Tolerância a falhas é um dos aspectos mais importantes a serem considerados no desenvolvimento de aplicações, especialmente com a participação cada vez maior de sistemas computacionais em áreas vitais da atividade humana. Dentro deste cenário, um dos fatores a serem considerados na persecução deste objetivo é o gerenciamento de atomicidade. Esta propriedade, por sua vez, apresenta duas vertentes principais: o controle de concorrência e a recuperação de estados. Considerando-se a tolerância a falhas e, particularmente, a atomicidade como requisitos com alto grau de recorrência em aplicações, verifica-se a importância de sua reutilização de forma simples e transparente e do estudo de meios de prover tal capacidade. O presente trabalho procurou pesquisar e aplicar meios de produzir soluções reutilizáveis para implementação de programas tolerantes a falhas, mais especificamente de técnicas de controle de atomicidade, utilizando vários paradigmas computacionais. Neste intuito, foram pesquisados mecanismos de introdução de atomicidade em aplicações e suas respectivas demandas, para então extrair critérios de análise dos paradigmas a serem utilizados na implementações das soluções. Buscou-se suporte nestes paradigmas às demandas previamente pesquisadas nos mecanismos de gerenciamento de atomicidade e procurou-se chegar a soluções reutilizáveis mantendo simplicidade de uso, possibilidade de alteração dinâmica, transparência, adaptabilidade e velocidade de desenvolvimento. Devido à existência de uma grande diversidade de situações que requerem diferentes implementações de atomicidade, alguns cenários típicos foram selecionados para aplicação e avaliação das técnicas aqui sugeridas, procurando abranger o maior número possível de possibilidades. Desta maneira, este trabalho comparou situações opostas quanto à concorrência pelos dados, implementando cenários onde ocorrem tanto acesso cooperativo quanto competitivo aos dados. Dentro de cada um dos cenários estudados, buscaram-se situações propícias ao emprego das características dos paradigmas e analisou-se o resultado de sua aplicação quanto aos critérios definidos anteriormente. Várias soluções foram analisadas e comparadas. Além dos mecanismos de gerenciamento de atomicidade, também foram estudados vários paradigmas que pudessem ser empregados na implementação de soluções com alto grau de reutilização e adaptabilidade. As análises e sugestões posteriores às implementações serviram como substrato para conclusões e sugestões sobre a melhor maneira de empregar tais soluções nos cenários atômicos estudados. Com isso, foi possível relacionar características e capacidades de cada paradigma com a melhor situação de demanda de atomicidade na qual os mesmos são aplicáveis, moldando uma linha de soluções que favoreçam sua reutilização. Um dos objetivos mais importantes do trabalho foi, entretanto, observar o funcionamento conjunto destes paradigmas, estudando como os mesmos podem atuar de forma simbiótica e de que forma os conceitos de um paradigma podem complementar os de outro.
Resumo:
Neste trabalho é apresentado o desenvolvimento de um método de análise de falhas, por meio de análise de vibrações, para a bancada de final de linha das transmissões dos tratores linha 5000 da John Deere Brasil, o qual tem como finalidade diferenciar transmissões aprovadas de transmissões com defeito em engrenagens na caixa de marchas, e também auxiliar na identificação da engrenagem com defeito. Para o desenvolvimento deste método foram utilizados equipamentos de medição e aquisição de dados disponíveis na John Deere Brasil. Os testes foram realizados na bancada de final da linha de transmissões, possibilitando a aplicação do método sem a necessidade de alteração na bancada de testes. Os sinais padrões da transmissão em cada uma das quatro marchas foram levantados através da medição de quatro transmissões boas. De posse destes padrões, (assinatura em cada marcha), partiu-se para a identificação de como estes são alterados por diferentes defeitos em diversas engrenagens da caixa de marchas, sendo para isto induzidos defeitos em diferentes engrenagens da caixa de marchas de transmissões boas. Os sinais em todas as marchas nestas transmissões com defeito induzido foram medidos e analisado as alterações em relação aos padrões, resultando a conclusão de que a aplicação do método de análise de vibrações no final de linha de transmissões da John Deere Brasil é possível, tanto para a diferenciação entre transmissões boas e transmissões com defeito em engrenagens da caixa de marchas, quanto como auxiliar na identificação de qual engrenagem da caixa de marchas está com defeito.
Resumo:
Técnicas de tolerância a falhas visam a aumentar a dependabilidade dos sistemas nos quais são empregadas. Entretanto, há necessidade de garantir a confiança na capacidade do sistema em fornecer o serviço especificado. A validação possui como objetivo propiciar essa garantia. Uma técnica de validação bastante utilizada é a injeção de falhas, que consiste na introdução controlada de falhas no sistema para observar seu comportamento. A técnica de injeção de falhas acelera a ocorrência de falhas em um sistema. Com isso, ao invés de esperar pela ocorrência espontânea das falhas, pode-se introduzi-las intencionalmente, controlando o tipo, a localização, o disparo e a duração das falhas. Injeção de falhas pode ser implementada por hardware, software ou simulação. Neste trabalho são enfocadas técnicas de injeção de falhas por software, desenvolvidas nos níveis da aplicação e do sistema operacional. O trabalho apresenta o problema da validação, através da injeção de falhas, de um protocolo de troca de pacotes. Enfoque especial é dado ao impacto resultante da inclusão de um módulo extra no protocolo, uma vez que o mesmo apresenta restrições temporais. O trabalho investiga alternativas de implementação de injetores de falhas por software que minimizem este impacto. Tais alternativas referem-se a localização do injetor de falhas no sistema, a forma de ativação das atividades do injetor de falhas e a operação de injeção de falhas em si. Um toolkit para experimentos de intrusão da injeção de falhas é apresentado. O alvo da injeção de falhas é um protocolo com característica tempo real. O toolkit desenvolvido, denominado INFIMO (INtrusiveless Fault Injector MOdule), visa a analisar, de forma experimental, a intrusão do injetor de falhas sobre o protocolo alvo. O INFIMO preocupa-se com protocolos com restrições temporais por esses constituírem um desafio sob o ponto de vista de injeção de falhas. O INFIMO suporta falhas de comunicação, as quais podem ocasionar a omissão de alguns pacotes. O INFIMO apresenta duas ferramentas de injeção de falhas: INFIMO_LIB, implementada no nível da aplicação e INFIMO_DBG implementada com auxílio de recursos do sistema operacional. Destacam-se ainda como contribuições do INFIMO a definição e a implementação do protocolo alvo para experimentos de injeção de falhas, o protocolo INFIMO_TAP. Além disso, o INFIMO apresenta métricas para avaliação da intrusão provocada pelo injetor de falhas no protocolo alvo.
Resumo:
Nos ultimos anos, com a crescente popularização das redes de computadores baseadas no protocolo IP, desde pequenas redes até metropolitanas começaram a se agrupar e a fazer do que hoje se conhece como a rede mundial de computadores.Apesar dos benefícios de comunicação e troca de informação da Internet, esse feômeno global também trouxe problemas de segurança, pois a origem e estrutura dos protocolos utilizados na comunicação entre as diversas máquinas limitam as possibilidades de prevenir, identificar ou detectar possíveis ataques ou intrusos. Assim, várias ferramentas surgiram para prevenir e auxiliar na tarefa de identicar problemas de segurança nas redes como firewalls, sniffers e sistemas de detecção de intrusão. Apesar dos benefícios trazidos por essas novas tecnologias, surgiram muitas dúvidas referentes a segurança que esses recursos proporcionam. Afinal, o desenvolvimento e validação desses sistemas são procedimentos bastante complexos e, freqüentemente, esses sitemas têm se tornado o alvo primário de um atacante. O resultado disso, não raramente, é uma falsa noção de segurança devido à utilização inadequada desses mecanismos, o que é, normalmente, mais prejudicial do que a simples inexistência de segurança em uma organização, mas cujas falhas são conhecidas por seus administradores. A realização de testes para verificação da segurança de uma organização é uma atividade fundamental a fim de alcançar um ambiente operacional seguro e de verificar a correta aplicação dos requisitos de segurança de uma organização.O uso de testes permite a uma empresa verificar com precisão a postura de segurança utilizada em seus sistemas ao mesmo tempo em que permite visualizar a sua rede da mesma maneira que um atacante a visualizaria. Ao visualizar a rede como atacante, pode-se verificar com que facilidade obtém-se informações da rede, quais suas fragilidades e a dificuldade que se tem para invadí-la. Assim, obtém-se uma visão mais realista da segurança de uma organização. Além de técnicas para a avaliação, é muito importante que se possua ferramentas para a realização desses testes. Assim, é possível automotizar a realização de testes e verificar com maior facilidade a existência de problemas em uma rede. A existência de ferramentas que testem sistemas de segurnaça é extremamente importante e necessária, pois, afinal, a segurança de toda uma rede pode depender fortemente de algum desses sistemas. Este trabalho apresenta as técncias existentes para a injecção de falhas visando verificar as que são mais eficientes para a valiação de sistemas de segurança de rede. Adicionalmente são apresentadas algumas técnicas para o teste de mecanismos de segurança e algumas ferramentas existentes para a realizão de tais testes. A partir desses estudos, é apresentado um modelo de ferramenta adequando as funções de um sistema de injeção de falhas ao teste de mecanismos de segurança em rede. Um protótipo essa ferramenta foi desenvolvido e é apresentado neste trabalho. Esse protótipo permite o envio e o recebimento de pacotes da pilha TCP/IP, podendo testar problemas em protocolos e sistemas utilizados na rede. E, através da utilização de plug-ins, permite que diversos tipos de ataque mais sofisticados possam ser realizados.
Resumo:
As redes de computadores experimentam um grande crescimento não apenas em tamanho, mas também no número de serviços oferecidos e no número de protocolos de alto nível e aplicações que são executados sobre elas. Boa parte desses software (ex.: ICQ e Napster), em geral, não está diretamente ligada a aplicações críticas, mas o seu uso não controlado pode degradar o desempenho da rede. Para que se possa medir o impacto dos mesmos sobre a infra-estrutura, mecanismos de gerência ligados à contabilização e caracterização de tráfego são desejáveis. Por outro lado, alguns protocolos, serviços e aplicações (ex. servidores DNS e Web) suportam aplicações e precisam ser monitorados e gerenciados com maior atenção. Para essa classe de software de rede, a simples contabilização e caracterização de tráfego não é suficiente; tarefas de gerência como teste de serviços, detecção e manipulação de falhas, medição de desempenho e detecção de intrusão são importantes para garantir alta disponibilidade e eficiência da rede e aplicações. As ferramentas existentes para essa finalidade são, entre aspectos, (a) não integradas (necessidade de uma ferramenta para monitorar cada aplicação), (b) centralizadas (não oferecem suporte à distribuição de tarefas de gerenciamento) e (c) pouco flexíveis (dificuldade em gerenciar novos protocolos, serviços e aplicações). Nesse contexto, a tese propõe uma arquitetura, centrada na monitoração passiva em temporal do tráfego de rede, para gerenciamento distribuído de protocolos de alto nível, serviços e aplicações em rede. Baseada da MIB (Management Information Base) Script do IETF (Internet Engineering Task Force), a arquitetura Trace oferece mecanismos para a delegação de tarefas de gerenciamento a gerentes intermediários, que interagem com agentes de monitoração e agentes de ação para executá-las. A tese propõe também PTSL (Protocol Trace Specification Language), uma linguagem gráfica/textual criada para permitir que gerentes de rede especificam as interações de protocolos (traços) que lhes interessam monitorar. As especificações são usadas pelso gerentes intermediários para programar os agentes de monitoração. Uma vez programadas, esses agentes passam a monitorar a ocorrência dos traços.As informações obtidas são analisadas pelos agentes intermediários, que podem requisitar de ação a execução de procedimentos (ex: scripts Perl), possibilitando a automação de diversas tarefas de gerenciamento. A arquitetura proposta é validada por um protótipo: a plataforma de gerenciamento Trace.
Resumo:
O presente trabalho explora a aplicação de técnicas de injeção de falhas, que simulam falhas transientes de hardware, para validar o mecanismo de detecção e de recuperação de erros, medir os tempos de indisponibilidade do banco de dados após a ocorrência de uma falha que tenha provocado um FUDVK. Adicionalmente, avalia e valida a ferramenta de injeção de falhas FIDe, utilizada nos experimentos, através de um conjunto significativo de testes de injeção de falhas no ambiente do SGBD. A plataforma experimental consiste de um computador Intel Pentium 550 MHz com 128 MB RAM, do sistema operacional Linux Conectiva kernel versão 2.2.13. O sistema alvo das injeções de falhas é o SGBD centralizado InterBase versão 4.0. As aplicações para a carga de trabalho foram escritas em VFULSWV SQL e executadas dentro de uma sessão chamada LVTO. Para a injeção de falhas foram utilizadas três técnicas distintas: 1) o comando NLOO do sistema operacional; 2) UHVHW geral no equipamento; 3) a ferramenta de injeção de falhas FIDe, desenvolvida no grupo de injeção de falhas do PPGC da UFRGS. Inicialmente são introduzidos e reforçados os conceitos básicos sobre o tema, que serão utilizados no decorrer do trabalho e são necessários para a compreensão deste estudo. Em seguida é apresentada a ferramenta de injeção de falhas Xception e são também analisados alguns experimentos que utilizam ferramentas de injeção de falhas em bancos de dados. Concluída a revisão bibliográfica é apresentada a ferramenta de injeção de falhas – o FIDe, o modelo de falhas adotado, a forma de abordagem, a plataforma de hardware e software, a metodologia e as técnicas utilizadas, a forma de condução dos experimentos realizados e os resultados obtidos com cada uma das técnicas. No total foram realizados 3625 testes de injeções de falhas. Com a primeira técnica foram realizadas 350 execuções, com a segunda técnica foram realizadas 75 execuções e com a terceira técnica 3200 execuções, em 80 testes diferentes. O modelo de falhas proposto para este trabalho refere-se a falhas de crash baseadas em corrupção de memória e registradores, parada de CPU, aborto de transações ou reset geral. Os experimentos foram divididos em três técnicas distintas, visando a maior cobertura possível de erros, e apresentam resultados bastante diferenciados. Os experimentos com o comando NLOO praticamente não afetaram o ambiente do banco de dados. Pequeno número de injeção de falhas com o FIDe afetaram significativamente a dependabilidade do SGBD e os experimentos com a técnica de UHVHW geral foram os que mais comprometeram a dependabilidade do SGBD.
Resumo:
Este trabalho trata da técnica de validação experimental de protocolos de comunicação confiável, através da injeção de falhas de comunicação. São estudadas inicialmente as técnicas de injeção de falhas, por hardware, software e simulação, e então são aprofundados os conceitos de injeção de falhas de comunicação, modelos de falha e especificação de experimentos de injeção de falhas. Em um segundo momento, são estudadas as formas de implementação de injetores de falhas em software, em suas duas formas mais comuns: no nível da aplicação e no nível do sistema operacional. São comentados os impactos da implementação de injetores no código da aplicação, por processos concorrentes à aplicação, em código utilizado pela aplicação e no meta-nível. Por fim, são estudados também que influências sofre a implementação de um injetor de falhas em um sistema operacional, e mais especificamente a de injetores de falhas de comunicação. O objetivo específico deste trabalho é implementar um injetor de falhas de comunicação bastante abrangente e flexível, situado dentro do núcleo do Sistema Operacional Linux. Para viabilizar esta implementação foi estudada também a arquitetura do Sistema Operacional Linux, sua decomposição em subsistemas e a interação entre estes. Foram estudadas também as várias técnicas de programação e mecanismos que o Sistema Operacional Linux fornece aos seus subsistemas. Estando completas a revisão bibliográfica a respeito de injeção de falhas e o estudo do código do Sistema Operacional Linux, são apresentadas a proposta e a implementação da ferramenta ComFIRM—Communication Fault Injection through Operating System Resource Modification, suas características e sua inserção dentro do núcleo do Sistema Operacional Linux. Finalizando este trabalho, são apresentados uma pequena série de testes de funcionamento e experimentos realizados com a ferramenta ComFIRM, visando demonstrar a correção de seu funcionamento, o cumprimento de seus objetivos e também sua praticidade e flexibilidade de uso. São apresentadas as conclusões deste trabalho, propostas de melhorias à ferramenta apresentada, bem como possibilidades de trabalhos futuros.