103 resultados para Falhas de rolamentos
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:
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:
Empresas mantêm estoques como forma de antecipar a necessidade do cliente, usufruindo, assim, de vantagem competitiva. No entanto, há custos associados a esses estoques, devendo haver um balanceamento em relação ao diferencial que a sua existência pode trazer. O aumento dos níveis de competitividade no mercado obriga as companhias a diminuírem seus custos, reduzindo, pois, parte de seu estoque, podendo provocar perdas de vendas por falta de mercadoria. O desafio é prever com a maior precisão possível qual a quantidade requerida de cada produto e o momento certo em que o mesmo será necessário. É nesse sentido que a Análise e Previsão de Demanda vem sendo utilizada como ferramenta para diminuir a distância entre a necessidade e a disponibilidade de estoque. Esta dissertação descreve as vantagens competitivas da manutenção do estoque e os custos a ele associados, bem como os tipos de demanda, além dos métodos de Análise e Previsão de Demanda como forma de minimizar custos, melhorando o nível e a disponibilidade de estoque. Para tanto, foi desenvolvido um estudo de caso em uma empresa do ramo comercial com o propósito de validar as técnicas descritas para futura utilização em todas as linhas e marcas de produtos comercializados pela companhia estudada.
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:
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:
Devido às altas tensões envolvidas nos mecanismos de fadiga por contato, o uso de aços de alta dureza é uma exigência na fabricação de mancais de rolamento. Se a dureza de uma das partes em contato é baixa (sendo menor que 58 HRC), a ocorrência da descamação de camadas superficiais torna-se iminente no material menos duro. Estes defeitos superficiais podem, eventualmente, levar o componente a fraturar na direção radial se as tensões circunferenciais trativas forem relativamente elevadas. Os rolamentos que apresentam estes tipos de falhas são fabricados com o aço SAE 52100 temperado e revenido, com têmpera total. Recentemente tem sido sugerida a utilização do aço SAE 52100 processado por tratamento isotérmico para a obtenção de bainita inferior já que esta microestrutura apresenta boa tenacidade e resistência à fadiga associadas a uma alta dureza. Neste trabalho, foram realizados tratamentos térmicos utilizando o aço SAE 52100 a fim de obter microestruturas cujas matrizes fossem, predominantemente, martensita revenida ou bainita inferior. Para a condição martensítica, utilizou-se o tratamento térmico convencional de têmpera e revenido com três temperaturas de revenido para a obtenção de diferentes quantidades de austenita retida na matriz martensítica. Para a condição bainítica, utilizou-se o tratamento de austêmpera para a obtenção de bainita inferior com alto nível de dureza O comportamento mecânico do aço SAE 52100, tratado termicamente nas quatro condições, foi avaliado através de ensaio de tração e ensaio de impacto Charpy. O comportamento em fadiga, por sua vez, foi avaliado através de ensaios de propagação de trinca por fadiga realizados em corpos de prova tensão compacto. Para a determinação da influência da razão de carregamento (R=Kmin/Kmax) sobre o comportamento em fadiga este parâmetro foi variado entre 0,1 e 0,5. Foram realizadas análises fractográficas em todas as superfícies de fratura e de fadiga. Os resultados dos testes indicaram um melhor comportamento em fadiga para o aço SAE 52100 com microestrutura bainítica. No entanto para um R = 0,5, este material apresentou comportamento semelhante ao martensítico de mesmo nível de dureza na região limiar de fadiga. Observou-se o fenômeno de fechamento de trinca nos testes realizados com R de 0,1 e 0,3, sendo este efeito mais pronunciado para o menor valor de R.
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.
Resumo:
Uma etapa fundamental no desenvolvimento de sistemas tolerantes a falhas é a fase de validação, onde é verificado se o sistema está reagindo de maneira correta à ocorrência de falhas. Uma das técnicas usadas para validar experimentalmente um sistema é injeção de falhas. O recente uso de sistemas largamente distribuídos para execução dos mais diversos tipos de aplicações, faz com que novas técnicas para validação de mecanismos de tolerância a falhas sejam desenvolvidas considerando este novo cenário. Injeção de falhas no sistema de comunicação do nodo é uma técnica tradicional para a validação de aplicações distribuídas, para forçar a ativação dos mecanismos de detecção e recuperação de erros relacionados à troca de mensagens. A condução de experimentos com injetores de comunicação tradicionais é feita pelo uso do injetor em uma máquina do sistema distribuído. Se o cenário desejado é de múltiplas falhas, o injetor deve ser instanciado independentemente nas n máquinas que as falhas serão injetadas. O controle de cada injetor é individual, o que dificulta a realização do experimento. Esta dificuldade aumenta significativamente se o cenário for um sistema distribuído de larga escala. Outro problema a considerar é a ausência de ferramentas apropriadas para a emulação de determinados cenários de falhas. Em aplicações distribuídas de larga escala, um tipo comum de falha é o particionamento de rede. Não há ferramentas que permitam diretamente a validação ou a verificação do processo de defeito de aplicações distribuídas quando ocorre um particionamento de rede Este trabalho apresenta o estudo de uma abordagem para injeção de falhas que permita o teste de atributos de dependabilidade de aplicações distribuídas de pequena e larga escala implementadas em Java. A abordagem considera a não obrigatoriedade da alteração do código da aplicação sob teste; a emulação de um cenário de falhas múltiplas que ocorrem em diferentes nodos, permitindo o controle centralizado do experimento; a validação de aplicações que executem em sistemas distribuídos de larga escala e consideram um modelo de falhas realista deste tipo de ambiente, incluindo particionamentos de rede. A viabilidade da abordagem proposta é mostrada através do desenvolvimento do protótipo chamado FIONA (Fault Injector Oriented to Network Applications), o qual atualmente injeta falhas em aplicações desenvolvidas sob o protocolo UDP.