Instalação e Análise de uma Biblioteca para Recuperação de Processos com base em Checkpointing

Tamanho: px
Começar a partir da página:

Download "Instalação e Análise de uma Biblioteca para Recuperação de Processos com base em Checkpointing"

Transcrição

1 UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA PROGRAMA DE PÓS-GRADUAÇÃO EM COMPUTAÇÃO Instalação e Análise de uma Biblioteca para Recuperação de Processos com base em Checkpointing por FRANCISCO ASSIS DA SILVA T.I?? CPGCC-UFRGS Trabalho Individual I Prof a. Dr a. Ingrid Eleonora Schreiber Jansch Pôrto Orientadora Porto Alegre, janeiro de 2001.

2 UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL. Reitora: Profa. Wrana Panizzi. Pró-Reitor de Pós-Graduação: Prof. José Carlos Ferraz Hennemann. Diretor do Instituto de Informática: Prof. Philippe Oliver Alexandre Navaux. Coordenador do CPGCC: Prof. Carlos Alberto Heuser. Bibliotecária-Chefe do Instituto de Informática: Beatriz Regina Bastos Haro.

3 Sumário Lista de Abreviaturas...4 Listas de Figuras...5 Lista de Tabelas...6 Resumo...7 Abstract Introdução Recuperação Introdução Recuperação por Avanço e por Retorno Recuperação por Avanço Recuperação por Retorno Enfoque baseado em operação Enfoque baseado em estado Problemas decorrentes da Recuperação em Sistemas Concorrentes Mensagens órfãs e o Efeito de Dominó Mensagens perdidas Problema de Livelocks Mecanismos para Recuperação em Sistemas Concorrentes Introdução: Checkpointing Conjunto Consistente de Checkpoints Checkpointing Síncrono e Recuperação Checkpointing Assíncrono e Recuperação A biblioteca Libckpt Introdução Checkpointing transparente Checkpointing incremental Checkpointing bifurcado Compressão de checkpoint Checkpointing dirigido pelo usuário Exclusão de memória Checkpointing síncrono Exemplos de uso da Libckpt Experimentos O mecanismo de checkpointing e recuperação Conclusões...48 Bibliografia...50

4 4 Lista de Abreviaturas CPU Central Processing Unit FTP File Transfer Protocol LZW Lempel Ziv Welch TMR Triple Modular Redundancy

5 5 Listas de Figuras FIGURA 2.1 Recuperação por avanço [PRA94]...15 FIGURA 2.2 Um modelo de sistema monoprocessado [SIN94]...17 FIGURA 2.3 Efeito Dominó [SIN94]...19 FIGURA 2.4 Mensagem perdida devido a recuperação por retorno [SIN94]...20 FIGURA 2.5 Livelock [SIN94]...21 FIGURA 3.1 Checkpoints periódicos para prover Tolerância a Falhas [PLA97] FIGURA 3.2 Um típico Checkpoint de um único processador [PLA97]...23 FIGURA 3.3 Um sistema distribuído simples com três estados. Os estados C 1 e C 2 são consistentes. A mensagem m 4 faz o estado C 3 inconsistente [PLA97] FIGURA 3.4 Conjunto consistente de checkpoints [SIN94]...26 FIGURA 3.5 Checkpoints estabelecidos desnecessariamente [SIN94] FIGURA 3.6 Retorno desnecessário [SIN94] FIGURA 3.7 Checkpointing assíncrono não deve resultar em um conjunto consistente de checkpoints [SIN94] FIGURA 3.8 Eventos da computação [SIN94] FIGURA 4.1 Parâmetros, valores possíveis e padrões do arquivo.ckptrc FIGURA 4.2 Um programa científico típico sem checkpointing FIGURA 4.3 Um programa científico típico com checkpointing...41 FIGURA 4.4 Um exemplo do arquivo.ckptrc modificado...42 FIGURA 4.5 Código exemplo executado sem o arquivo.ckptrc FIGURA 4.6 Exemplo de uso do checkpoint_here() FIGURA 4.7 Exemplo de uso do exclude_bytes() e include_bytes() FIGURA 4.8 Exemplo de código onde checkpoints baseados em tempo foram desabilitados...44 FIGURA 4.9 Libckpt manipula dados somente de leitura usando exclude_bytes()...45

6 6 Lista de Tabelas TABELA 4.1 Aplicações Científicas...45

7 7 Resumo A técnica da recuperação de processos em um sistema computacional baseia-se na restauração de um processo ou conjunto de processos para um estado livre de erros. A recuperação de processos em um sistema computacional está fortemente relacionada em prover uma maior disponibilidade e diminuição do tempo total de execução na presença de falhas, reduzindo a quantidade de trabalho perdido. Existem dois princípios considerados para recuperação de processos: a Recuperação por Avanço e a Recuperação por Retorno ou por Retrocesso. Estes princípios, assim como os conceitos e mecanismos das técnicas de recuperação de processos são apresentados neste trabalho. Recuperação por avanço e recuperação por retorno são caracterizados como sendo princípios básicos de implementação para recuperação de processos. Para entendimento da recuperação de processos por retorno, são demonstrados alguns algoritmos conhecidos na literatura. Algoritmos baseados em recuperação por retorno salvam periodicamente o estado do processo em armazenamento estável durante uma execução livre de falha, possibilitando refazer as computações a partir do estado previamente salvo. São apresentados os mecanismos para recuperação em sistemas concorrentes, conceitos de checkpointing (síncrono e assíncrono) e os problemas decorrentes da recuperação em sistemas concorrentes. Neste trabalho é apresentada a biblioteca de recuperação de processos Libckpt, uma ferramenta para checkpointing transparente em um sistema com um único processador, rodando sob o Unix. Libckpt é uma biblioteca de nível de usuário e usa somente facilidades que estão comumente disponíveis sob o Unix. É demonstrada a finalidade de utilização da biblioteca, assim como as características fundamentais, os mecanismos de recuperação de processos implementados e sua análise. PALAVRAS-CHAVE: Tolerância a falhas, sistemas distribuídos, recuperação de processos, pontos de recuperação, biblioteca de checkpointing.

8 8 Abstract TITLE: INSTALLATION AND ANALYSIS OF A LIBRARY FOR PROCESSES RECOVERY WITH BASE IN CHECKPOINT The process recovery in a computer systems bases on the restoring of a process or set of process to error-free state. The process recovery in a computer systems is strongly related in providing a larger availability and decrease of the all time of execution in the presence of faults, reducing the amount of lost work. There are two beginnings considered for process recovery: forward error recovery and backward error recovery. These beginnings, as well as the concepts and mechanisms of the techniques of process recovery are presented in this work. Forward error recovery and backward error recovery are characterized as being basic beginnings of implementation for process recovery. For understanding backward error recovery, are demonstrated some algorithms well-known in literature. Algorithms based on backward error recovery asynchronous the process state eventually in stable storage during an execution free fault, facilitating to re-do the computations previously starting from the state safe. The mechanisms are presented for recovery in competitive systems, checkpointing concepts (synchronous and asynchronous) and the current problems of the recovery in comcurrent systems. In this work the library of process recovery is presented, Libckpt, a tool for transparent checkpointing on uniprocessors system running under Unix. Libckpt is a user-level library and uses only facilities which are commonly available under Unix. The purpose of use of the library is demonstrated, as well as the fundamental characteristics, the mechanisms of process recovery implemented and analysis. KEY WORDS: Fault tolerance, distributed systems, process recovery, checkpoint, checkpointing library.

