¿Por qué MS-DOS almacena el búfer de lectura de disquete durante exactamente dos segundos?

MS-DOS 2.0 almacena un búfer de lectura de disco, pero no un búfer de escritura. El buffer de lectura es importante: evita la relectura. Y se puede cancelar cuando se desmonta el volumen.

Pero bueno, no estamos desmontando disquetes. Solo los sacamos.

Las unidades de esa época se podían abrir manualmente y el disquete se podía quitar en cualquier momento. La especificación proporcionó estados para abrir la puerta de la unidad, pero IBM no implementó esta parte de la especificación para guardar una puerta lógica. Los proveedores de equipos harán cualquier cosa para ahorrar al menos un centavo .

Pero este búfer de lectura es crítico para el rendimiento. Sin él, tendrá que comenzar desde cero cada operación de E / S, volver a leer la tabla de contenido del volumen, buscar entradas de directorio, mirar las tablas de asignación de bloques en busca del próximo clúster libre ... y el disquete definitivamente no es la unidad más rápida, por lo que todas estas operaciones se retrasan por segundos.

Para dejar al menos algo de caché, los desarrolladores de MS-DOS lanzaron un punto de referencia: ¿qué tan rápido puede una persona cambiar un disquete en una unidad de PC IBM?

El gerente de proyecto de MS-DOS 2.0, Mark Zbikowski, estaba sentado con un cronómetro mientras Aaron Reynolds y Chris Peters intentaban cambiar los disquetes en una computadora IBM lo más rápido posible.

No pudieron hacerlo más rápido que dos segundos.

Por lo tanto, el caché de MS-DOS expiró en dos segundos. Si se producen dos accesos de disquete en un intervalo de dos segundos, entonces el segundo intento utiliza la memoria caché del disquete anterior.

No sé si la política moderna de dos segundos de borrar el caché es una consecuencia directa de esa competencia en la oficina, pero me gusta pensar que hay algún tipo de conexión.

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


All Articles