Baixe o app para aproveitar ainda mais
Prévia do material em texto
ARQUITETURA DE SISTEMAS DISTRIBUÍDOS Prof. Carlos Alves disciplinas@linuxconsult.com.br Classificação de Flynn Taxonomia de computadores Pesquisadores mostraram classificações diferentes Flynn, 1972 Treleaven, 1985 Taxonomia de computadores Classificação de computadores baseada no fluxo de instrução e de dados proposta na década de 70 por Flynn. Taxonomia de Flynn Proposta por J. L. Flynn em 1972; Ainda é válida e muito difundida; Diferencia o fluxo de instruções (instruction stream) e o fluxo de dados (data stream), dependendo se esses fluxos são múltiplos ou não. Fluxos de instruções Fluxos de dados Taxonomia de Flynn Fluxo de instruções = Contador de programa Um sistema com n CPUs tem n contadores de programa, por conseguinte, n fluxos de instruções Taxonomia de Flynn SD (Single Data) (Um dado) MD (Multiple Data) (Múltiplos dados) SI (Single Instruction (Uma instrução) SISD Máquinas de Von Neumann convencionais SIMD Máquinas Array (computadores vetoriais) MI (Multiple Instruction) (Múltiplas instruções) MISD Pipelines MIMD Multiprocessadores e Multicomputadores (Computadores paralelos) SISD Single Instruction stream/Single Data stream É a identificação mais simples; O equipamento é considerado sequencial; Só é executada uma instrução por vez para cada dado enviado; SISD Single Instruction stream/Single Data stream Possuem uma única unidade de controle Pode ter várias unidades funcionais mas apenas uma de controle São as máquinas Von Neuman tradicionais, sem qualquer paralelismo São exemplos as maquinas: Monoprocessadas: PC, MAC, Workstation Sun Arquitetura Von Neumann Pontos básicos: 1. Um único controle centralizado (uma só CPU); 2. Uma única memória para dados e instruções; e 3. As instruções devem fazer operações elementares sobre os dados. Desenvolvido na década de 50; Cerca de 90% dos computadores atuais usam essas características. SISD Single Instruction stream/Single Data stream SIMD Single Instruction stream/Multiple Data stream É equivalente ao paralelismo de dados Uma simples instrução é executada paralelamente utilizando vários dados de forma síncrona, em que se executa um único programa ao mesmo tempo Neste contexto se encaixam: A tecnologia MMX (MultiMedia eXtension) existente dentro dos processadores atuais; Nos computadores vetoriais como Cray 1, CM-2 SIMD Single Instruction stream/Multiple Data stream SIMD Single Instruction stream/Multiple Data stream MISD Multiple Instruction stream/Single Data stream Seriam máquinas que executam várias instruções ao mesmo tempo sobre um único dado É difícil imaginar uma máquina nestas condições Não representa nenhuma implementação disponível Um exemplo, seria criar uma máquina com vários processadores tentando quebrar um código de criptografia A arquitetura MIMD já faz isto MISD Multiple Instruction stream/Single Data stream MIMD Multiple Instruction stream/Multiple Data stream Múltiplas unidades de controle atuando em fluxos de dados diferentes Esta classe foi subdividida em Sistemas fortemente acoplados Sistemas fracamente acoplados Várias unidades de controle comandam suas unidades funcionais MIMD Multiple Instruction stream/Multiple Data stream Refere-se ao modelo de execução paralela na qual cada processador está essencialmente agindo independente Existem múltiplos fluxos de instruções e múltiplos dados como se fossem um conjunto de máquinas SISD em que cada processador é capaz de executar um programa diferente Exemplos: servidores com múltiplos processadores, sistemas MPP* e os clusters de computadores *Massively Parallel Processors – Processadores Fortemente Paralelos MIMD Multiple Instruction stream/Multiple Data stream MIMD Multiple Instruction stream/Multiple Data stream MIMD Sistemas fortemente acoplados Memória compartilhada Multiprocessadores Arquiteturas: UMA (Uniform Memory Access) NUMA (Non-Uniform Memory Access) COMA (Cache-Only Memory Access) Programação: memória compartilhada MIMD Sistemas fortemente acoplados Vantagem: Compartilhamento de dados entre os processos muito mais rápido; Desvantagens: Computadores extremamente caros Existe uma limitação física para a quantidade de processadores Necessário técnicas de sincronização para leitura e gravação de dados MIMD Sistemas fortemente acoplados Modelo de Arquitetura SMP Arquitetura UMA Arquiteturas com memória única global. Tempo de acesso uniforme para todos os nós de processamento. Nós de processamento e memória interconectados através de barramento único. Número reduzido de nós de processamento. Coerência de cache mantida por "hardware" . Arquitetura UMA - Uniform Memory Access Arquitetura UMA Utilizado em sistemas de pequena dimensão Desenvolvimento simplificado Arquitetura UMA - Uniform Memory Access Arquitetura NUMA Construída em vários módulos Associando um a cada processador O espaço de endereçamento é único Tende a ser mais complexo Depende exclusivamente da localização dos dados Arquitetura NUMA Arquitetura NUMA (Non-Uniform Memory Access) Espaço de Endereçamento Arquitetura COMA É um tipo de especial de NUMA Memórias globais são substituídas por caches Necessário um mecanismo de coerência caches Tem um alto preço Arquitetura COMA(Cache-Only Memory Access) Arquitetura COMA Sistemas fracamente acoplados Multicomputadores Memória fisicamente distribuída Arquiteturas: NORMA, Programação: troca de mensagens Sistemas fracamente acoplados Desvantagens Programação mais complicada Paralelismo não é intuitivo Se exigir muita comunicação = custo com envio de mensagens Sistemas fracamente acoplados Arquitetura com memória distribuída Próxima aula Modelos de programação
Compartilhar