9 9 1 Introdução Recuperação de processos em um sistema computacional refere-se a restaurar um sistema para o estado operacional normal. Recuperação pode ser tão simples como reiniciar um computador com falha ou reiniciar um processo falho. Entretanto, a implementação genérica da recuperação para processos com diferentes atribuições e funcionalidades é mais complexa. Em geral, recursos são alocados para executar processos em um computador. Por exemplo, um processo aloca memória para si e pode envolver o uso de recursos compartilhados, que precisarão ser bloqueados para garantir consistência e atomicidade, tais como arquivos e memória. Dentre tais circunstâncias, se o processo falha, é imperativo que os recursos alocados para ele sejam liberados então para que possam ser alocados para outros processos. Se um processo falhou após ter modificado parcialmente uma base de dados (sem concluir a operação), então é importante que todas as modificações feitas na base de dados pelo processo falho sejam desfeitas. Em outras palavras, se o processo executou por algum tempo antes de falhar, a melhor opção é reexecutar o processo desde o ponto onde ocorreu a falha e retornar à execução. O reinício a partir do ponto da falha, evita a situação de ter a reexecução do processo desde o início de operação, pois isto incorreria em maior tempo consumido e operação custosa [SIN94]. Um sistema consiste de um conjunto de componentes de hardware e software para prover um serviço específico. A interação entre os componentes do sistema corresponde aos seus inter-relacionamentos [RAN79]. O defeito de um sistema manifesta-se quando o mesmo não executa o serviço de maneira especificada [RAN79]. Um estado errôneo do sistema é um estado que pode levar a um defeito por uma seqüência de estado de transições válidas [LEE90]. Um erro é a parte do estado do sistema que difere dos valores pretendidos [RAN79]. Uma falha é uma condição física anômala ou a causa hipotética de um erro. As causas dos defeitos incluem erros de projeto (tais como erros na especificação do sistema ou implementação), problemas de produção ou outras deteriorações e distúrbios externos (tais como condições severas de ambiente, interferência eletromagnética, entradas inesperadas ou mau uso do sistema) [NEL90]. A recuperação por retorno baseia-se na restauração de um processo para um estado anterior livre de erros [RAN79]. Por isso, algoritmos baseados em recuperação por retorno salvam periodicamente o estado de um processo durante uma execução livre de falha e, após uma falha, reiniciam de um destes estados, reduzindo a quantidade de trabalho perdido. Os estados salvos durante a execução de um processo, para os quais o processo pode mais tarde ser restaurado, são conhecidos como pontos de recuperação ou checkpoints [SIN94]. O termo checkpointing é usado para a ação de estabelecer o ponto de recuperação. O estado de um programa em execução é periodicamente salvo para um meio estável (armazenamento com segurança) do qual pode ser recuperado depois da ocorrência de um defeito [PLA95]. Para aplicações científicas de longa duração, a recuperação por retorno com checkpointing pode ser usada para minimizar o tempo de execução total na presença de defeitos. Para aplicações provendo serviços de missões críticas, a recuperação por

10 10 retorno com checkpointing pode ser usada para aperfeiçoar serviços de disponibilidade, provendo recuperação mais rápida para estes serviços a baixo tempo [ELN96]. Em um modelo tradicional de sistema distribuído, os processos comunicam-se através da troca de mensagens. Um processo pode registrar o seu próprio estado e as mensagens que ele envia e recebe [CHA85]. A recuperação por retorno em um sistema composto de múltiplos processos concorrentes é mais complicada devido à comunicação dos processos. Quando o emissor de uma mensagem m retorna para o estado anterior ao envio de m, o processo destinatário da mensagem deve também retornar para o estado anterior do recebimento de m; caso contrário, os estados locais aos dois processos poderiam ficar inconsistentes. Estes estados mostrariam, de um lado, a mensagem m como não enviada, e de outro, como recebida, o que é impossível em uma correta execução livre de defeitos [ELN96]. Sob tais circunstâncias, a propagação pode forçar o sistema ao retorno com efeito cascata até o estado inicial, perdendo todo o trabalho executado antes do defeito. Essa sucessão ilimitada de retornos é chamada de efeito dominó [RAN75]. Em um sistema de troca de mensagens, se cada processo participante faz o checkpointing independentemente, então o sistema está suscetível ao efeito dominó. Este enfoque é chamado de checkpointing não coordenado ou checkpointing independente. Uma maneira de evitar o efeito dominó é executar checkpointing coordenado: em um sistema coordenado, os checkpoints dos processos formam um estado global consistente. Tal conjunto de checkpoints pode ser então usado para limitar a propagação dos efeitos que causariam o cascateamento nos retornos. Como o aumento do paralelismo em sistemas distribuídos e supercomputadores torna os programas mais propensos a falhas, os pesquisadores se voltaram para o uso de checkpointing com o intuito de prover tolerância a falhas para programas de longa duração. Checkpointing salva um estado volátil do programa (tal como o conteúdo dos registradores e memória) para armazenamento estável, de forma que, depois de uma falha, o programa pode ser restabelecido para o estado do checkpoint mais recente. Por exemplo, com checkpointing uma vez a cada hora, um programa perderá não mais que uma hora de tempo de execução para cada defeito no sistema [PLA94]. O presente trabalho tem por objetivo o estudo sobre recuperação de processos, dando ênfase nas técnicas de recuperação que fazem uso de checkpointing. Também é objetivo deste trabalho estudar, instalar e testar a biblioteca de recuperação de processos Libckpt (Checkpointing transparente sob o Unix) [PLA95]. A biblioteca libckpt é uma ferramenta para checkpointing transparente em um único processador, executada em um ambiente Unix. Libckpt é uma biblioteca em nível de usuário e usa somente facilidades que estão comumente disponíveis sob o Unix. A meta de checkpointing é estabelecer um ponto de recuperação na execução de um programa, e salvar o estado suficiente para restaurar o programa para este ponto de recuperação no caso de um defeito. Enquanto libckpt pode ser usada em um modo que é quase totalmente transparente ao programador, também mantém a incorporação de diretivas de usuário na criação de checkpoints [PLA95]. O trabalho está organizado da seguinte forma: no capítulo 2, são caracterizados os conceitos de recuperação de processos, princípios e mecanismos. No capítulo 3, são tratados os mecanismos para recuperação em sistemas concorrentes para melhor aprofundamento do conhecimento da recuperação de processos, mesmo que a biblioteca

11 11 estudada não se aplica em sistemas concorrentes. Também no capítulo 3 são caracterizados os conceitos de checkpointing (síncrono e assíncrono). No capítulo 4, é descrita a biblioteca libckpt para checkpointing em um único processador, mecanismos implementados pela biblioteca, usos, testes e exemplos. Finalmente, no capítulo 5, são apresentadas as conclusões desse trabalho.

12 12 2 Recuperação 2.1 Introdução Recuperação de processos, no âmbito de tolerância a falhas em um sistema computacional, refere-se a restaurar um sistema para o estado operacional normal. Recuperação pode ser tão simples como reiniciar um computador (sistema computacional pessoal de baixo custo) com falha ou reiniciar um processo falho. Entretanto, a implementação genérica da recuperação para processos com diferentes atribuições e funcionalidades é mais complexa. A complexidade da recuperação de processos advêm da necessidade de gerenciamento dos recursos utilizados após a ocorrência do erro, ou seja, recursos devem ser liberados no caso de alocação de espaços de memória, alterações devem ser desfeitas no caso de banco de dados. Por exemplo, se um processo falhou após ter modificado uma base de dados, é importante que todas as modificações feitas pelo processo falho sejam desfeitas [CEC98]. Sistemas distribuídos, pela sua própria natureza, provêem aumento de desempenho e de disponibilidade principalmente na forma de replicação de dados, de processos, de componentes de hardware, etc. Uma maneira de realizar aumento de desempenho é através da execução concorrente de muitos processos que cooperam para executar uma tarefa. Se um ou mais processos concorrentes falham, então os efeitos das interações dos processos falhos com os outros processos devem ser desfeitos, ou todo processo teria que reiniciar de um estado apropriado [SIN94]. O uso da redundância apresentada pelos sistemas distribuídos só será válida se existirem mecanismos que garantam a consistência entre réplicas, mesmo no caso de falhas. Um desses mecanismos é a recuperação que, quando ocorrerem falhas, conduzirá o sistema para um estado consistente livre de falhas. 2.2 Recuperação por Avanço e por Retorno A recuperação de erros em processos pode ser implementada segundo dois princípios conhecidos como Recuperação por Avanço (forward recovery) e Recuperação por Retorno ou por Retrocesso (backward recovery) [AND81]. Quando a natureza das falhas pode ser estimada completamente e com precisão, pode-se remover todos os erros causados por elas. Então é possível recuperar um processo que está em estado falho colocando-o em um estado livre de falhas. Uma técnica para essa situação é conhecida como recuperação por avanço. Na recuperação por avanço, a sobrecarga de processamento para recuperar os processos é restrita aos componentes que efetivamente falharam. Dessa forma, a queda

