programação distribuída utilizando mosix e dipc
Post on 12-Jan-2016
32 Views
Preview:
DESCRIPTION
TRANSCRIPT
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 VirtualMemó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.
Representação da memória virtual
Página 1
Página 2
Página n
Mapa de memória
Memóriavirtual
Memóriafísica
Disco
Memória Compartilhada
• Utilização de uma memória comum, onde se pode ler ou escrever.
• A memória compartilhada pode ser a memória física ou um arquivo em disco.
Tipos de memória compartilhada
Entre processos:P2 - memória virtual
P1 - memória virtual
Memória real
Tipos de memória compartilhada
Entre CPU’s:
CPU 3
CPU 2
CPU 4
CPU 1 Memória
Tipos de memória compartilhada
Entre Computador:
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.
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.
Clusters
• Os clusters são dividos em dois tipos:
– NoW• Network of Workstations (heterogêneos)
– CCS• Cluster of Connected Servers (homogêneo)
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...
Comunicação Interprocessos (IPC)
Processo Processo I I P P C C
KERNEL
Mesma máquina
• 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
Motivação para processamento distribuído
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
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
DIPC - Comunicação interprocessos distribuída
K e r n e lAplicação
D I P C
... I P C
Suporte de rede
AplicaçãoD I
P C... I P C
Suporte de rede
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.
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
DIPC - Características
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.
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)
DIPC -Implementação
DIPC - Funcionamento
Estrutura de comunicação padronização
Processo 1Processo 1
Processo nProcesso n
DIPC - Cluster
Cluster
JUIZ
DIPC - Memória compartilhada distribuída
Segmento
Computador 1 Computador 2 Computador n
Copia
DIPC - Memória compartilhada distribuída
Página
Computador 1 Computador 2 Computador n
4 k
Copia
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.
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.
Motivação para o MOSIX
• Balanceamento dinâmico e inteligente de carga
• Clusters heterogênios
• Transparência
• Escalabilidade
• Descentralização
• Autonomia dos nós
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
• 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.
Funcionamento do MOSIX
Funcionamento do MOSIX
• Composto de duas partes:
– Migração Preemptiva de Processos
– Algoritmos adaptativos para realizar o compartilhamento de recursos.
MOSIX - Cluster
Cluster
Migração Preemptiva de Processos
ProcessoLocal
Representante
Modo Usuário
Modo Supervisor
Máquina #1
Camada deAdaptação
Representado
Modo Supervisor
Modo Usuário
Máquina N
• 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
Algorítmos de compartilhamento de recursos
Algorítmos de compartilhamento de recursos
P1
PnP3P2
Computador 1
P1
Computador 1
P2
Computador 2PnP3
Computador 3Ocup.33% Ocup.30%Ocup.25%
P1
Computador 1
P2
Computador 2PnP3
Computador 3Ocup.33% Ocup.80%Ocup.25%
P4
MigraçãoPreempitiva
Saturação
Algorítmos
Normal
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.
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
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
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.
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
top related