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
Download

Sistemas NUMA