13 13 de desempenho é limitada ao mínimo necessário para efetuar as ações de recondução do sistema a um estado livre de erros. Quando não é possível prever a natureza das falhas, não sendo possível identificar todos os erros por elas causados e não sendo possível remover todos os erros no estado do sistema, então deve-se recorrer à técnica de recuperação por retorno. Esse mecanismo conduz o processo, ou conjunto de processos, para um estado livre de falhas prévio no sistema, possibilitando refazer as computações que apresentam erro. O projeto da recuperação de erros por retorno é mais simples que recuperação por avanço, pois a recuperação por avanço depende de uma análise prévia das falhas a serem suportadas, enquanto que na recuperação por retorno não é necessário conhecêlas. O mecanismo de recuperação por retorno é genérico e efetivo para falhas do tipo temporárias [CEC98]. O principais problemas associados com a recuperação por retorno são os seguintes: queda de desempenho devido à atividade preventiva de armazenamento de estados e devido à sobrecarga de retornar o sistema para um estado anterior; não há garantias de que a falha não ocorra novamente, levando o sistema a novo retorno. A repetição sucessiva do fato pode fazer o sistema ficar bloqueado em um ciclo de falha e retorno, não progredindo na computação; alguns componentes dos sistemas podem não ser retornáveis, causando danos que muitas vezes não poderão mais ser corrigidos: erros de trajetória de um avião ou dinheiro em uma caixa registradora. A técnica de recuperação por avanço, por outro lado, visa remover ou isolar erros específicos de forma que a computação normal possa ser retomada, somente as partes do estado que divergem do valor intencional precisam ser corrigidas. Entretanto, esta técnica pode ser somente usada onde os danos devidos às falhas podem ser estimados corretamente. Por conseguinte não é um conceito tão geral quanto a recuperação por retorno e não pode ser provido como um mecanismo geral para recuperação de erro [SIN94] Recuperação por Avanço A recuperação de erros por avanço visa remover ou isolar erros específicos, de forma que a computação normal possa ser retomada. Isto pode ser obtido através da correção seletiva dos estados do sistema que apresentaram erros. A recuperação por avanço requer uma previsão precisa da extensão dos danos causados pelas diversas falhas. Enquanto a recuperação por retorno é uma técnica que pode ser utilizada de forma genérica, com a recuperação por avanço não ocorre o mesmo: o alcance das falhas deve ser limitado e tolerado dentro destes limites de forma que o seu tratamento seja transparente para o resto do sistema [CEC98].

14 14 A noção de confiabilidade requer que um sistema possua uma especificação com relação a qual os resultados da computação possam ser verificados. A uma ação atômica, estão associados estados bem definidos no início e no final da atividade. A especificação de uma ação atômica corresponde à relação que deve existir entre estes dois estados, sendo estes totalmente independentes das atividades internas da mesma. A especificação e o encapsulamento associados com as ações atômicas fornecem um contexto para a aplicação de técnicas de detecção de erro e determinação dos danos. Além disso, uma vez que as ações atômicas delimitam a propagação dos erros causados pela comunicação entre processos, elas também fornecem o confinamento de danos [CEC98]. As ações atômicas são associadas com as exceções de forma a implementarem a recuperação por avanço. Quando é detectada uma falha dentro de uma ação atômica, esta ativa uma exceção. O tratador desta exceção, localizado na ação atômica, deverá implementar mecanismos de tolerância a falhas como a recuperação. Caso o tratador da exceção seja bem sucedido, a ação atômica produzirá os resultados esperados, conforme sua especificação; caso o tratador não tenha sucesso, a ação atômica encerrará sua atividade sinalizando uma exceção [CEC98]. Uma arquitetura bastante conhecida: a Redundância Modular Tripla ou TMR (Triple Modular Redundancy), também é considerada em [PRA96] como uma forma de recuperação por avanço. Na primeira falha que venha a ocorrer em um dos módulos, os outros dois podem garantir o resultado correto da saída, através da correção desempenhada pelo votador. Pradhan [PRA94] propõe uma arquitetura onde é implementada a recuperação por avanço associada à recuperação por retorno. Nesta arquitetura, dois processadores (A e B na Figura 2.1) executam a mesma computação e, de forma periódica e sincronizada, estabelecem pontos de recuperação em memória estável. Quando o par de processadores, através da comparação de seus estados (E A,1 e E B,1 na Figura 2.1), detectar uma falha, um terceiro processador (S na Figura 2.1), chamado de processador reserva, será acionado e iniciará a sua computação a partir do último estado registrado em memória estável anterior à ocorrência da falha (E A,0 e E B,0 na Figura 2.1). Durante um período, correspondente ao tempo de processamento entre dois estabelecimentos de pontos de recuperação, os dois processadores originais continuarão a sua computação (entre E A,1 e E A,2, no processador A, e entre E B,1 e E B,2 no processador B na Figura 2.1) enquanto que o processador reserva estará efetuando a computação correspondente ao período de tempo em que foi detectada a falha de computação (entre E S,0 e E S,1 na linha de tempo do processador S na Figura 2.1). Ao final deste período, os resultados obtidos anteriormente pelos processadores originais serão comparados com o resultado obtido pelo processador reserva. Admitindo-se que o processador reserva não tenha falhado, será possível identificar qual dos processadores falhou e então atualizar o seu estado (R na Figura 2.1). Para finalizar, os três processadores continuam a sua computação por mais um período (entre E A,2 e E A,3, no processador A, entre E B,2 e E B,3, no processador B, e entre E S,1 e E S,2 na linha de tempo do processador S na Figura 2.1) de forma a verificar se não houve falhas no processador A, durante o tempo em que S estava computando o período em que ocorreu a falha em B. Ao final, o processador S está livre para executar outra tarefa qualquer e os processadores A e B continuam a sua computação.

15 15 No artigo de Pradhan [PRA94], é mostrado que um tempo adicional de processamento é utilizado durante a recuperação. Este acréscimo corresponde ao tempo gasto na comparação dos estados dos processos A e B, E A,1 e E B,1, com o estado computado por S, E S,1, a transferência de estado de A para B (R na Figura 2.1) e a espera de A e B pelo término das computações de S. A a l h Ba a l h a E A,0 E A,1 E A,2 E A,3 R Falha E B,0 E B,1 E B,2 E B,3 S E S,0 E S,1 E S,2 tempo FIGURA 2.1 Recuperação por avanço [PRA94]. Levando-se em consideração o mecanismo apresentado, outros cenários de falha devem ser considerados. Por exemplo, o caso em que o processador reserva sofrer uma falha no período de processamento compreendido entre os estados E 0 e E 1 na linha de tempo de S na Figura 2.1. Neste caso, o sistema é obrigado a retornar para o estado E 0. A integração do mecanismo de imprecisão e das técnicas de recuperação permite uma melhora nas características de tolerância a falhas do sistema. Durante a execução de uma tarefa, ao final de cada ciclo de cálculo, são registrados os resultados intermediários (valores imprecisos) e seus respectivos indicadores de precisão (para avaliação futura dos resultados). Estes registros podem ser comparados a pontos de recuperação. Se a tarefa de cálculo chega ao final antes de atingir o seu limite de tempo, é obtido um resultado preciso e a falha de temporização não ocorre. Caso a falha ocorra, pode-se tomar o último resultado impreciso obtido. Esta recuperação é do tipo por avanço [OLI97]. São apresentadas algumas características da recuperação por avanço [CEC98]: a recuperação por avanço apresenta um desempenho melhor que a recuperação por retorno pois não existe a necessidade de reprocessamento; entretanto, a recuperação por avanço requer um conhecimento prévio da natureza das falhas. Desta forma, um sistema pode contar com a recuperação por avanço para algumas falhas, mas sempre deverá existir um tratador genérico do tipo recuperação por retorno; para que a recuperação por avanço seja implementada, os sistemas devem prover algum mecanismo de confinamento de danos.

16 Recuperação por Retorno A recuperação por retorno baseia-se na restauração de um processo para um estado anterior livre de erros [RAN79]. A recuperação por retorno é efetiva para falhas do tipo temporárias. Os pontos na execução de um processo para o qual o processo pode ser depois restabelecido são conhecidos como pontos de recuperação. A recuperação por retorno salva periodicamente o estado de um processo durante uma execução livre de falha e, após uma falha, reinicia de um destes estados, reduzindo a quantidade de trabalho perdido. Um ponto de recuperação é restabelecido quando o estado corrente de um processo é substituído pelo estado do processo no ponto de recuperação. Quando o sistema somente é capaz de executar um único processo por vez, o estabelecimento dos pontos de recuperação e a realização de procedimentos de recuperação baseia-se no salvamento do estado do processo em memória não volátil e retorno dos dados dessa memória. Recuperação feita em nível de processo simplesmente é um subconjunto das ações necessárias para recuperar o sistema inteiro. Em uma recuperação de sistema, todos os processos que foram ativados necessitam ser restabelecidos aos seus pontos de recuperação respectivos e os dados modificados pelos processos necessitam restaurar a um estado apropriado. Para determinar um estado consistente durante a recuperação por retorno, o sistema deve ter gravado, em memória estável, informações relativas ao processamento anterior à ocorrência da falha. Existem duas maneiras para implementar recuperação por retorno, uma delas é o enfoque baseado em operação e outra é o enfoque baseado em estado [LEE90]. Estes enfoques são explanados no contexto do modelo do sistema apresentado por Singhal [SIN94] e explicado a seguir: O modelo do sistema consiste de uma única máquina que está conectada a um sistema de armazenamento secundário e a um sistema de armazenamento estável (Figura 2.2). O armazenamento estável não perde informação em um evento de defeito de sistema. Sempre que um processo acessa um objeto de dados armazenado no armazenamento secundário, o objeto de dados é trazido à memória principal se já não estiver nela. Se o acesso é uma operação de escrita, a cópia do objeto na memória principal é atualizada. O objeto de dados no armazenamento secundário é em tempo finito atualizado quando a cópia do objeto na memória principal é salva no armazenamento estável. O armazenamento estável é usado para armazenar os logs e os pontos de recuperação. No modelo de sistema proposto por Singhal [SIN94] os conteúdos de ambos armazenamento estável e armazenamento secundário sobrevivem a defeitos do sistema. Entretanto, os conteúdos do armazenamento estável estão muito mais seguros que os do armazenamento secundário.

