A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Gerenciamento de Processos Distribuídos

Apresentações semelhantes


Apresentação em tema: "Gerenciamento de Processos Distribuídos"— Transcrição da apresentação:

1 Gerenciamento de Processos Distribuídos
Adewole Caetano Andrea Wingerter Gislene Barbosa Rafael Guedes UFABC – Sistemas Operacionais Profº Dr. Marcelo do Nascimento

2 Sumário Objetivo Motivação Introdução
Gerência dos processos Distribuídos Desafios Aplicações Ganglia Considerações Finais Referências Bibliográficas

3 Objetivo Este seminário tem como objetivo, esclarecer como se dá a gerência dos processos distribuídos.

4 Motivação Desde os anos 90 a distribuição do desenvolvimento tem despertado a atenção de pesquisadores. Esse fenômeno se deve a distribuição geográfica de recursos e investimentos, visando: Melhorias na qualidade dos serviços; Aumento na produtividade; Redução de custos no desenvolvimento do software;

5 Introdução Os sistemas distribuídos vem sendo aplicados em diversas áreas, tais como: Meio acadêmico Comércio; Indústria; Um sistema distribuído é aquele que se apresenta aos seus usuários como um sistema centralizado, mas que na verdade funciona em diversas CPUs independentes.

6 Esquema de um SD

7 Desempenho x Custos Com um Sistema distribuído é possível atingir desempenhos jamais imagináveis em um Sistema centralizado. O custo de um SD é bem menor que de um SC, com o mesmo investimento é possível obter desempenhos muito maiores que um SC.

8 Threads Conhecidos como processos leves
Permite a um processo ter mais de um fluxo de controle Compartilham o mesmo espaço de endereçamento Criados para permitir a combinação de paralelismo com execução seqüencial e chamadas de sistema bloqueadas Organização de acordo com os seguintes modelos: Entregador/trabalhador: entregador escolhe thread livre e entrega a requisição Time: threads são iguais e recebem e processam suas próprias informações Pipeline: threads executam parte da requisição e passam resultados parciais para o próximo thread do pipeline

9 Projeto de Threads Pacote de threads Gerenciamento:
Threads estáticos Threads dinâmicos Uso de semáforos para bloquear a região crítica Primitivas para acordar threads Problemas com variáveis globais

10 Vantagens e desvantagens no usuário
Pode ser implementado em SO que não provêem threads Mais rápido do que no kernel Melhor escalabilidade Desvantagens Implementação de chamadas bloqueadas Dificuldade de repassar informação para outro thread Programadores tentam usar threads em aplicações onde chamadas de sistema são bloqueadas com frequencia

11 Vantagens e desvantagens no kernel
Simples implementação de chamadas bloqueadas Desvantagens Cada operação (criação, destruição, etc) requer uma chamada de sistema cara Overhead

12 Modelos de Sistemas Estações de Trabalho Pool de processadores
Sistemas com estações de trabalho com ou sem discos locais Pool de processadores Rack com processadores que são alocados por demanda Usados como servidores de arquivos Modelo Híbrido Usuários podem utilizar sua estação para trabalho comum e pool de processadores para trabalhos que necessitam de alto desempenho

13 Modelos de Alocação Objetivo: Alocação de Processadores
Otimizar a utilização da CPU e o tempo de resposta médio Alocação de Processadores Utilização de Algoritmos Política de transferências Política de localização

14 Escalonamento Feito por cada processador
Processos do mesmo grupo tendem a rodar paralelamente Existe sincronização dos processadores

15 Tolerância a Falhas Falhas de componentes: Tipos de falhas:
Transientes: acontece apenas uma vez Intermitentes: falha recorrente Permanentes: definitiva Tipos de falhas: Silenciosa: processo para e não responde mais Bizantina: processo continua executando mas gera informações inconsistentes

16 Migração de Código Processos podem ser movidos de máquinas muito carregadas para máquinas com cargas mais leves. Carga é usualmente expressa em termos do comprimento da fila de processos da CPU ou de sua utilização;

