Buffer
Os buffers podem ser implementados de duas formas: uma no local de memória fixa no hardware e a outra o buffer de dados virtual em software, apontando para um local na memória física. Em todos os casos, os dados armazenados em um buffer de dados são armazenados em um meio de armazenamento físico.
Geralmente ao ler um arquivo, são lidos vários setores numa sequencia. A forma mais rápida de fazer isso é, naturalmente, fazer com que a leia de uma vez todos os setores da primeira trilha, depois passe para a trilha seguinte, passe para a terceira e assim por diante até completar o carregamento. Isso permite obter o melhor desempenho possível.
Só que o problema é que na prática o isso não funciona, pois o sistema pede o primeiro setor do arquivo e só solicita o próximo depois de recebê-lo e certificar de que não existem erros.
Graças ao buffer, este problema é resolvido, pois a cada passagem a cabeça de leitura lê todos os setores próximos, independentemente de terem sido solicitados ou não. Após fazer sua verificação de rotina, o sistema solicitará o próximo setor, que por já estar carregado no buffer será fornecido em tempo recorde.
Se não houvesse nenhum tipo de buffer, a cabeça de leitura do HD acabaria tendo que passar várias vezes sobre a mesma trilha, lendo um setor a cada passagem, já que não daria tempo de ler os setores seqüencialmente depois de todo tempo perdido antes de cada novo pedido.
O buffer também é usado nas operações de escrita. Imagine, por exemplo, que a controladora está ocupada lendo um arquivo longo e o sistema solicita que ela