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

Slides:



Advertisements
Apresentações semelhantes
Sistemas Operacionais
Advertisements

Sistemas Distribuídos
Sistemas Distribuídos
Desempenho da Computação Paralela em Ambientes Virtualizados
Sistemas Operacionais
Sistemas Operacionais
Sistemas Operacionais
Sistemas Operacionais Gerência de Processador
Sistemas distribuídos Metas de Projeto Prof. Diovani Milhorim
Sistemas Distribuídos
INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS VIVIANE LUCY Sistemas Operacionais Gerência de Processador WebDesign Redes de Computadores.
Noções de Sistemas Operacionais
Sistemas operacionais
Sistemas Distribuídos:Definições e Caracteristicas
Sistemas Distribuídos
Processos no Unix e Linux
Arquiteturas de Sistemas Distribuídos: Modelos de Comunicação
Component-Based Frameworks for E-Commerce Agnaldo Kiyoshi Noda.
Arquitetura de Sistemas Operacionais
Computação de Alto Desempenho
Chapter 4: Threads.
Sistemas Operacionais
SISTEMAS DISTRIBUÍDOS
SSC SISTEMAS OPERACIONAIS I Aulas 6 – Escalonamento de Processos
Threads Estagiário: Bruno Guazzelli Batista Slides de autoria do Prof Drº Marcos José Santana baseados no livro Sistemas Operacionais Modernos de A. Tanenbaum.
SSC541 - SISTEMAS OPERACIONAIS I Aula 12 – Gerenciamento de Memória
Silberschatz and Galvin Operating System Concepts Unidade 1: Introdução O que é um sistema operacional? Systemas simples em lote (batch) Sistemas.
Concepts and Capabilities
1 Sistemas Distribuídos - SDI Caracterização de Sistemas Distribuídos. Introdução. Exemplos de Sistemas Distribuídos. Desafios.
Arquitetura de Sistemas Operacionais
SISTEMAS DISTRIBUÍDOS Princípios e Paradigmas 2ª Edição ANDREW S
Threads.
Mobilidade Cláudia Ribeiro.
Sistemas Distribuídos
YADFS Yet Another Distributed File System
Maria Tereza Nagel Junho 2004 Grids de Agentes Processadores para Gerência de Redes de Computadores e Telecomunicações Orientador: Prof. Dr. Carlos Becker.
Airam J. Preto , Celso L. Mendes
SISTEMAS OPERACIONAIS
Pedro Costa Computadores e Redes de Comunicação 1 Sistemas Operativos Baseado em: Andrew S. Tanenbaum. Modern Operating Systems, Prentice-Hall, 1992.
Tópicos em redes e sistemas distribuídos B
Tópicos em redes e sistemas distribuídos
Sistemas Distribuídos
Sistemas Operacionais
Concorrência entre Threads Java
Cluster Beowulf.
ÍNDICES DE CARGA E DE DESEMPENHO SSC-642 SISTEMAS COMPUTACIONAIS DISTRIBUÍDOS.
MapReduce Conceitos e Aplicações
Conteúdo 1. Introdução Threads 2. Ambiente Monothread 3. Ambiente Multithread 4. Arquitetura e Implementação 5. Modelos de Programação.
Gerenciamento de Redes Utilizando Agentes Móveis
Memória virtual Professor Esp. Diego André Sant’Ana
Sistemas Distribuídos
Computing on large scale distributed systems: experience of the XtremWeb project CMP-157 PROGRAMAÇÃO PARALELA E DISTRIBUÍDA Prof. Cláudio Fernando Resin.
Sistemas Distribuídos Estrutura de Redes
Sistemas Distribuídos Introdução. Conceito Coleção de múltiplos processos que executam sobre uma coleção de processadores autônomos interligados em uma.
Sistemas Operacionais
Sistemas Distribuídos
Universidade de Mogi das Cruzes Tec
Sistemas Operacionais
Sistemas Operacionais
SISTEMAS OPERACIONAIS I
Processos.
Sistemas Distribuídos
Sistemas Distribuídos
Sistemas Operacionais
Sistemas de Arquivos Paralelos Alternativas para a redução do gargalo no acesso ao sistema de arquivos Roberto Pires de Carvalho carvalho arroba ime ponto.
Arquitetura de computadores
Banco de Dados Distribuídos Sílvia Cristina de Matos Soares
Sistema Operacional NACHOS Luciano Gamba da Silva.
Estruturas de Sistemas Operacionais. Componentes Comuns do Sistema Administração de Processos Administração da Memória Principal Administração do Armazenamento.
Bruna Cavallero Martins Universidade Católica de Pelotas.
Transcrição da apresentação:

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 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.

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

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 KERNELKERNEL 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 KernelKernel Aplicação DIPCDIPC... IPCIPC Suporte de rede Aplicação D I P C... IPCIPC 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 1 Processo n

DIPC - Cluster Cluster JUIZ

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

DIPC - Memória compartilhada distribuída Página Computador 1Computador 2Computador 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

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

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

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

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 [KARIMI99] Karimi, Kamran, Wellcome to DIPC,,,. [KARIMI99] Karimi, Kamran, DIPC,, 19/09/1999, 13:21. [BING] Matt, DIPC, [SILBERCHATZ94] Silberchatz, Abraham e Galvin, Peter. Operating System Concepts. Addison Wesley, [TANENBAUM92] Tanenbaum, Andrew. Modern Operating System. Prentice-Hall [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