Московский ордена Ленина, ордена Октябрьской Революции и ордена Трудового Красного Знамени государственный технический университет им. Н.Э. Баумана
 
 
 
Факультет Информатики и систем управления
Кафедра ИУ - 4
 
 
 
 
Расчетно-пояснительная записка
к курсовому проекту на тему:
“Диагностика дисковой подсистемы
персонального компьютера”
 
 
 
 
 
Студент _______ (Пономарев В.В.) Группа ИУ6 – 72
Студент _______ (Александров Р.В.) Группа ИУ6 - 71
Руководитель проекта ________ ( Нестеров Ю.И.)
 
 
 
 
1999 г.
СОДЕРЖАНИЕ
ВВЕДЕНИЕ
МЕТОДЫ КОДИРОВАНИЯ ИНФОРМАЦИИ НА МАГНИТНЫХ НОСИТЕЛЯХ
Общие сведения
Метод записи и метод кодирования
Метод частотной модуляции
Метод модифицированной частотной модуляции
Метод миллеровской частотной модуляции
Метод с групповым кодированием
НАЗНАЧЕНИЕ, ХАРАКТЕРИСТИКА и СОСТАВ ПОДСИСТЕМЫ ГИБКИХ МАГНИТНЫХ ДИСКОВ
Устройство, работа
Физическая организация данных на дискете
Логическая организация данных на дискете
НАЗНАЧЕНИЕ, ХАРАКТЕРИСТИКА и СОСТАВ ПОДСИСТЕМЫ ЖЕСТКИХ МАГНИТНЫХ ДИСКОВ
Устройство, работа
Физическая организация данных на диске
Логическая организация данных на диске
АНАЛИЗ ПРОИЗВОДИТЕЛЬНОСТИ
Емкость
Быстродействие
Производительность в системен
АНАЛИЗ ДИСКОВЫХ ИНТЕРФЕЙСОВ
Обзор интерфейсов
Интерфейс IDE
РАЗРАБОТКА МЕТОДИКИ ТЕСТИРОВАНИЯ И ДИАГНОСТИКИ ДИСКОВОЙ ПОДСИСТЕМЫ
Тестирование и диагностика жесткого диска
Тестирование и диагностка гибкого диска
ЗАКЛЮЧЕНИЕ
СПИСОК ЛИТЕРАТУРЫ
ПРИЛОЖЕНИЯ
 
 
 
 
ВВЕДЕНИЕ
 
В современных персональных компьютерах используются два основных носителя информации: дискеты (гибкие диски) и жесткие диски. Но это не всегда было так. Первые ПК использовали для записи программ и данных кассетные магнитофоны. Как напоминание об этом сохранился кассетный Бейсик IBM, записанный в ПЗУ IBM PC. Он запускается, если при загрузке в дисковод не установлена системная дискета. Хотя с ним можно вполне успешно работать, попытка сохранить программу на диске будет безуспешной — для этого нужно подключить к ПК кассетный магнитофон. В ПК типа IBM PC в качестве носителей информации используются дискеты. При этом для работы с дискетами (запись я чтение информации) служат специальные устройства-накопители на гибких магнитных дисках — НГМД. Все последующие модели ПК, совместимых с IBM PC/XT/AT наряду с НГМД оснащаются также накопителями на жестких, несменяемых магнитных дисках — НЖМД. Основными преимуществами их по сравнению с дискетами являются значительно большая емкость и более быстрый доступ к данным.
Для подключения НГМД и НЖМД к ПК используются специальные устройства, которые, называются адаптерами либо контроллерами. Эти устройства вставляются в разъем системной шины ПК, а НГМД и НЖМД подключаются к ним с помощью специальных кабелей.
В последующих разделах излагаются вопросы функционирования НГМД и НЖМД в ПК типа IBM PC/XT, IBM PC/AT и совместимых с ними.
2. МЕТОДЫ КОДИРОВАНИЯ ИНФОРМАЦИИ НА МАГНИТНЫХ ДИСКАХ
2.1. Общие сведения
За время, прошедшее со времени появления накопителей на гибких магнитных дисках диаметром 133 мм, быстро возрастала их популярность как средства массовой памяти с произвольной выборкой для малых компьютеров. Одной из причин этого феноменального роста было то, что за это время емкость дискеты возросла более чем в 10 раз. Примерно 40% этого увеличения явилось результатом улучшений механической части дискового привода, позволивших вдвое повысить плотность размещения дорожек и перейти к записи на обеих сторонах диска. Но остальные 60% — это следствие внедрения различных методов кодирования данных, позволяющих более эффективно использовать рабочую поверхность диска.
В настоящее время широко применяются многие из этих способов, и, рассмотрев четыре самых распространенных, мы, при всех различиях между ними, сможем наиболее полно проследить общий характер, преимущества и ограничения современных способов кодирования данных.
В первых моделях НГМД диаметром 133 мм информация записывалась с плотностью около 20 дорожек/см и только на одной стороне диска, использовалась запись по методу частотной модуляции (FM — Frequency Modulation, здесь и в дальнейшем термины английские), чем ограничивался общий объем неформатной записи в 110 Кбайт. В 1977 г. удалось повысить плотность записи до 38 дорожек/см. Примерно в это же время была удвоена и продольная плотность FM-записи (число бит на единицу длины дорожки) благодаря так называемым методам кодирования с двойной плотностью записи. Ввиду этих улучшений объем информации, хранимой на диске диаметром 133 мм, возрос примерно до 500 Кбайт.
Два наиболее распространенных метода кодирования с двойной плотностью записи получили впоследствии названия модифицированной частотной модуляции (MFM — Modified Frequency Modulation) и миллеровской модифицированной частотной модуляции (M-FM). Еще через год к ним прибавился метод записи с" групповым кодированием (RLL — Run Limited Length), позволивший повысить продольную плотность записи на 117% по сравнению с FM. Когда НГМД со сдвоенными головками открыли дорогу для двусторонней записи по методу MFM или M-FM, оказалось возможным хранить на дискете более 1 Мбайт данных. Метод RLL позволил добавить к этому еще почти 170 Кбайт.
2.2. Метод записи и метод кодирования
Любое обсуждение способов кодирования данных должно начинаться со строгого различения методов кодирования и методов записи: они не зависят друг от друга. Четыре метода кодирования, о которых упоминалось выше, взаимно несовместимы, но все они подразумевают один и тот же метод записи, используемый при многих видах кодирования данных и именуемый методом записи без возвращения к нулю с инверсией (NRZ — Not Return Zero).
Запись по методу NRZ осуществляется путем, изменения направления тока в обмотке записи на головке чтения-записи (рис. 2.1). Изменение направления записывающего тока вызывает изменение на обратное направления магнитного потока в сердечнике головки, что приводит к появлению на носителе участков с противоположной магнитной ориентацией.
При считывании эти намагниченные участки вызывают перемены направления магнитного потока в головке, что соответствует двоичным единицам информации, которые могут быть считаны с диска: перемена направления означает логическую 1, а отсутствие такой перемены на протяжении заданного интервала времени, именуемого битовым элементом, рассматривается как логический 0. Происходит ли перемена магнитного потока от положительного направления к отрицательному или обратно, несущественно; имеет значение только сам факт перемены полярности. Методы кодирования сами по себе не влияют на перемены направления потока, а лишь задают их распределение во времени, так что картина этих перемен создает запись, которую соответствующее устройство считывания может преобразовать в данные, обладающие требуемой значимостью.
2.3. Частотная модуляция
Кодирование по методу частотной модуляции FM можно было бы назвать кодированием с единичной плотностью. При этом методе в начале битового элемента записывается бит синхронизации, а в промежутках между последними — биты данных. Битовый элемент определяется как минимальный интервал времени между битами данных, получаемый при постоянной скорости вращения диска 300 об/мин. В случае гибкого диска диаметром 133 мм каждый битовый элемент при FM имеет длительность 8 мкс; бит данных записывается в середине битового элемента, через 4 мкс после бита синхронизации (рис. 2.2).
При FM гарантируется по меньшей мере одна перемена направления потока, т.е. в данном случае один бит данных каждые 8 мкс. Такой интервал времени соответствует максимальной продольной плотности (по магнитному потоку) 2330 перемен на 1 см и скорости передачи данных 125 Кбит/сек.
То обстоятельство, что при FM длительность битового элемента, определяемая частотой следования синхроимпульсов, постоянна, упрощает кодирование и декодирование по этому методу. Импульсная
синхронизация и образование окна длительностью 4 мкс через 2 мкс после синхроимпульса позволяют легко обнаружить наличие или отсутствие перемены в направлении потока. Благодаря этому схемы кодирования-декодирования могут быть очень простыми. Фактически при записи с единичной плотностью схемы выделения данных (так называют схемы, используемые для кодирования и декодирования данных, хранимых на магнитном диске) в большинстве случаев,' сводятся к одной "простой схеме, вырабатывающей временные стробы, правильно расположенные относительно битов синхронизации.
Но наличие этих битов синхронизации как раз и составляет главный недостаток метода FM: код в принципе малоэффективен, поскольку половина наличной рабочей поверхности диска отводится под биты, необходимые для синхронизации. Если записываются все 1, то частота перемен направления магнитного потока оказывается вдвое выше фактической частоты поступления данных, потому что в каждом битовом элементе записываются и бит синхронизации, и бит данных. Если пользоваться FM-кодированием, то даже при удвоенной плотности дорожек и записи на обеих сторонах диска максимальная информационная емкость диска будет всего 500' Кбайт. Чтобы повысить ее, не прибегая к увеличению плотности дорожек, необходимо повысить продольную плотность за счет более продуманного кодирования, обладающего большей эффективностью, чем FM.
2.4. Модифицированная частотная модуляция
Метод MFM позволяет вдвое увеличить продольную плотность записи благодаря тому, что на тех местах, где при FM размещаются биты синхронизации, теперь находятся биты данных. При этом методе длительность битового элемента сокращается вдвое — до 4 мкс. Биты синхронизации все-таки приходится использовать, но при MFM они записываются лишь в том случае, если в предшествующем и текущем битовых элементах не были записаны биты данных. При записи данных бит синхронизации размещается в начале битового элемента, а бит данных — в его середине, в точности так же, как при "FM. И все же МРМ позволяет удвоить как информационную емкость диска, так и скорость передачи данных, так как при ней в одном и том же битовом элементе никогда не размещаются и бит синхронизации, и бит данных, и на один битовый элемент приходится только одна перемена направления потока (рис. 2.3).
2.5. Миллеровская модифицированная частотная модуляция
В настоящее время МFM применяется лишь в очень немногих
конструкциях НМД (а может быть, и ни в одной), но до внедрения MFM это был распространенный метод кодирования данных. M-FM сходна с MFM, но если при MFM между соседними нулями данных записываются синхроимпульсы, то при МFM основная идея MFM проводится с большей последовательностью: исключается большее число синхроимпульсов. При МFM синхроимпульс записывается лишь в том случае, если в предшествующем битовом элементе не был записан бит данных или бит синхронизации и если в текущем элементе не будет записываться бит данных (рис. 2.4 ).
Как при MFM, так и при М FM число битов данных, приходящееся на единицу длины дорожки, удваивается по сравнению с FM, хотя при этом число перемен направления потока на единицу длины не возрастает. Скорость передачи данных увеличивается до 250 Кбит/сек, хотя плотность перемен направления потока остается прежней — 2330 перемен/см. Однако допуски на синхронизацию при этом становятся вдвое более жесткими. Как уже отмечалось, длительность битового элемента сокращается с 8 до 4 мкс, и поэтому временные окна, отводимые на биты синхронизации и данных, уменьшаются с 4 до 2 мкс. Это требует более сложной конструкции контроллера.
При РМ-кодировании синхроимпульс в каждом битовом элементе задает окно для размещения бита данных. При MFM или M-FM эти окна должны создаваться схемами выделения данных, имеющимися в контроллере, так как не каждый битовый элемент содержит бит синхронизации. Необходимо непрерывно анализировать поток данных, чтобы временные окна оставались в синхронизации с соответствующими битами данных. Подобные функции обычно реализуются с помощью контура фазовой автоподстройки частоты, который обеспечивает необходимое для последующего декодирования сопряжение синхрогенератора контроллера с потоком данных.
Эта необходимость непрерывно поддерживать синхронизацию фактически и явилась одной из причин, по которым методу MFM со временем стали предпочитать МРМ. МFM позволяет еще больше снизить минимальное необходимое число перемен направления магнитного потока на единицу длины дорожки: в случае длинной последовательности нулей этот метод соответствует всего одной перемене направления потока на каждые два битовых элемента. Такое уменьшение фактического числа импульсов затрудняет осуществление синхронизации, не приводя вместе с тем к возрастанию информационной емкости диска или скорости передачи данных.
2.6. Запись с групповым кодированием
Одним из способов повышения информационной емкости диска может явиться, считывание и запись одних только информационных данных. Эта цель достигается в методе записи с групповым кодированием (RLL), при котором, присущие MFM и MPM трудности, связанные с образованием временных окон, снимаются прямым способом: синхроимпульсы просто исключаются. При этом этпадает надобность в образовании отдельных окон для битов данных синхронизации.
Естественно, вся схема кодирования при этом должна быть другой. Если, сохранив прежние методы кодирования, просто исключить из записываемой последовательности биты синхронизации, то последствия будут катастрофическими. При записи последовательности из одних О, в значительной части поверхности диска в этом случае не было бы ни дней перемены направления потока, и у схем выделения данных не оказалось бы никаких средств узнать, какова длина этой последовательности.
RLL ведет происхождение от метода, используемого при цифровой записи на магнитную ленту. Принцип RLL следующий: каждый байт поступающих данных разделяется на два полубайта, а затем полубайты кодируются специальным 5-разрядным кодом, отличающимся тем, что каждое число в нем содержит по меньшей мере одну перемену направления потока. При считывании каждые две 5-разрядные кодовые группы переводятся обратно в двоичные полубайты, объединяются и передаются в виде полного байта.
Особенность, требующаяся от 5-разрядного кода, следующая: в любом его числе не должно быть больше двух рядом стоящих 0. Мало того, и в любой используемой комбинации 5-разрядных кодов должно быть не больше двух стоящих рядом 0. Из 32 кодовых комбинаций, возможных при 5-разрядном коде, этим условиям отвечают 16. Они и приняты для кодирования по методу RLL (см. табл. 2.1).
При RLL скорость передачи данных возрастает с 250 до 380 Кбит/сек, а число перемен направления потока на единицу длины до 3330 перемен/см. При скорости передачи 380 кбит/с длительность битового элемента снижается до 2,6 мкс. Кроме того, требуется всего одно временное окно вместо двух, поскольку не нужно разделять перемены потока, соответствующие данным и синхронизации, и любая перемена направления потока всегда будет происходить в середине битового элемента. При длительности битового элемента 2,6 мкс в худшем случае, возможном при RLL, а именно, при двух рядом стоящих 0, в любом интервале 7,8 мкс будет по меньшей мере один импульс (рис. 2.5).
Поскольку этот максимальный интервал предсказуем, импульсы данных с равным успехом могут служить и для синхронизации, что делает метод RLL самосинхронизирующимся и самотактируемым. Кодированные этим способом данные могут записываться с еще большей продольной плотностью, чем при других существующих методах записи с двойной плотностью. При RLL на каждой дорожке можно записать 7,6 Кбайт данных, а при MFM или МPМ — 6,25 Кбайт. Как уже отмечалось, при двусторонней записи с плотностью 38 дорожек/см это соответствует увеличению информационной емкости диска на 170 Кбайт.
В последние годы некоторое распространение получил так называемый ARLL-метод кодирования. Его отличие от RLL-метода заключается в том, что наряду с логическим уплотнением данных производится еще и повышение физической частоты обмена данными между контроллером и накопителем примерно в 1,5 раза. Этот метод позволяет увеличить полезную емкость накопителя, однако он предъявляет весьма жесткие требования к носителям информации и в настоящее время его используют отдельные фирмы, достигшие неординарного уровня в технологии изготовления дисков.
При рассмотрении методов кодирования приводились временные соотношения применительно к НГМД. Что касается НЖМД, то все вышеприведенные соображения применимы и к ним. Единственное отличие заключается в том, что обмен данными с НЖМД производится со скоростью примерно в 10 раз большей, чем с НГМД, т.е. выше физическая частота данных и, соответственно, плотность данных на носителе. Временные же соотношения остаются прежними.
При МРМ-кодйровании (FM-кодирование в современных НЖМД не применяется) обмен производится со скоростью 5 Мбит/сек. При RLL кодировании эта скорость возрастает до 7,5 Мбит/сек, а при ARLL-кодировании — до 10 Мбит/сек. Некоторые фирмы применяют еще более совершенные методы кодирования и более высокие скорости обмена данными.
 
