Armazenamento, Redes e Outros Periféricos

Propaganda
Armazenamento, Redes e Outros
Periféricos
André Luis Meneses Silva
[email protected]
Introdução
• Projeto de E/S é afetado por muitos fatores externos
(expansibilidade, resiliência).
• Desempenho:
•
•
•
•
•
Latência
Vazão
Conexão entre os dispositivos e o sistema
Hierarquia de Memória
O Sistema Operacional
– Uma variedade de usuários diferentes (por exemplo,
bancos, supercomputadores, engenheiros).
Interface entre processadores e periféricos
Discos Magnéticos
• Elementos de Armazenamento não volátil
• Formado por uma pilha de pratos que gira
entre 5.400 a 15.000 rpm.
• Alta capacidade de armazenamento, pouco
veloz.
Discos Magnéticos
Sector (setor): Unidade que compõe
as trilhas, armazenam dados,
guardando, em geral, 512 bytes de
informação.
Cilindro: Conjunto de trilhas com um mesmo
número nos vários discos.
Track (trilha): círculos concêntricos que começam
no final do disco e vão se tornando menores
conforme se aproximam do centro.
Cada trilha possui um número de endereçamento. A
mais externa é 0. As sucessoras 1, 2, 3...
Entre cada trilha, setor, existem marcas especiais que orientam as cabeças magnéticas
para sinalizar o início/fim de uma trilha ou setor.
Aumentando a Disponibilidade
• RAID (Redudant Arrays
of Inexpensive Disks)
– Organização de discos
que usa um array de
discos pequenos e
baratos para aumentar
o
desempenho
e
confiabilidade.
– Existem 7 tipos de RAID
Barramentos
• Link de comunicação compartilhado (um ou mais
fios).
• Projeto difícil:
–
–
–
–
Pode ser gargalo
Extensão do barramento
Número de dispositivos
Negociações (buffers para largura de banda maior
aumenta a latência)
– Suporte para muitos dispositivos diferentes
– Custo.
Barramentos
• Quanto a forma de comunicação:
– Síncrono
• Inclui um clock nas linhas de controle e um protocolo fixo
para comunicação, que é relativo ao clock.
• Cada dispositivo precisa operar na mesma velocidade
• Devido ao clock, quanto mais longo for o barramento, menor
será sua velocidade.
– Assíncrono
• Utiliza um protocolo de handshaking para coordenar o uso.
– Série de etapas em que o emissor e o receptor prosseguem para
a próxima etapa apenas quando as duas partes concordarem.
• Acomoda uma grande variedade de dispositivos de
diferentes velocidades.
Exemplo Barramento Síncrono Sensível a subida de
AMBA
ciclo.
Exemplo Barramento Assíncrono
1. Memória vê a ReadReq, lê o endereço em Data e levanta Ack.
2. O processador vê a linha Ack e libera as linhas ReadReq e Data.
3. Memória vê ReadReq baixo e abaixa a linha Ack.
4. Quando a memória possuir dados prontos, coloca os dados em Data e levanta DataRdy
5. Processador vê DataRdy, lê os dados em Data e levanta Ack
6. Memória vê Ack, abaixa DataRdy e libera Data.
7. Processador vê DataRdy baixar, abaixa a linha Ack.
Arbitragem
• O barramento pode ter mais de um elemento de
processamento ligado a ele.
• Caso dois elementos desejem utilizar o
barramento:
– Quem decidirá qual receberá o direito de uso?
– Quem é responsável por escalonar o uso entre os
elementos de processamento?
• Barramentos mais modernos possui um árbitro
interno responsável por realizar estas funções.
Exemplo AMBA
Intel Pentium IV
Interface dos dispositivos de E/S com
processador, memória e sistema operacional
• As responsabilidades do S.O. com os
dispositivos de E/S surgem de três
características que eles apresentam:
– Diversos programas usando o processador
compartilham o sistema de E/S
– Os sistemas de E/S normalmente usam
interrupções para comunicar informações de E/S
(modo supervisor).
– O controle de baixo nível de um dispositivo de E/S
é complexo.
Interface dos dispositivos de E/S com
processador, memória e sistema operacional
• Sistema Operacional:
– Garante que um programa de usuário acessa apenas as partes de um
dispositivo de E/S para as quais o usuário possui direitos.
– Oferece abstrações para acessar dispositivos fornecendo rotinas que
tratam as operações de baixo nível.
• Testem copiar um .wav ou .pcm para /dev/dsp no linux.
– O sistema operacional trata as interrupções geradas pelo dispositivo
de E/S, assim como trata as exceções geradas pelo programa.
– O sistema operacional tenta oferecer acesso equilibrado aos recursos
de E/S, além de escalonar acessos a fim de melhorar a vazão do
sistema.
Dando comandos a dispositivos de E/S
• Processadores se comunicam com dispositivos
de E/S através de dois diferentes métodos:
– E/S mapeada em memória:
• Partes do espaço de endereçamento são atribuídas a
dispositivos de E/S.
• Leituras e escritas para esses endereços são
interpretadas como comandos aos dispositivos de E/S
Dando comandos a dispositivos de E/S
• Processadores se comunicam com dispositivos
de E/S através de dois diferentes métodos:
– Instruções de E/S especiais:
• Uma instrução dedicada, usada para dar um comando a
um dispositivo de E/S e que especifica o número do
dispositivo e a word de comando (ou o local da word de
comando na memória).
• Em geral, não disponíveis no modo usuário.
Comunicação com o processador
• O processador precisa saber quando o dispositivo
de E/S está pronto para realizar uma nova
operação.
– Para solicitar uma nova operação.
– Para recolher os dados processados pelo dispositivo.
– Estes dois passos são muito empregados na
transferência de dados entre dois dispositivos de
armazenamento.
• Existem três abordagens para tratar desta
comunicação.
Comunicação com o processador
• Pooling
– O processador verifica periodicamente o status de um
dispositivo de E/S para determinar a necessidade de atender ao
dispositivo.
– Problemas
• Processador precisa ficar a todo momento verificando disponibilidade
do dispositivo.
• Processador participa diretamente da transferência de dados.
• E/S controlada por interrupção
– Um esquema de E/S que emprega interrupções para indicar ao
processador que um dispositivo de E/S precisa de atenção.
– Problemas
• Processador participa diretamente da transferência de dados.
Comunicação com o processador
• DMA
– Um mecanismo que oferece a um controlador de
dispositivo a capacidade de transferir dados
diretamente da memória ou para ela sem envolver
o processador.
Comunicação com o processador
• DMA
– Passos:
• Processador configura o DMA, fornecendo a identidade
do dispositivo, a operação a realizar no dispositivo, o
endereço de memória que é a origem ou o destino dos
dados a ser transferidos.
• O DMA inicia a operação no dispositivo e arbitra o
acesso ao barramento.
• Quando a transferência de DMA termina, o controlador
interrompe o processador. O processador pode
interrogar o DMA sobre o sucesso ou não da operação.
Multiprocessadores e Clusters
André Luis Meneses Silva
[email protected]
Introdução
• A motivação para o desenvolvimento de
sistemas multiprocessados é a idéia de
desenvolver computadores poderosos a partir
de computadores menores e baratos.
– Boa notícia
• Funciona para compartilhamento de tempo (melhor
que um supercomputador).
• Má notícia: É muito difícil escrever bons programas
concorrentes, muitas falhas comerciais.
Introdução
Processador 1
0
1
2
...
Processador 2
Cache
54
0
1
2
...
Barramento
Memória
Externa
0
1
...
31
54
10
...
33
Cache
54
Compartilhamento de dados
• Como
os
processadores
compartilham dados?
– Memória Compartilhada
– Transferência de mensagens
paralelos
Compartilhamento de dados
• Memória Compartilhada
– Processadores se comunicam através de variáveis
compartilhadas na memória.
• Processadores possuem espaço de endereçamento
comum.
Compartilhamento de dados
• Memória Compartilhada
– Podem ser:
• UMA (Uniform Memory Access) ou SMP (Symetric
Multiprocessor)
– Leva o mesmo tempo para acessar a memória principal
independente do processador ou word requisitada.
• NUMA (Non Uniform Memory Access)
– Alguns acessos a memória podem ser mais rápidos que
outros.
Compartilhamento de dados
• Troca de Mensagens
– Utilizadas em máquinas com memória privadas,
como por exemplo, clusters.
Como eles são implementados
• Conectados por um único barramento.
• Conectados por uma rede.
Multiprocessadores Conectados
por um único barramento
Multiprocessadores Conectados
por um único barramento
• Características:
– O tráfego por processador e a largura de banda do
barramento determinam o número útil de
processadores.
– As caches reduzem o tráfego de barramento,
permitindo o convívio entre mais de um
processador.
– No entanto, pode aparecer problemas relativos a
a coerência dos dados presente na cache.
Coerência de Cache
• Exemplo de plataforma (caches write
back)
Processador 1
0
1
2
...
Cache
54
Lê 54 da
posição 0
Processador 2
Cache
0
1
2
...
Barramento
Memória
Externa
0
1
...
31
54
10
...
33
Coerência de Cache
• Exemplo de plataforma
Processador 1
0
1
2
...
Processador 2
Cache
54
0
1
2
...
Barramento
Memória
Externa
0
1
...
31
54
10
...
33
Cache
54
Lê 54 da
posição 0
Coerência de Cache
• Exemplo de plataforma
Processador 1
0
1
2
...
Cache
30
Escreve
30 na
posição 0
Barramento
Memória
Externa
0
1
...
31
54
10
...
33
Processador 2
0
1
2
...
Cache
54
Coerência de Cache
• Exemplo de plataforma
Processador 1
0
1
2
...
P2
estará
trabalhando com
um
valor
inconsistente,
visto
que
o
mesmo
foi
alterado por P1
Processador 2
Cache
30
0
1
2
...
Barramento
Memória
Externa
0
1
...
31
54
10
...
33
Cache
54
Solução - Snoop
Introdução de módulos vigilantes
(snoop) que notifica o processador
sobre as alterações de dados.
Processador 1
0
1
2
...
Cache
30
Processador 2
Snoop
Valid
0
1
2
...
Barramento
Memória
Externa
0
1
...
31
54
10
...
33
Cache
54
Snoop
Invalid
Multiprocessadores conectados
por rede
Clusters
• Construídos a partir de computadores inteiros.
• Redes independentes e escaláveis
• Vantagens:
– Muitas aplicações receptivas
agrupadas.
– Exploram redes locais.
– Econômicos, fáceis de expandir
a
máquinas
frouxamente
• Desvantagens
– Custos de administração não são necessariamente baixos
– Conectados usando um barramento de E/S.
– A aplicação que executa em uma dada máquina utiliza apenas
1/n do poder de processamento do cluster (n = n. de máquinas)
• Altamente disponível devido a separação das memórias.
Download