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)

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

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

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

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 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

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

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

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

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

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

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

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

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

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

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

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

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: 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

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

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

Projeto de Arquitetura

Projeto de Arquitetura Projeto de Arquitetura Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 1 Objetivos Apresentar projeto de arquitetura e discutir sua importância Explicar as decisões de projeto

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 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

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

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

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

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

Padrões Arquiteturais e de Integração - Parte 1

Padrões Arquiteturais e de Integração - Parte 1 1 / 58 - Parte 1 Erick Nilsen Pereira de Souza T017 - Arquitetura e Design de Aplicações Análise e Desenvolvimento de Sistemas Universidade de Fortaleza - UNIFOR 11 de fevereiro de 2015 2 / 58 Agenda Tópicos

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

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

O texto desta seção foi publicado em http://msdn.microsoft.com/ptbr/library/ms177433.aspx. o http://msdn.microsoft.com/pt-br/library/ms178104.

O texto desta seção foi publicado em http://msdn.microsoft.com/ptbr/library/ms177433.aspx. o http://msdn.microsoft.com/pt-br/library/ms178104. AULA 12 - Deadlocks Em alguns casos pode ocorrer a seguinte situação: um processo solicita um determinado recurso e este não está disponível no momento. Quando isso ocontece o processo entra para o estado

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

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

Gerência de Processador

Gerência de Processador Gerência de Processador Prof. Edwar Saliba Júnior Junho de 2009 Unidade 03-003 Gerência de Processador 1 Introdução Com o surgimento dos sistemas multiprogramáveis, onde múltiplos processos poderiam permanecer

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

Seminário: Google File System (GFS)

Seminário: Google File System (GFS) UNIVERSIDADE FEDERAL DE SANTA CATARINA UFSC Disciplina: Sistemas Operacionais I INE5355 Alunos: Armando Fracalossi 06132008 Maurílio Tiago Brüning Schmitt 06132033 Ricardo Vieira Fritsche 06132044 Seminário:

Leia mais

Sistemas Distribuídos e Tolerância a Falhas

Sistemas Distribuídos e Tolerância a Falhas Processamento de erros Detectar / Recuperar/ Mascarar 1º passo: Detecção. A detecção de um erro pode ser realizada por mecanismos como: - códigos de detecção de erros, - timeouts - watchdogs - verificações

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

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

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

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

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

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

3/9/2010. Ligação da UCP com o barramento do. sistema. As funções básicas dos registradores nos permitem classificá-los em duas categorias:

3/9/2010. Ligação da UCP com o barramento do. sistema. As funções básicas dos registradores nos permitem classificá-los em duas categorias: Arquitetura de Computadores Estrutura e Funcionamento da CPU Prof. Marcos Quinet Universidade Federal Fluminense P.U.R.O. Revisão dos conceitos básicos O processador é o componente vital do sistema de

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

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

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 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

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd.

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd. Apresentação Este curso tem como objetivo, oferecer uma noção geral sobre a construção de sistemas de banco de dados. Para isto, é necessário estudar modelos para a construção de projetos lógicos de bancos

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

Sistemas Operacionais Gerência de Dispositivos

Sistemas Operacionais Gerência de Dispositivos Universidade Estadual de Mato Grosso do Sul UEMS Curso de Licenciatura em Computação Sistemas Operacionais Gerência de Dispositivos Prof. José Gonçalves Dias Neto profneto_ti@hotmail.com Introdução A gerência

Leia mais

Comunicação entre processos (grupos) COMUNICAÇÃO ENTRE PROCESSOS Comunicação de grupo. Comunicação entre processos (grupos)

Comunicação entre processos (grupos) COMUNICAÇÃO ENTRE PROCESSOS Comunicação de grupo. Comunicação entre processos (grupos) Comunicação one-to-one Forma mais simples de comunicação entre processos point-to-point, ou unicast COMUNICAÇÃO ENTRE PROCESSOS Comunicação de grupo Algumas aplicações comunicação entre grupos de processos

Leia mais

Sistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com

Sistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Sistemas Operacionais Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Estruturas de Sistemas de Computação O sistema operacional precisa garantir a operação correta do sistema de computação. Operação

Leia mais

Lista de Erros Discador Dial-Up

Lista de Erros Discador Dial-Up Lista de Erros Discador Dial-Up Erro Código Descrição Ok 1 Usuário autenticado com sucesso e conexão encerrada pelo usuário OK 11 Usuário autenticado com sucesso e discador terminado pelo usuário OK 21

Leia mais

Notas da Aula 15 - Fundamentos de Sistemas Operacionais

Notas da Aula 15 - Fundamentos de Sistemas Operacionais Notas da Aula 15 - Fundamentos de Sistemas Operacionais 1. Software de Entrada e Saída: Visão Geral Uma das tarefas do Sistema Operacional é simplificar o acesso aos dispositivos de hardware pelos processos

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

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

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

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

