290 likes | 530 Views
Arquitetura de Sistemas Operacionais Francis Berenger Machado Luiz Paulo Maia Complementado por Sidney Lucena (Prof. UNIRIO) Capítulo 13 Sistemas com Múltiplos Processadores. Sistemas com Múltiplos Processadores.
E N D
Arquitetura de Sistemas Operacionais Francis Berenger Machado Luiz Paulo Maia Complementadopor Sidney Lucena (Prof. UNIRIO) Capítulo 13 Sistemas com Múltiplos Processadores
Sistemas com Múltiplos Processadores • Arquiteturas que possuem duas ou mais CPUs interligadas funcionando em conjunto na execução de programas • Processando tarefas independentes ou simultaneamente processando uma mesma tarefa • Paralelismo a nível de instrução ou de tarefas • Opção com melhor custo/benefício em relação a desenvolver processadores mais rápidos • Custo elevado, limitações físicas p/ maior desempenho • Surgimento de aplicações que demandam grande poder computacional: • Previsão do tempo, Dinâmica dos fluidos, Genoma humano, Simulação de eventos raros, Modelagem computacional de sistemas
Principais Vantagens • Desempenho: • Apesar de não ser linear, desempenho aumenta a medida que novos processadores são acrescentados à arquitetura • Maior throughput, menor tempo de resposta, menor tempo de processamento • Ganho obtido pela execução simultânea de tarefas independentes • Aumento de throughput, atende número maior de usuários simultaneamente • Ganho obtido pela execução simultânea de uma mesma tarefa por vários processadores • Depende da organização dos processadores, linguagem de programação utilizada, grau de paralelismo da aplicação
Principais Vantagens • Escalabilidade: • Capacidade de computação é ampliada ao se adicionar novos processadores ao hardware • Custo inferior ao da aquisição de um sistema com maior desempenho • Relação custo/desempenho • Tolerância a falhas e disponibilidade • Sistema se mantém em operação mesmo no caso de falha de algum dos processadores • Apenas a capacidade é diminuída • Disponibilidade aumenta em função do número mais reduzido de paradas
Balanceamento de Carga e Desvantagens • Balanceamento de carga: • Distribuição do processamento entre os diversos processadores melhora desempenho do sistema como um todo • Desvantagens de sistemas multiprocessadores: • Introdução de novos problemas de comunicação e sincronização • P/ex.: vários processadores podem estar acessando a mesma posição de memória • Organização de processadores, memórias e periféricos devem permitir boa relação custo/benefício • Tolerância a falhas pode ser dependente do SO e não apenas do hardware • Difícil implementação
Tipos de Sistemas Computacionais • Podem ser classificados quanto ao grau de paralelismo no processamento de instruções e dados • Modelo proposto por Flynn (1966) ainda é usado: • SISD (Single Instruction Single Data) • Sistemas que suportam seqüência única de instrução e apenas uma seqüência de dados • Engloba maioria dos sistemas monoprocessador • SIMD (Single Instruction Multiple Data) • Sistemas que suportam seqüência única de instruções e múltiplas seqüências de dados • Permite a execução de uma mesma instrução sobre diferentes elementos de dados (p/ex., vetores) • Vantajoso p/ aplicações c/ alto grau de paralelismo
Tipos de Sistemas Computacionais • SIMD (Single Instruction Multiple Data) • Computadores específicos desenvolvidos para este modelo, chamados supercomputadores ou computadores vetoriais • Ex.: Cray T90, com 8 registradores vetoriais, cada qual com 128 elementos, e até 32 processadores • MISD (Multiple Instruction Single Data) • Permite múltiplas seqüências de instrução e um única seqüência de dados • Nenhuma arquitetura desenvolvida para este modelo • MIMD (Multiple Instruction Multiple Data) • Múltiplas seqüências de instrução e múltiplas seqüências de dados • Compreende maioria dos sistemas com múltiplos processadores
Sistemas Fortemente e Fracamente Acoplados • Arquiteturas MIMD podem ser classificadas quanto a seu grau de acoplamento • Compartilhamento de memória, distância entre processadores, tempos de acesso, mecanismos de comunicação e sincronização • Sistemas fortemente acoplados são aqueles onde os processadores compartilham uma mesma MP e são governados por um mesmo SO • Sistemas fracamente acoplados são aqueles que possuem dois ou mais sistemas computacionais independentes conectados em rede
Sistemas Fortemente e Fracamente Acoplados • Sistemas fortemente acoplados podem ser subdivididos quanto à forma de compartilhamento de memória • SMP (Symmetric Multiprocessors) • 2 ou mais processadores compartilhando mesmo espaço de endereçamento • Tempo de acesso à MP é uniforme p/ processadores • NUMA (Non-Uniform Memory Access) • Tempo de acesso à memória depende da localização física do processador • Vários conjuntos de processadores e memória, cada conjunto ligado aos demais por uma rede de interconexão ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO)
Sistemas Fortemente e Fracamente Acoplados ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO)
Arquiteturados Sistemas Simétricos • A organização interna de processadores, memória e dispositivos de E/S determinam o dimensionamento do sistema e o mecanismo de acesso à MP • Fundamental para o projeto de sistemas simétricos • Formas de interligação mais usuais das unidades funcionais: • Barramento único • Barrameno único com cache • Barramento cruzado comutado (crossbar) • Rede Ômega ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO)
Arquiteturados Sistemas Simétricos • Barramento único • Forma mais simples, econômica e flexível • Somente uma unidade funcional pode usar o barramento num dado instante • Gargalo! • Se barramento falha, todo o sistema é comprometido ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO)
Arquiteturados Sistemas Simétricos • Barramento único com cache • Reduz limitação imposta pela velocidade do barramento • Cache reduz latência das operações de acesso à MP • Apresenta problema de Coerência de Cache: • Caches de cada processador podem ter sido modificadas para os mesmos endereços na MP • Solução mais usada: write-back c/ write-invalidate
Arquiteturados Sistemas Simétricos • Barramento cruzado comutado • MP é dividida em N módulos, unidades funcionais conectadas entre si por uma matriz comutadora (crossbar) • Possibilita N comunicações simultâneas • HW e SO devem resolver conflitos de acesso • Se N for grande, custo da matriz será muito alto
Arquiteturados Sistemas Simétricos • Rede Omega • Forma de reduzir o custo da matriz de comutação da arquitetura crossbar • Não há ligações exclusivas entre processadores e módulos de memória, caminhos são compartilhados • Usa técnica de comutação das redes de pacotes • Aumenta a possibilidade de conflitos, maior latência
Sistemas NUMA • Vários conjuntos de processadores e memória, interconectados por rede interna, compartilham mesmo SO e espaço de endereçamento • Tempo de acesso à memória segue esquema hierárquico • Acessos mais rápidos à memória “local”
Sistemas NUMA • Redes de interligação dos conjuntos de processadores + memória
Sistemas NUMA • Redes de interligação dos conjuntos de processadores + memória
Sistemas NUMA • Redes de interligação dos conjuntos de processadores + memória
Sistemas NUMA • Arquitetura DASH (Universidade de Standford) • Cada conjunto possui 4 processadores, módulo da MP, dispositivos de E/S e Diretório • Diretório: estrutura usada para fazer coerência de cache
Sistemas NUMA • Arquitetura do Multiplus (NCE/UFRJ) • Cada EP formado por processador, cache e módulo da MP • Rede de interconexão usa topologia n-cube invertido
Clusters • São sistemas fracamente acoplados, formados por nós interconectados em rede dedicada de alto desempenho • Cada nó (membro) possui seus próprios recursos (processador, MP, SO, E/S, etc) • Cada membro possui seu próprio espaço de endereçamento • Escalabilidade, disponibilidade, tolerância a falhas, balanceamento de carga • Transparência para o usuário
Topologias de Redes de Computadores • Rede de computadores • Nós são totalmente independentes dos demais, podendo ser heterogêneos • Cada nó possui seu próprio SO, processador, MP, etc • Cada nó é unicamente identificado na rede
Topologias de Redes de Computadores • Topologias de redes de computadores
Topologias de Redes de Computadores • Topologias de redes de computadores
Sistemas Distribuídos • Conjunto de sistemas interconectados por rede que funcionam como se fosse um único sistema • Sistemas fracamente acoplados do ponto de vista de HW mas fortemente acoplados do ponto de vista de SW • Para usuários e aplicações é como se não houvesse rede, apenas uma imagem única do sistema (single system image)
Sistemas Distribuídos • Permitem a execução de aplicações distribuídas • Partes da aplicação podendo ser executadas em qualquer dos sistemas componentes • Necessário haver transparência e tolerância a falhas em diversos níveis: • Transparência de acesso • Transparência de localização • Transparência de migração • Transparência de replicação • Transparência de concorrência • Transparência de paralelismo • Transparência de desempenho • Transparência de escalabilidade • Transparência a falhas (incluindo falhas de SW)