Custo de leitura / gravação de disco versus leitura [fechado]

2

Está gravando em um disco uma operação mais dispendiosa do que ler a partir de um disco. Por exemplo - escrevendo um arquivo de 1 GB de registros em comparação com a leitura de todo o arquivo.

    
por AnkurVj 07.09.2011 / 09:56

1 resposta

3

No nível da unidade, uma operação do setor de leitura levaria aproximadamente o mesmo tempo (ou um pouco mais) que uma operação do setor de gravação. Para um setor de leitura, o comando tem que chegar na interface da unidade (por exemplo, SATA), o comando decodificado, procurar emitido, varrer as marcas de endereço e registrar IDs até que o setor seja encontrado, ler os dados do setor em um buffer, validar o setor usando ECC ( código de correção de erros) e, finalmente, enviar os dados do setor. (Observe que há um equívoco generalizado de que os dados do setor podem ser transferidos diretamente do cabeçote de leitura para a interface. Absolutamente falso: os dados do setor são sempre totalmente armazenados em buffer e sempre transmitidos na velocidade total da interface somente após todo o setor ter sido lido e validado.) Se a leitura antecipada for realizada e armazenada em cache, uma leitura sequencial subsequente não terá os atrasos de busca e rotação. Para um setor de gravação, o comando e os dados do setor devem chegar à interface da unidade, o comando decodificado, procurar emitidos, varrer as marcas de endereço e registrar IDs até que o setor seja encontrado, escrever setor com ECC e o host seja notificado da conclusão.

No nível do SO ou do sistema de arquivos, as gravações são mais complexas quando um novo arquivo está sendo criado. Ler ou reescrever um arquivo de disco existente requer apenas a pesquisa de onde os setores de dados (ou clusters) estão localizados. Escrever um novo arquivo ou anexar a um arquivo exigirá primeiro alocar setores / clusters da lista livre, atribuindo esses setores / clusters ao arquivo (atualização de entrada de diretório?) E, em seguida, gravando os dados. Note que a (s) tabela (s) de alocação de disco serão tipicamente atualizadas (ou seja, gravadas em disco) o mais rápido possível, talvez até mesmo antes dos dados do arquivo, para manter a integridade do sistema de arquivos. Se você já notou / ouviu muito disco procura ao criar um arquivo, você pode assumir que as cabeças estavam se movendo entre a tabela de alocação e o novo arquivo.

    
por 07.09.2011 / 11:06

Tags