Escolar Documentos
Profissional Documentos
Cultura Documentos
Depend A Bili Dade 2
Depend A Bili Dade 2
de tolerncia a falhas
Taisy Silva Weber1
Instituto de Informtica UFRGS
Curso de Especializao em Redes e Sistemas Distribudos
taisy@inf.ufrgs.br
Resumo
Em um ambiente distribudo suportado por infra-estrutura de rede de computadores,
supem-se que o sistema computacional opere apropriadamente, sem interrupo no seu
servio e sem perda de dados ou mensagens. No mundo ideal, sistemas computacionais
so totalmente confiveis e cem por cento disponveis. No mundo real, confiabilidade e
disponibilidade absolutas esto muito longe de serem alcanadas. A confiabilidade e a
disponibilidade de equipamentos e servios de computao no so conceitos abstratos
e absolutos, mas so atributos de um sistema que podem ser medidos quantitativamente.
Vrias tcnicas de projeto podem ser usadas para aumentar o valor dessas medidas, que
podem chegar prximas a cem por cento. Mesmo assim, sistemas totalmente infalveis
so impossveis, pois falhas so inevitveis. Mas usurios e desenvolvedores no devem
se conformar com equipamentos e servios de baixa qualidade, desde que estejam
dispostos a arcar com o custo do emprego de tcnicas de tolerncia a falhas.
Esse texto conduz o leitor a um viso geral da rea de tolerncia a falhas visando
motiv-lo para aprofundamentos e pesquisas posteriores. So explorados tanto aspectos
tericos como exemplos prticos. O texto no visa substituir um bom livro texto. Na
bibliografia recomendada no final do texto, referncias a tais livros podem ser
encontradas.
ndice
1
Introduo................................................................................................................. 4
1.1 Mercado para produtos tolerantes a falhas ........................................................... 4
1.2 Sobre o texto......................................................................................................... 5
1.3 Defeitos em sistemas de computao ................................................................... 5
1.4 Desafios atuais...................................................................................................... 6
1.5 Tolerncia a falhas ou dependabilidade?.............................................................. 7
Conceitos clssicos ................................................................................................... 8
2.1 Falha, erro e defeito .............................................................................................. 8
2.2 Dependabilidade ................................................................................................. 10
2.3 Nmero de noves ................................................................................................ 13
2.4 Medidas relacionadas a tempo mdio de funcionamento................................... 13
Tcnicas para alcanar dependabilidade................................................................. 16
3.1 Tolerncia a falhas.............................................................................................. 16
3.2 Fases de aplicao das tcnicas de tolerncia a falhas ....................................... 17
3.3 Mascaramento de falhas ..................................................................................... 20
Redundncia ........................................................................................................... 21
4.1 Redundncia de informao ............................................................................... 21
4.2 Redundncia temporal ........................................................................................ 22
4.3 Redundncia de hardware................................................................................... 22
4.4 Redundncia de software.................................................................................... 26
Aplicaes de Sistemas Tolerantes a Falhas .......................................................... 29
5.1 reas de Aplicao............................................................................................. 29
5.2 Sistemas de tempo real ....................................................................................... 30
5.3 Sistemas digitais de telefonia ............................................................................. 30
5.4 Sistemas de transaes ....................................................................................... 31
5.5 Servidores de redes............................................................................................. 32
5.6 Sistemas seguros................................................................................................. 33
Arquiteturas de Sistemas Tolerantes a Falhas ........................................................ 34
6.1 Tolerncia a falhas em microprocessadores ....................................................... 34
6.2 Tolerncia a falhas em sistemas de grande porte ............................................... 36
6.3 Computadores de bordo...................................................................................... 37
6.4 Sistemas Comerciais Tolerantes a Falhas........................................................... 38
Clusters de alta disponibilidade.............................................................................. 41
7.1 Compartilhamento de recursos de armazenamento ............................................ 41
7.2 Exemplos de cluster de alta disponibilidade ...................................................... 42
1 Introduo
Computadores e seus programas so conhecidos por automatizarem e acelerarem uma
srie de tarefas enfadonhas e repetitivas, liberando seus usurios para atividades mais
criativas e gratificantes. Na prtica, administradores de sistemas e usurios se vm s
voltas com atividades bastante criativas, mas nada gratificantes, de tentar recuperar
dados perdidos e de enfrentar equipamento fora do ar devido s mltiplas falhas a que
sistemas de computao esto sujeitos.
Falhas so inevitveis, mas as conseqncias das falhas, ou seja o colapso do sistema, a
interrupo no fornecimento do servio e a perda de dados, podem ser evitadas pelo uso
adequado de tcnicas viveis e de fcil compreenso. O conhecimento dessas tcnicas
habilita o administrador de sistemas a implementar as mais simples, ou exigir dos
fornecedores e desenvolvedores de sistemas solues que as incorporem.
Entretanto, as tcnicas que toleram falhas tem um alto custo associado. Pode ser a
simples necessidade de backup dos dados, que consome espao de armazenamento e
tempo para realizar a cpia, ou a redundncia de equipamentos e espelhamento de
discos, que consome recursos de hardware sem contribuir para o aumento do
desempenho. O domnio da rea de tolerncia a falhas auxilia administradores e
desenvolvedores de sistemas a avaliar a relao custo benefcio para o seu caso
especfico e determinar qual a melhor tcnica para seu oramento.
Sistemas mais robustos em relao a falhas eram, at recentemente, preocupao apenas
de projetistas de sistemas crticos, como avies, sondas espaciais e controles industriais
de tempo real, e em certo grau tambm de projetistas de mainframes com exigncias de
alta disponibilidade. Com a espantosa popularizao de redes, fornecendo os mais
variados servios, aumentou a dependncia tecnolgica de uma grande parcela da
populao aos servios oferecidos. Falhas nesses servios podem ser catastrficas para a
segurana da populao ou para a imagem e reputao das empresas. Para no ser o elo
fraco de uma corrente, o mais simples dos computadores conectado a uma rede deve
apresentar um mnimo de confiabilidade.
Conhecer os problemas potencialmente provocados por falhas no sistema, as solues
que existem para evitar falhas ou recuperar o sistema aps a sua ocorrncia, assim como
o custo associado a essas solues, torna-se imprescindvel a todos que pretendem
continuar usando computadores, desenvolvendo sistemas ou fornecendo um servio
computacional de qualidade aos seus clientes. Para desenvolvedores de software,
projetistas de hardware e administradores de rede, o domnio das tcnicas de tolerncia
a falhas torna-se essencial na seleo de tecnologias, na especificao de sistemas e na
incorporao de novas funcionalidades aos seus projetos.
2 Conceitos clssicos
Sendo a computao uma tecnologia recente, muitos termos e conceitos no esto ainda
consolidados e nem so amplamente aceitos. Vrios grupos usam os mesmos termos
para conceitos distintos ou ento termos diferentes para designar a mesma propriedade
ou conceito.
Muitos autores nacionais ou estrangeiros tem se ocupado da nomenclatura e conceitos
bsicos da rea. No SCTF e no WTF, painis e discusses tem sido conduzidos tentando
uma nomenclatura comum no territrio nacional e at mesmo uma traduo homognea
dos termos usados. Como o grupo de pesquisadores est em expanso, a cada trabalho
de um novo autor novos termos conflitantes so introduzidos.
No tenho a pretenso de estabelecer meus termos e minhas tradues como padro da
rea. A minha inteno que o leitor entenda os conceitos relacionados aos termos e
consiga identificar esses conceitos em contextos diferentes, com termos diferentes. Os
conceitos e termos apresentados aqui so os usados por grande parte da comunidade
nacional [Web90] e foram derivados dos trabalhos de Laprie [Lapr85] e Anderson e Lee
[AnLe81].
O modelo de 3 universos
processamento
posterior pode levar a
defeito
universo da informao
universo fsico
falha
erro
universo do usurio
defeito
desvio da
especificao
Latncia
Classificao de falhas
Tolerantes a falhas
Redes cliente-servidor
(no tolerantes a falhas)
MTTF: 6 a 12 semanas
Indisponibilidade aps defeito:
1 a 4 horas
MTTF: 21 anos
(Tandem)
Disponibilidade mdia:
98%
Defeitos:
hardware
software
comunicao/ambiente
operaes
Defeitos:
software
operaes
hardware
ambiente
Defeitos:
projeto
operaes
fsicos
50%
25%
15%
10%
65%
10%
8%
7%
60%
24%
16%
2.2 Dependabilidade
O objetivo de tolerncia a falhas alcanar dependabilidade. O termo dependabilidade
uma traduo literal do termo ingls dependability, que indica a qualidade do servio
fornecido por um dado sistema e a confiana depositada no servio fornecido.
Tolerncia a falhas e dependabilidade no so propriedades de um sistema a que se
possa atribuir diretamente valores numricos. Mas os todos atributos da
dependabilidade correspondem a medidas numricas.
Principais atributos de dependabilidade [Prad96] so confiabilidade, disponibilidade,
segurana de funcionamento (safety), segurana (security), mantenabilidade, testabilidade e comprometimento do desempenho (performability). Um resumo dos principais
atributos mostrado na Tabela 2.
10
Atributo
Significado
Disponibilidade
(availability)
Segurana
(safety)
Segurana
(security)
2.2.1
Confiabilidade
11
Disponibilidade
funcionamento
funcionamento
funcionamento
reparo
reparo
Segurana de funcionamento
12
2.2.4
Outros atributos
13
Medida
Significado
taxa de
defeitos
fase de envelhecimento
perodo de vida til
mortalidade
infantil
taxa de defeitos
constante
tempo
Figura 3: Curva da banheira
questionvel se a curva da banheira pode ser aplicada tambm para componentes de
software. Pode ser observado, no entanto, que os componentes de software tambm
apresentam uma fase de mortalidade infantil ou taxa de erros alta no incio da fase de
testes, que decresce rapidamente at a entrada em operao do software. A partir desse
14
15
Funo
preveno de
falhas
tolerncia a
falhas
validao
previso de
falhas
Na Tabela 4 pode ser observado que o chapu dependabilidade abriga vrias outras
tcnicas, alm de tolerncia a falhas. Todas tem em comum o fato de se preocuparem,
de uma forma ou de outra, com a ocorrncia inevitvel de falhas. Vrios autores
consideram que a intruso maliciosa em um sistema computacional seria um tipo de
falha e, portanto, as tcnicas de segurana computacional (security) poderiam ser
abrigadas no mesmo chapu. Essa a razo de vrios eventos acadmicos na rea de
dependabilidade aceitarem tambm trabalhos de segurana.
16
mascaramento ou
deteco, localizao e reconfigurao
Mecanismos
duplicao e comparao
deteco de erros
testes de limites de tempo
co de guarda (watchdog timers)
testes reversos
codificao: paridade, cdigos de deteco de erros, Hamming
teste de razoabilidade, de limites e de compatibilidades
testes estruturais e de consistncia
diagnstico
aes atmicas
confinamento e
operaes primitivas auto encapsuladas
avaliao
isolamento de processos
regras do tipo tudo que no permitido proibido
hierarquia de processos
controle de recursos
recuperao de erros tcnicas de recuperao por retorno (backward error recovery)
tcnicas de recuperao por avano (forward error recovery)
tratamento da falha diagnstico
reparo
Tabela 5 - Quatro fases de Anderson e Lee
As fases envolvem o conceito de uma seqncia complementar de atividades, que
devem ser executadas aps a ocorrncia de uma ou mais falhas. Alguns autores
consideram as fases extras de diagnstico e mascaramento. Eu prefiro considerar o
mascaramento de falhas como uma classe a parte, no complementar s fases citadas.
Diagnstico, por outro lado pode ser usado tanto como um mecanismo nas fases de
deteco de erros e de localizao de falhas, como uma tcnica isolada conduzida
periodicamente para diminuir a latncia.
17
3.2.1
erro
COMPARADOR
3.2.2
Devido a latncia da falha, aps a ocorrncia da falha at o erro ser detectado, pode ter
ocorrido espalhamento de dados invlidos. O confinamento estabelece limites para a
propagao do dano, mas depende de decises de projeto; os sistemas por sua natureza
no provm confinamento. Durante o projeto devem ser previstas e implementadas
restries ao fluxo de informaes para evitar fluxos acidentais e estabelecer interfaces
de verificao para deteco de erros.
3.2.3
18
Tcnica
Definio
Caractersticas
forward
error
recovery
Implementao
pontos de recuperao
(checkpoints), pistas de
auditoria, ...
falha
rollback
novo estado
falha
avano
3.2.4
19
Nessa fase geralmente considerada a hiptese de falha nica, ou seja, uma nica falha
ocorrendo a cada vez.
A localizao da falha realizada em duas etapas: localizao grosseira e rpida
(aplicada sobre um mdulo ou subsistema) e localizao fina, mais demorada, onde o
componente falho determinado. Para os dois tipos de localizao usado diagnstico.
O diagnstico um teste com comparao dos resultados gerados com os resultados
previstos. Pode ser conduzido no sistema de forma manual ou automtica:
diagnstico manual - executado por um operador local ou remoto,
diagnstico automtico - executado pelos componentes livres de falha do
sistema.
Aps a localizao, a falha reparada atravs da remoo do componente danificado.
Tambm o reparo pode ser manual ou automtico.
O reparo automtico pode envolver:
degradao gradual, ou seja, uma reconfigurao para operao com menor
nmero de componentes, ou
substituio imediata por outro componente disponvel no sistema. Substituio
automtica usada em sistemas com longo perodo de misso sem possibilidade
de reparo manual, como por exemplo em sondas espaciais e satlites.
Aplicado a:
replicao de componentes
blocos de recuperao
software
20
4 Redundncia
Redundncia a palavra mgica em tolerncia a falhas. Redundncia para aumento de
confiabilidade quase to antiga como a histria dos computadores ([Crev56],
[VonN56]). Todas as tcnicas de tolerncia a falhas envolvem alguma forma de
redundncia. Redundncia est to intimamente relacionada a tolerncia a falhas que, na
indstria nacional, o termo usado para designar um sistema tolerante a falhas sistema
redundante.
A aplicao de redundncia para implementar tcnicas de tolerncia a falhas pode
aparecer de vrias formas:
redundncia de informao
redundncia temporal
redundncia de hardware
redundncia de software
21
Tcnicas
Vantagens
redundncia passiva ou
esttica
mascaramento de
falhas
no requer ao do sistema, no
indica falha
redundncia ativa ou
dinmica
redundncia hbrida
combinao de ativa
e passiva
22
4.3.1
3 mdulos de
hardware
resultado
VOTADOR
votador em software
ou hardware ?
por maioria ou
por valor mdio
Figura 6: TMR
Solues para contornar a fragilidade do votador so:
Construir o votador com componentes de alta confiabilidade.
Triplicar o votador.
Realizar a votao por software.
23
VOTADOR
resultados
VOTADOR
VOTADOR
3 mdulos de hardware
votador triplicado
TMR
no redundante
durao da misso
Figura 8: Confiabilidade de TMR
TMR ideal ento para perodos no muito longos de misso. Suporta uma falha
permanente apenas e ideal para falhas temporrias, uma de cada vez.
24
Redundncia dinmica
localizao
deteco
duplicao e
comparao
reconfigurao
operao normal
operao degradada
ocorrncia de falha
ocorrncia de erro
deteco e localizao
de falha
reconfigurao e
recuperao
25
Comentrios
Diversidade
26
verso 1
verso 2
verso n
resultado
VOTADOR
27
nas mesmas fontes. Qualquer uma dessas correlaes imprevisveis se constitui uma
fonte potencial de erros.
Um exemplo de diversidade o sistema de computadores de bordo do Space Shutle.
Quatro computadores idnticos so usados em NMR. Um quinto computador, diverso
em hardware e em software dos outros quatro, pode substituir os demais em caso de
colapso do esquema NMR [Prad96].
4.4.2
Blocos de recuperao
resultado
verso
primria
verso
secundria 1
chave
n para 1
teste de
aceitao
28
Essas reas no abrangem todo o universo de aplicaes onde tolerncia a falhas pode
ser empregada com vantagens para o usurio de sistemas de computao. Exigncias
quanto a disponibilidade e confiabilidade so encontradas em qualquer rea. Usurios,
que inicialmente se mostram satisfeitos em contar apenas com a simples automao de
servios, logo passam a desejar que esses servios sejam prestados corretamente e sem
interrupes. Sistemas tolerantes a falhas so caros e portanto empregados apenas
naquelas situaes em que a sua no utilizao acarretaria prejuzos irrecuperveis.
No mercado brasileiro, as reas tradicionais de aplicao de tolerncia a falhas so
telefonia e pesquisas espaciais. A Telebrs e o INPE so exemplos de instituies que
vm desenvolvendo trabalhos de pesquisa no sentido de gerar tecnologia nacional em
tolerncia a falhas para as reas de telefonia e pesquisas espaciais respectivamente.
29
30
31
Descrio
Reconfigurao
automtica
o sistema reinicia imediatamente aps um defeito, desabilitando automaticamente o componente danificado. Envolve testes de componentes a cada vez
que o equipamento ligado ou quando gerada uma interrupo externa.
Fontes de energia e
ventilao redundantes
Monitoramento
ambiental
Ferramentas de
monitoramento
avanadas
Ferramentas de
diagnstico online
Troca de componentes
com o sistema em
operao
32
33
34
Mestre e verificador
M ESTR E
VER IFIC AD O R
erro
SA ID A
Unidade
funcional
Controle
de reverso
Entrada/sada
(bidirecional)
c
o
m
p
a
r
a
d
o
r
Sinal
de erro
35
par primrio fornece resultados ao sistema. Quando o verificador do par ativo detecta
um erro, chaveia-se para o par estepe, que passa a partir desse momento a operar
sozinho. Redundncia qudrupla degrada, nesse caso, para duplex, mas o funcionamento do sistema garantido sem queda de desempenho.
A redundncia usada aqui independente da funo especfica realizada pelo chip e
pode ser implementada em qualquer circuito digital. O chip resultante tem sua rea em
silcio aumentada em funo do comparador, das chaves bidirecionais para todos os
pinos de sada, do sinal de controle adicional necessrio para configurar o chip como
mestre ou verificador e do sinal de erro gerado no comparador (Figura 14). Todos os
circuitos construdos usando essa tcnica devem ser usados aos pares para deteco de
erros.
6.1.2
36
37
Tandem
38
39
40
41
42
7.2.1
43
Tandem ServerNet
44
Clusters Linux
45
1.ibm.com/servers/eserver/clusters/software/)
e
inclusive
hardware
especial
(http://www-1.ibm.com/servers/eserver/clusters/hardware/1300.html) - o IBM eServer
Cluster 1300.
Uma ferramenta desenvolvida no projeto Linux-HA, denominada Heartbeat (http:
//www.heng.com/alanr/ha/) permite configurar um nodo de backup para qualquer outro
nodo em um cluster. O funcionamento simples e usa uma antiga tcnica de tolerncia
a falhas: o nodo backup monitora continuamente o funcionamento do nodo primrio
enviando para esse sinais peridicos (pings por exemplo); caso o nodo primrio falhe, o
backup assume o seu lugar. A troca de um nodo por outro se d pela falsificao de
pacotes ARP (Address Resolution Protocol), o nodo backup assume o lugar do principal
enganando os demais nodos na rede.
Na Tabela 11 so mostradas algumas outras alternativas de pacotes de software
dirigidos a servidores Linux para construo de clusters de alta disponibilidade.
Produto
Descrio
SteelEye Lifekepper
http://www.steeleue.com
Piranha
http://www.sources.redhat.com/piranha
TurboCluster EnFusion
http://www.turbolinux.com
Linux-HA
http://www.linux-ha.org
46
47
48
servios
software tolerante a falhas
resilincia de processos
resilincia de dados
aes atmicas
recuperao para um estado consistente
blocos
bsicos
49
parada ou perdado
estado interno
crash
omisso
resposta
temporizao
respostas incorretas
para algumas entrada
arbitrria
resposta adiantada
ou retardada
comportamentototalmente
arbitrrio e imprevisvel
50
processadores
P1
Pk
k+1 mensagens
sincronizadas
detecta
falta de mensagem
ou discordncia de ordem
ou contedo
armazenamento
estvel
Ps
falha em qualquer processador
bloqueia operaes sobre o
armazenamento estvel
Pk+1
executam mesma sequncia
de requisies para Ps
8.6 Consenso
Em vrias situaes o sistema distribudo deve alcanar um consenso, ou seja, todos os
componentes perfeitos devem contar com os mesmos dados sobre os quais devem
aplicar um mesmo algoritmo de deciso. necessrio resolver o problema de consenso
51
52
PR
falha
rollback
53
receberam suas mensagens, agora rfs, tambm tenham que desfazer suas
computaes. O efeito pode atingir todos os processos de um sistema e provocar o
retorno ao incio do processamento. Uma soluo para esse problema impor restries
a comunicao entre os processos.
Vrios algoritmos tem sido propostos para estabelecimentos de pontos de recuperao
que correspondam a um estado global seguro. Vrios algoritmos tambm sugerem
mecanismos para evitar o efeito domin, para restringir o nmero de pontos de
recuperao que necessitam ser armazenados ou impor restries a comunicao entre
os processos visando evitar o aparecimento de mensagens perdidas (Figura 18) ou rfs
(Figura 19). Jansch-Prto e Weber apresentam um resumo dos algoritmos clssicos
[Jans97].
Q
mensagem rf
P
PR
falha
54
55
56
57
58
10 Concluso
O texto apresentou os conceitos bsicos de tolerncia a falhas e mostrou algumas reas
de aplicao de computadores tolerantes a falhas. Praticamente todos os exemplos
citados toleram erros provocados por falhas de hardware. entretanto fcil de imaginar
que com a utilizao de componentes cada vez mais confiveis e software cada vez mais
complexo, erros que ocorram em sistemas de computao sejam devidos
predominantemente a falhas de software. Essas falhas tanto podem estar localizadas no
sistema operacional, nos programas aplicativos ou nos compiladores e interpretadores
dos programas aplicativos.
Falhas em software podem ser contornadas por tcnicas de tolerncia a falhas
especficas, como diversidade, ou por tcnicas que evitam erros como verificao
formal. impossvel prever qual dessas tcnicas prevalecer no futuro. interessante
observar que em muitos sistemas deteco de erros provocados por falhas de hardware,
mascaramento, recuperao e reconfigurao so comandados por software. Nesses
sistemas essencial que esse software seja seguro, preferencialmente verificado quanto
a correo.
O texto apresentou ainda uma rpida viso sobre os problemas de falhas em sistemas
distribudos e suas possveis solues. Esse texto no visa substituir um livro texto na
rea. Vrios deles so recomendados ao longo da leitura. Um maior aprofundamento
visando pesquisas acadmicas podem ser obtidas nos anais dos eventos da rea, tanto
internacionais como o DSN, como os nacionais SCTF e WTF.
Os exemplos de sistemas tolerantes a falhas citados no texto no representam uma lista
exaustiva. Cresce dia a dia o nmero de aplicaes de sistemas de computao onde
disponibilidade e confiabilidade so exigidas em alto grau. Os usurios de sistemas de
computao esto se tornando mais exigentes e se mostram um pouco mais dispostos a
enfrentar os custos adicionais das tcnicas de tolerncia a falhas.
Convm ressaltar que mesmo para as reas onde se dispe de sistemas tolerantes a
falhas, esses nem sempre se apresentam prontos para a imediata utilizao. O
desenvolvedor de software, ou o usurio especializado desses sistemas, deve muitas
vezes prover alguns recursos complementares para garantir a confiabilidade ou a
disponibilidade desejada para a sua aplicao. Alm disso, os sistemas comerciais
geralmente s garantem tolerncia a falhas isoladas de hardware. Mecanismos contra
falhas mltiplas e mesmo falhas de software so raramente disponveis devido ao
elevado custo associado.
O desenvolvedor deve, portanto, reconhecer exigncias quanto a confiabilidade e
disponibilidade de uma determinada aplicao, saber escolher o sistema de menor custo
que supra essas exigncias e ter condies de desenvolver os mecanismos
complementares de tolerncia a falhas para atingir a confiabilidade desejada. Naturalmente esse um desenvolvedor especialista, conhecedor de tcnicas de tolerncia a
falhas e sua utilizao eficiente.
Profissionais de computao devem encarar seriamente os problemas ocasionados por
falhas no tratadas nos sistemas informatizados. Tolerncia a falhas compreende muitas
59
60
11 Bibliografia
[AnLe81] ANDERSON, T.; LEE, P. A. Fault tolerance -principles and practice.
Englewood Cliffs, Prentice-Hall, 1981.
[Aviz98]
[AvKe84] AVIZIENIS, A.; KELLY, J. P. Fault tolerance by design diversity concepts and experiments. Computer, New York, 17(8):67-80, Aug. 1984.
[Bir96]
[Goer89]
[HSL78]
[Hsu97]
HSUEH, M. et. al. Fault Injection Techniques and Tools. IEEE Computer,
v. 30, n. 4, Apr. 1997.
[Jans97]
[John84]
[Katz78]
[Lapr85]
61
[Lapr98]
[Liu84]
[Prad96]
62