Диски, разделы, секторы, кластеры
Основным типом устройства, которое используется в современных компьютерах для хранения файлов, являются дисковые накопители. Эти устройства предназначены для считывания и записи данных на жесткие и гибкие магнитные диски. Жесткий диск состоит из одного или нескольких стеклянных или металлических дисков, каждый из которых покрыт с одной или двух сторон магнитным материалом. Таким образом, диск в общем случае состоит из пакета дисков и блока головок, с помощью которых осуществляется считывание и запись данных на диск (рис. 6.6).
На каждой стороне каждого диска (поверхности) размечены тонкие концентрические кольца — дорожки (traks), на которых хранятся данные. Количество дорожек зависит от типа диска. Нумерация дорожек начинается с 0 от внешнего края к центру диска. Когда диск вращается, головка считывает или записывает двоичные данные с или на магнитную дорожку.
Головка может позиционироваться над заданной дорожкой, перемещаясь над поверхностью диска дискретными шагами, каждый шаг соответствует сдвигу на одну дорожку. Запись на диск осуществляется благодаря способности головки изменять магнитные свойства дорожки. В некоторых дисках вдоль каждой поверхности перемещается одна головка, а в других — имеется по головке на каждую дорожку. В первом случае для поиска информации головка должна перемещаться по радиусу диска. Обычно все головки закреплены на едином перемещающем механизме и двигаются синхронно. Поэтому, когда головка фиксируется на заданной дорожке одной поверхности, все остальные головки останавливаются над дорожками с такими же номерами. В тех же случаях, когда на каждой дорожке имеется отдельная головка, никакого перемещения головок с одной дорожки на другую не требуется, за счет этого экономится время, затрачиваемое на поиск данных.
Совокупность дорожек одного радиуса (с одинаковыми номерами) на всех поверхностях всех пластин пакета называется цилиндром (cylinder). Каждая дорожка разбивается на фрагменты, называемые секторами (sectors), так что все дорожки имеют равное число секторов, в которые можно максимально записать одно и то же число байт. Сектор имеет фиксированный для конкретной системы размер, выражающийся степенью двойки. Учитывая, что дорожки разного радиуса имеют одинаковое число секторов, плотность записи становится тем выше, чем ближе дорожка к центру.
В большинстве современных дисковых накопителях используется так называемая зонная запись с переменным количеством секторов на дорожке. Дорожки, более удаленные от центра, а значит, и более длинные, содержат большее число секторов, чем близкие к центру. Один из способов повышения емкости жесткого диска заключается в разделении внешних цилиндров на большее количество секторов по сравнению с внутренними цилиндрами (рис. 6.7.).
При зонной записи цилиндры разбиваются на группы, которые называются зонами, причем по мере продвижения к внешнему краю диска дорожки разбиваются на все большее число секторов. Во всех цилиндрах, относящихся к одной зоне, количество секторов на дорожках одинаковое. Возможное количество зон зависит от типа накопителя; в большинстве устройств их бывает 10 и более.
Еще одно свойство зонной записи состоит в том, что скорость обмена данными с накопителем может изменяться и зависит от зоны, в которой в конкретный момент располагаются головки. Происходит это потому, что секторов во внешних зонах больше, а угловая скорость вращения диска постоянна (т.е. линейная скорость перемещения секторов относительно головки при считывании и записи данных на внешних дорожках оказывается выше, чем на внутренних).
Сектор — наименьшая адресуемая единица обмена данными дискового устройства с оперативной памятью.
Каждый сектор состоит из поля данных и поля служебной информации, ограничивающей и идентифицирующей его. Размер сектора (точнее — емкость поля данных) устанавливается контроллером или драйвером. Например, пользовательский интерфейс DOS поддерживает единственный размер сектора — 512 байт. BIOS же непосредственно предоставляет возможности работы с секторами размером 128, 256, 512 или 1024 байт. Если управлять контроллером непосредственно, а не через программный интерфейс более высокого уровня (например, уровень DOS), то можно обрабатывать секторы и с другими размерами. Однако в большинстве современных ОС размер сектора выбирается равным 512 байт.
Физический адрес сектора на диске определяется с помощью трех «координат», то есть представляется триадой [c-h-s], где с — номер цилиндра (дорожки на поверхности диска, cylinder), h — номер рабочей поверхности диска (магнитной головки, head), a s — номер сектора на дорожке. Номер цилиндра с лежит в диапазоне от 0 до С-1, где С — количество цилиндров. Номер рабочей поверхности диска h принадлежит диапазону от 0 до Н-1, где Н — число магнитных головок в накопителе. Номер сектора на дорожке s указывается в диапазоне от 1 до S, где S — количество секторов на дорожке. Например, триада [1-0-2] адресует сектор 2 на поверхности 0 (обычно верхняя рабочая поверхность) цилиндра 1.
Все секторы диска имеют непрерывную нумерацию от 0 до N-1, где N - количество секторов на диске. Таким образом, сначала (начиная с нуля) нумеруются секторы на нулевой дорожке нулевой поверхности, затем - на нулевой дорожке первой поверхности, затем - на нулевой дорожке второй поверхности и т.д. После пере нумерации секторов на нулевых дорожках всех поверхностей описанный процесс повторяется для первой и всех последующих дорожек.
Операционная система при работе с диском использует, как правило, собственную единицу дискового пространства, называемую кластером (cluster). При создании файла место на диске ему выделяется кластерами. Например, если файл имеет размер 2560 байт, а размер кластера в файловой системе определен в 1024 байта, то файлу будет выделено на диске 3 кластера, несмотря на то, что последний кластер будет использован не полностью.
Кластер представляет собой один или несколько смежных секторов в логическом дисковом адресном пространстве (точнее - только в области данных). На дискетах кластер занимает один или два сектора, а на жестких дисках - обычно четыре или восемь секторов. Число секторов в кластере всегда кратно степени двойки. Логическое разбиение области данных на кластеры как совокупности секторов взамен использования одиночных секторов имеет следующий смысл:
q уменьшается возможная фрагментация файлов;
q ускоряется доступ к файлу, так как в несколько раз сокращается длина цепочек фрагментов дискового пространства, выделенных для него.
Однако слишком большой размер кластера ведет к неэффективному использованию области данных, особенно в случае большого количества маленьких файлов.
Дорожки и секторы создаются в результате выполнения процедуры физического, или низкоуровневого, форматирования диска, предшествующей использованию диска. Низкоуровневое форматирование выполняется на заводе изготовителе, где на диск записывается идентификационная информация. Низкоуровневый формат диска не зависит от типа операционной системы, которая этот диск будет использовать.
Разметку диска под конкретный тип файловой системы выполняют процедуры высокоуровневого, или логического, форматирования. При высокоуровневом форматировании определяется размер кластера и на диск записывается информация, необходимая для работы файловой системы, в том числе информация о доступном и неиспользуемом пространстве, о границах областей, отведенных под файлы и каталоги, информация о поврежденных областях. Кроме того, на диск записывается загрузчик операционной системы — небольшая программа, которая начинает процесс инициализации операционной системы после включения питания или рестарта компьютера.
Прежде чем форматировать диск под определенную файловую систему, он может быть разбит на разделы. Раздел — это непрерывная часть физического диска, которую операционная система представляет пользователю как логическое устройство (используются также названия логический диск и логический раздел). Логическое устройство функционирует так, как если бы это был отдельный физический диск. Именно с логическими устройствами работает пользователь, обращаясь к ним по символьным именам. Операционные системы разного типа используют единое для всех них представление о разделах, но создают на его основе логические устройства, специфические для каждого типа ОС. Так же как файловая система, с которой работает одна ОС, в общем случае не может интерпретироваться ОС другого типа, логические устройства не могут быть использованы операционными системами разного типа. На каждом логическом устройстве может создаваться только одна файловая система.
В частном случае, когда все дисковое пространство охватывается одним разделом, логическое устройство представляет физическое устройство в целом. Если диск разбит на несколько разделов, то для каждого из этих разделов может быть создано отдельное логическое устройство. Логическое устройство может быть создано и на базе нескольких разделов, причем эти разделы не обязательно должны принадлежать одному физическому устройству. Объединение нескольких разделов в единое логическое устройство может выполняться разными способами и преследовать разные цели, основные из которых: увеличение общего объема логического раздела, повышение производительности и отказоустойчивости. Примерами организации совместной работы нескольких дисковых разделов являются так называемые RAID-массивы.
На разных логических устройствах одного и того же физического диска могут располагаться файловые системы разного типа. На
рис. 6.8. показан пример диска, разбитого на три раздела, в которых установлены две файловых системы NTFS (разделы С и Е) и одна файловая система FAT (раздел D).
Все разделы одного диска имеют одинаковый размер кластеров, определенный для данного диска в результате низкоуровневого форматирования. Однако в результате высокоуровневого форматирования в разных разделах одного и того же диска, представленных разными логическими устройствами, могут быть установлены файловые системы, в которых определены кластеры отличающихся размеров.
Операционная система может поддерживать разные статусы разделов, особым образом отмечая разделы, которые могут быть использованы для загрузки модулей операционной системы, и разделы, в которых можно устанавливать только приложения и хранить файлы данных. Один из разделов диска помечается как загружаемый (или активный). Именно из этого раздела считывается загрузчик операционной системы.
Дата добавления: 2020-10-25; просмотров: 570;