Upload
internet
View
104
Download
0
Embed Size (px)
Citation preview
Armazenamento, Redes e Outros Periféricos
André Luis Meneses [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
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...
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...
Sector (setor): Unidade que compõe as trilhas, armazenam dados, guardando, em geral, 512 bytes de informação.
Sector (setor): Unidade que compõe as trilhas, armazenam dados, guardando, em geral, 512 bytes de informação.
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.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.
Cilindro: Conjunto de trilhas com um mesmo número nos vários discos.Cilindro: Conjunto de trilhas com um mesmo número nos vários discos.
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 - AMBASensível a subida de
ciclo.Sensível a subida de 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 DataRdy5. Processador vê DataRdy, lê os dados em Data e levanta Ack6. Memória vê Ack, abaixa DataRdy e libera Data.7. Processador vê DataRdy baixar, abaixa a linha Ack.
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 DataRdy5. Processador vê DataRdy, lê os dados em Data e levanta Ack6. 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 [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
Cache
Processador 2
Cache
Memória Externa
01...31
5410...33
Barramento
012...
54012...
54
Compartilhamento de dados
• Como os processadores paralelos compartilham dados?– Memória Compartilhada– Transferência de mensagens
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
Processador 1
Cache
Processador 2
Cache
Memória Externa
01...31
5410...33
Barramento
012...
012...
54
Lê 54 da posição 0
• Exemplo de plataforma (caches write back)
• Exemplo de plataforma
Coerência de Cache
Processador 1
Cache
Processador 2
Cache
Memória Externa
01...31
5410...33
Barramento
012...
54012...
54
Lê 54 da posição 0
Coerência de Cache
Processador 1
Cache
Processador 2
Cache
Memória Externa
01...31
5410...33
Barramento
012...
54012...
30
Escreve 30 na posição 0
• Exemplo de plataforma
Coerência de Cache
• Exemplo de plataforma
Processador 1
Cache
Processador 2
Cache
Memória Externa
01...31
5410...33
Barramento
012...
54012...
30
P2 estará trabalhando com um valor inconsistente, visto que o mesmo foi alterado por P1
P2 estará trabalhando com um valor inconsistente, visto que o mesmo foi alterado por P1
Solução - Snoop
Processador 1
Cache
Processador 2
Cache
Memória Externa
01...31
5410...33
Barramento
012...
54012...
30 Valid Invalid
Snoop Snoop
Introdução de módulos vigilantes (snoop) que notifica o processador sobre as alterações de dados.
Introdução de módulos vigilantes (snoop) que notifica o processador sobre as alterações de dados.
Multiprocessadores conectados por rede
Clusters• Construídos a partir de computadores inteiros.• Redes independentes e escaláveis• Vantagens:
– Muitas aplicações receptivas a máquinas frouxamente agrupadas.
– Exploram redes locais.– Econômicos, fáceis de expandir
• 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.
FIM