• Nenhum resultado encontrado

São configurações que agregam computadores existentes nas redes convencionais e possuem grande poder de escala em virtude disso. Nos ambientes distribuídos os conjuntos de máquinas existentes permitem configurações diferenciadas de SMPs, MPP, de clusters e grids computacionais. Muitos autores empregam o termo metacomputador como referência ao uso de sistemas distribuídos como um grande computador, vide a própria internet que possui máquinas agrupadas para a execução de uma aplicação.

É importante que a segurança, o retardo de comunicação, a confiabilidade, a disponibilidade e a compatibilidade de versões de pacotes de software sejam analisados durante o processo de

implementação desta configuração, visto que, como há mais computadores, a probabilidade de uma falha ocorrer aumenta substancialmente.

12

Clusters

É a agregação de computadores de uma forma dedicada ou não dedicada para a execução de aplicações específicas de uma organização ou que exijam um maior desempenho computacional agregado.

Normalmente, os clusters se encontram geograficamente localizados em uma determinada área da organização, tendo uma disponibilidade de processadores, memórias e capacidade de armazenamento específicos para este atendimento.

Nos clusters a escalabilidade é um diferencial, visto que a configuração pode ser aumentada de acordo com os recursos disponíveis, melhorando o desempenho das aplicações.

13

Grids

O termo computação em grade ou grids computacionais agregam ambientes geograficamente dispersos criando uma malha de serviços, com foco na qualidade. Seu principal objetivo é o compartilhamento dos mais diferentes tipos de recursos, desde os mais simples como um desktop até os de alto desempenho como os de grande porte e os clusters, utilizando o tempo ocioso de sistemas computacionais.

Seu maior exemplo é a internet, que está num ambiente no qual diferentes tipos de aplicativos e de requerimentos de qualidade são tratados de forma equivalente, através dos grids consegue-se

concentrar “toda a potencialidade de recursos e serviços disponíveis na internet para o processamento de tarefas dos usuários pertencentes a uma ou mais configurações de grid”.

14

4 - ESCALONAMENTO (SCHEDULING)

O escalonamento é necessário para minimizar o tempo de execução das aplicações, e

consequentemente seus custos de comunicação, além de maximizar a utilização dos recursos

computacionais disponíveis. Um algoritmo de escalonamento pode ser definido de diferentes formas mas seu objetivo principal é o de produzir um desempenho excelente nas combinações de hardware e software. Para tanto se deve verificar a plataforma computacional, o algoritmo de escalonamento e as aplicações executadas.

A taxonomia proposta por Casavant (Casavant & Kuhl, 1988) é a mais abrangente e baseia-se nos tipos de informações usadas, onde as tarefas serão alocadas, e na forma como serão efetuadas as tomadas de decisão (centralizadas ou distribuídas) e a obtenção de informações. A classificação hierárquica é

15

No escalonamento local, os períodos de tempo de utilização de um único host são chamados de

time-slices e são atribuídos aos processos em execução por meio da política de compartilhamento de tempo (time-sharing) (TANEMBAUM, 2001).

O escalonamento global é a atividade que determina para qual o elemento o processo será alocado e executado, podendo ser estático, onde a atribuição do processo é feita antes da execução do programa, ou dinâmico, onde há a redistribuição de processos entre os elementos de processamento durante a

execução do programa, balanceando a carga (load balancing).

Fonte: Escalonamento de Processos em Sistemas Computacionais Distribuídos

As decisões relativas ao balanceamento de carga podem ser feitas de forma centralizada, distribuída ou de uma combinação dessas abordagens.

Centralizada

Na forma centralizada (não distribuída), estabelece-se que um único elemento de processamento recebe as informações de carga, sendo responsável pelo escalonamento em todo o sistema.

16

5 - DEPENDABILIDADE

Na sociedade moderna há uma grande dependência de sistemas computacionais e a dependabilidade diz respeito à capacidade destes sistemas em prestar um serviço no qual se pode justificadamente confiar.

Avizienis (2001) caracteriza a dependabilidade a partir de um conjunto de conceitos divididos em três grupos: os atributos, os meios e as ameaças.

17

Atributos são medidas probabilísticas da dependabilidade. Em virtude da natureza não determinística das circunstâncias consideradas, são associadas variáveis aleatórias a cada atributo e as medidas obtidas são probabilidades. Os atributos comumente empregados são:

Distribuída