17 17 Armazenamento Secundário CPU Memória Principal Armazenamento Estável FIGURA 2.2 Um modelo de sistema monoprocessado [SIN94] Enfoque baseado em operação No enfoque baseado em operação, todas as modificações efetuadas nos estados dos processos são registradas com um nível de detalhamento tal que permita desfazer as modificações, levando o sistema a um estado anterior. Esta forma de registro da atividade do sistema é denominada de audit trail ou log [RAN79]. Considere-se uma transação baseada em um ambiente onde transações atualizam um banco de dados. Em tal ambiente, é desejável a capacidade de concluir uma atualização (commit) ou desfazer atualizações baseadas em transação. Commit é uma ação que indica que o processo ou transação de atualização do objeto foi completada com sucesso, e então as mudanças feitas no banco de dados podem ser tornadas como permanente. Se uma transação não realizou um commit, as atualizações do banco de dados deveriam ser desfeitas. Além disso, se uma parte do banco de dados está perdida devido a um erro de mídia de armazenamento, deveria ser possível ao banco de dados reconstruir essa parte [SIN94]. Esta técnica é especialmente utilizada em ambientes transacionais (que utilizam transações atômicas) acompanhados de primitivas do tipo DO (para realizar uma transação e gravar um registro na memória estável), REDO (para refazer uma transação registrada pela primitiva DO) e UNDO (para desfazer uma transação registrada pela primitiva DO) Enfoque baseado em estado No enfoque baseado em estado para recuperação, o estado completo de um processo é salvo em uma memória estável quando um ponto de recuperação é estabelecido e a recuperação de um processo envolve restabelecer o seu último estado salvo e retomar a computação a partir deste ponto. A ação de salvamento dos estados dos processos (pontos de recuperação) é denominado de checkpointing ou taking a checkpoint [SIN94].

