Составители:
сти работы с секторами размером 128, 256, 512 или 1024 байт. Таким образом, если
управлять контроллером жесткого диска непосредственно, а не через программный ин-
терфейс более высокого уровня, можно обрабатывать секторы и с другими размерами.
Однако в большинстве современных ОС размер сектора выбирается равным 512 байт,
аналогично DOS.
При работе диска набор пластин вращается вокруг своей оси с высокой скоростью,
подставляя по очереди под магнитные головки (head) соответствующих дорожек все их
сектора. Физический адрес сектора на диске определяется с помощью трех координат [c-
h-s], где с - номер цилиндра, h - номер рабочей поверхности диска (магнитной головки),
a s- номер сектора на дорожке. Номер цилиндра с лежит в диапазоне 0...С-1, где С - ко-
личество цилиндров. Номер рабочей поверхности диска h принадлежит диапазону 0...Н-
1, где Н - число магнитных головок в накопителе. Номер сектора на дорожке s указыва-
ется в диапазоне 1...S, где S - количество секторов на дорожке. Например, триада [1-0-2]
адресует сектор 2 на дорожке 0 (обычно верхняя рабочая поверхность) цилиндра 1.
Обмен информацией между оперативной памятью и дисками физически осуществ-
ляется только секторами. Вся совокупность физических секторов на винчестере пред-
ставляет его неформатированную емкость.
При планировании использования жесткого диска естественным параметром явля-
ется время, которое потребуется для выполнения очередного запроса. Время, необходи-
мое для чтения или записи сектора можно разделить на две составляющие: время обмена
информацией между магнитной головкой и компьютером, которое обычно не зависит от
положения данных и определяется скоростью их передачи (transfer speed), и время, не-
обходимое для позиционирования головки над заданным сектором, - время позициони-
рования (positioning time). Время позиционирования, в свою очередь, состоит из време-
ни, необходимого для перемещения головок на нужный цилиндр - времени поиска (seek
time) и времени, которое требуется для того, чтобы нужный сектор довернулся под го-
ловку - задержки на вращение (rotational latency). Времена поиска пропорциональны
разнице между номерами цилиндров предыдущего и планируемого запросов, и их легко
сравнивать. Задержка на вращение определяется довольно сложными соотношениями
между номерами цилиндров и секторов предыдущего и планируемого запросов и скоро-
стями вращения диска и перемещения головок. Без знания соотношения этих скоростей
сравнение становится невозможным. Поэтому естественно, что набор параметров пла-
нирования сокращается до времени поиска различных запросов, определяемого текущим
положением головки и номерами требуемых цилиндров, а разницей в задержках на вра-
щение пренебрегают.
Существует несколько алгоритмов поиска необходимого сектора [3]. Простейший
из них - First Come First Served (FCFS) - первым пришел, первым обслужен. Все запро-
сы организуются в очередь FIFO и обслуживаются в порядке поступления. Алгоритм
прост в реализации, но может приводить к достаточно длительному общему времени об-
служивания запросов. Более правильным было бы первоочередное обслуживание запро-
сов, данные для которых лежат рядом с текущей позицией головок, а уж затем далеко
отстоящих. Алгоритм Short Seek Time First (SSTF) - короткое время поиска первым как
раз и исходит из этой позиции. Для очередного обслуживания выбирается запрос, дан-
ные для которого лежат наиболее близко к текущему положению магнитных головок.
Естественно, что при наличии равноудаленных запросов решение о выборе между ними
может приниматься исходя из различных соображений, например по алгоритму FCFS.
Следует отметить, что этот алгоритм похож на алгоритм SJN для планирования процес-
сов, если за аналог оценки времени выполнения процесса выбирать расстояние между
текущим положением головки и положением, необходимым для удовлетворения запро-
са.
127
сти работы с секторами размером 128, 256, 512 или 1024 байт. Таким образом, если
управлять контроллером жесткого диска непосредственно, а не через программный ин-
терфейс более высокого уровня, можно обрабатывать секторы и с другими размерами.
Однако в большинстве современных ОС размер сектора выбирается равным 512 байт,
аналогично DOS.
При работе диска набор пластин вращается вокруг своей оси с высокой скоростью,
подставляя по очереди под магнитные головки (head) соответствующих дорожек все их
сектора. Физический адрес сектора на диске определяется с помощью трех координат [c-
h-s], где с - номер цилиндра, h - номер рабочей поверхности диска (магнитной головки),
a s- номер сектора на дорожке. Номер цилиндра с лежит в диапазоне 0...С-1, где С - ко-
личество цилиндров. Номер рабочей поверхности диска h принадлежит диапазону 0...Н-
1, где Н - число магнитных головок в накопителе. Номер сектора на дорожке s указыва-
ется в диапазоне 1...S, где S - количество секторов на дорожке. Например, триада [1-0-2]
адресует сектор 2 на дорожке 0 (обычно верхняя рабочая поверхность) цилиндра 1.
Обмен информацией между оперативной памятью и дисками физически осуществ-
ляется только секторами. Вся совокупность физических секторов на винчестере пред-
ставляет его неформатированную емкость.
При планировании использования жесткого диска естественным параметром явля-
ется время, которое потребуется для выполнения очередного запроса. Время, необходи-
мое для чтения или записи сектора можно разделить на две составляющие: время обмена
информацией между магнитной головкой и компьютером, которое обычно не зависит от
положения данных и определяется скоростью их передачи (transfer speed), и время, не-
обходимое для позиционирования головки над заданным сектором, - время позициони-
рования (positioning time). Время позиционирования, в свою очередь, состоит из време-
ни, необходимого для перемещения головок на нужный цилиндр - времени поиска (seek
time) и времени, которое требуется для того, чтобы нужный сектор довернулся под го-
ловку - задержки на вращение (rotational latency). Времена поиска пропорциональны
разнице между номерами цилиндров предыдущего и планируемого запросов, и их легко
сравнивать. Задержка на вращение определяется довольно сложными соотношениями
между номерами цилиндров и секторов предыдущего и планируемого запросов и скоро-
стями вращения диска и перемещения головок. Без знания соотношения этих скоростей
сравнение становится невозможным. Поэтому естественно, что набор параметров пла-
нирования сокращается до времени поиска различных запросов, определяемого текущим
положением головки и номерами требуемых цилиндров, а разницей в задержках на вра-
щение пренебрегают.
Существует несколько алгоритмов поиска необходимого сектора [3]. Простейший
из них - First Come First Served (FCFS) - первым пришел, первым обслужен. Все запро-
сы организуются в очередь FIFO и обслуживаются в порядке поступления. Алгоритм
прост в реализации, но может приводить к достаточно длительному общему времени об-
служивания запросов. Более правильным было бы первоочередное обслуживание запро-
сов, данные для которых лежат рядом с текущей позицией головок, а уж затем далеко
отстоящих. Алгоритм Short Seek Time First (SSTF) - короткое время поиска первым как
раз и исходит из этой позиции. Для очередного обслуживания выбирается запрос, дан-
ные для которого лежат наиболее близко к текущему положению магнитных головок.
Естественно, что при наличии равноудаленных запросов решение о выборе между ними
может приниматься исходя из различных соображений, например по алгоритму FCFS.
Следует отметить, что этот алгоритм похож на алгоритм SJN для планирования процес-
сов, если за аналог оценки времени выполнения процесса выбирать расстояние между
текущим положением головки и положением, необходимым для удовлетворения запро-
са.
127
Страницы
- « первая
- ‹ предыдущая
- …
- 123
- 124
- 125
- 126
- 127
- …
- следующая ›
- последняя »