Sistemas Operacionais

Sistemas Operacionais 7 Sistemas Operacionais 7.1 Fundamentos da ciência da computação Cengage Learning Objetivos 7.2 Compreender o papel do sistema operacional. Compreender o processo de inicialização para carregar o sistema

Leia mais

Segurança Internet. Fernando Albuquerque. fernando@cic.unb.br www.cic.unb.br/docentes/fernando (061) 273-3589

Segurança Internet. Fernando Albuquerque. fernando@cic.unb.br www.cic.unb.br/docentes/fernando (061) 273-3589 Segurança Internet Fernando Albuquerque fernando@cic.unb.br www.cic.unb.br/docentes/fernando (061) 273-3589 Tópicos Introdução Autenticação Controle da configuração Registro dos acessos Firewalls Backups

Leia mais

3 SCS: Sistema de Componentes de Software

3 SCS: Sistema de Componentes de Software 3 SCS: Sistema de Componentes de Software O mecanismo para acompanhamento das chamadas remotas se baseia em informações coletadas durante a execução da aplicação. Para a coleta dessas informações é necessário

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

Admistração de Redes de Computadores (ARC)

Admistração de Redes de Computadores (ARC) Admistração de Redes de Computadores (ARC) Instituto Federal de Educação, Ciência e Tecnologia de Santa Catarina - Campus São José Prof. Glauco Cardozo glauco.cardozo@ifsc.edu.br RAID é a sigla para Redundant

Leia mais

Sistema Operacional Correção - Exercício de Revisão

Sistema Operacional Correção - Exercício de Revisão Prof. Kleber Rovai 1º TSI 22/03/2012 Sistema Operacional Correção - Exercício de Revisão 1. Como seria utilizar um computador sem um sistema operacional? Quais são suas duas principais funções? Não funcionaria.

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 OPERACIONAIS. Apostila 03 Estrutura do Sistema Operacional UNIBAN

SISTEMAS OPERACIONAIS. Apostila 03 Estrutura do Sistema Operacional UNIBAN SISTEMAS OPERACIONAIS Apostila 03 Estrutura do Sistema Operacional UNIBAN 1.0 O Sistema Operacional como uma Máquina Virtual A arquitetura (conjunto de instruções, organização de memória, E/S e estrutura

Leia mais

Arquitetura dos Sistemas de Informação Distribuídos

Arquitetura dos Sistemas de Informação Distribuídos Arquitetura dos Sistemas de Informação Distribuídos Quando se projeta um sistema cuja utilização é destinada a ser feita em ambientes do mundo real, projeções devem ser feitas para que o sistema possa

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

Softwares Aplicativos Banco de Dados

Softwares Aplicativos Banco de Dados Softwares Aplicativos Banco de Dados INTRODUÇÃO À ENGENHARIA DA COMPUTAÇÃO Professor: Rosalvo Ferreira de Oliveira Neto Estrutura 1. Definições 2. Serviços 3. Usuários 4. Evolução 5. Exemplos 03 Banco

Leia mais

AVALIAÇÃO À DISTÂNCIA 1 GABARITO

AVALIAÇÃO À DISTÂNCIA 1 GABARITO Fundação CECIERJ - Vice Presidência de Educação Superior a Distância Curso de Tecnologia em Sistemas de Computação UFF Disciplina INTRODUÇÃO À INFORMÁTICA... AD1 2 semestre de 2008. Data... AVALIAÇÃO À

Leia mais

Conceitos de Banco de Dados

Conceitos de Banco de Dados Conceitos de Banco de Dados Autor: Luiz Antonio Junior 1 INTRODUÇÃO Objetivos Introduzir conceitos básicos de Modelo de dados Introduzir conceitos básicos de Banco de dados Capacitar o aluno a construir

Leia mais

REDES DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

REDES DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula Complementar - MODELO DE REFERÊNCIA OSI Este modelo se baseia em uma proposta desenvolvida pela ISO (International Standards Organization) como um primeiro passo em direção a padronização dos protocolos

Leia mais

6 - Gerência de Dispositivos

6 - Gerência de Dispositivos 1 6 - Gerência de Dispositivos 6.1 Introdução A gerência de dispositivos de entrada/saída é uma das principais e mais complexas funções do sistema operacional. Sua implementação é estruturada através de

Leia mais

Infraestrutura de Hardware. Memória Virtual

Infraestrutura de Hardware. Memória Virtual Infraestrutura de Hardware Memória Virtual Perguntas que Devem ser Respondidas ao Final do Curso Como um programa escrito em uma linguagem de alto nível é entendido e executado pelo HW? Qual é a interface

Leia mais

Metas de um Sistema Distribuído

Metas de um Sistema Distribuído Metas de um Sistema Distribuído Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do

Leia mais