18 18 O procedimento de restaurar um processo para um estado anterior é denominado de rolling back. O rolling back de um processo e o reinício de sua computação a partir de um estado anterior incorre overhead (sobrecarga de processamento) e atrasa o tempo total de término da execução do processo. É desejável o retorno de um processo para um estado tão recente quanto possível. Então, é habitual estabelecer muitos checkpoints durante a execução de um processo, o que também incorre overhead. 2.3 Problemas decorrentes da Recuperação em Sistemas Concorrentes Em sistemas concorrentes, vários processos cooperam trocando informações para realizar uma tarefa. Uma troca de informação pode ser através da memória no caso de máquinas de memórias compartilhadas (por exemplo, sistemas de multiprocessadores) ou através de mensagens no caso de um sistema distribuído. Nos sistemas distribuídos, o estabelecimento dos pontos de recuperação não diz respeito ao estado de um único processo mas ao estado de todo o sistema. É necessária a introdução da propriedade de consistência para garantir que, em caso de falha, os processos sejam reinicializados a partir do estado que leve a computação a bom termo. Entretanto, cada processo é individual e portanto possui informações de estado que só estão disponíveis localmente. Desta forma, para estabelecer o estado de todo o sistema distribuído, é necessário estabelecer pontos de recuperação locais. Estes, por sua vez, formarão o estado global do sistema [CEC98]. Em tais sistemas, se um dos processos falha e retoma a execução de um ponto de recuperação, então os efeitos causados a outros processos devido à informação que trocou com eles depois de estabelecer o ponto de recuperação terão que ser desfeitos. Para desfazer os efeitos causados por um processo falho em um processo ativo, o processo ativo deve também retornar para um estado mais recente. Assim, em sistemas concorrentes, toda a cooperação de processos necessita estabelecer pontos de recuperação. Em sistemas concorrentes, retorno dos processos para um estado anterior livre de falhas é mais difícil do que no caso de sistemas de um único processo Mensagens órfãs e o Efeito de Dominó Considere-se a atividade de sistema ilustrada na Figura 2.3. Três processos X, Y e Z cooperam trocando informações através de mensagens (representadas pelas setas). Cada símbolo [ marca um ponto de recuperação para o qual um processo pode retornar, correspondendo a um estado anterior, no caso de um falha. Se o processo X retornar, ele pode fazê-lo para o ponto de recuperação x 3 sem afetar qualquer outro processo. Por hipótese, Y falha depois de enviar a mensagem m e retorna para y 2. Neste caso, a recepção de m está registrada em x 3, mas o envio de m não está registrado em y 2. Tem-se uma outra situação onde X recebeu a mensagem m de Y, mas Y não tem nenhum registro do envio, o que corresponde a um estado inconsistente.

19 19 Sob tais circunstâncias, m é denominada de uma mensagem órfã e o processo X também deve retornar para o estado anterior, pelo fato que Y interagiu com X depois de estabelecer seu ponto recuperação y 2. Quando Y retorna para y 2, o evento que é responsável pela interação é desfeito. Então, todos os efeitos causados a X pela interação também devem ser desfeitos. Isto pode ser alcançado pelo retorno do processo X para recuperar o ponto x 2. Igualmente, pode ser visto que, se Z é retornado para o estado anterior, todos os três processos devem retornar para o seu primeiro ponto de recuperação, isto é, x 1, y 1, e z 1. Este efeito, onde o retorno de um processo causa a um ou mais processos o retorno para seu respectivo estado anterior, é denominado de efeito dominó [RAN79], e mensagens órfãs são a causa. X x 1 x 2 x 3 m Y y 1 y 2 Z z 1 z 2 FIGURA 2.3 Efeito Dominó [SIN94]. Tempo Mensagens perdidas Suponha-se que os checkpoints x 1 e y 1 (Figura 2.4) são escolhidos como os pontos de recuperação para os processos X e Y respectivamente. Neste caso, o evento que enviou a mensagem m é registrado em x 1, mas o evento de sua recepção em Y não é registrado em y 1. Se Y falha depois de receber a mensagem m, o sistema é restaurado para o estado {x 1, y 1 }, no qual a mensagem m está perdida, pois o processo X está no ponto posterior onde ele enviou a mensagem m. Esta situação também pode surgir se m está perdida no canal de comunicação e os processos X e Y estão no estado x 1 e y 1 respectivamente. Ambas as condições acima são indistingüíveis [SIN94].

20 20 X x 1 m Y y 1 Falha Tempo FIGURA 2.4 Mensagem perdida devido a recuperação por retorno [SIN94] Problema de Livelocks Na recuperação por retorno, livelock é uma situação na qual uma simples falha pode causar um número infinito de retornos, impedindo o sistema de progredir na computação. Uma situação de livelock em um sistema distribuído é ilustrada na Figura 2.5. A Figura 2.5(a) ilustra a atividade de dois processos X e Y até ocorrer a falha do processo Y. O processo Y falha antes de receber a mensagem n 1, enviada por X. Quando Y retorna para y 1, não existe nenhum registro do envio da mensagem m 1, consequentemente X deve retornar para x 1. Quando processo Y recupera, ele envia m 2 e recebe n 1 (Figura 2.5(b)). O processo X, depois de retomar de x 1, envia n 2 e recebe m 2. Entretanto, o processo X retorna porque, não existe registro do envio de n 1 e por isso Y tem que retornar para o segundo momento. Isto força X retornar também, como ele recebeu m 2, e não há nenhum registro do envio de m 2 a Y. Esta situação pode repetir indefinidamente, impedindo o sistema de fazer algum progresso na computação [SIN94]. X x 1 n 1 m 1 Y y 1 Falha Tempo (a)

RECUPERAÇÃO COM BASE EM CHECKPOINTING PARA APLICAÇÕES ORIENTADAS A OBJETOS

RECUPERAÇÃO COM BASE EM CHECKPOINTING PARA APLICAÇÕES ORIENTADAS A OBJETOS UNIVERSIDADE DO OESTE PAULISTA FACULDADE DE INFORMÁTICA DE PRESIDENTE PRUDENTE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO RECUPERAÇÃO COM BASE EM CHECKPOINTING PARA APLICAÇÕES ORIENTADAS A OBJETOS LUCIANO PEREIRA

Leia mais

Bancos de dados distribuídos Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com. http://www.tiagodemelo.info

Bancos de dados distribuídos Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com. http://www.tiagodemelo.info Bancos de dados distribuídos Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com Última atualização: 20.03.2013 Conceitos Banco de dados distribuídos pode ser entendido como uma coleção de múltiplos bds

Leia mais

Um sistema é constituído de um conjunto de processos que executam seus respectivos códigos do sistema operacional e processos e códigos de usuários.

Um sistema é constituído de um conjunto de processos que executam seus respectivos códigos do sistema operacional e processos e códigos de usuários. Os sistemas computacionais atuais permitem que diversos programas sejam carregados na memória e executados simultaneamente. Essa evolução tornou necessário um controle maior na divisão de tarefas entre

Leia mais

Falha benigna. Sistema. Sistema Próprio. Interrompido. Restauração. Falha catastrófica. Falha catastrófica. Sistema. Impróprio

Falha benigna. Sistema. Sistema Próprio. Interrompido. Restauração. Falha catastrófica. Falha catastrófica. Sistema. Impróprio INE 5418 Segurança de Funcionamento Tipos de s Detecção de s Recuperação de s Segurança de Funcionamento Representa a confiança depositada em um determinado sistema em relação ao seu correto funcionamento

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Faculdades SENAC Análise e Desenvolvimento de Sistemas 1 de agosto de 2009 Conceitos Conança de Funcionamento (Dependability) Representa a conança depositada em um determinado sistema em relação ao seu

Leia mais

Sistemas Operacionais 2014 Introdução. Alexandre Augusto Giron alexandre.a.giron@gmail.com

Sistemas Operacionais 2014 Introdução. Alexandre Augusto Giron alexandre.a.giron@gmail.com Sistemas Operacionais 2014 Introdução Alexandre Augusto Giron alexandre.a.giron@gmail.com Roteiro Sistemas Operacionais Histórico Estrutura de SO Principais Funções do SO Interrupções Chamadas de Sistema

Leia mais

Resumo. Introdução Classificação Fases Curiosidades

Resumo. Introdução Classificação Fases Curiosidades Tolerância à falha Resumo Introdução Classificação Fases Curiosidades Introdução Sistemas Tolerantes a Falhas são aqueles que possuem a capacidade de continuar provendo corretamente os seus serviços mesmo

Leia mais

Sistema Operacional. Processo e Threads. Prof. Dr. Márcio Andrey Teixeira Sistemas Operacionais

Sistema Operacional. Processo e Threads. Prof. Dr. Márcio Andrey Teixeira Sistemas Operacionais Sistema Operacional Processo e Threads Introdução a Processos Todos os computadores modernos são capazes de fazer várias coisas ao mesmo tempo. Enquanto executa um programa do usuário, um computador pode

Leia mais

23/05/12. Recuperabilidade. Recuperabilidade. Recuperabilidade. Recuperabilidade. Recuperabilidade. Recuperação de Falhas em SGBDD

23/05/12. Recuperabilidade. Recuperabilidade. Recuperabilidade. Recuperabilidade. Recuperabilidade. Recuperação de Falhas em SGBDD Recuperação de Falhas em SGBDD Aluno: Antônio Ezequiel de Mendonça daem@cin.ufpe.br Orientadora: Ana Carolina Brandão Salgado A recuperação de transações que falharam significa que o BD será restaurado

Leia mais

TRANSAÇÃO. Reconstrução ( recovery ) BANCO DE DADOS 2. Tipos de falhas (1) Tipos de falhas (2) Princípios

TRANSAÇÃO. Reconstrução ( recovery ) BANCO DE DADOS 2. Tipos de falhas (1) Tipos de falhas (2) Princípios BANCO DE DADOS TRANSAÇÃO Reconstrução ( recovery ) Idéia básica Em algum momento no tempo, todo sistema computacional apresentará uma falha. Prof. Edson Thizon O SGBD deve incorporar mecanismos de proteção

Leia mais

Banco de Dados Distribuídos

Banco de Dados Distribuídos A imagem não pode ser exibida. Talvez o computador não tenha memória suficiente para abrir a imagem ou talvez ela esteja corrompida. Reinicie o computador e abra o arquivo novamente. Se ainda assim aparecer

Leia mais

Unidade III. Unidade III

Unidade III. Unidade III Unidade III 4 ADMINISTRAÇÃO DE SGBDs As pessoas que trabalham com um banco de dados podem ser categorizadas como usuários de banco de dados ou administradores de banco de dados. 1 Entre os usuários, existem

Leia mais

RESUMO CAPÍTULO 16 OVERVIEW OF TRANSACTION MANAGEMENT. Prof.: Geovane Magalhães Alunos: Gabriela G. Martins Edmar R. S. de Rezende

RESUMO CAPÍTULO 16 OVERVIEW OF TRANSACTION MANAGEMENT. Prof.: Geovane Magalhães Alunos: Gabriela G. Martins Edmar R. S. de Rezende RESUMO CAPÍTULO 16 OVERVIEW OF TRANSACTION MANAGEMENT Prof.: Geovane Magalhães Alunos: Gabriela G. Martins Edmar R. S. de Rezende ÍNDICE ANALÍTICO 16.1 AS PROPRIEDADES ACID... 3 16.1.1 CONSISTÊNCIA E ISOLAMENTO...

Leia mais

Recuperação de Falhas

Recuperação de Falhas Recuperação de Falhas Banco de Dados II Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM 1 Recuperação

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Aula 6 Estrutura de Sistemas Operacionais Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: SO - Prof. Edilberto Silva Prof. José Juan Espantoso

Leia mais

Sumário. Recuperação de Falhas

Sumário. Recuperação de Falhas Sumário 1 Processamento de Consultas 2 Introdução a Transações 3 Recuperação de Falhas 4 Controle de Concorrência 5 Banco de Dados Distribuído Recuperação de Falhas Garantia de atomicidade e durabilidade

Leia mais

http://www.cin.ufpe.br/~sd/disciplinas/sd/grad Características Carlos Ferraz cagf@cin.ufpe.br

http://www.cin.ufpe.br/~sd/disciplinas/sd/grad Características Carlos Ferraz cagf@cin.ufpe.br http://www.cin.ufpe.br/~sd/disciplinas/sd/grad Características Carlos Ferraz cagf@cin.ufpe.br Características O que são os Sistemas Distribuídos? Benefícios : Não são consequências automáticas da distribuição;

Leia mais

BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING

BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING http://www.uniriotec.br/~tanaka/tin0036 tanaka@uniriotec.br Bancos de Dados Distribuídos Conceitos e Arquitetura Vantagens das Arquiteturas C/S (em relação

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Gerência de processos Controle e descrição de processos Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Sumário Representação e controle de processos pelo SO Estrutura

Leia mais

Recuperação de Falhas

Recuperação de Falhas Recuperação de Falhas Capítulo 18 Humpty sentou-se no muro de pedra Humpty teve uma grande queda Todos os cavaleiros e homens do reino Não puderam juntá-lo de novo. - velha rima de crianças 1 Revisão:

Leia mais

Sistemas Distribuídos RPC x RMI. Edeyson Andrade Gomes www.edeyson.com.br

Sistemas Distribuídos RPC x RMI. Edeyson Andrade Gomes www.edeyson.com.br Sistemas Distribuídos RPC x RMI Edeyson Andrade Gomes www.edeyson.com.br Roteiro da Aula Chamada Remota a Procedimento Definição Passagem de Parâmetros STUBS Semântica de Falhas 2 RPC Chamada Remota a

Leia mais

Processos (Threads,Virtualização e Migração de Código)

Processos (Threads,Virtualização e Migração de Código) Processos (Threads,Virtualização e Migração de Código) Roteiro Processos Threads Virtualização Migração de Código O que é um processo?! Processos são programas em execução. Processo Processo Processo tem

Leia mais

Revista Eletrônica da FANESE ISSN 2317-3769

Revista Eletrônica da FANESE ISSN 2317-3769 REPLICAÇÃO E ALTA DISPONIBILIDADE NO SQL SERVER 2012 Renata Azevedo Santos Carvalho 1 RESUMO Neste artigo serão relatadas as novidades que o SQL Server 2012 vem trazendo nesta sua nova versão no que se

Leia mais

Sistemas Distribuídos Aula 15

Sistemas Distribuídos Aula 15 Sistemas Distribuídos Aula 15 Msc. Daniele Carvalho Oliveira Doutoranda em Ciência da Computação - UFU Mestre em Ciência da Computação UFU Bacharel em Ciência da Computação - UFJF 8. Tolerância a Falha

Leia mais

Roteiro. Sistemas Distribuídos. Sistemas de Arquivos Distribuídos. Sistema de arquivos distribuídos

Roteiro. Sistemas Distribuídos. Sistemas de Arquivos Distribuídos. Sistema de arquivos distribuídos Sistemas Distribuídos Sistemas de Arquivos Distribuídos Roteiro Sistema de arquivos distribuídos Requisitos Arquivos e diretórios Compartilhamento Cache Replicação Estudo de caso: NFS e AFS Sistemas Distribuídos

Leia mais

Sistemas Tolerantes a Falhas

Sistemas Tolerantes a Falhas Sistemas Tolerantes a Falhas Ténicas de TF para Diversidade de Dados Prof. Jó Ueyama 1 Introdução A diversidade de dados vem complementar as técnicas de diversidade vistas até agora A diversidade de dados

Leia mais

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Questões Em uma rede de sobreposição (overlay), mensagens são roteadas de acordo com a topologia da sobreposição. Qual uma importante desvantagem

Leia mais

Sistemas Distribuídos Comunicação. Edeyson Andrade Gomes www.edeyson.com.br

Sistemas Distribuídos Comunicação. Edeyson Andrade Gomes www.edeyson.com.br Sistemas Distribuídos Comunicação Edeyson Andrade Gomes www.edeyson.com.br Roteiro da Aula Roteiro da Aula Comunicação entre Processos Protocolos Modelo OSI Modelo Cliente Servidor 3 Comunicação entre

Leia mais

Arquitetura de Computadores. Introdução aos Sistemas Operacionais

Arquitetura de Computadores. Introdução aos Sistemas Operacionais Arquitetura de Computadores Introdução aos Sistemas Operacionais O que é um Sistema Operacional? Programa que atua como um intermediário entre um usuário do computador ou um programa e o hardware. Os 4

Leia mais

Comparação SDs X Scs

Comparação SDs X Scs Prof. Alexandre Lima Sistemas Distribuídos Cap 9 1/7 Comparação SDs X Scs Distribuição inerente Economia Velocidade Confiabilidade Crescimento incremental Descrição Algumas aplicações envolvem máquinas

Leia mais

Sistemas Distribuídos: Conceitos e Projeto Introdução a Tolerância a Falhas

Sistemas Distribuídos: Conceitos e Projeto Introdução a Tolerância a Falhas Sistemas Distribuídos: Conceitos e Projeto Introdução a Tolerância a Falhas Francisco José da Silva e Silva Laboratório de Sistemas Distribuídos (LSD) Departamento de Informática / UFMA http://www.lsd.ufma.br

Leia mais

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP) Hardware (Nível 0) Organização O AS/400 isola os usuários das características do hardware através de uma arquitetura de camadas. Vários modelos da família AS/400 de computadores de médio porte estão disponíveis,

