Delphi 6 -программирование


Иллюстрация 2



Иллюстрация 2



Сказанное выше касается накопителей на жёстких магнитных дисках (HDD). Гибкие диски (флоппи-диски) имеют только две рабочие поверхности. Соответственно, накопитель на гибких магнитных дисках (FDD) имеет только две магнитные головки. Информация записывается на гибкие диски также по дорожкам и секторам.

Для наглядности приведем в отдельной таблице способ нумерации дорожек, головок и секторов:

  • Дорожки от 0 до максимального значения
  • Головки от 0 до максимального значения
  • Сектора от 1 до максимального значения

Секторы нумеруются начиная с первого, а дорожки и головки - начиная с нулевой.

Максимальное значение для дорожек, головок и секторов сильно зависит от типа HDD и магнитного носителя, а также от способа форматирования и некоторых других причин, о которых мы расскажем позже.

Как мы уже говорили, блоки данных, записанные на дорожках, содержат служебную информацию. Например, для каждого блока в области служебной информации записывается его порядковый номер, равный номеру соответствующего сектора данных.

Когда формируется структура магнитной дорожки и записываются области служебной информации?

Во время процедуры низкоуровневого форматирования.

Обратите внимание:

Низкоуровневое форматирование (или низкоуровневая инициализация, что одно и то же) формирует логическую структуру дорожки. Дорожка разделяется на сектора, для каждого сектора записывается служебная информация. Область данных размером 512 байт обычно заполняется значением 0E6h. Низкоуровневое форматирование выполняется для всех имеющихся дорожек.

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

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

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

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

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

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

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

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

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

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

Как можно улучшить временные характеристики?

Например, можно располагать секторы через один (см. рисунок):









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