Как головки находят данные, хранящиеся на жестком диске?
Считывая (и сравнивая) адресную информацию каждого сектора, когда он вращается под головкой.
Детали (в исполнении контроллера диска):
Контроллер диска перемещает сборку головки R/W из текущего положения в требуемый цилиндр.
(Время выполнения этой операции называется временем поиска.)
Контроллер диска выбирает запрошенную головку чтения / записи.
(Время выполнения этой операции называется временем установления и выбора головы.)
Контроллер диска ожидает, когда запрошенный сектор повернется в нужное положение.
3a. При обнаружении каждого сектора (прерыванием, вызванным нахождением метки адреса на дорожке), считывается идентификационная запись сектора.
3b. Если идентификационная запись не соответствует запрошенному цилиндру или головке, то произошла ошибка поиска или контроллера, и необходимо выполнить процедуру ошибки.
3в. Если запись идентификатора не соответствует запрошенному сектору, то продолжайте ждать следующего сектора (т. Е. Повторите 3a).
3d. В противном случае запрошенный сектор найден, поскольку запись идентификатора действительно соответствует запрошенному цилиндру, головке и сектору (или номеру логического сектора или LBA).
(Время выполнения этой операции называется задержкой вращения.)
Примечание. Если метка указателя встречается дважды (т. Е. Более одного полного поворота), то весь трек был отсканирован, а запрошенный сектор не найден. Необходимо выполнить процедуру ошибки.
Я слышал, что для чтения или записи данных на жесткий диск нам нужны идентификатор цилиндра и идентификатор сектора.
Вы пропустили (чтение / запись) номер головы.
Сначала переместите головки жесткого диска в цилиндр, указанный в идентификаторе цилиндра, а затем в сектор, указанный в идентификаторе сектора. Это правильно?
Не совсем. Первая часть точна, но не последняя.
Нужен ли нам идентификатор блюда, ...
На самом деле, нет.
... а какая из двух поверхностей блюда?
На каждой поверхности есть одна головка для чтения / записи.
Таким образом, указание номера головы выбирает поверхность диска.
Или, что то же самое, идентификатор дорожки (поскольку у нас есть идентификатор цилиндра)?
На уровне контроллера диска "идентификатор дорожки" обычно не используется. Номер цилиндра и номер головки более полезны.
Поскольку исходный BIOS IBM PC взаимодействовал напрямую с контроллером диска (на основе чипа Western Digital), BIOS должен был использовать эту адресацию цилиндра, головки, сектора (или CHS). Но поскольку контроллер диска был перенесен с шины ISA на корпус диска (стиль IDE), набор команд ATAPI сделал адресацию CHS по существу устаревшей в пользу адресации логического сектора.
Также см. Когда происходит чтение или запись на диск, куда отправляются данные?