Leia mais

Recuperação de Falhas

Recuperação de Falhas Recuperação de Falhas Prof. Márcio Bueno {bd2tarde,bd2noited}@marciobueno.com Material do Prof. Paulo Pires Recuperação de Falhas Garantia de atomicidade e durabilidade de Transações requer um SGBD tolerante

Leia mais

EXEMPLO: Processo para atualização da hora Processo para monitoramento da necessidade de proteção de tela. Figura 4-1 - Exemplo

EXEMPLO: Processo para atualização da hora Processo para monitoramento da necessidade de proteção de tela. Figura 4-1 - Exemplo 4 PROCESSOS Os primeiros sistemas operacionais permitiam que apenas um processo fosse executado por vez. Dessa maneira, este processo tinha todo o sistema computacional a sua disposição. Os atuais sistemas

Leia mais

Fundamentos de Tolerância a Falhas. Graduação: CIC e ECP Taisy Silva Weber 2002

Fundamentos de Tolerância a Falhas. Graduação: CIC e ECP Taisy Silva Weber 2002 Fundamentos de Tolerância a Falhas Graduação: CIC e ECP Taisy Silva Weber 2002 Bibliografia básica Pradhan, D. K. Jalote, P. Fault-Tolerant System Design. Prentice Hall, New Jersey, 1996. Fault tolerance

Leia mais

Prof. Luiz Fernando. Unidade III ADMINISTRAÇÃO DE

Prof. Luiz Fernando. Unidade III ADMINISTRAÇÃO DE Prof. Luiz Fernando Unidade III ADMINISTRAÇÃO DE BANCOS DE DADOS Administração de SGBDs De todo o tipo de pessoal envolvido com desenvolvimento, manutenção, e utilização de bancos de dados há dois tipo

Leia mais

Capítulo 2 Processos e Threads Prof. Fernando Freitas

Capítulo 2 Processos e Threads Prof. Fernando Freitas slide 1 Capítulo 2 Processos e Threads Prof. Fernando Freitas Material adaptado de: TANENBAUM, Andrew S. Sistemas Operacionais Modernos. 3ª edição. Disponível em: http://www.prenhall.com/tanenbaum_br slide

Leia mais

1- Replicação de Dados - A replicação de dados permite lidar com falhas ao nível dos nós que impeçam o acesso

1- Replicação de Dados - A replicação de dados permite lidar com falhas ao nível dos nós que impeçam o acesso 1- Replicação de Dados - A replicação de dados permite lidar com falhas ao nível dos nós que impeçam o acesso aos dados neles armazenados e com falhas ao nível da comunicação de dados. - Na replicação

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Sistemas Operacionais Prof. Marcelo Sabaris Carballo Pinto Gerencia de Processos 4.1 Introdução aos Processos Gerenciamento de Processos Processo -Definição: É uma abstração do sistema

Leia mais

Introdução. Definição de um Sistema Distribuído (1) Definição de um Sistema Distribuído(2) Metas de Sistemas Distribuídos (2)

Introdução. Definição de um Sistema Distribuído (1) Definição de um Sistema Distribuído(2) Metas de Sistemas Distribuídos (2) Definição de um Sistema Distribuído (1) Introdução Um sistema distribuído é: Uma coleção de computadores independentes que aparecem para o usuário como um único sistema coerente. Definição de um Sistema

Leia mais

Processos e Threads (partes I e II)

Processos e Threads (partes I e II) Processos e Threads (partes I e II) 1) O que é um processo? É qualquer aplicação executada no processador. Exe: Bloco de notas, ler um dado de um disco, mostrar um texto na tela. Um processo é um programa

Leia mais

2 Modelos de Implementação

2 Modelos de Implementação 2 Modelos de Implementação Os modelos de concorrência definem como uma aplicação atende às requisições concorrentes. Os modelos de sandboxes definem como o ambiente das aplicações são criados. Os modelos

Leia mais

Módulo III: Técnicas de. Clodis Boscarioli

Módulo III: Técnicas de. Clodis Boscarioli Módulo III: Técnicas de Recuperação Clodis Boscarioli Agenda: Introdução; Conceitos de recuperação em BD; Técnicas de Recuperação: Com atualização adiada; Com modificação imediata. Recuperação com transações

Leia mais

SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br

SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br - Aula 5 PROCESSOS 1. INTRODUÇÃO Em sistemas distribuídos é importante examinar os diferentes tipos de processos e como eles desempenham seu papel. O conceito de um processo é originário do campo de sistemas

Leia mais

Arquitetura de Sistemas Distribuídos. Introdução a Sistemas Distribuídos

Arquitetura de Sistemas Distribuídos. Introdução a Sistemas Distribuídos Introdução a Sistemas Distribuídos Definição: "Um sistema distribuído é uma coleção de computadores autônomos conectados por uma rede e equipados com um sistema de software distribuído." "Um sistema distribuído

Leia mais

Porque eu preciso entender este assunto?

Porque eu preciso entender este assunto? Porque eu preciso entender este assunto? Para entender como um computador consegue executar várias tarefas simultaneamente e qual o impacto que isso pode ter em meus programas! Os programas de ontem...

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Sistemas de Entrada/Saída Princípios de Hardware Sistema de Entrada/Saída Visão Geral Princípios de Hardware Dispositivos de E/S Estrutura Típica do Barramento de um PC Interrupções

Leia mais

Sistemas distribuídos:comunicação

Sistemas distribuídos:comunicação M. G. Santos marcela@estacio.edu.br Faculdade Câmara Cascudo - Estácio de Sá 16 de abril de 2010 Formas de comunicação Produtor-consumidor: comunicação uni-direccional, com o produtor entregando ao consumidor.

Leia mais

Sistemas Operacionais - Prof. Fabricio Alessi Steinmacher - email:fsteinmacher@gmail.com OBJETIVOS OPERACIONAIS. fsteinmacher@gmail.

Sistemas Operacionais - Prof. Fabricio Alessi Steinmacher - email:fsteinmacher@gmail.com OBJETIVOS OPERACIONAIS. fsteinmacher@gmail. SISTEMAS Introdução a Sistemas Operacionais Prof. Fabricio Alessi Steinmacher - email: OBJETIVOS Identificar as funções e os componentes de um Sistema Operacional; Diferenciar os tipos de Sistemas Operacionais

Leia mais

Crash recovery é similar ao instance recovery, onde o primeiro referencia ambientes de instância exclusiva e o segundo ambientes parallel server.

Crash recovery é similar ao instance recovery, onde o primeiro referencia ambientes de instância exclusiva e o segundo ambientes parallel server. Recover no Oracle O backup e recuperação de dados em um SGBD é de grande importância para a manutenção dos dados. Dando continuidade a nossos artigos, apresentamos abaixo formas diferentes de se fazer

Leia mais

Capítulo 8. Sistemas com Múltiplos Processadores. 8.1 Multiprocessadores 8.2 Multicomputadores 8.3 Sistemas distribuídos

