1 / 40

Programação Distribuída utilizando Mosix e DIPC

Programação Distribuída utilizando Mosix e DIPC. André Mendes Carla Marchioro Cristina Machado 2000. Sumário. Conceitos Básicos Memória Virtual Memória Compartilhada Sockets Clusters Comunicação entre processos Motivação para processamento distribuído DIPC MOSIX. Memória Virtual.

ewan
Download Presentation

Programação Distribuída utilizando Mosix e DIPC

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Programação Distribuída utilizando Mosix e DIPC André Mendes Carla Marchioro Cristina Machado 2000

  2. Sumário • Conceitos Básicos • Memória Virtual • Memória Compartilhada • Sockets • Clusters • Comunicação entre processos • Motivação para processamento distribuído • DIPC • MOSIX

  3. Memória Virtual Memória Virtual: Separação lógica da memória do usuário da memória física (real). Vantagens: • Programas podem ser maiores que o tamanho da memória principal. • Facilita a programação, não é necessário se preocupar com a memória disponível.

  4. Representação da memória virtual Disco Memória física Memória virtual Mapa de memória Página 1 Página 2 Página n

  5. Memória Compartilhada • Utilização de uma memória comum, onde se pode ler ou escrever. • A memória compartilhadapode ser a memória física ou um arquivo em disco.

  6. Tipos de memória compartilhada Entre processos: P2 - memória virtual P1 - memória virtual Memória real

  7. Tipos de memória compartilhada CPU 2 Entre CPU’s: CPU 1 Memória CPU 3 CPU 4

  8. Tipos de memória compartilhada Entre Computador:

  9. Sockets Interface genérica para comunicação que faz uso de uma porta de comunicação. • Vantagem: Comunicação entre processos na mesma máquina ou em rede. • Desvantagem: Difícil de programar.

  10. Clusters • São agrupamentos de computadores que utilizam seus recursos de forma cooperativa para resolver problemas. • O cluster é visto como uma única máquina, na qual faz-se requisições e recebe resultados.

  11. Clusters • Os clusters são dividos em dois tipos: • NoW • Network of Workstations (heterogêneos) • CCS • Cluster of Connected Servers (homogêneo)

  12. Comunicação entre processos (IPC) • É uma API que implementa a comunicação entre processos de uma forma padrão. • Para isto se pode utilizar: • Memória compartilhada • Troca de mensagens (send e receive) • Pipes • Arquivo...

  13. Comunicação Interprocessos (IPC) Processo Processo I I P P C C K E R N E L Mesma máquina

  14. Motivação para processamento distribuído • Aumento do poder de processamento com baixo custo • possibilidade de software de prateleira • Aplicações são distribuídas por definição • Maior escalabilidade • Tolerância a falhas • Atender simultaneamente um número elevado de usuários • Ambiente heterogêneos • computador • tecnologia de rede

  15. Alguns problemas... • Não existe mecanismo de balanceamento de carga • Sistemas heterogêneos de diferentes gerações • Compartilhamento de partes de processos • Programação simplificada • Transparência

  16. DIPC - Comunicação interprocessos distribuída • Solução de software para permitir a construção e programação em múltiplos computadores. • É uma extensão das funcionalidades nos mecanismos do IPC do Unix System V para que o mesmo funcione em rede. • Possibilita : • Troca de mensagem • Memória compartilhada distribuída

  17. K e r n e l DIPC - Comunicação interprocessos distribuída Aplicação Aplicação D I P C D I P C ... I P C ... I P C Suporte de rede Suporte de rede

  18. DIPC - Características • O sistema é simples. A simplicidade dos algoritmos é preferível ao desempenho • Transparente • Preservar a semântica do UNIX o máximo possível • Programador interfere diretamente no desempenho do sistema. • Ex. quantidade de dados a ser transferidos.

  19. DIPC - Características • Executa o código do DIPC no espaço do usuário • Portabilidade dos sistemas antigos • Portabilidade - DIPC trabalha tanto em Redes Locais (LAN) quanto em Redes de Longa Distância (WAN); • DIPC trabalha em um ambiente heterogêneo

  20. DIPC -Implementação • Kernel • Aplicar um "patch" no "código fonte" do kernel. • Após a aplicação do "patch", deve-se recompilar o kernel.

  21. DIPC -Implementação Programador • Definir um "flag" nos "header file". • Não é necessário ligar nenhuma biblioteca ao código fonte. /* Exemplo do Header file de uma aplicacao em DIPC */ #include MSG_MODE ( IPC_DIPC IPC_EXCL 0777)

  22. DIPC - Funcionamento Estrutura de comunicação padronização Processo 1 Processo n

  23. DIPC - Cluster JUIZ Cluster

  24. DIPC - Memória compartilhada distribuída Segmento Copia Computador 1 Computador 2 Computador n

  25. DIPC - Memória compartilhada distribuída Página Copia 4 k Computador 1 Computador 2 Computador n

  26. DIPC - Próximos passos • Estudar o uso de DIPC dentro uma WAN, e fazer as mudanças necessárias para que ele funcione. • Portar o DIPC para arquiteturas não Intel que são suportadas pelo Linux, inclusive PowerPC, SPARC, ALFA, MIPS e ARM. • Portar o DIPC para outros sistemas operacionais UNIX que suportam o system V. • Tornar o DIPC tolerante a falhas.

  27. MOSIX Extensão para os sistemas operacionais baseados no UNIX que faz com que um cluster de computadores se comportem como um grande e único supercomputador através da utilização de Migração Preemptiva de Processos e Balanceamento de Memória.

  28. Motivação para o MOSIX • Balanceamento dinâmico e inteligente de carga • Clusters heterogênios • Transparência • Escalabilidade • Descentralização • Autonomia dos nós

  29. Característica do MOSIX • Algorítmos probabilísticos para disseminação das informações • Migração preemptiva de processos • Balanceamento dinâmico de carga • Anunciador de memória • Comunicação entre núcleos eficiente • Controle descentralizado e autonomia • Escalonamento

  30. Funcionamento do MOSIX • Implementado no núcleo do sistema usando a tecnologia de módulos, o que resulta que a interface entre o núcleo do sistema e as aplicações não é modificada, assim isto tudo é transparente para as aplicações. • Construção do cluster de forma simples, com componentes padrões e progressiva.

  31. Funcionamento do MOSIX • Composto de duas partes: • Migração Preemptiva de Processos • Algoritmos adaptativos para realizar o compartilhamento de recursos.

  32. MOSIX - Cluster Cluster

  33. Migração Preemptiva de Processos

  34. Algorítmos de compartilhamento de recursos • Entram em ação em situações de escassez de recursos para: • maximizar a ocupação de memória global do cluster • diminuir a sobrecarga individual de cada processador

  35. Algorítmos de compartilhamento de recursos P1 Migração Preempitiva P2 P3 Normal P1 Pn P2 Computador 2 Computador 3 Computador 1 P3 Ocup.25% Ocup.30% Ocup.33% Pn Computador 1 P1 P4 P2 Algorítmos P3 Saturação Pn Computador 2 Computador 3 Computador 1 Ocup.25% Ocup.80% Ocup.33%

  36. MOSIX -Implementação • Kernel • Aplicar um "patch" no "código fonte" do kernel. • Após a aplicação do "patch", deve-se recompilar o kernel. • Configurar estaticamente quais máquinas faz parte do cluster MOSIX.

  37. MOSIX - Próximos passos • Migração de Sockets • redução da sobrecarga na comunicação interprocessos • Migração de arquivos temporários • melhorar o desempenho de programas como compiladores • Pesquisa de algorítmos para NetworkRAM • permitir que processos grandes utilizem toda a memória disponível nos diversos nós

  38. Conclusão • Utilização de máquinas mais baratas para resolver problema que demandem enorme poder de processamento • Melhor utilização das diversas máquinas que compõem um rede local • Melhorar a escalabilidade das soluções em cluster que existem hoje • Facilitar a vida dos programadores • Utilização dos programas existentes

  39. Referências • [KARIMI2000] Karimi, Kamran e Sharifi, Mohsen, DIPC: The linux Way of Distributed Programming. Linux Journal, 75:10-17, January 1999. • [KARIMI99] Karimi, Kamran, Wellcome to DIPC, , ,. • [KARIMI99] Karimi, Kamran, DIPC, , 19/09/1999, 13:21. • [BING] Matt, DIPC, http:// , , . • [SILBERCHATZ94] Silberchatz, Abraham e Galvin, Peter. Operating System Concepts. Addison Wesley, 1994. • [TANENBAUM92] Tanenbaum, Andrew. Modern Operating System. Prentice-Hall 1992. • [TANENBAUM95] Tanenbaum, Andrew. Distributed Operating System. Prentice-Hall 1995.

  40. Referências • [BARAK99] Barak, Amnon; La’adan, Oren; Shiloh, Amnon; Scalable Cluster Computing with MOSIX for Linux,1999,The Hebrew University of Jerusalem. • [BARAK95] Barak,A.; Laden,O.;Yarom,Y., The NoW MOSIX and its Preemptive Process Migration Scheme. Bulletin of the IEEE Technical Committee on Operating Systems and Application Environments, Summer 1995 • [BARAK97] Barak,Amnon; Braverman, Avner; Memory Ushering in a Scalable Computing Cluster. 1997, The Hebrew University - Institute of Computer Science. Jerusalem

More Related