Tolerância a Falhas em Sistemas de Tempo-Real Distribuídos ... ?· O modelo certifica-se que as máquinas…

Download Tolerância a Falhas em Sistemas de Tempo-Real Distribuídos ... ?· O modelo certifica-se que as máquinas…

Post on 28-Jan-2019

212 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

<p>Tolerncia a Falhas em Sistemas de Tempo-Real </p> <p>Distribudos e Embebidos </p> <p>scar Emanuel de Brito Valente </p> <p>Dissertao para obteno do Grau de Mestre em </p> <p>Engenharia Informtica, rea de Especializao em </p> <p>Sistemas de Tempo-Real </p> <p>Orientador: Prof. Doutor Lus Miguel Pinho Nogueira </p> <p>Jri: </p> <p>Presidente: </p> <p>Prof. Dr. Maria de Ftima Coutinho Rodrigues, ISEP </p> <p>Vogais: </p> <p>Prof. Dr. Jorge Manuel Neves Coelho, ISEP </p> <p>Prof. Dr. Lus Miguel Pinho Nogueira, ISEP </p> <p>Porto, Setembro de 2013 </p> <p>ii </p> <p> scar Emanuel de Brito Valente, 2013 </p> <p>iii </p> <p>Resumo </p> <p>Este documento descreve um modelo de tolerncia a falhas para sistemas de tempo-real </p> <p>distribudos. A sugesto deste modelo tem como propsito a apresentao de uma sol u-</p> <p>o fivel, flexvel e adaptvel s necessidades dos sistemas de tempo-real distribudos. </p> <p>A tolerncia a falhas um aspeto extremamente importante na construo de sistemas </p> <p>de tempo-real e a sua aplicao traz inmeros benefcios. Um design orientado para a to-</p> <p>lerncia a falhas contribui para um melhor desempenho do sistema atravs do melhora-</p> <p>mento de aspetos chave como a segurana, a confiabilidade e a disponibilidade dos si s-</p> <p>temas. </p> <p>O trabalho desenvolvido centra-se na preveno, deteo e tolerncia a falhas de tipo l-</p> <p>gicas (software) e fsicas (hardware) e assenta numa arquitetura maioritariamente basea-</p> <p>da no tempo, conjugada com tcnicas de redundncia. O modelo preocupa-se com a efi-</p> <p>cincia e os custos de execuo. Para isso utilizam-se tambm tcnicas tradicionais de to-</p> <p>lerncia a falhas, como a redundncia e a migrao, no sentido de no prejudicar o tempo </p> <p>de execuo do servio, ou seja, diminuindo o tempo de recuperao das rplicas, em ca-</p> <p>so de ocorrncia de falhas. Neste trabalho so propostas heursticas de baixa complexida-</p> <p>de para tempo-de-execuo, a fim de se determinar para onde replicar os componentes </p> <p>que constituem o software de tempo-real e de negoci-los num mecanismo de coordena-</p> <p>o por licitaes. Este trabalho adapta e estende alguns algoritmos que fornecem solu-</p> <p>es ainda que interrompidos. Estes algoritmos so referidos em trabalhos de investiga-</p> <p>o relacionados, e so utilizados para formao de coligaes entre ns coadjuvantes. </p> <p>O modelo proposto colmata as falhas atravs de tcnicas de replicao ativa, tanto virtual </p> <p>como fsica, com blocos de execuo concorrentes. Tenta-se melhorar ou manter a sua </p> <p>qualidade produzida, praticamente sem introduzir overhead de informao significativo </p> <p>no sistema. O modelo certifica-se que as mquinas escolhidas, para as quais os agentes </p> <p>migraro, melhoram iterativamente os nveis de qualidade de servio fornecida aos com-</p> <p>ponentes, em funo das disponibilidades das respetivas mquinas. Caso a nova configu-</p> <p>rao de qualidade seja rentvel para a qualidade geral do servio, feito um esforo no </p> <p>sentido de receber novos componentes em detrimento da qualidade dos j hospedados </p> <p>localmente. Os ns que cooperam na coligao maximizam o nmero de execues para-</p> <p>lelas entre componentes paralelos que compem o servio, com o intuito de reduzir atra-</p> <p>sos de execuo. </p> <p>O desenvolvimento desta tese conduziu ao modelo proposto e aos resultados apresenta-</p> <p>dos e foi genuinamente suportado por levantamentos bibliogrficos de trabalhos de in-</p> <p>vestigao e desenvolvimento, literaturas e preliminares matemticos. O trabalho tem </p> <p>tambm como base uma lista de referncias bibliogrficas. </p> <p>iv </p> <p>Palavras-chave: tolerncia a falhas, sistemas de tempo-real distribudos, formao de coliga-</p> <p>o, rplicas ativas, agentes mveis, software baseado em componentes, configurao din-</p> <p>mica de QoS, coordenao orientada negociao. </p> <p>v </p> <p>vi </p> <p>Abstract </p> <p>This document describes a fault-tolerant model for real-time distributed systems. The </p> <p>proposal of this model intends to present a trustworthy, flexible and adaptable solution to </p> <p>meet real-time distributed systems main needs. </p> <p>Fault-tolerance is an extremely important feature in real-time systems design and its im-</p> <p>plementation has countless advantages. A fault-tolerance-oriented design contributes de-</p> <p>cisively to the overall system with the improvement of key-aspects like security, reliability </p> <p>and systems availability. </p> <p>The developed work focuses in preventing, detecting as well as tolerating both logical </p> <p>(software) and physical (hardware) faults and has its basis on a majorly time-based archi-</p> <p>tecture, united with redundancy techniques. It also aims at the cost-effectiveness of the </p> <p>execution therefore using several other traditional fault-tolerance techniques like redun-</p> <p>dancy, absent jeopardizing service execution time, and always trying to shorten replica re-</p> <p>covery time, in faulty situations. In this work are proposed low runtime complexity heuris-</p> <p>tics to determine where to replicate components that compose the real-time software </p> <p>and to negotiate them in an auction-based coordination. This work makes progress on </p> <p>some algorithms that provide a valid solution even if they are interrupted. These algo-</p> <p>rithms are referred in related investigations works, in order to accomplish coalition for-</p> <p>mations between mutual supporting nodes. </p> <p>This proposed model fills in possible gaps through virtual and physical active replication </p> <p>techniques, applying parallel execution blocks, in the attempt of improve or maintain the </p> <p>produced quality, quasi without creating significant overhead in the system. The proposed </p> <p>model ensures that the chosen machines, to which agents will migrate, improve progres-</p> <p>sively the quality of service levels provided to the components, according to the respec-</p> <p>tive hosts availabilities. It always makes an effort to receive incoming components at the </p> <p>cost of degrading others already hosted locally, if the new quality configuration elevates </p> <p>the service overall quality. The cooperating coalition nodes maximize the number of paral-</p> <p>lel executions between parallel components, in order to reduce execution delays. </p> <p>This thesis development leaded to the proposed model and presented results and was </p> <p>genuinely supported by research and development scientific works, detailed literature </p> <p>survey and mathematical preliminaries. This work is also supported by a list of necessary </p> <p>references. </p> <p>Keywords: fault-tolerance, real-time distributed systems, coalition formation, active replica, </p> <p>mobile agents, component-based software, dynamic QoS configuration, auction-bidding coor-</p> <p>dination. </p> <p>vii </p> <p>viii </p> <p>Agradecimentos </p> <p>Agradeo a todas as pessoas que me tm apoiado, desde o incio deste trabalho. Agradeo </p> <p>acima de tudo minha famlia, minha namorada Mariana Lopes, que sempre me deu cora-</p> <p>gem para enfrentar todo o tipo de obstculos, aos meus amigos cuja compreenso foi uma </p> <p>fonte de inspirao, e a Deus que me d a fora, a esperana e a alegria necessria no desen-</p> <p>volvimento do meu trabalho. Um agradecimento especial para o meu orientador da tese, o </p> <p>Professor Lus Nogueira, que em todos momentos se mostrou disponvel, acompanhou o meu </p> <p>trabalho e me ajudou em todas dvidas que tive. </p> <p>ix </p> <p>Science never solves a problem without creating ten more </p> <p>George Bernard Shaw </p> <p>x </p> <p>ndice </p> <p>1 Introduo ........................................................................... 1 </p> <p>1.1 Introduo ............................................................................................. 1 </p> <p>1.2 Objetivos............................................................................................... 2 </p> <p>1.3 Motivao .............................................................................................. 2 </p> <p>1.4 Exposio do Problema .............................................................................. 3 </p> <p>1.5 Estrutura ............................................................................................... 3 </p> <p>2 Estado de Arte ....................................................................... 6 </p> <p>2.1 Conceitos e termos ................................................................................... 6 2.1.1 Atributos ......................................................................................... 6 2.1.2 Comportamentos de sistemas em falha ...................................................... 7 </p> <p>2.2 Falhas .................................................................................................. 8 2.2.1 Classificao ..................................................................................... 8 2.2.2 Modos de falha .................................................................................. 9 </p> <p>2.3 Sistemas de tempo-real ............................................................................ 10 2.3.1 Ambiente Real-Time .......................................................................... 10 2.3.2 Deadlines ....................................................................................... 12 2.3.3 Tolerncia a falhas ........................................................................... 13 </p> <p>2.4 Atributos da dependability ........................................................................ 18 2.4.1 Availability ..................................................................................... 18 2.4.2 Reliability ...................................................................................... 19 2.4.3 Maintainability ................................................................................ 20 2.4.4 Safety ........................................................................................... 20 </p> <p>2.5 Tcnicas de tolerncia a falhas ................................................................... 20 2.5.1 Conceitos e termos ........................................................................... 20 2.5.2 Tipos de tcnicas ............................................................................. 23 2.5.3 Recovery Block ................................................................................ 24 2.5.4 N-Version Programming ...................................................................... 25 2.5.5 Consensus Recovery Block ................................................................... 26 2.5.6 Distributed Recovery Block .................................................................. 27 2.5.7 Extended Distributed Recovery Block ...................................................... 28 </p> <p>2.6 Agentes inteligentes ................................................................................ 29 2.6.1 AOP ............................................................................................. 31 2.6.2 Tipos de arquiteturas ......................................................................... 31 2.6.3 Tipos de agentes .............................................................................. 32 2.6.4 Coordenao ................................................................................... 33 2.6.5 Aplicao em tolerncia a falhas ........................................................... 34 2.6.6 Vantagens e desvantagens ................................................................... 35 2.6.7 Trabalho relacionado ......................................................................... 36 </p> <p>3 Modelo de Tolerncia a Falhas ....................................................40</p> <p>xi </p> <p>3.1 Descrio do ambiente ............................................................................. 40 3.1.1 Estrutura do sistema.......................................................................... 41 3.1.2 Configurao de QoS.......................................................................... 43 </p> <p>3.2 Esquema baseado em EDRB........................................................................ 47 3.2.1 Replicao ativa............................................................................... 49 </p> <p>3.3 Integrao de MAS .................................................................................. 53 </p> <p>3.4 Formao de coligaes ........................................................................... 59 3.4.1 Coordenao auction-bidding ............................................................... 59 3.4.2 Algoritmos anytime ........................................................................... 62 </p> <p>3.5 Concluses ........................................................................................... 76 </p> <p>4 Implementao .....................................................................80 </p> <p>4.1 JADE .................................................................................................. 80 4.1.1 FIPA ............................................................................................. 81 4.1.2 Arquitetura .................................................................................... 86 4.1.3 Mobilidade de agentes ....................................................................... 87 4.1.4 LEAP ............................................................................................ 89 </p> <p>4.2 Modelao ........................................................................................... 90 4.2.1 Classes .......................................................................................... 90 4.2.2 Interaes entre agentes .................................................................... 94 </p> <p>4.3 Testes ............................................................................................... 101 </p> <p>5 Concluso ......................................................................... 116 </p> <p>5.1 Concluso da dissertao ......................................................................... 116 </p> <p>5.2 Limitaes .......................................................................................... 117 </p> <p>5.3 Trabalho futuro .................................................................................... 117 </p> <p>xii </p> <p>xiii </p> <p>Lista de Figuras </p> <p>Figura 2.1 - Taxonomia da dependability .............................................................................. 7 </p> <p>Figura 2.2 Classificao das falhas ..................................................................................... 8 </p> <p>Figura 2.3 Sistema de tempo-real.....................................................................................10 </p> <p>Figura 2.4 Ambiente de um sistema de tempo-real ...........................................................11 </p> <p>Figura 2.5 - (a) funo de utilidade de uma hard deadline; (b) funo de utilidade de uma </p> <p>funo soft deadline ..........................................................................................................12 </p> <p>Figura 2.6 Espao de estados de um sistema tolerante a falhas..........................................13 </p> <p>Figura 2.7 - FTU composto por dois fail-silent FTUs ..............................................................15 </p> <p>Figura 2.8 - FTU com tr...</p>