Na forma distribuída, cada elemento de processamento tem autonomia para estabelecer sob que condição ocorre a transferência de um processo.

Combinação

O processo de escalonamento pode ser feito de forma cooperativa, considerando os outros processadores do sistema, ou não cooperativa (independente).

Fonte: Repositório – UFSC -

https://repositorio.ufsc.br/bitstream/handle/123456789/89586/242963.pdf?sequence=1

18

Meios

Através dos meios da classificação da dependabilidade consegue-se trabalhar na prevenção, tolerância, remoção ou previsão das falhas. Assim sendo, podem-se tratar as falhas que geram erros e propagam defeitos.

Prevenção de falhas

Ao se preverem as falhas aumenta-se a confiabilidade dos sistemas, através de técnicas de controle da qualidade nas etapas de projeto e desenvolvimento de sistemas. Como não há como eliminar todas as falhas do sistema, estão previstos procedimentos manuais de reparo a fim de restaurar o sistema à condição de serviço correto.

19

Tolerância a falhas

É a capacidade de um sistema apresentar um comportamento muito bem definido na ocorrência de falhas ativas, utilizando-se de técnicas que aumentem a segurança e a operacionalidade do sistema.

forma mais completa de tolerância a falhas, a mais desejada e a de maior custo.

b) Não tolerância a falhas é uma forma extrema, porém a solução mais trivial, mais frágil e com o custo mais reduzido, sendo a mais indesejada, visto que o sistema apresentará defeito.

Há também duas formas intermediárias de tolerância as falhas: o defeito seguro, que garante o estado seguro do sistema, mas nada diz sobre o seu estado operacional; e, tolerância a falhas sem

mascaramento, onde o sistema permanecerá operacional, mesmo que ingresse num estado inseguro. A redundância é a chave para se conseguir a tolerância a falhas e os sistemas distribuídos se utilizam de múltiplas formas de redundância, como:

a) estrutura;

b) hardware e software; c) informação;

d) tempo. Estrutura

Técnica conhecida como N-version programming, que considera duas ou mais versões de um só algoritmo;

20

Implementação de tolerância a falhas

Para tornar um sistema tolerante a falhas há a necessidade do emprego de pelo menos uma das formas de redundância, sendo que o ponto de partida é a detecção de erros.

Como os erros são uma propriedade do estado do sistema e há testes que podem ser executados para sua detecção, que devem atender a três propriedades, um tanto difíceis de serem satisfeitas: basear-se somente nas especificações do sistema, ser completo e correto, possuir independência do sistema com relação à ocorrência de falhas para evitar erros nos testes.

Hardware e software

Replicação de partes componentes de um sistema, ou até mesmo o sistema como um todo, sendo para alguns a única forma capaz de permitir a tolerância de falhas permanentes;

Informação

Há técnicas que utilizam os códigos de paridade onde a redundância na informação pode ser suficiente; Tempo

São métodos caracterizados pela repetição da mesma atividade uma ou mais vezes, visto que a causa do problema é de natureza atemporal. É mais utilizada na detecção de erros que resultem da

Outro passo é a recuperação do sistema, cujo objetivo é restaurá-lo a um estado onde não haja erros detectados e nem falhas ativadas, gerando novos erros. Pode-se realizá-la tanto pelo tratamento dos erros, quanto das falhas.

O tratamento dos erros (error handling) pode ser efetuado através de:

21

O tratamento de falhas (fault handling) objetiva impedir que falhas identificadas sejam ativadas

novamente e seu tratamento se dá em quatro etapas:

Remoção de falhas

Pode-se empregar a abordagem de remoção de falhas tanto na etapa de desenvolvimento, como durante a vida operacional de um sistema.

No processo de desenvolvimento a remoção de falhas atua da seguinte forma: verificação (estática ou dinâmica), em que se analisa se o sistema atende às condições de verificação; o diagnóstico, em que as

origens das falhas são detectadas; e a correção, em quer as falhas são corrigidas. É importante avaliar se

a técnica implementada será eficiente e há um mecanismo de injeção de falhas (fault injection) que

introduz falhas controladas no sistema para avaliar o comportamento da técnica empregada, sob tais condições. A remoção de falhas é realizada normalmente por meio de atividades de manutenção corretiva ou preventiva.

22

Previsão de Falhas

A técnica de previsão de falhas usa avaliação do comportamento do sistema com relação à ocorrência ou à ativação de falhas e possui dois aspectos:

Ameaças são aspectos que podem ameaçar a dependabilidade de um sistema distribuído e é necessária a especificação do tipo de ameaça apresentada, por meio da identificação mais precisa de falhas, erros e defeitos. Há uma relação de dependência entre falhas, erros e defeitos chamada de patologia da falha.

Fonte: Agnaldo L Martins – http://slideplayer.com.br/slide/1866374/ 23

A falha é aquilo que ocasiona o erro, provocando no sistema uma transição de estado não planejada, levando o sistema para o lado do erro.

Quando a falha não apresenta erros é chamada de falha latente, quando produz um erro é chamada de falha ativa. A latência de falhas é o tempo entre o surgimento da falha e sua ativação.

Avizienis (2001) classifica as falhas em três grupos distintos:

• falhas de projeto - que podem ter sido geradas a especificações erradas ou incompletas; • falhas de interação - originadas de ações inadequadas do operador durante a operação e manutenção;

• falhas físicas - resultantes do envelhecimento dos recursos computacionais existentes, seja por duração, valor ou extensão.

Um erro é a manifestação da falha, fazendo que o sistema não atue de acordo com sua especificação, ou seja, é parte de um estado errôneo que constitui uma diferença de um estado válido.

24

Defeito é um erro existente no sistema que alcança a interface do serviço e altera o seu resultado esperado, ou seja, é um estado indesejado do sistema que pode resultar em um defeito.

A latência de erro é o tempo entre o surgimento de um erro e a manifestação do defeito e sua duração depende das circunstâncias e do sistema computacional.

Há modos de defeitos (failure modes) ou modelos de defeitos (failure models) que são usados para

classificar os defeitos, em que os parâmetros mais utilizados são o domínio, a percepção pelos usuários e as consequências no ambiente.

25

RESUMO

Durante o estudo deste módulo você teve a oportunidade de compreender que há inúmeras

possibilidades na arquitetura dos computadores com a finalidade de uniformizar as características dos sistemas computacionais, porém a taxonomia de Flynn é a mais aceita na área. Vimos que as

arquiteturas ccNUMA são complexas e suas implementações dependem das soluções de cada fabricante para a sincronização de acesso e consistência à memória, permitindo um melhor desempenho da máquina. É um tipo de arquitetura fracamente acoplada na qual os computadores são classificados como multicomputadores e as máquinas possuem configuração massivamente paralelas (MPP), podendo ser compostas por um conjunto de multiprocessadores, que representam um nó de uma configuração do tipo multicomputador, com cache e memória local, e há milhares de nós interligados por dispositivos de interconexão de alta velocidade.

Nos ambientes distribuídos, os conjuntos de máquinas existentes permitem configurações diferenciadas de SMPs, MPP, de clusters e grids computacionais. Vimos também que normalmente os clusters se encontram geograficamente localizados em uma determinada área da organização, tendo uma disponibilidade de processadores, memórias e capacidade de armazenamento específicos para este atendimento. No caso dos grids, o seu principal objetivo é o compartilhamento dos mais diferentes tipos de recursos, desde os mais simples, como um desktop, até os de alto desempenho como os de grande porte e os clusters, utilizando o tempo ocioso de sistemas computacionais. O escalonamento é necessário para minimizar o tempo de execução das aplicações, e consequentemente seus custos de comunicação, além de maximizar a utilização dos recursos computacionais disponíveis.

Você estucou que nossa sociedade moderna tem uma grande dependência de sistemas computacionais. Esta dependência é chamada de dependabilidade. Este conceito diz respeito à capacidade que os sistemas têm em prestar um serviço no qual se pode justificadamente confiar. Através dos meios da classificação da dependabilidade consegue-se trabalhar na prevenção, tolerância, remoção ou previsão das falhas. Assim, podem-se tratar as falhas que geram erros e propagam defeitos. Ao final do módulo, vimos que, em sistemas de alto desempenho, a “tolerância a falhas” é a capacidade de um sistema apresentar um comportamento muito bem definido na ocorrência de falhas ativas, utilizando-se de técnicas que aumentem a segurança e a operacionalidade do sistema.

UNIDADE 4–ARQUITETURAS CONVENCIONAIS E NÃO CONVENCIONAIS

MÓDULO 4–PROCESSADORES DE REDE,DISPOSITIVOSDE INTERCONEXÃO E

PROTOCOLOS LEVES

01

Documentos relacionados