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.