Тонкая настройка и оптимизация MS-DOS

Сдвиг цилиндров


Предположим, ваша программа считывает (или записывает) большой файл, занимающий на диске несколько цилиндров. Что происходит в тот момент, когда завершается чтение последней дорожки текущего цилиндра? Теперь надо установить головки на нулевую дорожку следующего цилиндра. Очень хорошо, контроллер выдаёт соответствующую команду, головки устанавливаются на другой цилиндр и начинается поиск первого сектора нулевой дорожки.

Но пока головки перемещались, диск повернулся и головки проскочили мимо первого сектора. Теперь надо ждать, пока диск повернётся на один оборот и первый сектор окажется снова напротив блока головок.

Здесь мы неявно предполагали, что все дорожки на всех цилиндрах расположены как бы параллельно, т.е. первые сектора на всех дорожках для всех цилиндров располагаются на одинаковом расстоянии от маркера начала дорожки.

Современные дисковые накопители, в частности, использующие интерфейс ESDI, можно отформатировать "со сдвигом цилиндров" (Cylinder Skew). В этом случае цилиндры, расположенные ближе к центру, будут сдвинуты вперёд по направлению вращения относительно внешних цилиндров.

В этом случае при переходе от одного цилиндра к другому головки успеют как раз к началу следующей дорожки, т.е. к первому цилиндру. И если величина сдвига выбрана правильно, дополнительного оборота диска не потребуется.



Содержание раздела