Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouDerek Maduro Alterado mais de 9 anos atrás
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 Página 1 Página 2 Página n Mapa de memória Memória virtual Memória física Disco
5
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.
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 Entre CPU’s: CPU 3 CPU 2 CPU 4 CPU 1 Memória
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 KERNELKERNEL Mesma máquina
14
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
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
DIPC - Comunicação interprocessos distribuída KernelKernel Aplicação DIPCDIPC... IPCIPC Suporte de rede Aplicação D I P C... IPCIPC Suporte de rede
18
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
19
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
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
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
22
DIPC - Funcionamento Estrutura de comunicação padronização Processo 1 Processo n
23
DIPC - Cluster Cluster JUIZ
24
DIPC - Memória compartilhada distribuída Segmento Computador 1Computador 2Computador n Copia
25
DIPC - Memória compartilhada distribuída Página Computador 1Computador 2Computador n 4 k Copia
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
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
31
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
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
35
P1 Pn P3 P2 Computador 1 P1 Computador 1 P2 Computador 2 Pn P3 Computador 3 Ocup.33% Ocup.30%Ocup.25% P1 Computador 1 P2 Computador 2 Pn P3 Computador 3 Ocup.33% Ocup.80%Ocup.25% P4 Migração Preempitiva Saturação Algorítmos Normal
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
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.