Capítulo 8. Sistemas com Múltiplos Processadores. 8.1 Multiprocessadores 8.2 Multicomputadores 8.3 Sistemas distribuídos Capítulo 8 Sistemas com Múltiplos Processadores 8.1 Multiprocessadores 8.2 Multicomputadores 8.3 Sistemas distribuídos 1 Sistemas Multiprocessadores Necessidade contínua de computadores mais rápidos modelo

Leia mais

Desenvolvimento de Sistemas Tolerantes a Falhas

Desenvolvimento de Sistemas Tolerantes a Falhas Confiança de software Desenvolvimento de Sistemas Tolerantes a Falhas Em geral, os usuários de um sistema de software esperam ele seja confiável Para aplicações não-críticas, podem estar dispostos a aceitar

Leia mais

Comunicação em Sistemas Distribuídos. Bruno M. Carvalho Sala: 3B2 Horário: 35T34

Comunicação em Sistemas Distribuídos. Bruno M. Carvalho Sala: 3B2 Horário: 35T34 Comunicação em Sistemas Distribuídos Bruno M. Carvalho Sala: 3B2 Horário: 35T34 Comunicação em Sistemas Distribuídos Protocolos regras que os processos que estão se comunicando tem de seguir Protocolos

Leia mais

Arquitetura de Software e Atributos de Qualidade

Arquitetura de Software e Atributos de Qualidade Arquitetura de Software e Atributos de Qualidade Jair C Leite Requisitos e atributos de qualidade Requisitos Características, atributos, propriedades e restrições associadas ao software. Requisitos funcionais

Leia mais

Módulo 4: Processos. Conceito de Processo. Diagrama de Estados de Processos. Estados de Processo

Módulo 4: Processos. Conceito de Processo. Diagrama de Estados de Processos. Estados de Processo Módulo 4: Processos Conceito de Processo Conceito de Processo Escalonamento de Processos Operações com Processos Processos Cooperativos Comunicação entre Processos Um sistema operacional executa uma variedade

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos 1 de 9 Sistemas Distribuídos O que é um sistema distribuído? Um conjunto de computadores autonomos a) interligados por rede b) usando um software para produzir uma facilidade de computação integrada. Qual

Leia mais

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Conceitos básicos e serviços do Sistema Operacional Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Tipos de serviço do S.O. O S.O.

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Prof. Marcelo de Paiva Guimarães 1 Objetivos Apresentar uma visão geral de processamento distribuído, analisando os tópicos mais importantes sobre sistemas operacionais distribuídos,

Leia mais

Arquitetura e Organização de Computadores I

Arquitetura e Organização de Computadores I Arquitetura e Organização de Computadores I Interrupções e Estrutura de Interconexão Prof. Material adaptado e traduzido de: STALLINGS, William. Arquitetura e Organização de Computadores. 5ª edição Interrupções

Leia mais

Márcio Leandro Moraes Rodrigues. Frame Relay

Márcio Leandro Moraes Rodrigues. Frame Relay Márcio Leandro Moraes Rodrigues Frame Relay Introdução O frame relay é uma tecnologia de chaveamento baseada em pacotes que foi desenvolvida visando exclusivamente a velocidade. Embora não confiável, principalmente

Leia mais

Considerações no Projeto de Sistemas Cliente/Servidor

Considerações no Projeto de Sistemas Cliente/Servidor Cliente/Servidor Desenvolvimento de Sistemas Graça Bressan Graça Bressan/LARC 2000 1 Desenvolvimento de Sistemas Cliente/Servidor As metodologias clássicas, tradicional ou orientada a objeto, são aplicáveis

Leia mais

Profs. Deja e Andrei

Profs. Deja e Andrei Disciplina Sistemas Distribuídos e de Tempo Real Profs. Deja e Andrei Sistemas Distribuídos 1 Conceitos e Projetos de Sistemas Distribuídos Objetivos: Apresentar uma visão geral de processamento distribuído,

Leia mais

1.2 Tipos de Sistemas Operacionais

1.2 Tipos de Sistemas Operacionais 1.2 Tipos de Operacionais Tipos de Operacionais Monoprogramáveis/ Monotarefa Multiprogramáveis/ Multitarefa Com Múltiplos Processadores 1.2.1 Monoprogramáveis/Monotarefa Os primeiros sistemas operacionais

Leia mais

Camadas de Serviço de Hardware e Software em Sistemas Distribuídos. Introdução. Um Serviço Provido por Múltiplos Servidores

Camadas de Serviço de Hardware e Software em Sistemas Distribuídos. Introdução. Um Serviço Provido por Múltiplos Servidores Camadas de Serviço de Hardware e Software em Sistemas Distribuídos Arquiteutra de Sistemas Distribuídos Introdução Applications, services Adaptação do conjunto de slides do livro Distributed Systems, Tanembaum,

Leia mais

Módulo 4: Processos. Conceito de Processo. Escalonamento de processos Operações sobre processos Processos cooperantes Comunicação entre processos

Módulo 4: Processos. Conceito de Processo. Escalonamento de processos Operações sobre processos Processos cooperantes Comunicação entre processos Módulo 4: Processos Conceito de Processo Escalonamento de processos Operações sobre processos Processos cooperantes Comunicação entre processos 4.1 Conceito de Processo Um Sistema Operacional executa uma

Leia mais

3. Comunicação em Sistemas Distribuídos

3. Comunicação em Sistemas Distribuídos 3. Comunicação em 3.1.Troca de mensagens As mensagens são objetos de dados cuja estrutura e aplicação são definidas pelas próprias aplicações que a usarão. Sendo a troca de mensagens feita através de primitivas

Leia mais

Bancos de Dados Móveis

Bancos de Dados Móveis Agenda Bancos de Dados Móveis Acadêmicas: Anete Terezinha Trasel Denise Veronez Introdução Banco de Dados Móveis (BDM) Projetos de BDM SGBD Móveis Conclusão Referências Bibliográficas Introdução Avanços

Leia mais

Mecanismo de Interrupção

Mecanismo de Interrupção Mecanismo de Interrupção Paralelismo de Operação Num sistema multiprogramado a CPU está sempre apta a compartilhar o seu tempo entre os vários programas e os diferentes dispositivos periféricos que necessitam

Leia mais

Introdução à Programação de Computadores

Introdução à Programação de Computadores 1. Objetivos Introdução à Programação de Computadores Nesta seção, vamos discutir os componentes básicos de um computador, tanto em relação a hardware como a software. Também veremos uma pequena introdução

Leia mais

1- Replicação de Dados - A replicação de dados permite lidar com falhas ao nível dos nós que impeçam o acesso

1- Replicação de Dados - A replicação de dados permite lidar com falhas ao nível dos nós que impeçam o acesso 1- Replicação de Dados - A replicação de dados permite lidar com falhas ao nível dos nós que impeçam o acesso aos dados neles armazenados e com falhas ao nível da comunicação de dados. - Na replicação

Leia mais

Sistemas Operacionais Carlos Eduardo Portela Serra de Castro

Sistemas Operacionais Carlos Eduardo Portela Serra de Castro Introdução Sistemas Operacionais 1 Sistema Operacional: Um conjunto de programas, executado pelo computador como os outros programas. Função: Controlar o funcionamento do computador, disponibilizando seus

Leia mais

Sistemas Distribuídos Aula 1 Introdução

Sistemas Distribuídos Aula 1 Introdução Sistemas Distribuídos Aula 1 Introdução 35T34 3B2 Programa Introdução. Conceitos de sistemas distribuídos. Comunicação em sistemas distribuídos. Sincronização em sistemas distribuídos. Processos e processadores

Leia mais

CONTROLE DE CONCORRÊNCIA EM BANCO DE DADOS: Estudo de Caso Microsoft SQL Server 2008

CONTROLE DE CONCORRÊNCIA EM BANCO DE DADOS: Estudo de Caso Microsoft SQL Server 2008 CONTROLE DE CONCORRÊNCIA EM BANCO DE DADOS: Estudo de Caso Microsoft SQL Server 2008 GERALDA SILVIA DE VASCONCELOS JARDIM 1 IREMAR NUNES DE LIMA 2 Resumo: Este artigo descreve a importância do mecanismo

Leia mais

Gerenciamento de Transações

Gerenciamento de Transações Gerenciamento de Transações Outros tipos de recuperação: Além das falhas causadas por transações incorretas, conforme vimos anteriormente, podem ocorrer outros tipos de falhas, que ocorrem por fatores

Leia mais

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto Engenharia de Software I Informática 2009 Profa. Dra. Itana Gimenes RUP: Artefatos de projeto Modelo de Projeto: Use-Case Realization-projeto

Leia mais

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Consistência e Replicação Capítulo 7 Agenda Razões para Replicação Replicação como técnica de escalabilidade Modelos de Consistência centrados

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos LICENCIATURA EM COMPUTAÇÃO Prof. Adriano Avelar Site: www.adrianoavelar.com Email: eam.avelar@gmail.com O que veremos hoje... Evolução Histórica Motivação Conceitos Características