3. НАКОПИТЕЛИ НА ГИБКИХ МАГНИТНЫХ ДИСКАХ
3.1. Устройсво, работа
Дискета является смежным высокоточным устройством, предназначенным для хранения информации. Она состоит из двух частей собственно магнитного диска и защитного конверта, в который этот диск помещен. Наибольшее распространение получили дискеты трех размеров: 8 дюймов, 5,25 дюйма и 3,5 дюйма. Размер дискеты указывает на диаметр магнитного диска. 8-дюймовые дискеты широко применялись в прошлом в ЭВМ фирмы DEC и совместимых с ними, а также в некоторых отладочных системах, например в системе AmSYS 29/10А фирмы Advanced Micro Devices, США. В настоящее время они практически не используются и сохранились только в выпущенных ранее образцах аппаратуры.
В персональных компьютерах широкого применения используются исключительно 5 - и 3 - дюймовые дискеты (здесь и в дальнейшем размеры дискет округляются).
Рассмотрим устройство 5-дюймовой дискеты. Магнитный диск выполнен из эластичного пружинящего пластика, покрытого слоем ферромагнитного материала, на который осуществляется запись и чтение информации. Защитный пластиковый конверт, выполненный в форме квадрата, покрыт внутри антифрикционным материалом. Он предохраняет поверхность магнитного диска от механических повреждений, от загрязнения и фиксирует его в дисководе. В защитном конверте имеется несколько отверстий и вырезов.
Центральное отверстие предназначено для посадки диска на шпиндель механизма вращения. Небольшое круглое отверстие, расположенное между центральным отверстием и одной из сторон конверта, называется индексным. На том же радиусе в магнитном диске находится отверстие меньшего диаметра, которое на каждом обороте диска один раз совпадает с соответствующим отверстием в конверте, что позволяет фотодатчику НГМД формировать сигнал начала каждого оборота. Через находящийся на обеих сторонах конверта эллипсообразный вырез, большая ось симметрии которого совпадает с диаметром диска, головки записи-чтения НГМД имеют доступ к магнитному покрытию диска. Квадратный пропил на кромке конверта выполняет функцию предохранения дискеты от случайной
записи (блокировка записи). Если он заклеен с обеих сторон, то запись на дискету запрещена. Если он открыт — запись разрешена. Для этого в НГМД есть специальный датчик. Обычно в запечатанной коробке с дискетами (10 шт.) находится и некоторое количество специальных бумажных заклеек. Расположенные на одной из сторон два полукруглых пропила, служат для точной фиксации дискеты в механизме НГМД.
Находящееся на внутренней окружности магнитного диска металлизированное кольцо предназначено для чисто конструктивных функций: оно усиливает место посадки магнитного диска на шпиндель привода, что предотвращает деформацию тонкого магнитного диска.
Магнитное покрытие диска представляет собой множество мельчайших областей самопроизвольной (спонтанной) намагниченности. Для наглядности представим себе, что диск покрыт слоем очень маленьких стрелок от компаса, направленных в разные стороны. Такие частицы-стрелки называются доменами. Под воздействием внешнего магнитного поля собственные магнитные поля доменов ориентируются в соответствии с его направлением. После прекращения действия внешнего поля на поверхности диска образуются зоны остаточной намагниченности. Таким образом сохраняется записанная на диске информация. Участки остаточной намагниченности, оказавшись при вращении диска напротив зазора магнитной головки, наводят в ней электродвижущую силу, изменяющуюся в зависимости от величины намагниченности.
Информация на дискете хранится побитно на так называемых дорожках. Дорожка — это замкнутая окружность на поверхности магнитного диска. Стандартное количество дорожек на одной стороне магнитного диска — 40 или 80. Дорожки нумеруются от края к центру диска от 0 до 39 или 79. Дорожки с одинаковыми номерами на разных сторонах диска называются цилиндром. 40-дорожечные дискеты и, соответственно, НГМД использовались в ранних образцах ПК. Емкость такой дискеты составляла 360 Кбайт. В настоящее время ПК комплектуются в основном 80-дорожечными НГМД. Емкость дискеты для таких НГМД составляет 720 Кбайт или 1,2 Мбайт в зависимости от плотности записи.
В совремеммых дискетах для хранения информации используются обе стороны магнитного диска. Такие дискеты называются двусторонними. Раньше в некоторых моделях ПК использовались односторонние дискеты. Для обозначения количества рабочих поверхностей на некоторых импортных дискетах можно увидеть аббревиатуру: SS — Single Sided (односторонняя дискета), DS — Double Sided (двусторонняя дискета). Номера дорожек на второй поверхности пронумерованы так же, как и на первой. Для однозначной идентификации дорожек пронумерованы и стороны дискеты 0 и 1, так что полный номер дорожки состоит из номера стороны и номера дорожки.
Каждая дорожка в свою очередь разделена на сектора. Стандартная, емкость сектора — 512 байт. Сектора внутри дорожки нумеруются, начиная с единицы, а не с нуля.
Рассмотрим устройство 3-дюймовой дискеты. Магнитный диск помещен в жесткий конверт из прочной пластмассы. В центре конверта имеется круглый вырез, в котором виден жестко скрепленный с магнитным диском металлический диск. Находящееся в центре квадратное отверстие, служит для посадки диска на шпиндель привода и вращения его во время операций записи-чтения. Смещенное относительно центра металлического диска прямоугольное отверстие служит для формирования сигнала ИНДЕКС. Несквозные круглые и полукруглые вырезы, расположенные на краях, конверта, предназначены для фиксации конверта в НГМД. Подвижная металлическая пластина предохраняет от загрязнения зону магнитного диска, предназначенную для контакта с головками записи-чтения. Когда дискета вставляется в НГМД, эта пластина автоматически сдвигается в сторону, отверстие пластины совмещается с соответствующим отверстием конверта, и головки НГМД получают доступ к магнитному покрытию диска.
3-дюймовые дискеты могут иметь емкость 720 Кбайт или 1,44 Мбайта. В углах конверта на стороне, противоположной металлической пластине, имеются один или два прямоугольных отверстия. Отверстие, расположенное параллельно металлической пластине, имеется только в дискетах емкостью 1,44 Мбайта. Соответствующий датчик в НГМД информирует схемы управления о плотности записи установленной дискеты. Прямоугольный вырез, расположенный перпендикулярно металлической пластине, имеется в обоих типах дискет. В него вставлен пластмассовый движок, который имеет два фиксированных положения. В одном из этих положений перекрываемое движком окно будет открыто, в другом — закрыто.
Это служит для механической блокировки записи на дискету. Когда окно открыто, запись запрещена, когда закрыто — разрешена.
3-дюймовые дискеты всегда имеют 80 дорожек.
Кроме вышеуказанного, на импортных дискетах можно увидеть следующую аббревиатуру: DD (Double Density — двойная плотность), HD (High Density — высокая плотность), QD (Quedmple 'Density — учетверенная плотность). В табл. 3.1 приведены характеристики дискет, НГМД и соответствующие им параметры команд форматирования.
Продолжительность жизни гибких дисков в значительной степени зависит от нашей осторожности и правильного использования. Главные враги дисков — это грязь и пыль, а также табачный дым. Записанную на диске информацию можно утратить, даже не заметив этого, если диск будет подвергаться воздействию магнитного поля (трансформаторы, телефоны, телевизоры, электродвигатели). Следует соблюдать осторожность, проходя через металлоискатели в аэропортах. Лучше всего в таких случаях передавать коробки с дискетами на ручной контроль.
Правильно эксплуатируемый диск выдерживает несколько месяцев непрерывной работы на одной дорожке, но ведь таких дорожек на диске несколько десятков. Дискеты высокого качества известных и опытных изготовителей гарантируют в среднем 70 млн. проходов головки по дорожке, что на практике сводится к более чем 20-летней интенсивной эксплуатации. Теоретически можно скорее ожидать аварии головки или других механизмов накопителя. Практика же показывает, что иногда дискеты имеют повреждения, и чаще всего это случается с безымянными изделиями (no name), т.е. с дешевыми дисками неизвестных фирм. Следует иметь ввиду, что на носителях информации Экономить не следует и надо покупать только высококачественные изделия.
3.2. Физическая организация данных на дискете
Перед использованием чистой дискеты она должна быть размечена. Процедура разметки (форматирования) дискеты заключается з том, что в определенные места каждой дорожки записываются служебные последовательности символов, называемые форматом. Формат предназначен для того, чтобы аппаратура адаптера дисководов могла однозначно определить позицию головки на дорожке, в нужное, время переключиться с поиска нужного сектора на запись или чтение поля данных и проверить достоверность записанных и Прочитанных данных. Все операции записи данных сопровождаются накоплением и записью в конце поля данных двух байтов контрольной суммы. Эта контрольная сумма, иначе называемая кодом циклического контроля (CRC — Cyclic Redundency Check), подсчитывается с помощью полинома, вид которого показан ниже.
Х16 + Х12 + Х5 + Х + 1
При операциях чтения и проверки данных на внутренних регистрах контроллера НГМД происходит накопление контрольной суммы по этому же алгоритму, а затем накопленная и записанная контрольные суммы сравниваются. При их совпадении прочитанные или проверенные данные считаются достоверными, при несовпадении — вырабатывается сигнал сбоя данных.
3.3. Логическая организация данных на дискете
Как сказано выше, первая выполняемая на новом диске операция — это форматирование. Этот процесс позволяет придать диску его окончательную структуру. В ходе форматирования определяется, в частности, количество дорожек и число секторов на дорожке.
В операционной системе MS-DOS предусмотрены четыре логических области дискеты:
1) загрузочный сектор;
2) таблица размещения файлов — FAT (Files Allocation Table);
3) каталог;
4) область данных.
Загрузочный сектор содержит короткую программу начальной загрузки ОС в память компьютера. Независимо от формата записи эта программа всегда занимает один сектор — первый сектор на цилиндре, имеющем номер ноль. В следующих секторах расположена таблица размещения файлов (FAT). Она содержит информацию, определяющую расположение записанных на дискету файлов. Отметим, что соседние фрагменты файла отнюдь не обязательно записываются в соседних секторах. Новые файлы могут занимать место, освобожденное в результате стирания ранее записанных. В связи с важностью информации, хранящейся в FAT, на дискете находятся две копии таблицы. Непосредственно за таблицей размещения файлов находится каталог. В нем записываются основные параметры (например, длина) файлов, записанных в области данных.
Величина области данных, каталога и FAT зависит от числа Секторов на дискете, которое в свою очередь обусловлено форматом записи данных. В MS-DOS длина сектора составляет 512 байтов, но число секторов может быть различным и зависит от версии системы и типа накопителя. В табл. 3.2 приведено сравнение основых форматов MS-DOS.
В связи с тем, что в настоящее время наибольшее распространение получил формат D-9, структуру FAT и каталога проанализируем именно для этого формата. Однако сначала попытаемся подытожить
сказанное выше и рассмотрим логическую организацию дискеты MS-DOS, записанной в формате D-9 (см. табл. 3.3 ).
Главная загрузочная запись
Первый сектор гибкого диска (сектор 1, дорожка 0, головка 0) содержит так называемую главную загрузочную запись (Master Boot Record). Эта запись занимает не весь сектор, а только его начальную часть.
Сама по себе главная загрузочная запись является программой. Эта программа во время начальной загрузки операционной системы с НМД помещается по адресу 7COOh:OOOOh, после чего ей передается управление. Загрузочная запись продолжает gроцесс загрузки операционной системы.
Загрузочная запись
В первом секторе активного раздела расположена загрузочная запись (Boot Record), которую не следует путать с главной загрузочной записью (Master Boot Record). Загрузочная запись считывается в оперативную память главной загрузочной записью, после чего ей передается управление. Загрузочная запись и выполняет загрузку операционной системы.
Загрузка операционной системы
Загрузка операционной системы с гибкого диска - двухступенчатый процесс. Вначале модули инициализации BIOS считывают главную загрузочную запись в память по адресу 7COOh:OOOOh и передают ей управление. Главная загрузочная запись просматривает таблицу разделов и находит активный раздел. Если активных разделов несколько, на консоль выводится сообщение о необходимости выбора активного раздела для продолжения загрузки.
После того как активный раздел найден, главная загрузочная запись считывает первый сектор раздела в оперативную память. Этот сектор содержит загрузочную запись, которой главная загрузочная запись и передает управление.
Загрузочная запись активного раздела выполняет загрузку операционной системы, находящейся в активном разделе.
Такой двухступенчатый метод загрузки операционной системы необходим по той причине, что способ загрузки зависит от самой операционной системы. Поэтому каждая операционная система имеет свой собственный загрузчик. Фиксированным является только расположение загрузочной записи - первый сектор активного раздела.
Загрузочная запись
Первый сектор на системной дискете занижает загрузочная запись (Boot Record). Эта запись считывается из активного раздела диска программой главной загрузочной записи (Master Boot Record) и запускается на выполнение. Задача загрузочной записи - выполнить загрузку операционной системы. Каждый тип операционной системы имеет свою загрузочную запись. Даже для разных версий одной и той же операционной системы программа загрузки может выполнять различные действия.
Кроме программы начальной зафузки операционной системы в загрузочной записи находился параметры, описывающие характеристики данного логического диска. Все эти параметры располагаются в самом начале сектора, в его так называемой форматированной области. Формат этой области изменился в версии 4.0 операционной системы MS-DOS.
Логический номер сектора MS-DOS предоставляет программе возможность работы с так называемыми логическими номерами секторов. Это номера секторов внутри логического диска.
Вы знаете, что для адресации сектора при помощи функций BIOS необходимо указывать номер дорожки, номер головки и номер сектора на дорожке. MS-DOS организует "сквозную" нумерацию секторов, при которой каждому сектору логического диска присваивается свой номер. Порядок нумерации выбран таким, что при последо-;жательном увеличении номера сектора вначале увеличивается номер головки, затем - номер дорожки. Это сделано для сокращения перемещений блока головок при обращении к последовательным логическим номерам секторов.
Пусть, например, у нас есть дискета с девятью секторами на дорожке. Сектор с логическим номером, равным единице, расположен на нулевой дорожке и для обращения к нему используется нулевая головка. Это первый сектор на дорожке, он имеет номер 1. Следующий сектор на нулевой дорожке имеет логический номер 2, последний сектор на нулевой дорожке имеет логический номер 9. Сектор с логическим номером 10 расположен также на нулевой дорожке. Это тоже первый сектор на дорожке, но теперь для доступа к нему используется головка с номером 1. И так далее, по мере увеличения логического номера сектора изменяются номера головок и дорожек.
Таблица размещения файлов
Сразу вслед за загрузочным сектором на дискете находятся секторы, содержащие таблицу размещения файлов FAT (File Allocation Table). Для того чтобы назначение этой таблицы стало более понятным, вспомним, как организовано хранение информации на различных носителях данных.
Последовательный и прямой доступ
Начнем с магнитных лент. При использовании магнитных лент информация записывается в виде файлов с последовательным доступом. Последовательный доступ означает, что для чтения какого-либо файла требуется вначале прочитать (или просмотреть) все предыдущие файлы. При записи информация может добавляться в конец ленты, после той информации, которая была записана в последний раз.
Для такого устройства, как магнитный диск, возможна запись информации либо последовательным, либо прямым методом доступа. Использование прямого метода доступа позволяет программе позиционировать головки сразу на тот файл, который вам нужен (или на нужную запись файла). Например, при чтении записи вы можете задать номер сектора на определенной дорожке и номер головки, где она расположена, либо смещение записи относительно начала файла в байтах.
Как правило, прямой метод доступа более эффективен, однако важное значение имеет также способ распределения места на диске для файлов.
Кластеры
Операционная система ОС ЕС для ЭВМ ряда ЕС позволяла задать начальное количество цилиндров диска для размещения набора данных и размер области диска, которая может быть использована для этого набора дополнительно. Если при записи в файл все распределенное для файла место на диске окажется исчерпанным, программа завершится аварийно, даже если на диске еще есть свободное пространство.
Операционная система MS-DOS использует дисковое пространство другим способом. При создании файла для него не задается начальное распределение памяти в дорожках или секторах. По мере того как файл увеличивается в размерах, операционная система распределяет этому файлу секторы из числа свободных, не используемых другими файлами. При этом файл не обязательно располагается в смежных областях диска, он может быть разбросан по разным дорожкам и секторам.
Очевидно, что в этом случае операционная система должна вести учет использу емых секторов диска. Для каждого файла она должна хранить где-то информацию о распределении файлам секторов диска. В операционной системе MS-DOS для хранения этой информации используется таблица размещения файлов. Весь диск разбивается операционной системой на участки одинакового размера, называемые кластерами. Кластер может содержать несколько секторов. Для каждого хйаетера в таблице FAT есть своя индивидуальная ячейка, в которой хранится информация об использовании данного кластера. Другими словами, таблица размещения файлов - это массив, содержащий информацию о кластерах. Размер этого массива рпределяется общим количеством кластеров на логическом диске.
Содержимое таблицы FAT
Что же хранится в таблице размещения файлов? Если ответить на этот вопрос коротко, то в FAT находятся списки кластеров, распределенных файлам. Все свободные кластеры отмечены нулями.
Таким образом, если файл занимает несколько кластеров, то эти кластеры связаны в список. При этом элементы таблицы FAT содержат номера следующих используемых данным файлом кластеров. Конец списка отмечен в таблице специальным Значением. Номер первого кластера, распределенного файлу, хранится в элементе Каталога, описывающего данный файл.
Программа format.com. предназначенная для форматирования диска, и некоторые Специальные программы аналогичного назначения проверяют диск на предмет наличия дефектных областей. Кластеры, которые находятся в этих дефектных областях, помечаются в FAT как плохие и не используются операционной системой.Итак, FAT - массив информации об использовании кластеров диска, содержит списки кластеров, распределенных файлам. Номера начальных кластеров файлов хранятся в каталогах, о которых мы будем говорить в разделе "Файлы и каталоги".
На рис. 2.2 показаны фрагменты корневого каталога диска С: и элементы FAT для файлов autoexec.bat и config.sys.
Из рисунка видно, что для файла autoexec.bat отведено 3 кластера, а для файла config.sys - 2 кластера. Реально эти файлы не используют столько кластеров, так как их размер обычно невелик.
В каталоге кроме всего прочего указаны номера первых кластеров, распределенных этим файлам (соответственно 11 и 12). В своей 11-й ячейке таблица FAT содержит число 17 - номер второго кластера, распределенного файлу autoexec.bat. Ячейка с номером 17 содержит число 18. Это номер третьего кластера, принадлежащего файлу autoexec.bat. Последняя ячейка, которая соответствует последнему кластеру, распределенному этому файлу, содержит специальное значение - FFFF.
Таким образом, файл autoexec.bat занимает 3 несмежных кластера с номерами 11, 17 и 18. Что же касается файла config.sys, то в нашем примере для него отведено два смежных кластера с номерами 12 и 13.
Два формата таблицы FAT
Таблица FAT может иметь 12- или 16-битовый формат. При этом в таблице для хранения информации об одном кластере диска используется соответственно 12 и 16 бит.
12-битовый формат удобен для дискет с небольшим количеством секторов - вся таблица размещения файлов помещается в одном секторе.
Если размер диска такой, что для представления всех секторов недостаточно 12 разрядов, можно увеличить размер кластера, например, до восьми секторов.
Однако большой размер кластера приводит к неэффективному использованию дискового пространства. Это происходит из-за того, что минимальный фрагмент дисковой памяти, выделяемый файлу, имеет слишком большой размер. Даже для файла размером 1 байт выделяется целый кластер. Значит, если размер кластера составляет 8 секторов, то для хранения 1 байта будет использовано 4 Кбайт дисковой памяти (размер кластера составляет 512 байт).
При использовании 16-битового формата таблицы FAT операционная система MS-DOS может работать с диском, который имеет размер более 32 Мбайт.
 
 
Определение формата таблицы FAT
Сектор загрузочной записи диска, отформатированного в MS-DOS версий 4.0 -6.22 в поле со смещением 36h содержит строку длиной 8 байт, идентифицирующую формат FAT. Она имеет вид "FAT12 " или "FAT16 ".
Если разделы на жестком диске создавались программой fdisk.exe, формат FAT можно определить, анализируя содержимое поля sys главной загрузочной записи (Masiei Boot Record). Если это поле содержит значение 1, используется 12-битовый формат, если 4, то 16-битовый.
Первый байт таблицы FAT называется описателем среды (Media Descriptor). Он имеет такое же значение, как и байт - описатель среды, находящийся в загрузочном секторе логического диска.
Следующие 5 байт для 12-битового формата или 7 байт для 16-битового формта всегда содержат значение OFFh.
Остальная часть таблицы FAT состоит из 12- или 16-битовых ячеек. Каждая ячейка соответствует одному кластеру диска. Эти ячейки могут содержать следующие значения:
списке
Чтение таблицы FAT
Непосредственный доступ к FAT может потребоваться вам для организации сканирования каталогов при поиске файлов, для чтения каталогов как файлов, для организации защиты информации от несанкционированного копирования.
Файлы и каталоги
Вы, конечно, знаете, что файловая система MS-DOS имеет древовидную структуру. В корневом каталоге располагаются 32-байтовые элементы, которые содержат информацию о файлах и других каталогах. Для чтения корневого каталога необходимо определить его расположение и размер.
Расположение и размер корневого каталога
Корневой каталог находится сразу за последней копией FAT. Количество секторов, занимаемых одной копией FAT, находится в блоке параметров BIOS в загрузочном секторе (поле fatsize), а количество копий FAT - в паче fatcnt блока ВРВ. Следовательно, перед корневым каталогом находится один загрузочный сектор и fatcnt * fatsize секторов таблицы размещения файлов FAT.
Размер корневого каталога можно определить исходя из значения поля rootsize. При форматировании диска в это поле записывается максимальное количество файлов и каталогов, которые могут находиться в корневом каталоге. Для каждого элемента в каталоге отводится 32 байта, поэтому корневой каталог имеет длину 32 * rootsize байт.
Корневой каталог занимает непрерывную область фиксированного размера. Размер корневого каталога задается при форматировании и определяет максимальное Количество файлов и каталогов, которые могут быть в нем описаны. Дтя определения количества секторов, занимаемых корневым каталогом, можно воспользоваться следующей формулой:
RootSecs = sectsize / (32 * rootsize),
где sectsize - размер сектора в байтах, он может быть получен из соответствующего поля загрузочного сектора.
Область файлов и подкаталогов
На рис. 2.3 изображены все области логического диска. Такую структуру имекяг логические диски, расположенные в разделах жестких дисков, а также дискеты.
Вслед за корневым каталогом на логическом диске находится область файлов и подкаталогов корневого каталога.
Область данных разбита на кластеры, причем нумерация кластеров начинается с числа 2. Кластеру с номером 2 соответствуют первые секторы области данных.
 
 
4. НАКОПИТЕЛИ НА ЖЕСТКИХ МАГНИТНЫХ ДИСКАХ
4.1. Устройство, работа
Haкопитель на жестком магнитном диске часто называют "винчестер". Название, произошло из за того, что первый НЖМД, изготовленный фирмой IBM, имел два диска по 30 Мбайт каждый. Соотношение "30-30" кому-то из сотрудников напомнило калибр популярного ружья...
Взглянув на накопитель на жестком диске, мы увидим только прочный металлический корпус, к которому снизу прикреплена печатная плата с электронными компонентами. Корпус полностью герметичен и защищает дисковод от частичек пыли, которые при попаданий в узкий зазор между головкой и поверхностью диска могут повредить чувствительный магнитный слой и вывести диск из строя. Кроме того, корпус экранирует накопитель от электромагнитных помех. В корпусе же находятся элементы для закрепления накопителя в компьютере.
Внутри корпуса находятся все механизмы и некоторые электронные узлы. Механизмы — это сами диски, на которых хранится информация, головки, которые записывают и считывают информацию с дисков, а также двигатели, приводящие все это в движение. Кроме того, у некоторых типов накопителей внутри находится воздушный фильтр, который адсорбирует образующиеся во время работы частицы пыли. Вскрывать корпус можно только в производственных условиях, в так называемой "чистой зоне", что исключает попадание внутри пыли и других вредных веществ. Накопителя зарубежных фирм, как правило, имеют специальную надпись на верхней крышке корпуса. Надпись обычно выполняет роль предохранительной пломбы и гласит следующее: "Вскрытие изделия, прекращает действие гарантий".
На лицевой панели накопителя зачастую можно увидеть светодиодный индикатор. Этот индикатор включается тогда, когда происходит обращение к данному НЖМД. В ПК типа IBM PC/XT старых моделей, при использовании двух НЖМД, в исходном состояния оба индикатора выключены и включение одного из них происходит только на время активизации контроллером линии интерфейса Выбор. В ПК типа IBM PC/AT и в IBM PC/XT новых моделей индикатор одного из НЖМД постоянно включен, т.к. контроллер не сбрасывает сигнал Выбор того НЖМД, обращение к которому было последним. Соответственно, при использовании одного НЖМД в этих моделях, он включен постоянно. Истинный факт обращения к НЖМД индицируется на передней панели ПК.
Диск представляет собой круглую пластину с идеально ровной поверхностью, покрытую тонким магниточувствительным слоем. Диски с нанесенным на них покрытием называют носителями информации.
В последние годы изготовители НЖМД сосредоточили свое внимание на повышении долговечности носителей и отыскании самых рациональных способов записи информации. Одним из наиболее важных достижений в этой области является появление носителей с напыляемым покрытием. При их изготовлении мелкозернистое металлическое соединение наносится на поверхность диска методом напыления. Современные модели накопителей работают с дисками, покрытыми слоем кобальта толщиной порядка десяти микрон. Технология его нанесения близка к той, которая используется при производстве интегральных микросхем. До них применялись накопители, в которых для хранения информации применялся более толстый и менее долговечный слой оксида железа, который в виде ферролака наносился на рабочие поверхности дисков (такое же покрытие используется при изготовлении обычной магнитной ленты).
В связи с тем, что слой напыляемого покрытия тоньше и однороднее, чем слой оксида, стало возможным записывать на диск информацию с большой плотностью. Это повлекло за собой сокращение числа необходимых для хранения информации дисков и уменьшение их размера. Все более широкое распространение 3-дюймовых НЖМД и плат со встроенными жесткими дисками (так называемых HardCard) непосредственно связано с появлением носителей информации с напыляемым покрытием.
Благодаря металлическим поверхностям диски с напыленным покрытием обеспечивают более надежное хранение информации. Накопители с нанесенным оксидом, напротив, имеют тенденцию к выкрашиванию частиц оксида, в особенности если головка "чиркает", по поверхности. Нарушение покрытия влечет за собой порчу информации и загрязнение зазора магнитной головки, что в итоге приводит к отказу НЖМД.
Многие изготовители НЖМД отказались от использования дисков с оксидным слоем в пользу обладающего лучшими характеристиками, хотя и более дорогостоящего, напыляемого покрытия. Большинство новейших накопителей с 3-дюймовыми дисками и практически все современные НЖМД емкостью 1000 Мбайт и больше изготавливаются по этой технологии.
Помимо сокращения числа дисков в накопителе и уменьшения их размеров появление носителей с напыляемым покрытием вызвало к жизни и новые методы кодирования информации на жестких дисках. До этого широко использовался метод модифицированной частотной модуляции (MFM-кодирование).
Хотя метод МРМ-кодирования относительно прост, надежен и не требует больших затрат для своей реализации, он является далеко не самым лучшим по достижимой плотности хранения информации, т.к. для хранения битов синхронизации должна отводиться какая-то часть поверхности диска, а это сокращает "полезную" емкость накопителя.
Более эффективным является метод группового кодирования (RLL-кодирование). Метод RLL-кодирования первоначально нашел применение в накопителях с оксидным покрытием; несколько накопителей такого типа можно приобрести и в настоящее время (например, модель Seagate ST238R). Однако, эти накопители не отличались высокой надежностью, в частности, они были весьма чувствительны к температуре окружающей среды. Наиболее широкое распространение RLL-метод получил при появлении накопителей с напыленным магнитным покрытием, которым свойственны более высокие надежность и плотность хранения данных. В настоящее время разрабатываются еще более совершенные методы кодирования для НЖМД, в которых используются диски с напылением.
Одним из эксплуатационных параметров НЖМД, непосредственно связанных с качеством магнитного покрытия дисков, является номер цилиндра, с которого контроллер начнет упаковывать записываемые данные более плотно. Этот параметр называется Цилиндром начала предкомпенсации (Starting. Cylinder for Precompensation). Необходимость в записи данных с различной плотностью вызвана тем, что дорожки на диске имеют различную длину: те, что ближе к центру, короче расположенных с краю. Но контроллер записывает одно и то же количество данных на каждую дорожку, независимо от ее длины. Для компенсации разницы в длине дорожек контроллер
должен записывать данные на удаленные от края диска дорожки более плотно, чем на наружные, что сказывается на взаимном влиянии битов друг на друга. Для того, чтобы компенсировать возникающие вследствие этого искажения информации при чтении, запись данных производится с предварительным смещением битов, которое учитывает эти искажения. Заметим, что некоторые изготовители, достигшие высокого технологического уровня, записывают на наружные и внутренние дорожки разное количество информации (разное число секторов), что позволяет значительно увеличить емкость НЖМД. Это возможно только в накопителях, использующих интерфейс IDE или SCSI, t.r. в них физические параметры НЖМД могут быть скрыты от пользователя.
Количество дисков может быть различным — от одного до десяти, количество рабочих поверхностей, соответственно, вдвое больше (по две на каждом диске). Последнее (как и материал, использованный для магнитного покрытия) определяет емкость жесткого диска. Иногда наружные поверхности крайних дисков (или одного из них) не используются, что позволяет уменьшить высоту накопителя, но при этом количество рабочих поверхностей уменьшается и может оказаться нечетным. В некоторых типах НЖМД наружные поверхности используются для записи на них так называемой сервоинформации, о чем будет сказано в разд. 6.5.
Магнитные головки считывают и записывают информацию на диски. Принцип записи аналогичен тому, который используется в НГМД: цифровая информация преобразуется в переменный электрический ток, поступающий на магнитную головку, а затем передается на магнитный диск, но уже в виде магнитного поля, которое диск может воспринять и "запомнить".
Пакет дисков, смонтированный на оси-шпинделе, приводится в движение специальным двигателем, компактно расположенным под ним. Скорость вращения дисков, как правило, составляет 3600 об/мин. Для того, чтобы сократить время входа накопителя в рабочее состояние, двигатель при включении некоторое время работает в форсированном режиме. Поэтому источник питания компьютера должен иметь запас по пиковой мощности.
Рассмотрим работу головок. Они перемещаются с помощью специального прецизионного двигателя и как бы плывут на расстоянии доли микрона от поверхности диска, не касаясь его. С электронными схемами накопителя головки связаны специальными проводниками, выполненными в виде гибкого плоского шлейфа. На рабочей поверхности дисков в результате записи информации образуются намагниченные участки, в форме концентрических окружностей. Так же, как и на дискетах, они называются магнитными дорожками. Совокупность дорожек, расположенных друг под другом на всех поверхностях, называют цилиндром. Все головки накопителя конструктивно связаны между собой и перемещаются одновременно, осуществляя параллельный доступ к одноименным дорожкам с одинаковыми номерами, т.е. к цилиндру. При выполнении операций записи-чтения контроллер выбирает одну из головок, т.е. в каждый момент времени запись или чтение может производиться только на одной дорожке.
Нужно заметить, что не вся поверхность диска используется дли хранения информации. Рабочая область, как и на грампластинке, занимает только среднюю часть поверхности. Наружная часть поверхности (расположенная возле внешнего радиуса) не используется ввиду того, что на ней возможно наличие механических дефектов, связанных с технологией изготовления дисков. Внутренняя часть поверхности не используется по той же причине, а кроме того, эта зона нужна для размещения в ней головок записи-чтения при транспортировании НЖМД. Это исключает порчу информации в рабочей зоне при соприкосновении головок с поверхностью диска вследствие воздействия вибрации.
Хранение и извлечение данных с диска требует взаимодействия между операционной системой, программами BIOS, контроллером жесткого диска и электронными и механическими компонентами самого НЖМД.
Если компьютеру требуется считать информацию с диска, он указывает контроллеру накопителя номера цилиндра, сектора и стороны диска (головки), где находится начало нужного файла, а также количество секторов” которое нужно прочитать. Далее контроллер вырабатывает команды, побуждающие блок головок переместиться к нужному цилиндру. После этого контроллер ждет, когда вращающиеся диски займут такое положение, при котором нужный сектор окажется под головкой, и лишь затем считывает информацию.
DOS помещает данные для хранение и обслуживает каталог секторов диска, закрепленных за файлами (FAT). Когда в систему
поступает команда записать файл или считать его с диска, она передает ее в контроллер жесткого диска, который перемещает магнитные головки к таблице расположения файлов соответствующего логического диска. Затем DOS считывает эту таблицу, осуществляя в зависимости от команды поиск свободного сектора диска, в котором можно записать вновь созданный файл, или находится начало запрашиваемого для чтения файла.
Нужно отметить, что файл может быть разбросан по сотням различных секторов жесткого диска. Это связано с тем, что DOS сохраняет файл в первом встреченном ею секторе, помеченном как свободный. При этом файл может разбиваться на множество частей и размещаться в секторах, которые не расположены непосредственно друг за другом (что, впрочем, почти незаметно для пользователя, хотя несколько снижает быстродействие компьютера). FAT хранит последовательность номеров секторов, в которые был записан файл. Таким образом они собираются в цепочку, каждое звено которой хранит следующую часть файла. Попутно заметим, что существуют специальные сервисные программы, которые позволяют оптимизировать размещение файлов на диске и, тем самым, уменьшать время их обработки.
Информация FAT поступает из электронной схемы накопителя в контроллер жесткого диска и возвращается операционной системе, после чего DOS генерирует команду установки магнитных головок над соответствующей дорожкой диска для записи или считывания нужных секторов. Записав новый файл на свободные сектора диска, DOS возвращает магнитные головки в зону расположения FAT и вносит изменения в таблицу размещения файлов, последовательно перечисляя все сектора, на которые записан файл.
Операционная система обращается к диску на уровне логического устройства, содержащего некоторый перечень файлов, управляемых DOS. Она генерирует команды управления контроллером дисков. Контроллер дисков управляется операционной системой с использованием наиболее общих понятий, таких как физическое имя накопителя, номер головки и цилиндра, операция записи или чтения и т.п.
Электронные схемы жесткого диска находится на плате внизу "винчестера". Эти схемы содержат как цифровые, так и аналоговые компоненты. Они расшифровывают команды контроллера жесткого диска и передают их в виде изменяющегося напряжения на двигатель, перемещающий магнитные головки к нужному цилиндру диска. Кроме того, они управляют приводом шпинделя, стабилизируя скорость вращения пакета дисков, генерируют сигналы для головок при записи, усиливают эти сигналы при чтении и управляют работой других электронных и механических узлов накопителя.
На этой же плате обычно находятся интерфейсные разъемы и разъем для подачи питающих напряжений. Как правило, НЖМД требуют двух номиналов питания: +5В и +12В. Очередность подачи питающих напряжений не регламентируется. Напряжение +5В питает интерфейсные схемы, узлы записи-чтения, следящую систему и другие узлы управления. От напряжения +12В питаются схемы, управляющие позиционированием головок записи-чтения и вращением шпинделя. Заметим, что неверная цоколевка внешнего разъема питания (подача +12В вместо +5В или ошибочная подача напряжений с обратной полярностью) практически всегда выводит НЖМД из строя. Ввиду использования многими фирмами в своих изделиях специальных БИС, ремонт таких НЖМД крайне затруднен.
В настоящее время наибольшее распространение получили 3- и 5-дюймовые НЖМД (89 мм и 133 мм). Цифры обозначают диаметр используемых в НЖМД магнитных дисков.
4.2. Физическая организация данных в НЖМД
Как было сказано выше, поверхность диска разбивается на концентрические кольца, именуемые дорожками. Дорожки, в свою очередь, разделены на участки, называемые секторами. Количество секторов на дорожках, как правило, одно и то же. Однако, некоторые изготовители НЖМД с целью повышения его емкости за счет более эффективного использования поверхности дисков, организуют разное количество секторов на дорожках: на внешних — больше, на внутренних — меньше. Это делается только в накопителях, конструктивно совмещенных с контроллером (использующих интерфейс IDE или SCSI). Такой метод повышения емкости получил название Zoned-Bn Recording. При этом, поступающие в контроллер логические номера цилиндров, дорожек и секторов преобразовываются им в конкретные физические номера, которые совершенно безразличны для пользователя. Примером таких НЖМД могут служить накопители серии С2230 фирмы Hewlett-Packard, имеющие 72 физических сектора во внешней зоне, 60 — в средней и 48 — во внутренней.
Одним из существенных этапов подготовки диска к работе является так называемое форматирование (или разметка) нижнего уровня, которая заключается в присвоении каждой стороне, дорожке и сектору диска числового адреса. Начало каждой дорожки индицируется сигналом Индекс, поступающим из НЖМД в адаптер. Первым от индекса сектором на дорожке в ПК типа IBM PC/XT всегда является сектор с физическим номером 0, а в ПК типа IBM PC/AT — с номером 1 (сектора 0 там нет вообще) Заметим, что BIOS всегда адресует сектора, начиная с номера 1, так что уменьшение номера сектора на 1 в IBM PC/XT — это внутренняя функция адаптера
Группу дорожек, находящихся на разных дисках и имеющих один и тот же номер, называют Цилиндром. Каждый цилиндр также имеет числовой адрес. Например, в накопителе с двумя дисками и четырьмя головками чтения-записи первый цилиндр состоит из четырех дорожек с одинаковыми номерами: первая — на верхней стороне диска О, вторая на нижней стороне диска 0, третья — на верхней стороне дис 1 и четвертая — на нижней стороне диска 1.
Каждый сектор, в свою очередь, состоит из двух частей поле идентификатора и поля данных. Информация, находящаяся в идентификаторе, записывается на диск при форматировании низкого уровня. Эта информация является служебной и недоступна программам компьютера. Она необходима для того, чтобы контроллер мог найти требуемый сектор на диске и определить его пригодность к записи-чтению. Запись информации на "диск производится посредством "вписывания" ее в поля данных соответствующих секторов.
Данные в секторах защищены с помощью контрольной суммы В качестве контрольной суммы используются так называемые байты ЕСС (Error Correction Code). С помощью этих байтов производится обнаружение и исправление ошибок в данных. Записывая данные на диск, адаптер производит накопление контрольной суммы путем циклического деления входных данных на полином определенного вида. Остаток от деления представляет из себя уникальную для входных данных комбинацию и записывается непосредственно за ними. Количество байтов ЕСС, используемых для коррекции данных,
определяется видом используемого полинома. Эта функция недоступна программам и связана только с аппаратурой адаптера. При считывании данных производится накопление контрольной суммы по тому же закону. Причем в формировании остатка участвуют как байты данных, так и байты ЕСС. Нулевое значение остатка свидетельствует об успешном чтении. В случае ненулевого остатка предпринимается попытка скорректировать прочитанные данные до передачи их в память ПК. Возможность коррекции определяется разрядностью (степенью старшего разряда) полинома, которая непосредственно связана с количеством байтов ЕСС. То есть чем больше число байтов ЕСС, тем большее число неверно прочитанных битов может быть скорректировано. Но, естественно, тем выше и информационная избыточность корректирующего кода.
Различные адаптеры используют полиномы разного вида и, соответственно, разное количество байтов ЕСС. Как правило, их число может быть от 4 до 7. Один из возможных видов полинома при четырех байтах ЕСС приведен ниже.
Х32 + Х23 + Х21 + XII + Х2 + 1
Данные записываются на диск в последовательном виде, бит за битом, причем старший бит записывается первым. Чтение происходит в том же порядке. Количество битов, требуемое для записи одного байта, зависит от используемого метода кодирования данных. В современных НЖМД, как правило, используются методы MFM, RLL и ARLL.
4.3. Логическая организация данных в НЖМД
Таблица разделов и логические диски
Персональный компьютер обычно комплектуется одним или двумя НМД. Однако операционная система позволяет вам разбивать НМД на части, причем каждая часть будет рассматриваться MS-DOS как отдельный "логический" диск.
Зачем нужно разбивать диск на логические диски?Первые персональные компьютеры IBM PC были укомплектованы только НГМД. Дискеты позволяют хранить относительно небольшие объемы информации, поэтому делить их на части не имеет смысла. Следующая модель компьютера IBM PC/XT имела НМД объемом 10 или 20 Мбайт. При использовании таких дисков и операционных систем MS-DOS версий до 3.20 у пользователей не возникало никаких проблем и желания разбить диск относительно малого объема на еще меньшие части.
Проблемы возникли, когда производители НМД освоили выпуск дисков объемом 40 Мбайт и больше. Оказалось, что используемый в MS-DOS механизм 16-разрядной адресации секторов не позволяет использовать диски объемом большим чем 32 Мбайт.
Операционная система MS-DOS версии 3.30 предложила выход из создавшегося положения. С помощью программы fdisk.exe можно было разбить физический диск на логические, каждый из которых не должен превышать по объему 32 Мбайт.
Впоследствии в версии 4.00 операционной системы MS-DOS и в версии 3.31 операционной системы COMPAQ DOS указанное выше ограничение на размер логического диска было снято, однако схема разделения физического диска на логические диски полностью сохранилась.
Существуют и другие причины, по которым может быть полезно разделение большого диска на части:
в случае повреждения логического диска пропадает только та информация, которая находилась на этом логическом диске; реорганизация и выгрузка диска маленького размера выполняется быстрее, чем большого; на одном диске может находиться несколько различных операционных систем, расположенных в разных разделах. В ходе начальной загрузки вы можете указать раздел диска, из которого должна загружаться нужная вам в данный момент операционная система.
По своей внутренней структуре логический диск полностью соответствует дискете, Щоэтому сначала мы изучим логическую структуру жесткого диска, затем сделаем некоторые замечания, касающиеся дискет.
Главная загрузочная запись
Первый сектор жесткого диска (сектор 1, дорожка 0, головка 0) содержит так называемую главную загрузочную запись (Master Boot Record). Эта запись занимает не весь сектор, а только его начальную часть.
Сама по себе главная загрузочная запись является программой. Эта программа во время начальной загрузки операционной системы с НМД помещается по адресу 7COOh:OOOOh, после чего ей передается управление. Загрузочная запись продолжает gроцесс загрузки операционной системы.
Таблица разделов диска
В конце первого сектора жесткого диска располагается таблица разделов диска (Partition Table). Эта таблица содержит четыре элемента, описывающих до четырех разделов диска, В последних двух байтах сектора находится значение 55AAh. Это признак таблицы разделов (сигнатура таблицы разделов). Для просмотра и изменения содержимого таблицы разделов НМД используетсяпрограмма fdisk.exe.
Что представляет собой элемент таблицы разделов диска? Это структура размером 16 байт, соответствующая части диска, называемой разделом. В структуре располагается информация о расположении и размере раздела в секаторах, а также о назначении раздела.
Разделы диска бывают активными или неактивными. Активный раздел может использоваться для загрузки операционной системы. Заметим, что диск может содержать одновременно несколько активных разделов, которые могут принадлежать разным операционным системам.
Загрузочная запись
В первом секторе активного раздела расположена загрузочная запись (Boot Record), которую не следует путать с главной загрузочной записью (Master Boot Record). Загрузочная запись считывается в оперативную память главной загрузочной записью, после чего ей передается управление. Загрузочная запись и выполняет загрузку операционной системы.
Загрузка операционной системы
Загрузка операционной системы с жесткого диска - двухступенчатый процесс. Вначале модули инициализации BIOS считывают главную загрузочную запись в память по адресу 7COOh:OOOOh и передают ей управление. Главная загрузочная запись просматривает таблицу разделов и находит активный раздел. Если активных разделов несколько, на консоль выводится сообщение о необходимости выбора активного раздела для продолжения загрузки.
После того как активный раздел найден, главная загрузочная запись считывает первый сектор раздела в оперативную память. Этот сектор содержит загрузочную запись, которой главная загрузочная запись и передает управление.
Загрузочная запись активного раздела выполняет загрузку операционной системы, находящейся в активном разделе.
Такой двухступенчатый метод загрузки операционной системы необходим по той причине, что способ загрузки зависит от самой операционной системы. Поэтому каждая операционная система имеет свой собственный загрузчик. Фиксированным является только расположение загрузочной записи - первый сектор активного раздела.
Поля элемента таблицы раздела диска
Расскажем подробнее о некоторых Полях элемента таблицы раздела диска, Байт со смещением 0, как мы уже говорили, является флагом активного раздела и может принимать одно из двух значений - 0 или 80h, соответственно для неактивного и активного раздела диска.
Слово, имеющее размер 2 байта и расположенное со смещением 8, содержит относительный номер первого сектора раздела. Как он вычисляется? Значение 0 соответствует дорожке 0, головке 0, сектору 1. При увеличении относительного номера сектора вначале увеличивается номер сектора на дорожке, затем г номер головки и, наконец, номер дорожки. Для вычисления относительного номера } сектора можно использовать следующую формулу:
RelSect = (Cyl * Sect * Head) + (Head * Sect) + (Sect -1),
где Cyl - номер дорожки; Sect - номер сектора на дорожке; Head - номер головки. Замечание относительно границ разделов диска: обычно разделы начинаются с четных номеров дорожек, за исключением первого раздела. Этот раздел может начинаться с сектора 2 нулевой дорожки (головка 0), так как первый сектор диска 'занят главной загрузочной записью. Байт со смещением 4 - это код системы, использующей раздел диска. Значение 0 соответствует свободному разделу диска.
Первичный и расширенный раздел
Если код системы в элементе таблицы раздела равен единице или четырем, это означает, что раздел используется MS-DOS в качестве первичного раздела (Primary Partition). Этот раздел обычно является активным, и из, него выполняется загрузка Операционной системы. В зависимости от того, какой код системы указан для первичного раздела (1 или 4), меняется одна из характеристик логического диска - размер элемента таблицы размещения файлов (FAT). Код 1 используется для обозначения 12-битовой FAT, 4 - для 16-битовой FAT. Таблица размещения файлов будет описана ниже в этой главе. Значение кода системы, равное пяти, обозначает расширенный раздел MS-DOS (Extended DOS Partiton).
Нетрудно заметить, что, даже используя все элементы таблицы разделов для создания логических дисков, невозможно создать более четырех дисков. В расширенном разделе MS-DOS вы можете создать любое количество логических дисков.
Программа fdisk.exe позволяет вам создать 1 первичный раздел MS-DOS и 1 расширенный раздел. Первичный раздел должен быть активным, он используется как диск С:, и из него выполняется загрузка операционной системы. Расширенный рраздел разбивается программой fdisk.exe на логические диски D:, Е: и т. д.
Расширенный раздел не может быть активным, следовательно, невозможно выполнить загрузку операционной системы с логических дисков, расположенных в этом разделе. Если байт кода системы имеет значение 5, то в начале соответствующего раздела располагается сектор, содержащий таблицу логических дисков. Фактически эта таблицa является расширением таблицы разделов диска, расположенной в первом секторе
физического диска.
Таблица логических дисков имеет формат, аналогичный таблице разделов диска, но содержит только два элемента. Один из них указывает на первый сектор логического диска MS-DOS, он имеет код системы I или 4. Второй элемент может иметь код системы 5 или 0. Если этот код равен пяти, то элемент указывает на следующую таблицу логических дисков. Если код системы равен нулю, то соответствующий элемент не используется.
Из сказанного выше следует, что таблицы логических дисков связаны в список, на начало этого списка указывает элемент таблицы разделов диска с кодом системы, равным пяти.
Для таблицы логических дисков имеется отличие в использовании палей границ логических дисков.
Если код системы равен единице или четырем, эти границы вычисляются относительно начала расширенного раздела. Для элемента с кодом системы 5 используется абсолютная адресация (относительно физического начала диска).
Приведем конкретный пример. Пусть на диске создано два раздела - первичный и расширенный. Первичный раздел используется для загрузки MS-DOS (диск С:), расширенный раздел содержит логические диски D:, Е:. На рис. 2.1 показано расположение перечисленных выше разделов на диске.
Загрузочная запись
Первый сектор логического диска (и первый сектор на системной дискете) занижает загрузочная запись (Boot Record). Эта запись считывается из активного раздела диска программой главной загрузочной записи (Master Boot Record) и запускается на выполнение. Задача загрузочной записи - выполнить загрузку операционной системы. Каждый тип операционной системы имеет свою загрузочную запись. Даже для разных версий одной и той же операционной системы программа загрузки может выполнять различные действия.
Кроме программы начальной зафузки операционной системы в загрузочной записи находился параметры, описывающие характеристики данного логического диска. Все эти параметры располагаются в самом начале сектора, в его так называемой форматированной области. Формат этой области изменился в версии 4.0 операционной системы MS-DOS.
Формат загрузочной записи
Логический номер сектора MS-DOS предоставляет программе возможность работы с так называемыми логическими номерами секторов. Это номера секторов внутри логического диска.
Вы знаете, что для адресации сектора при помощи функций BIOS необходимо указывать номер дорожки, номер головки и номер сектора на дорожке. MS-DOS организует "сквозную" нумерацию секторов, при которой каждому сектору логического диска присваивается свой номер. Порядок нумерации выбран таким, что при последо-;жательном увеличении номера сектора вначале увеличивается номер головки, затем - номер дорожки. Это сделано для сокращения перемещений блока головок при обращении к последовательным логическим номерам секторов.
Пусть, например, у нас есть дискета с девятью секторами на дорожке. Сектор с логическим номером, равным единице, расположен на нулевой дорожке и для обращения к нему используется нулевая головка. Это первый сектор на дорожке, он имеет номер 1. Следующий сектор на нулевой дорожке имеет логический номер 2, последний сектор на нулевой дорожке имеет логический номер 9. Сектор с логическим номером 10 расположен также на нулевой дорожке. Это тоже первый сектор на дорожке, но теперь для доступа к нему используется головка с номером 1. И так далее, по мере увеличения логического номера сектора изменяются номера головок и дорожек.
Таблица размещения файлов
Сразу вслед за загрузочным сектором на логическом диске находятся секторы, содержащие таблицу размещения файлов FAT (File Allocation Table). Для того чтобы назначение этой таблицы стало более понятным, вспомним, как организовано хранение информации на различных носителях данных.
Последовательный и прямой доступ
Начнем с магнитных лент. При использовании магнитных лент информация записывается в виде файлов с последовательным доступом. Последовательный доступ означает, что для чтения какого-либо файла требуется вначале прочитать (или просмотреть) все предыдущие файлы. При записи информация может добавляться в конец ленты, после той информации, которая была записана в последний раз.
Для такого устройства, как магнитный диск, возможна запись информации либо последовательным, либо прямым методом доступа. Использование прямого метода доступа позволяет программе позиционировать головки сразу на тот файл, который вам нужен (или на нужную запись файла). Например, при чтении записи вы можете задать номер сектора на определенной дорожке и номер головки, где она расположена, либо смещение записи относительно начала файла в байтах.
Как правило, прямой метод доступа более эффективен, однако важное значение имеет также способ распределения места на диске для файлов.
Кластеры
Операционная система ОС ЕС для ЭВМ ряда ЕС позволяла задать начальное количество цилиндров диска для размещения набора данных и размер области диска, которая может быть использована для этого набора дополнительно. Если при записи в файл все распределенное для файла место на диске окажется исчерпанным, программа завершится аварийно, даже если на диске еще есть свободное пространство.
Операционная система MS-DOS использует дисковое пространство другим способом. При создании файла для него не задается начальное распределение памяти в дорожках или секторах. По мере того как файл увеличивается в размерах, операционная система распределяет этому файлу секторы из числа свободных, не используемых другими файлами. При этом файл не обязательно располагается в смежных областях диска, он может быть разбросан по разным дорожкам и секторам.
Очевидно, что в этом случае операционная система должна вести учет использу емых секторов диска. Для каждого файла она должна хранить где-то информацию о распределении файлам секторов диска. В операционной системе MS-DOS для хранения этой информации используется таблица размещения файлов. Весь диск разбивается операционной системой на участки одинакового размера, называемые кластерами. Кластер может содержать несколько секторов. Для каждого хйаетера в таблице FAT есть своя индивидуальная ячейка, в которой хранится информация об использовании данного кластера. Другими словами, таблица размещения файлов - это массив, содержащий информацию о кластерах. Размер этого массива рпределяется общим количеством кластеров на логическом диске.
Содержимое таблицы FAT
Что же хранится в таблице размещения файлов? Если ответить на этот вопрос коротко, то в FAT находятся списки кластеров, распределенных файлам. Все свободные кластеры отмечены нулями.
Таким образом, если файл занимает несколько кластеров, то эти кластеры связаны в список. При этом элементы таблицы FAT содержат номера следующих используемых данным файлом кластеров. Конец списка отмечен в таблице специальным Значением. Номер первого кластера, распределенного файлу, хранится в элементе Каталога, описывающего данный файл.
Программа format.com. предназначенная для форматирования диска, и некоторые Специальные программы аналогичного назначения проверяют диск на предмет наличия дефектных областей. Кластеры, которые находятся в этих дефектных областях, помечаются в FAT как плохие и не используются операционной системой.Итак, FAT - массив информации об использовании кластеров диска, содержит списки кластеров, распределенных файлам. Номера начальных кластеров файлов хранятся в каталогах, о которых мы будем говорить в разделе "Файлы и каталоги".
На рис. 2.2 показаны фрагменты корневого каталога диска С: и элементы FAT для файлов autoexec.bat и config.sys.
Из рисунка видно, что для файла autoexec.bat отведено 3 кластера, а для файла config.sys - 2 кластера. Реально эти файлы не используют столько кластеров, так как их размер обычно невелик.
В каталоге кроме всего прочего указаны номера первых кластеров, распределенных этим файлам (соответственно 11 и 12). В своей 11-й ячейке таблица FAT содержит число 17 - номер второго кластера, распределенного файлу autoexec.bat. Ячейка с номером 17 содержит число 18. Это номер третьего кластера, принадлежащего файлу autoexec.bat. Последняя ячейка, которая соответствует последнему кластеру, распределенному этому файлу, содержит специальное значение - FFFF.
Таким образом, файл autoexec.bat занимает 3 несмежных кластера с номерами 11, 17 и 18. Что же касается файла config.sys, то в нашем примере для него отведено два смежных кластера с номерами 12 и 13.
Два формата таблицы FAT
Таблица FAT может иметь 12- или 16-битовый формат. При этом в таблице для хранения информации об одном кластере диска используется соответственно 12 и 16 бит.
12-битовый формат удобен для дискет с небольшим количеством секторов - вся таблица размещения файлов помещается в одном секторе.
Если размер диска такой, что для представления всех секторов недостаточно 12 разрядов, можно увеличить размер кластера, например, до восьми секторов.
Однако большой размер кластера приводит к неэффективному использованию дискового пространства. Это происходит из-за того, что минимальный фрагмент дисковой памяти, выделяемый файлу, имеет слишком большой размер. Даже для файла размером 1 байт выделяется целый кластер. Значит, если размер кластера составляет 8 секторов, то для хранения 1 байта будет использовано 4 Кбайт дисковой памяти (размер кластера составляет 512 байт).
При использовании 16-битового формата таблицы FAT операционная система MS-DOS может работать с диском, который имеет размер более 32 Мбайт.
Определение формата таблицы FAT
Сектор загрузочной записи диска, отформатированного в MS-DOS версий 4.0 -6.22 в поле со смещением 36h содержит строку длиной 8 байт, идентифицирующую формат FAT. Она имеет вид "FAT12 " или "FAT16 ".
Если разделы на жестком диске создавались программой fdisk.exe, формат FAT можно определить, анализируя содержимое поля sys главной загрузочной записи (Masiei Boot Record). Если это поле содержит значение 1, используется 12-битовый формат, если 4, то 16-битовый.
Первый байт таблицы FAT называется описателем среды (Media Descriptor). Он имеет такое же значение, как и байт - описатель среды, находящийся в загрузочном секторе логического диска.
Следующие 5 байт для 12-битового формата или 7 байт для 16-битового формта всегда содержат значение OFFh.
Остальная часть таблицы FAT состоит из 12- или 16-битовых ячеек. Каждая ячейка соответствует одному кластеру диска. Эти ячейки могут содержать следующие значения:
списке
Чтение таблицы FAT
Непосредственный доступ к FAT может потребоваться вам для организации сканирования каталогов при поиске файлов, для чтения каталогов как файлов, для организации защиты информации от несанкционированного копирования.
Файлы и каталоги
Вы, конечно, знаете, что файловая система MS-DOS имеет древовидную структуру. В корневом каталоге располагаются 32-байтовые элементы, которые содержат информацию о файлах и других каталогах. Для чтения корневого каталога необходимо определить его расположение и размер.
Расположение и размер корневого каталога
Корневой каталог находится сразу за последней копией FAT. Количество секторов, занимаемых одной копией FAT, находится в блоке параметров BIOS в загрузочном секторе (поле fatsize), а количество копий FAT - в паче fatcnt блока ВРВ. Следовательно, перед корневым каталогом находится один загрузочный сектор и fatcnt * fatsize секторов таблицы размещения файлов FAT.
Размер корневого каталога можно определить исходя из значения поля rootsize. При форматировании диска в это поле записывается максимальное количество файлов и каталогов, которые могут находиться в корневом каталоге. Для каждого элемента в каталоге отводится 32 байта, поэтому корневой каталог имеет длину 32 * rootsize байт.
Корневой каталог занимает непрерывную область фиксированного размера. Размер корневого каталога задается при форматировании и определяет максимальное Количество файлов и каталогов, которые могут быть в нем описаны. Дтя определения количества секторов, занимаемых корневым каталогом, можно воспользоваться следующей формулой:
RootSecs = sectsize / (32 * rootsize),
где sectsize - размер сектора в байтах, он может быть получен из соответствующего поля загрузочного сектора.
Область файлов и подкаталогов
На рис. 2.3 изображены все области логического диска. Такую структуру имекяг логические диски, расположенные в разделах жестких дисков, а также дискеты.
Вслед за корневым каталогом на логическом диске находится область файлов и подкаталогов корневого каталога.
Область данных разбита на кластеры, причем нумерация кластеров начинается с числа 2. Кластеру с номером 2 соответствуют первые секторы области данных.
5. АНАЛИЗ ПРОИЗВОДИТЕЛЬНОСТИ
5.1. Емкость
Емкость является важнейшей характеристикой НЖМД. Собственно говоря", эти накопители и появились вследствие необходимости ввести в состав ПК быстродействующие запоминающие устройства большой емкости. Современные накопители на жестких дисках имеют, емкость от 20 до 600 Мбайт и даже более.
В документации на НЖМД можно встретить два термина, относящиеся к их полной емкости: неформатированная и форматированная емкость. Неформатированная емкость — это количество байтов данных, которое можно разместить на всех дорожках всех рабочих поверхностей дисков, если всю длину дорожки использовать только для данных, т.е. если данные не обрамлять никакой служебной информацией (не использовать формат записи). Форматированная емкость — это суммарное количество байтов данных, которое можно поместить в отведенные для данных поля всех секторов на всех дорожках. Пользователя, конечно же, интересует форматированная емкость НЖМД, т.к. именно она является для него полезной, доступной для размещения программ и данных. Форматированная емкость НЖМД численно представляет из себя произведение следующих величин: размер сектора в байтах, количество секторов на дорожке (при постоянном их числе на всех дорожках), количество рабочих поверхностей дисков (число головок чтения-записи), число цилиндров. При этом нужно учитывать, что число доступных для пользовательских программ цилиндров на один меньше, чем это указано в документации на НЖМД. Дело в том, что последний (самый внутренний) цилиндр используется исключительно
для целей диагностики. Для проверки правильности выполнения команд записи и форматирования различные тестовые программы используют именно этот цилиндр. Так например, накопитель ST225 фирмы Seagate Technology имеет 615 цилиндров (0-614). Диагностическим является 614-й цилиндр. Для пользовательских программ доступны цилиндры 0-613.
 
