Расчет времени чтения жесткого диска

Расчет времени чтения жесткого диска

Я готовлюсь к экзаменам и столкнулся со следующей проблемой:

Один диск имеет 20000 дорожек, скорость 7200 об/мин и время поиска 1 мс. В вопросе мне предлагается рассчитать общее время, необходимое для чтения всех дорожек на диске. Это дает нам одну подсказку: время передачи дорожки — это время, необходимое для совершения полного оборота под головкой диска.

Я сначала попытался найти время передачи, но не знаю, правильно ли. У меня получается 7200/3600.

Как мне решить эту проблему?

решение1

Я думаю, что проблема не совсем в компьютерах или жестких дисках, если ее задать как в экзаменационном вопросе. Она больше касается основ.

  • Если у вас 7200 об/мин, это значит, что диск будет вращаться (7200/60) = 120раз в секунду.
  • Каждый раз, когда диск совершает полный оборот, теоретически вы можете прочитать 1 полную дорожку. Это означает, что чтение 1 дорожки занимает(1/120)s

Итак, теперь вопрос о времени поиска в 1 мс:

  • Если вы можете сделать непрерывное чтение, то вам нужно добавить время поиска только один раз. Таким образом, у вас есть (1/120)sдля каждого трека и одноразовое добавление времени поиска. Это кажется чрезмерным упрощением.
  • Более реалистично: если предположить, что вопрос подразумевает, что вам нужен дополнительный инструмент 1ms (1/1000)sдля переключения с одного трека на другой, то вы не сможете считывать 120 треков в секунду, как можно было бы предположить, исходя из одного лишь вращения.
  • Учитывая время вращения и поиска, (1/1000 + 1/120)sдля считывания каждой дорожки потребуется время.

Примечание:

Как правильно отмечает @sawdust в комментариях, этот ответ использует несколько упрощений. Это связано с тем, что в вопросе не было предоставлено никакой дополнительной информации, и я попытался работать с основами. Если вопрос более сложный (или касается реального оборудования, а не экзаменационного вопроса), необходимо учитывать следующие факторы:

  • Диск может иметь несколько (скажем, N) пластин, поэтому 20000 дорожек могут быть распределены по Nпластинам. В общем, пластину можно использовать с обеих сторон.[1] Таким образом, 20000 дорожек каждой из 2Nголовок чтения/записи в приводе — это не 20000 цилиндров, а скорее 20000/(2N)цилиндры. Это может позволить считывать 2Nдорожки одновременно. Тогда считывание 2Nдорожек занимает (1/120)s.
  • Время поиска не должно быть зафиксировано на 1ms. Обычно это комбинациявремя поиска головы, когда головка перемещается в нужный цилиндр (который может не всегда быть постоянным в зависимости от того, где вы находитесь на диске),ПЛЮСзадержка вращения, которая означает, что сам диск должен вращаться, пока головка не окажется над нужным сектором. В среднем задержка вращения может быть упрощена до половины времени, которое требуется диску, чтобы сделать 1 полный оборот. Таким образом, задержка вращения может быть около (1/240)sдля каждого нового цилиндра.
  • Реальные приводы могут иметь определенные проблемы с задержкой при возникновении проблем с правильным чтением данных. Это происходит, когда блоки повреждены или иным образом их трудно прочитать, и привод пытается прочитать сектора с разным расположением головок и параметрами, чтобы увеличить вероятность извлечения любых данных. Результирующие задержки иногда можно наблюдать даже с новыми розничными приводами, и их необходимо учитывать при планировании реальной системы, которая зависит от своевременного чтения диска. Поэтому вы не всегда можете предполагать, что дорожка будет полностью прочитана после одного оборота. Проблема может стать очень серьезной, поэтому все больше корпоративных приводов предлагают такие функции, как TLER, чтобы ограничить разрешенное время для повторной попытки чтения сектора.[2]

[1]:Википедия: Цилиндр-Головка-Сектор
[2]:Western Digital: Разница между дисками Desktop edition (WD Blue, WD Green и WD Black) и RAID (Enterprise) edition

Связанный контент