Leia mais

Fundamentos de Arquitetura de Computadores. Prof. Marcos Quinet Universidade Federal Fluminense UFF Pólo Universitário de Rio das Ostras - PURO

Fundamentos de Arquitetura de Computadores. Prof. Marcos Quinet Universidade Federal Fluminense UFF Pólo Universitário de Rio das Ostras - PURO Fundamentos de Arquitetura de Computadores Prof. Marcos Quinet Universidade Federal Fluminense UFF Pólo Universitário de Rio das Ostras - PURO Hardware de um Sistema Computacional Hardware: são os componentes

Leia mais

Protocolo de Recuperação por Retorno, Coordenado, Não Determinístico

Protocolo de Recuperação por Retorno, Coordenado, Não Determinístico UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA PROGRAMA DE PÓS-GRADUAÇÃO EM COMPUTAÇÃO Protocolo de Recuperação por Retorno, Coordenado, Não Determinístico por SÉRGIO LUIS CECHIN Tese

Leia mais

Replicação de servidores

Replicação de servidores Arquiteturas Tolerantes a faltas em Sistemas Distribuídos Replicação de servidores Replicação: que benefícios nos dá? 1) Melhor desempenho e escalabilidade Replicar serviços permite que algumas operações

Leia mais

Um cluster de servidores de email pode ser usado para servir os emails de uma empresa.

Um cluster de servidores de email pode ser usado para servir os emails de uma empresa. CLUSTERS Pode-se pegar uma certa quantidade de servidores e juntá-los para formar um cluster. O serviço então é distribuído entre esses servidores como se eles fossem uma máquina só. Um cluster de servidores

Leia mais

Capítulo 2 Processos e Threads. 2.1 Processos 2.2 Threads 2.3 Comunicação interprocesso 2.4 Problemas clássicos de IPC 2.

Capítulo 2 Processos e Threads. 2.1 Processos 2.2 Threads 2.3 Comunicação interprocesso 2.4 Problemas clássicos de IPC 2. Capítulo 2 Processos e Threads 2.1 Processos 2.2 Threads 2.3 Comunicação interprocesso 2.4 Problemas clássicos de IPC 2.5 Escalonamento 1 Processos O Modelo de Processo Multiprogramação de quatro programas

Leia mais

Desenvolvimento para Sistemas Embarcados (CEA 513) Conceitos Gerais

Desenvolvimento para Sistemas Embarcados (CEA 513) Conceitos Gerais Universidade Federal de Ouro Preto Departamento de Computação e Sistemas - DECSI Desenvolvimento para Sistemas Embarcados (CEA 513) Conceitos Gerais Vicente Amorim vicente.amorim.ufop@gmail.com Sumário

Leia mais

Visão Geral de Sistemas Operacionais

Visão Geral de Sistemas Operacionais Visão Geral de Sistemas Operacionais Sumário Um sistema operacional é um intermediário entre usuários e o hardware do computador. Desta forma, o usuário pode executar programas de forma conveniente e eficiente.

Leia mais

Sistemas Distribuídos: Conceitos e Projeto Threads e Migração de Processos

Sistemas Distribuídos: Conceitos e Projeto Threads e Migração de Processos Sistemas Distribuídos: Conceitos e Projeto Threads e Migração de Processos Francisco José da Silva e Silva Laboratório de Sistemas Distribuídos (LSD) Departamento de Informática / UFMA http://www.lsd.deinf.ufma.br

Leia mais

Sistemas Operacionais Entrada / Saída. Carlos Ferraz (cagf@cin.ufpe.br) Jorge Cavalcanti Fonsêca (jcbf@cin.ufpe.br)

Sistemas Operacionais Entrada / Saída. Carlos Ferraz (cagf@cin.ufpe.br) Jorge Cavalcanti Fonsêca (jcbf@cin.ufpe.br) Sistemas Operacionais Entrada / Saída Carlos Ferraz (cagf@cin.ufpe.br) Jorge Cavalcanti Fonsêca (jcbf@cin.ufpe.br) Tópicos Princípios do hardware de E/S Princípios do software de E/S Camadas do software

Leia mais

4 Plano de Recuperação

4 Plano de Recuperação 4 Plano de Recuperação Como pode ser observado na Seção 3.2, um projeto de um middleware para TVD deve considerar o fato que ele será embarcado em plataformas diversas e, portanto, que fará uso de diversas

Leia mais

2 Trabalhos Relacionados

2 Trabalhos Relacionados 2 Trabalhos Relacionados Nesse capítulo, apresentamos os trabalhos relacionados ao GridFS, entrando em mais detalhes sobre os sistemas citados durante a introdução e realizando algumas considerações sobre

Leia mais

REDES DE COMPUTADORES

REDES DE COMPUTADORES Eriko Carlo Maia Porto UNESA Universidade Estácio de Sá eriko_porto@uol.com.br Última revisão Julho/2003 REDES DE COMPUTADORES INTRODUÇÃO EVOLUÇÃO DOS SISTEMAS DE COMPUTAÇÃO Década de 50 introdução dos

Leia mais

Sistemas Operacionais

Sistemas Operacionais UNIVERSIDADE BANDEIRANTE DE SÃO PAULO INSTITUTO POLITÉCNICO CURSO DE SISTEMAS DE INFORMAÇÃO Sistemas Operacionais Notas de Aulas: Tópicos 7 e 8 Estrutura do Sistema Operacional São Paulo 2009 1 Sumário

Leia mais

Bancos de Dados Distribuídos. Filipe Gomes Pinto Guilherme Marquesini Reis Ribeiro Matheus Leônidas Silva Pedro Duarte

Bancos de Dados Distribuídos. Filipe Gomes Pinto Guilherme Marquesini Reis Ribeiro Matheus Leônidas Silva Pedro Duarte Bancos de Dados Distribuídos Filipe Gomes Pinto Guilherme Marquesini Reis Ribeiro Matheus Leônidas Silva Pedro Duarte Conceitos Sistema distribuído. Banco de dados distribuído (BDD). Coleção de multiplos

Leia mais

William Stallings Arquitetura e Organização de Computadores 8 a Edição

William Stallings Arquitetura e Organização de Computadores 8 a Edição William Stallings Arquitetura e Organização de Computadores 8 a Edição Capítulo 7 Entrada/saída Os textos nestas caixas foram adicionados pelo Prof. Joubert slide 1 Problemas de entrada/saída Grande variedade

Leia mais

Características Básicas de Sistemas Distribuídos

Características Básicas de Sistemas Distribuídos Motivação Crescente dependência dos usuários aos sistemas: necessidade de partilhar dados e recursos entre utilizadores; porque os recursos estão naturalmente em máquinas diferentes. Demanda computacional

Leia mais

MÓDULO 8 ARQUITETURA DOS SISTEMAS DE BANCO DE DADOS

MÓDULO 8 ARQUITETURA DOS SISTEMAS DE BANCO DE DADOS MÓDULO 8 ARQUITETURA DOS SISTEMAS DE BANCO DE DADOS Quando falamos em arquitetura, normalmente utilizamos esse termo para referenciar a forma como os aplicativos computacionais são estruturados e os hardwares

Leia mais

SISTEMAS DISTRIBUÍDOS

SISTEMAS DISTRIBUÍDOS SISTEMAS DISTRIBUÍDOS Capítulo 1 Introdução Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça Copyright DI FCT/ UNL / 1 NOTA PRÉVIA A apresentação utiliza algumas das figuras do livro

Leia mais

Sistema de Arquivos Distribuídos

Sistema de Arquivos Distribuídos Sistema de Arquivos Distribuídos Sistema de Arquivos Distribuídos A interface cliente para um sistema de arquivos é composta por um conjunto de primitivas e operações em arquivos (criar, apagar, ler, escrever)

Leia mais

Sistemas Operativos I

Sistemas Operativos I Componentes de um Sistema Operativo Maria João Viamonte / Luis Lino Ferreira Fevereiro de 2006 Sistema Operativo Um Sistema Operativo pode ser visto como um programa de grande complexidade, responsável

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Software em Sistemas Distribuídos Aplicativo ou Sistema Operacional Sincronismo Interação Controles Um sistema operacional moderno provê dois serviços fundamentais para o usuário

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos (Re)Introdução 1 Organização Definição Características essenciais dos sistemas distribuídos Desafios principais 2 Definição Um sistema distribuído é... um conjunto de componentes

Leia mais

Comunicação de Dados

Comunicação de Dados UNISUL 2013 / 1 Universidade do Sul de Santa Catarina Engenharia Elétrica - Telemática 1 Comunicação de Dados Aula 6 Agenda Projeto da camada de enlace de dados Detecção e correção de erros Protocolos

Leia mais