MS-DOS для программиста

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


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

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

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

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



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