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


Фактор чередования - часть 3


Дискеты инициализируются утилитой MS-DOS FORMAT. Эта утилита выполняет низкоуровневое форматирование только для дискет. Накопители на жёстких магнитных дисках форматируются на низком уровне при помощи специальных программ.

Будьте внимательны при выполнении этой операции:

Низкоуровневое форматирование уничтожает всю информацию, записанную на магнитном носителе!

Мы долго рассказывали вам о том, как информация хранится на дисках, но пока ещё ничего не сказали о факторе чередования (Interleave Factor). Теперь, когда мы познакомились с дорожками и секторами, можно перейти к этому таинственному фактору, так сильно влияющему на быстродействие диска.

Обычно сектора на дорожке располагаются в порядке возрастания их порядковых номеров. Сначала идет первый сектор, за ним второй и так далее. Предположим теперь, что программа желает прочитать с диска два сектора, имеющих соседние порядковые номера, например, первый и второй.

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

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

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

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




- Начало -  - Назад -  - Вперед -