Arquitetura de Sistemas Operacionais Francis Berenger Machado Luiz Paulo Maia Complementado Capítulo 13 Sistemas com Múltiplos Processadores 13/1 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 13/2 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 13/3 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 13/4 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 13/5 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 13/6 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 13/7 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 13/8 Sistemas Fortemente e Fracamente Acoplados Memória Principal UCP UCP Dispositivos de E/ S Dispositivos de E/ S (a) Sistemas fortemente acoplados link de comunicação UCP Memória Principal UCP Dispositivos de E/ S Memória Principal Dispositivos de E/ S (b) Sistema fracamente acoplados 13/9 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 13/10 Sistemas Fortemente e Fracamente Acoplados MIMD Sistemas Fracamente Acoplados Sistemas Fortemente Acoplados SMP NUMA Cluster Sistemas Operacionais de Rede Sistemas Distribuídos 13/11 Arquitetura dos 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 13/12 Arquitetura dos 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 ... UCP UCP Memória Principal UCP Dispositivos de E/ S 13/13 Arquitetura dos 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 . . . UCP UCP UCP Cache Cache Cache Memória Principal Dispositivos de E/ S 13/14 Arquitetura dos 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 Memórias M1 M2 M3 M4 Processadores P1 P2 Comutador P3 P4 13/15 Arquitetura dos 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 Processadores P1 P2 Memórias M1 M2 Comutador P3 P4 M3 M4 13/16 Sistemas NUMA • Vários conjuntos de processadores e memória, interconectados por rede interna, compartilham mesmo SO e espaço de endereçamento P1 P2 P3 P4 P5 P6 P7 P8 P9 Barramento interno M1 M2 M3 Barramento inter-conjunto Conjunto – Tempo de acesso à memória segue esquema hierárquico • Acessos mais rápidos à memória “local” 13/17 Sistemas NUMA • Redes de interligação dos conjuntos de processadores + memória (a) Fat-tree 13/18 Sistemas NUMA • Redes de interligação dos conjuntos de processadores + memória (b) Anel (c) Grid 2D 13/19 Sistemas NUMA • Redes de interligação dos conjuntos de processadores + memória (d) Torus 2D (e) Hipercubo 13/20 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 Conjunto P P MP P P Diretório C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 C14 C15 C16 13/21 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 EP2 EP3 ... EP8 . . . EP1 EP2 EP3 ... EP8 Rede de Interconexão Multiestágio EP1 13/22 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 Rede de acesso Membro 2 Gabinete de discos Membro 1 • Escalabilidade, disponibilidade, tolerância a falhas, balanceamento de carga • Transparência para o usuário Rede de interconexão 13/23 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 Host Host Host Rede de Comunicação Host Host Host Host Host 13/24 Topologias de Redes de Computadores • Topologias de redes de computadores (a) Anel (b) Estrela (c) Totalmente Ligada 13/25 Topologias de Redes de Computadores • Topologias de redes de computadores (d) Barramento (e) Árvore (f) Parcialmente Ligada 13/26 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) Imagem única do sistemas Usuário Rede de Computadores 13/27 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) 13/28