17 Tipos de Migração de Código
Migração Forte: mecanismo que migra os três segmentos (código, recurso e execução – bases de um processo) e reinicia o processo exatamente no mesmo estado e na mesma posição de código em que ele estava antes da migração Migração Fraca: somente o segmento de código é transferido e talvez alguns dados de inicialização. O programa transferido é sempre executado a partir de seu estado inicial; Migração é iniciada pelo emissor (proativa): a aplicação deixa o local onde está executando e migra para uma outra localidade na rede por iniciativa própria (e.g. programas de busca em bases de dados na web); Migração iniciada pelo receptor (reativa): a iniciativa da migração parte de uma aplicação executando na máquina de destino (e.g. applets Java).

18 Etapas da Migração 2. O estado da entidade a ser migrada é capturado;
1. O fluxo de execução é interrompido; 2. O estado da entidade a ser migrada é capturado; 3. O código e o estado da entidade migrada são transportados para a máquina de destino; 4. O código e o estado da entidade migrada são restaurados; 5. A execução é reiniciada.

19 Processos Atualmente um processo consiste em um ambiente de execução, junto com uma ou mais threads Ambiente de Execução: conjunto de recursos locais gerenciados pelo núcleo, aos quais suas threads têm acesso. Espaço de endereçamento Recursos de sincronização e comunicação entre threads (ex semáforos) Recursos de nível mais alto como arquivos e janelas abertas

20 Criação de um novo processo
Infraestrutura de suporte a processos dividida em: Escolha do host de destino Criação de um ambiente de execução

21 Escolha do host de destino
Depende de políticas empregadas Política de transferência: determina se um novo processo será criado localmente ou remotamente Política de localização: determina qual nó receberá um novo processo selecionado para transferência Podem ser estáticas ou adaptativas Estáticas: não consideram o estado corrente do sistema, se baseiam em análises matemáticas (ex processos/unidade de tempo) Adaptativas: se baseiam em fatores de tempo de execução como a medida da carga em cada nó por exemplo

22 Criação de um novo ambiente de Execução
Tipos de estratégia: Espaço de endereçamento definido estaticamente Espaço definido com relação a um ambiente de execução existente

23 Comunicação Primitivas: alguns núcleos fornecem primitivas de comunicação customizada, o que economiza na sobrecarga da chamada de sistema Protocolos: Geralmente organizados em pilhas de camadas. Com a possibilidade de integração de novas camadas, ocorre uma composição dinâmica de protocolos e este se adequa para atender um requisito de um aplicativo em particular

24 Gerência de processos distribuídos
Em processos distribuídos, coordenação define-se como: “integração entre atividades e equipes, de modo que as equipes contribuam para atingir um objetivo final comum”. Além dos problemas usuais encontrados no desenvolvimento centralizado, aplicações distribuídas enfrentam os problemas causados pela descentralização do desenvolvimento.

25 Principais problemas encontrados no gerenciamento de SD
Definição clara da estrutura de dependências entre as equipes Definição de critérios para a atribuição de atividades as equipes Definição de estratégias para redução da distância cultural Estabelecimento de interfaces bem definidas para comunicação formal Criação de canais para comunicação informal Garantia de consistência e disponibilidade dos artefatos e documentos do projeto Acompanhamento do progresso das equipes

26 Critérios na divisão da equipe
A estrutura de dependências entre equipes pode ser explicitada pela definição de relações entre os sub-processos A divisão de atividades entre equipes deve ser realizada com base nas funcionalidades do sistema, nos estágios do desenvolvimento (análise, testes, etc) ou de acordo com a localização física das equipes. ex: equipes próximas ao cliente devem ser responsáveis por atividades que requerem maior interação com o usuário, como levantamento de requisitos e implantação do projeto.

27 Outros exemplos de critérios na divisão da equipe
Relações comerciais Arquitetura do sistema Conhecimento das equipes Disponibilidade de ferramentas e recursos

28 Estratégias para diminuição da distância cultural entre equipes
Escolha estratégica de projetos: definição de equipes com semelhanças culturais ou com experiência em trabalho conjunto Utilização do papel de liason, um gerente de projeto que viaja constantemente entre as equipes Investimento no fortalecimento de um “idioma” comum entre as equipes

29 Interface de comunicação
Interface de comunicação formal entre equipes: marcos (milestones) e métricas bem estabelecidas. Interface de comunicação informal: videoconferência; espaço de trabalho compartilhado; mensasegeiros eletronicos;

