Por que o MS-DOS armazena o buffer de leitura de disquete por exatamente dois segundos?

O MS-DOS 2.0 armazena um buffer de leitura do disco, mas não um buffer de gravação. O buffer de leitura é importante: evita a releitura. E pode ser cancelado quando o volume é desmontado.

Mas ei, não estamos desmontando disquetes. Nós apenas os tiramos.

As unidades daquela época podiam ser abertas manualmente e o disquete removido a qualquer momento. A especificação forneceu status para abrir a porta da unidade, mas a IBM não implementou essa parte da especificação para salvar uma porta lógica. Os fornecedores de equipamentos farão de tudo para economizar pelo menos um centavo .

Mas esse buffer de leitura é crítico para o desempenho. Sem ele, você terá que começar do zero a cada operação de E / S, relendo o índice do volume, localizando entradas de diretório, observando as tabelas de alocação de blocos em busca do próximo cluster livre ... e o disquete definitivamente não é a unidade mais rápida, portanto, todas essas operações estão atrasadas por segundos.

Para deixar pelo menos algum cache, os desenvolvedores do MS-DOS lançaram uma referência: com que rapidez uma pessoa pode alterar um disquete em uma unidade IBM PC?

O gerente de projetos do MS-DOS 2.0, Mark Zbikowski, estava sentado com um cronômetro, enquanto Aaron Reynolds e Chris Peters tentavam alterar os disquetes em um computador IBM o mais rápido possível.

Eles não podiam fazer isso mais rápido que dois segundos.

Assim, o cache do MS-DOS expirou em dois segundos. Se dois acessos ao disquete ocorrerem em um intervalo de dois segundos, a segunda tentativa usará o cache do antigo disquete.

Não sei se a política moderna de dois segundos de limpar o cache é uma consequência direta dessa concorrência no escritório, mas gosto de pensar que há algum tipo de conexão.

Source: https://habr.com/ru/post/pt469189/


All Articles