5.2. Быстродействие
Наряду с емкостью, быстродействие является важнейшей характеристикой НЖМД. Если вы работаете с динамическими таблицами, базами данных или используете системы автоматизированного проектирования (САПР), быстродействующий накопитель значительно повысит продуктивность вашей работы. Вместе с быстродействием центрального процессора и оперативной памяти быстродействие НЖМД определяет эффективную производительность ПК в целом.
Один из основных показателей быстродействия дискового накопителя — среднее время доступа. Это время, которое требуется накопителю для того, чтобы начать обмен данными после получения запроса от контроллера. Любая прикладная программа, часто обращающаяся к данным, хранящимся в разных местах жесткого диска (например, база данных), будет работать гораздо эффективнее, если накопитель имеет малое время доступа.
Это тем более справедливо, что, как сказано в разд. 6.1, обращение к любому файлу, находящемуся в любом месте НЖМД, связано с обращением к FAT-таблице, расположенной на нулевом цилиндре. В общем случае, при чтении требуется два перемещения блока головок: РАТ-файл, при записи — три перемещения: РАТ-файл-РАТ (запись обновленных параметров файла).
Среднее время доступа определяется тем, как организовано хранение данных на диске и насколько быстро перемещаются головки чтения-записи. В подавляющем большинстве НЖМД имеется несколько дисков. Обычно данные хранятся на обеих сторонах диска, причем на каждую сторону приходится своя головка чтения-записи.
После того, как контроллер инициирует перемещение головок, они начинают двигаться к требуемому цилиндру. По окончании этого процесса, должно пройти некоторое время прежде чем станет возможным запись или чтение информации с требуемой дорожки. Это время называется временем успокоения и необходимо для прекращения механических колебаний головок, вызванных перемещением.
Время, затрачиваемое на перемещение блока головок к нужному цилиндру и успокоение их в новом положении, называют временем установки или временем поиска. Среднее время установки представляет собой усредненный результат большого числа измерений этого времени при перемещении головок между различными цилиндрами. В "каталогах фирм-производителей НЖМД этот параметр называется Average Seek Time. Для того, чтобы определить среднее время установки головок, изготовители дисковых систем памяти обычно проверяют свои накопители с помощью многочисленных тестов.
После успокоения головок на требуемом цилиндре контроллер начинает поиск заданного сектора для того, чтобы производить запись или чтение данных. При этом он последовательно считывает идентификаторы всех секторов, проходящих под выбранной головкой до тех пор, пока не появится ожидаемый сектор. Поскольку в данном случае взаимодействуют несколько асинхронных процессов и после успокоения под головкой может оказаться сектор с любым номером, то время ожидания нужного сектора каждый раз будет другим. В идеальном случае под головкой сразу после успокоения окажется начало требуемого сектора, в наихудшем случае окажется, что этот сектор только что "проехал" и придется ждать целый оборот пакета дисков. Время, необходимое для подхода нужного сектора к головке, называется временем ожидания, усредненное его значение — средним временем ожидания (Average Latency Time).
Время доступа — интервал между передачей контроллером команды НЖМД и началом чтения нужного сектора — представляет собой результат суммирования времени установки и времени ожидания. Среднее время доступа (или время произвольного доступа) — это сумма среднего времени установки и среднего времени ожидания.
Среднее время доступа для данного НЖМД можно узнать из рекламных проспектов компании-изготовителя. Однако, нужно иметь ввиду, что информацию, которую можно найти в рекламе, иногда не так просто оценить. Многие изготовители, желая улучшить впечатление от своих изделий, говоря о времени доступа, опускают слово "среднее". Столкнувшись с такими неопределенными временными параметрами, нужно убедиться, что речь идет именно о средней, а не о рекордной для данного накопителя величине.
Еще больше недоразумений может возникнуть из-за путаницы в терминологии: одни производители предпочитают указывать среднее время установки, другие — среднее время доступа. В большинстве случаев в рекламных проспектах указывается среднее время установки головки — оно меньше и, следовательно, производит более благоприятное впечатление на потенциального покупателя. Само по себе это не так плохо: время установки головки действительно довольно объективный показатель быстродействия накопителя, т.к. из двух параметров, составляющих время доступа, время установки является решающим. Главную неопределенность вносит то, что зачастую в рекламе НЖМД в качестве характеристики быстродействия компания-изготовитель указывает среднее время установки, но называет его — "Среднее время доступа". Как правило, увидев в рекламном проспекте термин "Время доступа" (Access Time), можно совершенно спокойно заменить его на "Время установки". В силу указанных выше причин, если есть такая возможность, то для оценки параметров НЖМД лучше обратиться не к рекламе, а к каталогу соответствующей фирмы.
В настоящее время приемлемые значения среднего времени установки для накопителей на жестких дисках, предназначенных для ПК типа IBM PC/XT, находятся в диапазоне 40-65 мс. Для ПК типа IBM PC/AT обычно используются НЖМД со средним временем установки 28-40 мс. Для ПК на базе микропроцессора 80386 среднее время установки головки в НЖМД обычно составляет 12-28 мс. Последние модели этих компьютеров комплектуются накопителями со временем установки не более 12 мс.
Кроме времени доступа, быстродействие НЖМД зависит также от количества дисков, от метода кодирования данных, а также от конструкции механизма привода блока головок.
Если НЖМД имеет несколько дисков, то это позволяет уменьшить потребность в перемещении головок. Когда операционная система DOS записывает информацию на жесткий диск, она, прежде чем перейти к следующему цилиндру, стремится полностью заполнить текущий. Таким образом, после того, как выбранная в данный момент дорожка (скажем, 5-й цилиндр, 2-я головка) заполняется данными (т.е. записывается последний сектор на этой дорожке), контроллер инициирует выбор следующей головки на том же цилиндре (5-й цилиндр, 3-я головка). Запись информации на этой дорожке начнется с первого сектора. Блок головок будет перемещен на следующий цилиндр (6-й цилиндр, 1-я головка) только после того, как текущий цилиндр окажется заполненным полностью. Если сравнивать два НЖМД с разным числом дисков, то очевидно, что тот из них, где дисков больше (т.е. больше дорожек на одном цилиндре) позволит разместить на каждом цилиндре большее количество данных и, следовательно, уменьшить количество перемещений головок чтения-записи. В результате оказывается возможным повысить быстродействие всего накопителя.
Важную роль в рациональной организации диска играет метод кодирования данных. MFM-метод позволяет разбить дорожку, как правило, на 17 секторов. При использовании RLL-метода число секторов может достигать 26, при ARLL — 32. Чем больше секторов на дорожке, тем больше информации может храниться на каждом цилиндре и, как следствие, тем меньше должны перемещаться головки. Кроме того, современные накопители с напыляемым магнитным покрытием позволяют уменьшить расстояние между соседними дорожками на диске (в силу меньшего взаимного влияния дорожек друг на друга по отношению к накопителям с ферролаковым покрытием). В результате этого сокращается путь головки от дорожки к дорожке. Из этого следует, что использование новых методов нанесения магнитного покрытия и кодирования информации не только увеличивает емкость накопителя, но и дает возможность сократить время установки головки и, как следствие этого, уменьшить среднее время доступа.
Большое влияние на время доступа к данным оказывает механизм привода блока головок, В накопителях на жестких дисках, используемых в ПК, как правило применяются приводы двух типов:
на базе шагового двигателя и линейные электромагнитные. Для обозначения типа привода в зарубежной литературе используются следующие аббревиатуры: SM (Stepper Motor) — шаговый двигатель, VC (Voice Coil) — линейный двигатель. В НЖМД с шаговым двигателем есть механизм, позволяющий перемещать головки фиксированными шагами, причем величина шага соответствует расстоянию между соседними цилиндрами. Дискретность этой величины жестко связана с числом полюсов шагового электродвигателя. В линейном электромагнитном приводе головки чтения записи перемещает электромагнит. При этом для определения текущего местоположения головок используются специальные сервосигналы, записанные на диск при его изготовлении и считываемые схемой позиционирования головок.
Во многих НЖМД для хранения сервоинформапии выделена сторона одного из дисков и специальная головка. На этой стороне сервоинформация записывается на такие же концентрические дорожки, как и данные. Причем серводорожки по своему геометрическому расположению абсолютно точно совпадают с положением информационных дорожек на других сторонах дисков. Этот метод записи сервоинформапии называется "выделенная запись сервосигаалов". Иногда сервоинформация записывается на одной из сторон диска, предназначенных для данных. Для этого на каждой информационной дорожке выделена специальная зона, называемая сервозоной или сервосектором. Как правило, прохождение этой зоны под головкой по времени совпадает с формированием сигнала ИНДЕКС соответствующим датчиком в накопителе. Сервоинформация при этом считывается той же головкой, что и данные. В этом случае для хранения информации используются все поверхности дисков. Такой метод записи сервоинформации называется "встроенная запись сервосигналов".
Линейный электромагнитный привод перемещает головки значительно быстрее, чем привод на шаговом двигателе. Хотя в новейших накопителях с приводом головок, выполненным на базе шагового двигателя, время доступа удалось довести до 28 мс, они не идут ни в какое сравнение с современными линейными электромагнитными приводами, обеспечивающими время доступа 18 мс и менее.
Кроме того, линейный привод позволяет головкам, чтения-записи производить небольшие радиальные перемещения "внутри" дорожки, отслеживая при этом геометрический центр окружности серводорожки. Ввиду того, что центральная окружность информационной дорожки жестко связана с соответствующей сервозаписью, то достигается такое положение головок чтения-записи, при котором с них считывается максимальный по уровню сигнал. Это значительно повышает достоверность считываемых данных.
Выделенная запись сервосигналов обеспечивает более высокое быстродействие; в то же время встроенная запись этих сигналов повышает надежность работы НЖМД, в особенности в условиях колеблющихся температур, когда размеры дисков могут изменяться. Накопители с линейным электромагнитным приводом обладают еще одним полезным свойством — автоматической парковкой головок при
выключении компьютера. При этом головки перемещаются в нерабочую зону и механически блокируются специальным устройством. Это предохраняет головки и диски от соприкосновения при воздействии вибраций на компьютер. При последующем включении питания головки автоматически разблокируются.
5.3. Производительность в системе
Еще один показатель быстродействия накопителя — скорость обмена данными. У эффективной скорости обмена данными процессора с подсистемой НЖМД есть две главные составляющие:
скорость обмена между накопителем и контроллером по интерфейсу НЖМД и скорость обмена между контроллером и оперативной памятью ПК. Поэтому не следует путать эффективную скорость обмена данными со скоростью передачи данных через интерфейс НЖМД. При чтении рекламных проспектов надо с осторожностью относиться к параметрам, характеризующим скорость передачи данных, если однозначно не сказано, что речь идет именно об эффективной скорости обмена данными. Чаще всего в рекламе приводятся два параметра, относящиеся к скорости передачи данных: скорость обмена между НЖМД и контроллером в битах (Internal Trans Rate) и в байтах (External Trans Rate). Причем, для интерфейсов ST412 или ESDI числовые значения этих величин абсолютно соответствуют друг другу при пересчете битов в байты. Для интерфейсов IDE или SCSI контроллер НЖМД (и, соответственно, буферная память) встроен в накопитель. Поэтому скорость обмена данными с внешней средой может значительно отличаться от побитовой скорости обмена на уровне диск-контроллер.
Несмотря на то, что быстродействие интерфейса может быть достаточно высоким (например, 7,5 Мбит/с для интерфейса ST412, в котором используется RLL-метод кодирования), эффективная скорость обмена может оказаться на удивление небольшой (1,4 Мбит/с для этого же накопителя).
На эффективную скорость обмена данными наиболее значительное влияние оказывает последовательность нумерации секторов на диске. Эта последовательность называется чередованием секторов, ее числовое значение — фактором чередования (Interleaving) и задается на этапе форматирования НЖМД
Поскольку подавляющее большинство файлов состоят из данных, превышающих по объему один сектор, то и большинство команд, получаемых контроллером из центрального процессора, инициируют
запись или чтение нескольких секторов, т.е. представляют собой так называемые мультисекторные команды. Если команда записывает или считывает один сектор, то чередование секторов может быть любым — это никак не скажется на времени выполнения команды, т.к. этот сектор все равно нужно найти и выполнить с ним заданные действия. Если же команда является мультисекторной, то время ее выполнения напрямую связано с поиском и обработкой всех указанных в ней секторов. А время их поиска как раз и определяется тем, в какой последовательности они размещены на дорожке.
Когда говорят о чередовании секторов, то имеют в виду оптимальный для системы ПК-НЖМД порядок нумерации секторов на дорожках. Подобно цилиндрам и дорожкам, все сектора имеют номера, по которым контроллер обращается к ним для чтения или записи информации. Хотя контроллер считывает или записывает логические сектора в порядке возрастания их номеров (О, 1, 2, 3, 4 и т.д.), это не означает, что последовательно расположенные на дорожке физические сектора обязательно нумеруются в том же порядке.
Причина заключается в необходимости временного согласования работы различных узлов дисковой подсистемы. Дело в том, что после того, как контроллер считал информацию из сектора в собственный буфер, требуется определенное время для пересылки информации в память ПК. И лишь после завершения этой процедуры контроллер начнет считывать данные из следующего сектора.
Однако пока контроллер и процессор заняты занесением считанной информации в память, диски продолжают вращаться. Тогда, если соседним секторам присвоены последовательные номера, может оказаться, что к моменту готовности контроллера к считыванию следующего сектора он уже прошел мимо головки. В таком случае придется ждать пока диски сделают целый оборот, и нужный сектор снова подойдет к головке. Центральный процессор и оперативная память ПК при этом простаивают, т.к. текущая дисковая операция не закончена. Это обстоятельство в значительной степени снижает быстродействие дисковой подсистемы. Попутно заметим, что для гибких дисков IBM-совместимых компьютеров все это не актуально, т.к. передача данных в память ПК идет синхронно со считыванием их с дискеты. То есть, в отличие от НЖМД, дискета не "скрыта" от ЦП за буферной памятью контроллера.
Для решения -данной проблемы производители дисковых подсистем и предложили ввести чередование секторов. Оно заключается в том, что физические сектора на жестком диске нумеруются так, чтобы появление под головкой чтения-записи сектора со следующим по порядку номером совпадало с готовностью контроллера к считыванию информации. Например, фактор чередования, равный 6, означает, что контроллер будет воспринимать каждый шестой физический сектор на диске как очередной логический сектор (рис. 6.12). Вместо того, чтобы нумеровать идущие друг за другом сектора последовательно (О, 1, 2, 3, 4, 5 и т.д.), они нумеруются в следующем порядке: 0, 3, 6, 9, 12, 15, 1 и т.д. Пока контроллер занят пересылкой в оперативную память ПК находящихся в буфере данных из сектора 0, мимо головки чтения-записи могут пройти один, или несколько физических секторов (в нашем примере 3, 6, 9, 12, 15), прежде чем против нее окажется следующий логический сектор (1). К этому моменту данные сектора О будут переданы и буферная память будет свободна для чтения данных сектора 1.
Фактор чередования определяет, сколько оборотов диска требуется для того, чтобы контроллер считал всю информацию с дорожки. Принятую схему чередования секторов часто указывают в виде отношения. Отношение чередования 6:1 означает, что для считывания одной дорожки контроллеру требуется шесть оборотов диска. Отношение чередования 1:1 (что означает отсутствие чередования) — наиболее эффективная схема размещения секторов на дорожке, но требует наивысшей производительности системы ПК-НЖМД, так как при этом на считывание всех секторов дорожки отводится только один оборот диска. При чередовании 1:1 чтение текущего сектора в буфер контроллера совмещается с пересылкой предыдущего сектора в память компьютера.
Все вышеприведенные соображения справедливы также и для записи информации из памяти ПК в НЖМД. Отличие лишь в том, что пересылка данных происходит в обратном направлении.
Для правильного выбора чередования необходимо принять во внимание характеристики быстродействия конкретных моделей контроллера и процессора, с которыми работает НЖМД. Совершенно очевидно, что если чередование, с которым форматирован НЖМД, будет больше оптимального, то это приведет к некоторому снижению производительности подсистемы НЖМД. Это снижение будет тем ' существеннее, чем больше разница между установленным и оптимальным чередованием. Если же установленное чередование будет меньше оптимального, то последствия будут катастрофическими: производительность всей подсистемы, а следовательно и ПК, резко снизится. Есть большое число специализированных программ, которые позволяют самостоятельно задавать нужный фактор чередования, например программы HTEST/HFORMAT, SPINRITE, HARDPREP, HDTEST. Программа HDTEST, кроме того, позволяет определить оптимальный для системы фактор чередования.
Еще одним способом повышения системной производительности НЖМД является организация в контроллере кэш-памяти для данных, что позволяет улучшить временные характеристики системы "оперативная память ПК-контроллер-накопитель" при работе с большими массивами информации. Фактор чередования секторов в таких системах, как правило, равен 1:1.
6. ИНТЕРФЕЙСЫ НЖМД
6.1. Обзор интерфейсов
В отличие от интерфейса НГМД, который по ряду причин является довольно консервативным, интерфейс НЖМД представляет собой динамичную, постоянно развивающуюся область. Это связано с тем, что характеристики НЖМД радикальным образом влияют на эффективность работы ПК в целом. Для обозначения интерфейсов НЖМД используются следующие аббревиатуры: ST506/412 (разработан фирмой Seagate Technology, США), IDE (Integrated Drive Electronics), ESDI (Enhanced Small Device Interface), и SCSI (Small Computer System Interface). Ниже описаны некоторые наиболее популярные интерфейсы накопителей на жестких дисках для персональных компьютеров.
Чтобы правильно представить себе перечисленные интерфейсы, важно знать, каким образом накопители на жестких дисках вписываются в различные конфигурации компьютеров. На рис. 7.1 представлены интерфейсы во всем многообразии — от самого медленного ST506, применявшегося в IBM PC/XT ранних моделей, до быстрого, мощного и дорогого IPI (Intelligent Peripherial Interface), используемого во многих универсальных, вычислительных машинах. В современных персональных компьютерах в основном используются интерфейсы, относящиеся к диапазону низкого и среднего быстродействия, в том числе ST506/412, IDE, ESDI, SCSI. Такой почтенного возраста интерфейс как SMD уже редко применяется, но иногда используется для соединения больших дисководов с файл-серверами.
Компьютерная техника развивается настолько быстрыми темпами, что существенные сдвиги в увеличении производительности происходят практически ежегодно. Появление НЖМД с новыми интерфейсами предопределяет появление новых адаптеров и поддерживающих их драйверов. Поэтому не стоит бросаться немедленно совершенствовать какую-либо отдельную компоненту дисковой системы, как только промышленность сделает очередной рывок, если другие компоненты по сравнению с ней работают куда медленнее.
Использование жестких дисков в микрокомпьютерах — явление относительно новое. Хотя такие накопители и выпускались для многих компьютеров первых поколений (например, S-100 и Apple II), в первом персональном компьютере фирмы IBM — IBM PC накопителя на жестких дисках не было. Настоящий бум по введению НЖМД в персональные компьютеры пришелся на начало 80-х годов, когда впервые появились жесткие диски диаметром 5,25 дюйма. Пионером в этом деле была фирма Seagate Technology, которая выпустила накопитель на жестком диске емкостью 5 Мбайт с интерфейсом ST506 и методом кодирования данных MFM. Скорость передачи данных у этого накопителя была 5 Мбит/сек. Аналогичные НЖМД выпускали и другие производители, например накопитель NP05-10 фирмы Nippon Periferals Ltd. Когда в 1983 году вошли в употребление компьютеры типа PC/XT фирмы IBM, установленный на них жесткий диск емкостью 10 Мбайт и временем доступа 100 миллисекунд представлял собой по тому времени чудо технологии: для ПК это были невиданные объем и скорость обмена данными. Накопитель подключался к адаптеру через интерфейс ST506 и представлял собой довольно громоздкое по нынешним понятиям устройство высотой 82 мм (Full Height).
В дальнейшем интерфейс ST506 был усовершенствован в части управления перемещением магнитных головок. Усовершенствованный интерфейс получил название ST412.
В течение длительного времени интерфейс ST412 вполне соответствовал своему назначению. Действительно, жесткий диск
совместно с этим интерфейсом осуществлял передачу данных быстрее, чем компьютеру мог ее обрабатывать. Это вынуждало разработчиков оборудования искусственно снижать скорость передачи данных жестких дисков за счет их форматирования с коэффициентом чередования равным 6, синхронизируя таким образом скорость передачи данных накопителя со скоростью обработки информации в системе. При этом фактическая скорость- передачи данных соответствовала приблизительно 85 Кбайтам в секунду.
Но разработчики компьютерной техники имеют тенденцию увеличивать скорость работы проектируемого оборудования, и в скором времени производительность жестких дисков стала стремительно расти. Так, например, время обращения снизилось приблизительно до 40 миллисекунд. Тем временем промышленность с 1984 года приступила к выпуску быстродействующих компьютеров класса PC/AT, шина данных в которых работала на частоте 6, а затем и 8 МГц. Интерфейс ST412 также совершенствовался и все еще неплохо справлялся со своей задачей, достигнув скорости передачи данных, равной приблизительно 165 Кбайт/сек (для компьютеров класса PC/AT, что почти в два раза превышало скорость передачи данных для компьютеров класса PC/XT). Здесь имеется ввиду весь тракт передачи между НЖМД и памятью ПК.
С 1986 года, с появлением на рынке процессоров серии 80386, тактовая частота компьютеров повысилась до 20, а затем и до 33 МГц, что потребовало сокращения времени обращения к жесткому диску до 15-20 миллисекунд. С этого момента интерфейс ST412 становится узким местом, так как обеспечиваемая им скорость передачи данных значительно ниже возможностей новых накопителей и не соответствует общей производительности компьютера. Некоторые фирмы-изготовители компьютерного оборудования сумели несколько улучшить характеристики интерфейса ST412 за счет более высокой скорости передачи данных и увеличения плотности записи информации на диске. Однако некоторые функциональные ограничения, присущие интерфейсу ST412, так и не позволили усовершенствовать его настолько, чтобы он действительно соответствовал современным высокопроизводительным компьютерам.
Поэтому ни для кого не стало неожиданностью то, что в 1986 году появилась необходимость внедрения новых стандартов для интерфейсов — ESDI и SCSI. В совокупности эти интерфейсы практически полностью вытеснили интерфейс ST412 применительно к
сетевым файл-серверам, а также и в других случаях, требующих повышенных функциональных возможностей. Большинство высокопроизводительных персональных компьютерных систем включает в себя контроллер НЖМД типа ESDI как стандартное оборудование, а многие поставщики предлагают компьютерные системы, имеющие накопители на жестком диске с интерфейсами как ESDI так и SCSI.
Интерфейсы ESDI и SCSI превосходят интерфейс ST412 главным образом за счет значительно более высокой скорости передачи данных. Кроме того, они являются более гибкими, т.е. ориентированы на подключение не только НЖМД, но и других устройств. Максимальная скорость передачи данных в компьютерах, имеющих жесткие диски, ограничивается скоростью, с которой данные поступают с/на головки чтения-записи. (Здесь не рассматриваются накопители со встроенной кэш-памятью). Величина этой скорости ограничивается двумя факторами: скоростью вращения диска и плотностью информации на нем. Почти все 5-дюймовые НЖМД имеют скорость вращения 3600 оборотов в минуту. При использовании интерфейса ST412 и метода кодирования MFM данные организованы следующим образом: 17 секторов на дорожке при 512 байтах (по 8 бит) в каждом секторе. В результате такой организации данных скорость их передачи в лучшем случае равна произведению этих четырех чисел (60 х 512 х 17 х 8) и Составляет 4 177 920 бит/сек. Повышение скорости передачи данных может быть достигнуто двумя способами: либо за счет увеличения количества секторов на дорожке, либо путем увеличения емкости каждого сектора. Увеличение емкости сектора связано с рядом ограничений, налагаемых аппаратурой, драйверами жестких дисков и программным обеспечением. Использование метода кодирования данных RLL позволяет разместить на дорожке 26 секторов. При этом скорость обмена данными составляет 6 389 760 бит/сек. Заметим, что приведенные здесь цифры учитывают среднюю скорость обмена данными; при обработке дорожки. Реальная же скорость при MFM-методе составляет 5, при RLL — 7,5 Мбит/сек. Таким образом, дальнейшее улучшение параметров интерфейса типа ST412 ограничивается величиной скорости передачи данных равной 7,5 Мбит/сек. Интерфейсы ESDI и SCSI позволяют эксплуатировать жесткие диски при более высокой плотности записи и при скорости передачи данных 10 Мбит в секунду и выше.
Накопители, использующие интерфейс IDE, как правило, функционально соответствуют накопителям с интерфейсом ST412 и отличаются от них лишь распределением функций между адаптером и НЖМД.
6.2. Интерфейс IDE
Интерфейс IDE был предложен пользователям IBM-совместимых персональных компьютеров классов PC/XT и AT в 1988 г. как недорогая альтернатива интерфейсам ESDI и SCSI. Отличительная особенность этого интерфейса — реализация функций контроллера в накопителе. При этом плата, которая является промежуточной между системной шиной ПК и НЖМД представляет собой довольно простое устройство, содержащее дешифратор базовых адресов контроллера и формирователи сигналов интерфейса. При использовании в ПК типа IBM PC/XT на плате еще размещен BIOS НЖМД, что является стандартным для адаптеров НЖМД PC/XT с любым интерфейсом. Функциональные характеристики интерфейса IDE не отличаются от аналогичных характеристик интерфейса ST412, .то есть все отличия заключаются в конструктивном исполнении. Интерфейс IDE позволяет подключать один или два НЖМД.
Интерфейс IDE подразделяется на два вида: IDE (XT) и IDE (AT). Первый из них применяется в ПК типа IBM PC/XT, второй — в PC/AT. НЖМД подключается к адаптеру одним 40-жилышм кабелем, по которому производится обмен как данными, так и управляющими сигналами. Необходимо отметить, что в ПК типа IBM PC/XT этот интерфейс применяется довольно редко. Несмотря на его широкое распространение в современных массовых моделях ПК типа IBM PC/AT, он до сих пор не стандартизован. В табл. 7.2 приведен перечень сигналов одного из вариантов интерфейса IDE PC/AT, используемого, например, фирмой Hewlett Packard для накопителей серии HP C2230.
 