30 Acompanhamento do andamento das equipes
monitoração da execução dos processos de software realização de reuniões ou videoconferências em intervalos regulares pré-definição da frequência para sincronização do andamento dos processos locais

31 Ambientes de Suporte a Processos Distribuídos
Ambientes de suporte a processos distribuídos não devem assumir que processos de um software são centralizados, ou seja, tais ambientes devem fornecer infra-estrutura adequadas para processos distribuídos. Além disso, ambientes com essa finalidade devem: Coordenar usuários de diversas equipes; Notificar uma equipe sobre as atividades realizadas pelas outras; Troca de conteúdo entre equipes;

32 Ambientes de Suporte a Processos Distribuídos
Grau de acoplamento: Deve facilitar coordenação entre equipes; Grau de independência: Para responsabilizar equipe pelos próprios processos.

33 Classificação: Ambientes Distribuídos
De acordo com o grau de acoplamento e de heterogeneidade entre os ambientes : Cada equipe escolhe seu próprio ambiente, sem preocupação com os ambientes escolhidos pelas outras equipes; Cada equipe escolhe seu próprio ambiente, mas é definido um formato padrão para troca de dados compartilhados; As equipes utilizam várias instancias independentes do mesmo ambiente

34 Classificação: Ambientes Distribuídos
Equipes utilizam o mesmo ambiente, porém este distingue as equipes e oferece facilidades para compartilhamento e colaboração dentro do mesmo ambiente. Um único ambiente, mesmo sendo executado de forma distribuída, não há distinção entre equipes, ou seja, o processo é definido como sendo composto por uma única equipe.

35 Aplicações de Gerenciamento Sistemas Distribuídos

36 O que é Cluster? Clusters de Computadores podem ser definidos como sendo um conjunto composto por dois ou mais computadores interconectados através de alguma tecnologia de rede de comunicação, trabalhando juntos para fins comuns.

37 Tipos de Clusters Podem ser encontrados diversos tipos de clusters, porém os que se destacam são os de : Alto Desempenho. Alta Disponibilidade. Balanceamento de Carga.

38 Ganglia Ganglia é um sistema de monitoramento distribuído desenvolvido para ser executado em ambientes de computação de alto desempenho, nos quais se enquadram os clusters e grids.

39 Mais sobre Ganglia Ele consiste em um software open-source, que teve sua origem na Universidade da Califórnia, Campus de Berkeley. Baseia-se em um protocolo que faz uso da técnica de difusão multicast para comunicação entre os nós. É um sistema portável para uma variedade de sistemas operacionais, além de diversos processadores.

40 Funcionamento O Ganglia é composto por dois daemons (gmond e gmetad), um programa de linha de comando (gmetric), um programa de estado (gstat) e por bibliotecas instaladas na máquina cliente. O gmond (ganglia monitoring daemon) deve ser executado em todos os nós e é responsável por responder às solicitações dos clientes. O gmetad (ganglia meta daemon) viabiliza o agrupamento de clusters em ambientes de grid, implementando uma árvore hierarquizada.

41 Funcionamento Ele utiliza os seguintes formatos de dados e ferramentas: XML - Representação de dados XDR – Compactação e transporte de Dados RRDtool – Salvamento de dados e Visualização PHP – Para Visualização dos dados

42 Ganglia em ação

43 Considerações Finais Neste seminário foi possível verificar que em Sistemas Distribuídos, processadores são conectados por meio de uma rede de comunicação e por esse motivo, não compartilham memória e nem relógio. Os processos podem incluir múltiplas threads e possibilitar a concorrência nos multiprocessadores e realizar as comunicações por meio de passagem de mensagens, um mecanismo oferecido pelo SO.

44 Referências Bibiográficas
Silva, Francisco; Sistemas Distribuídos: Conceitos e Projeto Processos e Threads; disponível em COULOURIS at all; SISTEMAS DISTRIBUIDOS - CONCEITOS E PROJETO; Editora Bookman; 4ª Edição; CARVALHO, Bruno; PROCESSOS EM SDs, disponível em


Carregar ppt "Gerenciamento de Processos Distribuídos"

Apresentações semelhantes


Anúncios Google