Огляд будови та роботи HDD
Відео про роботy HDD
Устройство жесткого диска с IDE разъемом
Основные понятия:
Головка (Head) - электромагнит, скользящий над поверхностью диска, для каждой поверхности используется своя головка. Нумерация начинается с 0.
Головка HDD
Продольная (верхний рисунок) и перпендикулярная (нижний рисунок) запись информации на диске
Примерно с 2005 года идет переход с продольной на перпендикулярную запись информации на диске, что обеспечивает большую плотность записи данных.
С 2011-2013 планируется переход на "тепловую магнитную запись", место записи будет предварительно нагреваться лазером, что уменьшит размер домена и повысит надежность хранения. Предположительная максимальная емкость от 30 до 50 ТБ.
Дорожка (Track) - концентрическая окружность, которое может прочитать головка в одной позиции. Нумерация дорожек начинается с внешней (первая имеет номер - 0).
Цилиндр (Cylinder) - совокупность всех дорожек с одинаковым номером на всех дисках, т.к. дисков может быть много и на каждом диске запись может быть с двух сторон.
Маркер - от него начинается нумерация дорожек, есть на каждом диске.
Сектор - на сектора разбивается каждая дорожка, сектор содержит минимальный блок информации. Нумерация секторов начинается от маркера.
Дорожки, цилиндры, сектора, головки
Геометрия жесткого диска - набор параметров диска, количество головок, количество цилиндров и количество секторов.
У современных жестких дисков контроллер встроен в само устройство, и берет на себя большую часть работы, которую не видит ОС.
Например, скрывают физическую геометрию диска, предоставляя виртуальную геометрии.
Физическая и виртуальная геометрия диска
На внешних дорожках число секторов делают больше, а на внутренних меньше. На реальных дисках таких зон может быть несколько десятков.
1.1.2 RAID (Redundant Array of Independent Disk - массив независимых дисков с избыточностью)
Более подробная информация - http://ru.wikipedia.org/wiki/RAID
Для увеличения производительности или надежности операций ввода-вывода с диском был разработан стандарт для распараллеливания или дублирования этих операций
Основные шесть уровней RAID:
На практике, как правило, используют RAID 0, 1 и 5.
Системы RAID уровней от 0 до 5.
1.1.3 Компакт-диски
Более подробная информация - http://ru.wikipedia.org/wiki/Компакт-диск
Фото диска
Фото устройства для работы с дисками
Устройство в работе
Запись на CD-ROM диски производятся с помощью штамповки.
CD-ROM под электронным микроскопом.
Длина пита варьируется от 850 нм до 3,5 мкм
Сначала CD-диски использовались только для записи звука, стандарт которого был описан ISO 10149 ("Красная книга").
Пит - единица записи информации (впадина при штамповке, темное пятно, прожженное в слое краски в CD-R, область фазового перехода)
Запись на CD-ROM производится спирально
В 1984 году была опубликована "Желтая книга", в которой описан следующий стандарт.
Для записи данных было необходимо повысить надежность, для этого каждый байт (8 бит) стали кодировать в 14 разрядное число (по размеру почти дублирование записи, но за счет кодирования эффективность может быть, как при тройной записи), чтобы можно было восстановить потерянные биты.
Логическое расположение данных на CD-ROM для режима 1
Заголовок содержит:
ECC (Error Correction Code) - код исправления ошибок.
В режиме 2 поле данных объединено с полем ECC в 2336-байтное поле данных. Этот режим можно использовать, если не требуется коррекция ошибок, например, видео и аудио запись.
Коррекция ошибок осуществляется на трех уровнях:
Поэтому 7203 байта содержат только 2048 байта полезной нагрузки, около 28%.
В 1986 году была выпущена "Зеленая книга", к стандарту была добавлена графика, и возможность совмещения в одном секторе аудио, видео и данных.
Файловая система для CD-ROM называется High Sierra , которая оформлена в стандарт ISO 9660.
Файловая система имеет три уровня:
Для этого стандарта существуют расширения:
1.1.3.1 Компакт-диски с возможностью записи CD-R
Запись на CD-R диски производятся с помощью локального прожигания нанесенного слоя красителя.
Используются лазеры с двумя уровнями разной мощности, для записи 8-16 мВт, для чтения 0.5 мВт.
В 1989 году была выпущена "Оранжевая книга", это документ определяет формат CD-R, а также новый формат CD-ROM XA , который позволяет посекторно дописывать информацию на CD-R.
CD-R-дорожка - последовательно записанные за один раз секторы. Для каждой такой дорожки создается свой VTOC (Volume Table of Contents - таблица содержания тома), в котором перечисляются записанные файлы.
Каждая запись производится за одну непрерывную операцию, поэтому если у вас будет слишком загружен компьютер (мало памяти или медленный диск), то вы можете испортить диск, т.к. данные не будут поспевать поступать на CD-ROM.
1.1.3.2 Многократно перезаписываемые компакт-диски CD-RW
Запись на CD-RW диски производятся локального перевода слоя из кристаллического в аморфное состояние.
Используются лазеры с тремя уровнями разной мощности.
Эти диски можно отформатировать (UDF), использовать их в место дискет и дисков.
1.1.3.3 Универсальный цифровой диск DVD (Digital Versatile Disk)
Более подробная информация - http://ru.wikipedia.org/wiki/DVD
Были сделаны следующие изменения:
Это позволило увеличить объем с 650 Мбайт до 4.7 Гбайт.
Определены четыре следующих формата:
1.1.3.4 Универсальный цифровой диск Blu-ray (blue ray — синий)
Более подробная информация - http://ru.wikipedia.org/wiki/Blu-ray_Disc
Были сделаны следующие изменения:
Определены следующие формата:
1.2 Форматирование дисков (программная часть)
1.2.1 Низкоуровневое форматирование
Низкоуровневое форматирование - разбивка диска на сектора, производится производителями дисков.
Каждый сектор состоит из:
Сектор диска
На диске могут быть запасные сектора, которые могут быть использованы для замены секторов с дефектами (а они почти всегда есть). За счет этого обеспечивается одинаковая емкость на выходе.
При низкоуровневом форматировании часть полезного объема уменьшается, примерно до 80%.
Перекос цилиндров
Перекос цилиндров - сдвиг 0-го сектора каждой последующей дорожки, относительно предыдущей. служит для увеличения скорости. Головка тратит, какое то время на смену дорожки, и если 0-й сектор будет начинаться в том же месте, что и предыдущий, то головка уже проскочит его, и будет ждать целый круг.
Перекос цилиндров
Перекос цилиндров делают разным в зависимости скоростей вращения и перемещения головок.
Перекос головок - приходится применять, т.к. на переключение с головки на головку тратится время..
Чередование секторов
Если, например, один сектор прочитан, а для второго нет в буфере места, пока данные копируются из буфера в память, второй сектор уже проскочит головку.
Чтобы этого не случилось, применяют чередование секторов.
Чередование секторов
Если копирование очень медленное, может применяться двукратное чередование, или больше.
1.2.2 Разделы диска
Более подробная информация - http://ru.wikipedia.org/wiki/Раздел_диска
После низкоуровневого форматирования диск разбивается на разделы, эти разделы воспринимаются ОС как отдельные диски.
Для чего можно использовать разделы:
Основные разделы диска:
Информация о разделах записывается в 0-м секторе 0-го цилиндра, головка 0. И называется таблицей разделов.
Таблица разделов (Partition Table) - содержит информацию о разделах, номер начальных секторов и размеры разделов. На Pentium-компьютерах в таблице есть место только для четырех записей, т.е. может быть только 4 раздела (к логическим это не относится, их может быть не ограниченное количество).
Этот сектор называется главной загрузочной записью.
Главная загрузочная запись MBR (Master Boot Record) - содержит загрузочную программу и таблицу разделов.
Более подробная информация - http://ru.wikipedia.org/wiki/Главная_загрузочная_запись
Активный раздел - раздел, с которого загружается ОС, может быть и логическим. В одном сеансе загрузки может быть только один активный раздел.
Пример структуры разделов
В Windows разделы будут называться (для пользователей) устройствами C:, D:, E: и т.д.
1.2.3 Высокоуровневое форматирование
Высокоуровневое форматирование (создание файловой системы) - проводится для каждого раздела в отдельности, и выполняет следующее:
Кластеры и блоки - единица хранения информации в файловых системах, файлы записываются на диск, разбитыми на блоки ли кластеры.
При загрузке системы, происходит следующее:
1.3 Алгоритмы планирования перемещения головок
Факторы, влияющие на время считывания или записи на диск:
Для большинства дисков самое большое, это время поиска. Поэтому, оптимизируя время поиска можно существенно повысить быстродействие.
Алгоритмы могут быть реализованы в контроллере, в драйверах, в самой ОС.
1.3.1 Алгоритм "первый пришел - первым обслужен" FCFS (First Come, First Served)
Рассмотрим пример. Пусть у нас на диске из 28 цилиндров (от 0 до 27) есть следующая очередь запросов:
27, 2, 26, 3, 19, 0
и головки в начальный момент находятся на 1 цилиндре. Тогда положение головок будет меняться следующим образом:
Алгоритм FCFS
Как видно алгоритм не очень эффективный, но простой в реализации.
1.3.2 Алгоритм короткое время поиска первым (или ближайший цилиндр первым) SSF (Shortest Seek First)
Для предыдущего примера алгоритм даст следующую последовательность положений головок:
Алгоритм SSF
Как видим, этот алгоритм более эффективен. Но у него есть не достаток, если будут поступать постоянно новые запросы, то головка будет всегда находиться в локальном месте, вероятнее всего в средней части диска, а крайние цилиндры могут быть не обслужены никогда.
1.3.3 Алгоритмы сканирования (SCAN, C-SCAN, LOOK, C-LOOK)
SCAN – головки постоянно перемещаются от одного края диска до его другого края, по ходу дела обслуживая все встречающиеся запросы. Просто, но не всегда эффективно.
LOOK - если мы знаем, что обслужили последний попутный запрос в направлении движения головок, то мы можем не доходить до края диска, а сразу изменить направление движения на обратное
C-SCAN - циклическое сканирование. Когда головка достигает одного из краев диска, она без чтения попутных запросов перемещается на 0-й цилиндр, откуда вновь начинает свое движение.
C-LOOK - по аналогии с предыдущим.
1.4 Обработка ошибок
Т.к. создать диск без дефектов сложно, а вовремя использования появляются новые дефекты.
Поэтому системе приходится контролировать и исправлять ошибки.
Ошибки могут быть обнаружены на трех уровнях:
Блоки и кластеры не должны содержать дефектные сектора, поэтому система должна уметь помечать дефектные сектора.
Способы замены дефектных кластеров