Download - Programação Distribuída utilizando Mosix e DIPC André Mendes Carla Marchioro Cristina Machado 2000
![Page 1: Programação Distribuída utilizando Mosix e DIPC André Mendes Carla Marchioro Cristina Machado 2000](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc15f497959413d8e678e/html5/thumbnails/1.jpg)
Programação Distribuída utilizando Mosix e DIPC
André Mendes
Carla Marchioro
Cristina Machado
2000
![Page 2: Programação Distribuída utilizando Mosix e DIPC André Mendes Carla Marchioro Cristina Machado 2000](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc15f497959413d8e678e/html5/thumbnails/2.jpg)
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
![Page 3: Programação Distribuída utilizando Mosix e DIPC André Mendes Carla Marchioro Cristina Machado 2000](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc15f497959413d8e678e/html5/thumbnails/3.jpg)
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.
![Page 4: Programação Distribuída utilizando Mosix e DIPC André Mendes Carla Marchioro Cristina Machado 2000](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc15f497959413d8e678e/html5/thumbnails/4.jpg)
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
![Page 5: Programação Distribuída utilizando Mosix e DIPC André Mendes Carla Marchioro Cristina Machado 2000](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc15f497959413d8e678e/html5/thumbnails/5.jpg)
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.
![Page 6: Programação Distribuída utilizando Mosix e DIPC André Mendes Carla Marchioro Cristina Machado 2000](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc15f497959413d8e678e/html5/thumbnails/6.jpg)
Tipos de memória compartilhada
Entre processos:P2 - memória virtual
P1 - memória virtual
Memória real
![Page 7: Programação Distribuída utilizando Mosix e DIPC André Mendes Carla Marchioro Cristina Machado 2000](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc15f497959413d8e678e/html5/thumbnails/7.jpg)
Tipos de memória compartilhada
Entre CPU’s:
CPU 3
CPU 2
CPU 4
CPU 1 Memória
![Page 8: Programação Distribuída utilizando Mosix e DIPC André Mendes Carla Marchioro Cristina Machado 2000](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc15f497959413d8e678e/html5/thumbnails/8.jpg)
Tipos de memória compartilhada
Entre Computador:
![Page 9: Programação Distribuída utilizando Mosix e DIPC André Mendes Carla Marchioro Cristina Machado 2000](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc15f497959413d8e678e/html5/thumbnails/9.jpg)
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.
![Page 10: Programação Distribuída utilizando Mosix e DIPC André Mendes Carla Marchioro Cristina Machado 2000](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc15f497959413d8e678e/html5/thumbnails/10.jpg)
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.
![Page 11: Programação Distribuída utilizando Mosix e DIPC André Mendes Carla Marchioro Cristina Machado 2000](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc15f497959413d8e678e/html5/thumbnails/11.jpg)
Clusters
• Os clusters são dividos em dois tipos:
– NoW• Network of Workstations (heterogêneos)
– CCS• Cluster of Connected Servers (homogêneo)
![Page 12: Programação Distribuída utilizando Mosix e DIPC André Mendes Carla Marchioro Cristina Machado 2000](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc15f497959413d8e678e/html5/thumbnails/12.jpg)
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...
![Page 13: Programação Distribuída utilizando Mosix e DIPC André Mendes Carla Marchioro Cristina Machado 2000](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc15f497959413d8e678e/html5/thumbnails/13.jpg)
Comunicação Interprocessos (IPC)
Processo Processo I I P P C C
KERNEL
Mesma máquina
![Page 14: Programação Distribuída utilizando Mosix e DIPC André Mendes Carla Marchioro Cristina Machado 2000](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc15f497959413d8e678e/html5/thumbnails/14.jpg)
• 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
![Page 15: Programação Distribuída utilizando Mosix e DIPC André Mendes Carla Marchioro Cristina Machado 2000](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc15f497959413d8e678e/html5/thumbnails/15.jpg)
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
![Page 16: Programação Distribuída utilizando Mosix e DIPC André Mendes Carla Marchioro Cristina Machado 2000](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc15f497959413d8e678e/html5/thumbnails/16.jpg)
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
![Page 17: Programação Distribuída utilizando Mosix e DIPC André Mendes Carla Marchioro Cristina Machado 2000](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc15f497959413d8e678e/html5/thumbnails/17.jpg)
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
![Page 18: Programação Distribuída utilizando Mosix e DIPC André Mendes Carla Marchioro Cristina Machado 2000](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc15f497959413d8e678e/html5/thumbnails/18.jpg)
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
![Page 19: Programação Distribuída utilizando Mosix e DIPC André Mendes Carla Marchioro Cristina Machado 2000](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc15f497959413d8e678e/html5/thumbnails/19.jpg)
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
![Page 20: Programação Distribuída utilizando Mosix e DIPC André Mendes Carla Marchioro Cristina Machado 2000](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc15f497959413d8e678e/html5/thumbnails/20.jpg)
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.
![Page 21: Programação Distribuída utilizando Mosix e DIPC André Mendes Carla Marchioro Cristina Machado 2000](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc15f497959413d8e678e/html5/thumbnails/21.jpg)
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
![Page 22: Programação Distribuída utilizando Mosix e DIPC André Mendes Carla Marchioro Cristina Machado 2000](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc15f497959413d8e678e/html5/thumbnails/22.jpg)
DIPC - Funcionamento
Estrutura de comunicação padronização
Processo 1Processo 1
Processo nProcesso n
![Page 23: Programação Distribuída utilizando Mosix e DIPC André Mendes Carla Marchioro Cristina Machado 2000](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc15f497959413d8e678e/html5/thumbnails/23.jpg)
DIPC - Cluster
Cluster
JUIZ
![Page 24: Programação Distribuída utilizando Mosix e DIPC André Mendes Carla Marchioro Cristina Machado 2000](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc15f497959413d8e678e/html5/thumbnails/24.jpg)
DIPC - Memória compartilhada distribuída
Segmento
Computador 1 Computador 2 Computador n
Copia
![Page 25: Programação Distribuída utilizando Mosix e DIPC André Mendes Carla Marchioro Cristina Machado 2000](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc15f497959413d8e678e/html5/thumbnails/25.jpg)
DIPC - Memória compartilhada distribuída
Página
Computador 1 Computador 2 Computador n
4 k
Copia
![Page 26: Programação Distribuída utilizando Mosix e DIPC André Mendes Carla Marchioro Cristina Machado 2000](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc15f497959413d8e678e/html5/thumbnails/26.jpg)
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.
![Page 27: Programação Distribuída utilizando Mosix e DIPC André Mendes Carla Marchioro Cristina Machado 2000](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc15f497959413d8e678e/html5/thumbnails/27.jpg)
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.
![Page 28: Programação Distribuída utilizando Mosix e DIPC André Mendes Carla Marchioro Cristina Machado 2000](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc15f497959413d8e678e/html5/thumbnails/28.jpg)
Motivação para o MOSIX
• Balanceamento dinâmico e inteligente de carga
• Clusters heterogênios
• Transparência
• Escalabilidade
• Descentralização
• Autonomia dos nós
![Page 29: Programação Distribuída utilizando Mosix e DIPC André Mendes Carla Marchioro Cristina Machado 2000](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc15f497959413d8e678e/html5/thumbnails/29.jpg)
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
![Page 30: Programação Distribuída utilizando Mosix e DIPC André Mendes Carla Marchioro Cristina Machado 2000](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc15f497959413d8e678e/html5/thumbnails/30.jpg)
• 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
![Page 31: Programação Distribuída utilizando Mosix e DIPC André Mendes Carla Marchioro Cristina Machado 2000](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc15f497959413d8e678e/html5/thumbnails/31.jpg)
Funcionamento do MOSIX
• Composto de duas partes:
– Migração Preemptiva de Processos
– Algoritmos adaptativos para realizar o compartilhamento de recursos.
![Page 32: Programação Distribuída utilizando Mosix e DIPC André Mendes Carla Marchioro Cristina Machado 2000](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc15f497959413d8e678e/html5/thumbnails/32.jpg)
MOSIX - Cluster
Cluster
![Page 33: Programação Distribuída utilizando Mosix e DIPC André Mendes Carla Marchioro Cristina Machado 2000](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc15f497959413d8e678e/html5/thumbnails/33.jpg)
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
![Page 34: Programação Distribuída utilizando Mosix e DIPC André Mendes Carla Marchioro Cristina Machado 2000](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc15f497959413d8e678e/html5/thumbnails/34.jpg)
• 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
![Page 35: Programação Distribuída utilizando Mosix e DIPC André Mendes Carla Marchioro Cristina Machado 2000](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc15f497959413d8e678e/html5/thumbnails/35.jpg)
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
![Page 36: Programação Distribuída utilizando Mosix e DIPC André Mendes Carla Marchioro Cristina Machado 2000](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc15f497959413d8e678e/html5/thumbnails/36.jpg)
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.
![Page 37: Programação Distribuída utilizando Mosix e DIPC André Mendes Carla Marchioro Cristina Machado 2000](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc15f497959413d8e678e/html5/thumbnails/37.jpg)
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
![Page 38: Programação Distribuída utilizando Mosix e DIPC André Mendes Carla Marchioro Cristina Machado 2000](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc15f497959413d8e678e/html5/thumbnails/38.jpg)
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
![Page 39: Programação Distribuída utilizando Mosix e DIPC André Mendes Carla Marchioro Cristina Machado 2000](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc15f497959413d8e678e/html5/thumbnails/39.jpg)
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.
![Page 40: Programação Distribuída utilizando Mosix e DIPC André Mendes Carla Marchioro Cristina Machado 2000](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc15f497959413d8e678e/html5/thumbnails/40.jpg)
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