7. РАЗРАБОТКА МЕТОДИКИ ТЕСТИРОВАНИЯ И ДИАГНОСТИКИ ДИСКОВОЙ
ПОДСИСТЕМЫ
7.1 Тестирование и диагностика жеского диска
Поскольку жеский диск как правило хранит наиболее важную информацию, учитывая все вышеизложенное, рассмотрим предлагаемую методику тестирования:
Наиболее опасная неисправность – физическое повреждение магнитной поверхности, следовательно первая операция тестирование – поиск плохих секторов, и в случае нахождения плохих секторов может возникнуть необходимость в извлечении магнитных дисков из корвуса и снятие с них информации специальными способами. Данную опероацию рекомендуется провести при помощи программы scandisk.exe или ndd.exe из пакета Norton Utilities.
Следующимшагом должна быть проверка Partition Table, как основной карты размещения разделов на жеском диске. В случае уничтожения или повреждения, может быть потерян доступ к некоторым или всем томам данных. Данную опероацию рекомендуется провести при помощи программы scandisk.exe или ndd.exe из пакета Norton Utilities.
Проверка целостности Partition Table
Проверка типов разделов
Проверка на перекрытие адресных пространств глобальных разделов
Проверка на перекрытие адресных пространств локальных разделов внутри глобальных разделов
Проверка на правильность порядка следования разделов
На этом этапе необходимо произвести проверку области BOOT Sector. Данную опероацию рекомендуется провести при помощи программы scandisk.exe или ndd.exe из пакета Norton Utilities. Поиск вирусов рекомендуется проводить при помощи новейших антивирусных программ.
Проверка целостности
Проверка хранимых параметров, испорльзуя данные Partition Table
Проверка логической правильности параметров Boot Sector.
Проверка загрузочной микропрограммы на каскадное включение других загрузчиков
Проверка загрузочной микропрограммы на наличие в ней вирусов
Анализируем FAT. Данную опероацию рекомендуется провести при помощи программы scandisk.exe или ndd.exe из пакета Norton Utilities.
Определяем фактическое количество копий FAT и сравниваем со значением из Boot Sectorж
Определяем фактический тип FAT
Проверяем целостность всех копий FAT (реальный размер и расчитанный на основе фактических данных)
Производим поиск потеряных цепочек и преобразуем их в файлы.
Анализируем корневой каталог (ROOT). Данную опероацию рекомендуется провести при помощи программы scandisk.exe или ndd.exe из пакета Norton Utilities.
Проверка целостности (месторасположения и фактического размера)
Проверка правильности имен и ссылок в корневом каталоге
Проверка целостности системных файлов в корневом каталоге
Обход дерева каталогов. Данную опероацию рекомендуется провести при помощи программы scandisk.exe или ndd.exe из пакета Norton Utilities.
Проход по дереву подкаталогов и проверка правильности имен и ссылок в подкаталогах
Проверка длинных имен файлов
Поиск пустых ссылок
 
 
7.2 Тестирование и диагностика гибкого диска
Наиболее опасная неисправность – физическое повреждение магнитной поверхности, следовательно первая операция тестирование – поиск плохих секторов, и в случае нахождения плохих секторов может возникнуть необходимость в извлечении магнитных дисков из корвуса и снятие с них информации специальными способами. Данную опероацию рекомендуется провести при помощи программы scandisk.exe или ndd.exe из пакета Norton Utilities.
Проверка устройства чтения гибкого диска
Поиск видимых эфектов
Проверка работы привода дисковвода
Проверка наличия индикации при операциях чтения/записи
Проверка на способность различать дискеты с разной емкостью
Проверка фактора чередования
На третьем этапе необходимо произвести проверку области BOOT Sector. Данную опероацию рекомендуется провести при помощи программы scandisk.exe или ndd.exe из пакета Norton Utilities. Поиск вирусов рекомендуется проводить при помощи новейших антивирусных программ.
Проверка целостности
Проверка хранимых параметров, испорльзуя данные Partition Table
Проверка логической правильности параметров Boot Sector.
Проверка загрузочной микропрограммы на каскадное включение других загрузчиков
Проверка загрузочной микропрограммы на наличие в ней вирусов
Анализируем FAT. Данную опероацию рекомендуется провести при помощи программы scandisk.exe или ndd.exe из пакета Norton Utilities.
Определяем фактическое количество копий FAT и сравниваем со значением из Boot Sectorж
Определяем фактический тип FAT
Проверяем целостность всех копий FAT (реальный размер и расчитанный на основе фактических данных)
Производим поиск потеряных цепочек и преобразуем их в файлы.
Анализируем корневой каталог (ROOT). Данную опероацию рекомендуется провести при помощи программы scandisk.exe или ndd.exe из пакета Norton Utilities.
Проверка целостности (месторасположения и фактического размера)
Проверка правильности имен и ссылок в корневом каталоге
Проверка целостности системных файлов в корневом каталоге
Обход дерева каталогов. Данную опероацию рекомендуется провести при помощи программы scandisk.exe или ndd.exe из пакета Norton Utilities.
Проход по дереву подкаталогов и проверка правильности имен и ссылок в подкаталогах
Проверка длинных имен файлов
Поиск пустых ссылок
 
8. ЗАКЛЮЧЕНИЕ
В результате проведенной работы была изучена физическая и логическая структуры магнитных дисков, и была разработана методика тестирования и диагностики дисковой подсистемы персонального компьютера, обеспечивающая наибольшую защиту от сбоев в условиях применения на персональном компьютере. В процессе изучения материала были выявлены недокументированные данные, касающиеся логической структуры диска, которые помогли упростить программу сбора ключевых характеристик магнитных дисков.
 
 
 
СПИСОК ЛИТЕРАТУРЫ
Р. Данкан “Профессианальная работа в MS-DOS”
Л.В. Букчин, Ю.Л. Безрукий “Дисковая подсистема IBM совместимых персональных компьютеров”
Диалог-МИФИ “Библиотека системного программиста. Том 19”
Р.Лей и “Уэйт-Груп” “Написание драйверов для MS-DOS”
 
 
ПРИЛОЖЕНИЯ
Текст разработанной программы для определения ключевых параметров жесткого диска и определение их корректности