Может ли обычный жесткий диск выполнять как произвольный, так и последовательный доступ?
Жесткий диск относится к категории устройств с произвольным доступом. Секторы жесткого диска являются адресуемыми, и операция чтения или записи требует указания адреса сектора. Операция AR /W не зависит от местоположения предыдущей операции.
Устройства с последовательным доступом, такие как магнитная лента (катушка или картридж) и перфорированная (бумага или майлар) лента, не имеют адресуемых записей или блоков. Записи / блоки зависят от положения, и доступ для чтения / записи должен начинаться с начала носителя. Существуют некоторые приемы (например, метки файлов на магнитной ленте), позволяющие осуществлять высокоскоростной поиск, но в настоящее время устройства с последовательным доступом в основном существуют из-за преимуществ сохранения данных и стоимости за байт. В условиях современного распространения жестких дисков и SDD устройства с последовательным доступом не могут обеспечить производительность как устройство хранения общего назначения (например, для файловой системы).
Если так, почему вы хотите сохранить условия для обоих?
Последовательный доступ - это естественная возможность устройства с произвольным доступом.
Принимая во внимание, что устройство с последовательным доступом борется (то есть требует много дополнительных операций и тратит время) для выполнения произвольного доступа.
Технически жесткий диск не выполняет последовательный доступ. Интерфейс команды не имеет "читать дальше" или "писать дальше". Должен быть указан явный адрес сектора.
После прочтения этого поста у меня возникает мысль, что последовательный доступ лучше, чем произвольный, как это так?
Лучше чем?
(Кстати, эти ответы не на 100% точны.)
Некоторые приложения (например, регистратор / регистратор данных или архивирование жесткого диска) прекрасно работают с последовательным доступом и не получат никакой выгоды при использовании произвольного доступа.
Некоторым приложениям абсолютно необходим произвольный доступ для своевременного выполнения своей задачи (например, запрос к базе данных или файловая система).
Обратите внимание, что типичный ПК не имеет запоминающего устройства с последовательным доступом.
В целом, устройство с произвольным доступом имеет большую полезность, чем устройство, ограниченное последовательным доступом. Вот почему жесткий диск (или SDD) (оба являются устройствами с произвольным доступом) являются необходимыми периферийными устройствами для компьютерных запоминающих устройств, в то время как устройства с последовательным доступом, такие как магнитная лента, считаются дополнительными и относятся в основном к функциям архивирования.
Таким образом, произвольный доступ обеспечивает все возможности последовательного доступа.
Правильный.
Также в каких ситуациях жесткий диск будет прибегать к случайному / последовательному доступу?
Жесткий диск из-за своего командного интерфейса всегда выполняет произвольный доступ.
Чтобы получить доступ к "следующему последовательному" сектору, хост-компьютер должен запросить «предыдущий сектор + 1»; нет команды «читать (или писать) дальше». Каждая команда R/W должна указывать адрес сектора.
Обратите внимание, что программное обеспечение файловой системы операционной системы будет скрывать эту черту жесткого диска. Доступ к большинству файлов осуществляется последовательно: вы начинаете запись или чтение файла в начале и продолжаете получать доступ к файлу по одной записи или строке за раз (то есть последовательно). Копирование файла всегда выполняется путем последовательного чтения исходного файла. Но изучите этот ответ, чтобы понять, как файловая система и жесткий диск должны выполнять дополнительный произвольный доступ для последовательного копирования содержимого файла.
Как тип доступа ввода / вывода влияет на время доступа?
Во-первых, нам нужно правильно определить "время доступа" жесткого диска (поскольку ответы в этом посте, которые вы упомянули, являются неточными). Есть несколько компонентов для доступа к времени, которые соответствуют работе жесткого диска:
- Команда чтения или записи должна отправляться с хост-компьютера на жесткий диск через интерфейс хост-диск (например, SATA).
- Контроллер жесткого диска обрабатывает команду. Если запрос на чтение может быть удовлетворен из кэша, то данные сектора уже доступны; перейти к шагу № 8. Для запроса на запись данные сектора также должны быть переданы, а затем вычисляются байты ECC.
- Фактическая операция с диском начнется с дополнительной операции поиска.
Если сборка головки R/W еще не установлена на требуемом цилиндре, то необходимо выполнить операцию поиска. Временной интервал для выполнения этой операции перемещения головки R/W называется временем поиска.
Обратите внимание, что поиск (то есть движение головок R/W) требует ускорения, дополнительной фазы максимальной скорости и затем замедления. Скорость не постоянна, а время поиска не линейно пропорционально количеству пройденных цилиндров. Эти факты делают большинство короткоходных расчетов поддельными.
Если сборка головки R/W уже установлена на требуемом цилиндре, поиск не требуется, и время поиска фактически равно нулю.
- Как только сборка головки R/W находится на требуемом цилиндре, выбирается головка R/W, соответствующая запрашиваемой направляющей.
- Поскольку пластины вращаются "под" головками R/W, контроллер должен ждать, пока запрошенный сектор не появится. Это время ожидания называется задержкой вращения. Если вы не можете предсказать, когда контроллер начнет ожидание относительно позиции вращения запрашиваемого сектора, средняя задержка вращения составляет половину периода вращения. (Период обратен скорости вращения.)
- Как только запрошенный сектор найден, выполняется фактическая операция чтения или записи. Для операции чтения биты, считанные с поверхности диска, записываются в виде байтов в секторный буфер. Для операции записи данные в секторном буфере сериализуются и записываются на поверхность диска.
- Как только весь сектор был считан в буфер сектора (контроллера), данные проверяются с использованием ECC. Коррекция применяется при необходимости (мягкая ошибка). Если ошибки не могут быть исправлены, то предпринимается попытка повторного чтения.
- Запрос R/W завершается ответом на хост-компьютер с данными сектора, которые были прочитаны, или подтверждением "запись OK" по интерфейсу «хост-диск».
Время доступа - это общее время, затраченное на выполнение всех этих операций. За исключением № 3, времени поиска и № 5, задержки вращения, другие операции, как правило, имеют относительно короткую и предсказуемую продолжительность по сравнению с этими двумя операциями.
Случайный доступ к жесткому диску будет иметь тенденцию иметь длительное время доступа, потому что потребуется поиск неизвестного промежутка и задержки вращения.
Последовательный доступ к жесткому диску может иметь минимальное время доступа, потому что поиск не вероятен (если только предыдущий доступ не был последним сектором цилиндра), и задержка вращения может быть нулевой, если запрос уже был поставлен в очередь или предыдущее чтение выполняло "чтение вперед" , Если время отправки последовательных запросов на жесткий диск плохое (т.е. слишком поздно, отсутствует следующий сектор), время доступа будет увеличено из-за задержки вращения, равной почти полному времени вращения. Эта задержка будет примерно такой же величины, как и поиск одного цилиндра.