programação distribuída utilizando mosix e dipc

Download Programação Distribuída utilizando Mosix e DIPC

Post on 12-Jan-2016

17 views

Category:

Documents

0 download

Embed Size (px)

DESCRIPTION

Programao Distribuda utilizando Mosix e DIPC. Andr Mendes Carla Marchioro Cristina Machado 2000. Sumrio. Conceitos Bsicos Memria Virtual Memria Compartilhada Sockets Clusters Comunicao entre processos Motivao para processamento distribudo DIPC MOSIX. Memria Virtual. - PowerPoint PPT Presentation

TRANSCRIPT

  • Programao Distribuda utilizando Mosix e DIPCAndr MendesCarla MarchioroCristina Machado2000

  • SumrioConceitos BsicosMemria VirtualMemria CompartilhadaSocketsClustersComunicao entre processosMotivao para processamento distribudoDIPCMOSIX

  • Memria VirtualMemria Virtual: Separao lgica da memria do usurio da memria fsica (real). Vantagens:Programas podem ser maiores que o tamanho da memria principal.Facilita a programao, no necessrio se preocupar com a memria disponvel.

  • Representao da memria virtualPgina 1Pgina 2Pgina nMapa de memriaMemriavirtualMemriafsicaDisco

  • Memria CompartilhadaUtilizao de uma memria comum, onde se pode ler ou escrever. A memria compartilhada pode ser a memria fsica ou um arquivo em disco.

  • Tipos de memria compartilhadaEntre processos:

    P2 - memria virtualP1 - memria virtualMemria real

  • Tipos de memria compartilhadaEntre CPUs:

    CPU 3

    CPU 2

    CPU 4

    CPU 1

    Memria

  • Tipos de memria compartilhadaEntre Computador:

  • SocketsInterface genrica para comunicao que faz uso de uma porta de comunicao.Vantagem: Comunicao entre processos na mesma mquina ou em rede.Desvantagem: Difcil de programar.

  • ClustersSo agrupamentos de computadores que utilizam seus recursos de forma cooperativa para resolver problemas.O cluster visto como uma nica mquina, na qual faz-se requisies e recebe resultados.

  • ClustersOs clusters so dividos em dois tipos:

    NoWNetwork of Workstations (heterogneos) CCSCluster of Connected Servers (homogneo)

  • Comunicao entre processos (IPC) uma API que implementa a comunicao entre processos de uma forma padro. Para isto se pode utilizar:Memria compartilhadaTroca de mensagens (send e receive)PipesArquivo...

  • Comunicao Interprocessos (IPC) Processo Processo I I P P C C

    KERNELMesma mquina

  • Motivao para processamento distribudoAumento do poder de processamento com baixo custo possibilidade de software de prateleiraAplicaes so distribudas por definioMaior escalabilidadeTolerncia a falhasAtender simultaneamente um nmero elevado de usuriosAmbiente heterogneos computadortecnologia de rede

  • Alguns problemas...No existe mecanismo de balanceamento de carga Sistemas heterogneos de diferentes geraesCompartilhamento de partes de processosProgramao simplificadaTransparncia

  • DIPC - Comunicao interprocessos distribudaSoluo de software para permitir a construo e programao em mltiplos computadores. uma extenso das funcionalidades nos mecanismos do IPC do Unix System V para que o mesmo funcione em rede. Possibilita :Troca de mensagem Memria compartilhada distribuda

  • DIPC - Comunicao interprocessos distribudaAplicaoDIPC...IPCSuporte de redeAplicaoD I PC...IPCSuporte de rede

  • DIPC - CaractersticasO sistema simples. A simplicidade dos algoritmos prefervel ao desempenho TransparentePreservar a semntica do UNIX o mximo possvelProgramador interfere diretamente no desempenho do sistema. Ex. quantidade de dados a ser transferidos.

  • DIPC - CaractersticasExecuta o cdigo do DIPC no espao do usurio Portabilidade dos sistemas antigosPortabilidade - DIPC trabalha tanto em Redes Locais (LAN) quanto em Redes de Longa Distncia (WAN); DIPC trabalha em um ambiente heterogneo

  • DIPC -ImplementaoKernelAplicar um "patch" no "cdigo fonte" do kernel. Aps a aplicao do "patch", deve-se recompilar o kernel.

  • DIPC -ImplementaoProgramador Definir um "flag" nos "header file". No necessrio ligar nenhuma biblioteca ao cdigo fonte. /* Exemplo do Header file de uma aplicacao em DIPC */#include MSG_MODE ( IPC_DIPC IPC_EXCL 0777)

  • DIPC - Funcionamento

    Estrutura de comunicao padronizao

    Processo 1Processo n

  • DIPC - ClusterClusterJUIZ

  • DIPC - Memria compartilhada distribuda SegmentoComputador 1Computador 2Computador nCopia

  • DIPC - Memria compartilhada distribuda PginaComputador 1Computador 2Computador n4 kCopia

  • DIPC - Prximos passosEstudar o uso de DIPC dentro uma WAN, e fazer as mudanas necessrias para que ele funcione. Portar o DIPC para arquiteturas no Intel que so 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.

  • MOSIXExtenso para os sistemas operacionais baseados no UNIX que faz com que um cluster de computadores se comportem como um grande e nico supercomputador atravs da utilizao de Migrao Preemptiva de Processos e Balanceamento de Memria.

  • Motivao para o MOSIXBalanceamento dinmico e inteligente de cargaClusters heterogniosTransparnciaEscalabilidadeDescentralizaoAutonomia dos ns

  • Caracterstica do MOSIXAlgortmos probabilsticos para disseminao das informaesMigrao preemptiva de processosBalanceamento dinmico de cargaAnunciador de memriaComunicao entre ncleos eficienteControle descentralizado e autonomiaEscalonamento

  • Funcionamento do MOSIXImplementado no ncleo do sistema usando a tecnologia de mdulos, o que resulta que a interface entre o ncleo do sistema e as aplicaes no modificada, assim isto tudo transparente para as aplicaes.Construo do cluster de forma simples, com componentes padres e progressiva.

  • Funcionamento do MOSIXComposto de duas partes:

    Migrao Preemptiva de Processos Algoritmos adaptativos para realizar o compartilhamento de recursos.

  • MOSIX - ClusterCluster

  • Migrao Preemptiva de Processos

  • Algortmos de compartilhamento de recursosEntram em ao em situaes de escassez de recursos para: maximizar a ocupao de memria global do clusterdiminuir a sobrecarga individual de cada processador

  • Algortmos de compartilhamento de recursosP1PnP3P2Computador 1P1Computador 1P2Computador 2PnP3Computador 3Ocup.33%Ocup.30%Ocup.25%P1Computador 1P2Computador 2PnP3Computador 3Ocup.33%Ocup.80%Ocup.25%P4MigraoPreempitivaSaturaoAlgortmosNormal

  • MOSIX -ImplementaoKernelAplicar um "patch" no "cdigo fonte" do kernel. Aps a aplicao do "patch", deve-se recompilar o kernel. Configurar estaticamente quais mquinas faz parte do cluster MOSIX.

  • MOSIX - Prximos passosMigrao de Socketsreduo da sobrecarga na comunicao interprocessosMigrao de arquivos temporriosmelhorar o desempenho de programas como compiladoresPesquisa de algortmos para NetworkRAMpermitir que processos grandes utilizem toda a memria disponvel nos diversos ns

  • ConclusoUtilizao de mquinas mais baratas para resolver problema que demandem enorme poder de processamentoMelhor utilizao das diversas mquinas que compem um rede localMelhorar a escalabilidade das solues em cluster que existem hojeFacilitar a vida dos programadoresUtilizao dos programas existentes

  • Referncias[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.

  • Referncias[BARAK99] Barak, Amnon; Laadan, 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