Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОРГЭВМ(21-35).docx
Скачиваний:
13
Добавлен:
22.09.2019
Размер:
1.04 Mб
Скачать

Скорость выполнения последовательных операций

И вот, наконец-то, мы добрались и до производительности. Начнем с линейных операций, благо многие до сих пор считают скорость копирования файлов мерилом производительности винчестеров. В общем случае это абсолютно неправильно, хотя… если основная и единственная задача накопителя — служить хранилищем видеотеки, то, действительно, последовательные операции наиболее важны: мы работаем с большими файлами, причем читаем или записываем их исключительно последовательно от начала к концу.

Как рассчитать предельную скорость линейных операций? Очень просто — она тем выше, чем большее количество битов информации проходит мимо магнитной головки за единицу времени. Соответственно, очень важное значение имеет последовательная плотность записи — чем она выше, тем больше скорость. Вторым же компонентом в этом произведении является обычная «физическая» скорость движения диска относительно головки, разная для каждой дорожки, поскольку при постоянной угловой скорости вращения диска линейная зависит от радиуса дорожки. Именно поэтому получается такой любопытный эффект, что на внешних дорожках скорость последовательных чтения и записи намного выше, чем на внутренних. Благодаря ему нередко диски массовых серий умудряются на внешних дорожках обгонять своих высокопроизводительных собратьев того же поколения с большей скоростью вращения. А вот диски разных поколений практически всегда имеют разную скорость выполнения последовательных операций даже при одинаковых физических параметрах — плотность записи различается существенно.

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

Скорость выполнения случайных операций

Что касается более актуальных ныне (из-за многозадачности современных операционных систем) операций со случайным доступом к дискам, то тут все гораздо сложнее, нежели с «прямолинейной» логикой линейных. Для начала разберемся, каков именно физический смысл времени доступа к информации, определяющего скорость выполнения случайных операций.

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

С первым компонентом все достаточно просто: время, нужное на «попадание» на запрошенную дорожку, прямо пропорционально диаметру пластины. Некогда его «портила» и поперечная плотность записи, поскольку применялись шаговые двигатели, способные за одну операцию сместить головку только на одну дорожку, однако те времена давно прошли. Теперь — только диаметр, да и то косвенно: определенное время на перемещение головки действительно требуется, а в худшем случае ее придется «прогнать» по всему радиусу. Однако сколько на диске дорожек — не слишком важно: внутренние схемы по номеру дорожки определяют примерное ее физическое местоположение и перемещают головку куда нужно (по крайней мере, пытаются), так что уже после первой же операции позиционирования в подборе нужного места участвует не более чем десяток дорожек, вне зависимости от их общего количества на диске.

Ладно — нужную дорожку мы нашли, теперь осталось дождаться нужного сектора. Когда? Угадать сложно — в лучшем случае мы получим нужный нам блок данных сразу же после позиционирования, в худшем его придется ждать целый оборот диска (если он только что «проскочил»). Согласно законам статистики, из этого следует, что в среднем у нас на ожидание нужных данных будет требоваться пол-оборота диска. Из чего неумолимо следует, что чем выше скорость вращения диска, тем меньше время ожидания.

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