Автор работы: Пользователь скрыл имя, 25 Декабря 2011 в 20:29, реферат
Далее будет показана логическая организация хранения информации на жестком диске IBM совместимых ПЭВМ. Будет рассмотрена логическая структура жесткого диска, назначение и структура ее составных частей. Достаточно подробно будет рассмотрена организация файловой системы MSDOS (PCDOS) на жестком диске, а также кратко рассмотрены организации файловых систем других операционных систем.
В среднем, когда размеры файлов на диске распределены более или менее случайно, на каждый файл пропадает примерно половина кластера. Если, например, на диске размер кластера составляет четыре сектора (2048 байт), то теряется столько килобайт, сколько файлов находится на диске.
Конечно, такая величина кажется большой, но она экономит для DOS ОЗУ и время. Предположим, что средний размер файлов на жестком диске 50 Кбайт, тогда для тысячи файлов теряется 1 Мбайт, а занимают они 50 Мбайт. Другими словами, пропадает около 2% дискового пространства.
Пропавшее пространство может быть и большим, и очень большим. Если ваш большой диск организован как один том или если вы создали логические тома с неподходящей емкостью, размер кластера будет намного больше 2 Кбайт. В этом случае пропавшее пространство также намного увеличивается.
Дальше показано, как DOS выбирает размер кластера и как повлиять на этот выбор. Эти действия определяют размер пропадающего дискового пространства.
DOS помещает в таблицу размещения файлов (FAT) информацию о состоянии всех кластеров в разделе DOS или логическом накопителе DOS. FAT - это просто таблица чисел - по одному числу на кластер, которые сообщают состояние этих кластеров. Одно специальное значение будет у кластеров, доступных для хранения файлов, а другое значение показывает поврежденный кластер, который система не должна использовать. Еще одно значение у файла, который полностью помещается внутри кластера, или файла, который занимает несколько кластеров и заканчивается в этом кластере. Несколько значений зарезервировано на случай дальнейших усовершенствований. Любое другое допустимое число указывает на кластер, в котором продолжается файл, содержащийся в данном кластере (рис. 3.3).
FAT содержит цепи кластеров, показывающие, куда система поместила каждый файл. Она также показывает, какое пространство доступно DOS для записи новой информации. Наконец, FAT фиксирует поврежденные участки на диске, запрещая системе сохранять там данные.
Рис.3.3. Таблицы размещения файлов.
Несколько дополнительных чисел в начале первого сектора FAT отмечают начало FAT и показывают тип диска. Первый из этих байтов называется байтом дескриптора носителя. Другие два или три специальных байта заполняются единицами (и имеют 16-ричиое значение FFh).
Байт дескриптора носителя содержится также в таблице данных загрузочной записи DOS. К сожалению, этот байт не дает много полезной информации. Но если он не содержит F8h, то диск не является жестким диском.
Два типа FAT. Есть два типа таблиц FAT, обрабатываемых DOS: 12- и 16-битовые. До версии DOS 3 существовали только 12-битовые FAT, а в последующих версиях применяются оба типа таблиц. Различие относится к длине чисел, хранимых в FAT для каждого кластера. Для большинства приложений и задач, решаемых пользователем, не важен тип FAT.
Для просмотра FAT жесткого диска можно воспользоваться различными утилитами, но необходимо быть подготовленным к пониманию увиденного. Некоторые утилиты, например Disk Editor из утилит Нортона (версия 5+), позволяют посмотреть выводимую информацию в нескольких форматах.
Утилита Disk Editor может показать FAT в терминах, которые легко понять, прочитав описание в данном разделе. Она также позволяет посмотреть, что фактически записано на диске. Этот формат расшифровать несколько сложнее.
Если логический том, чью FAT вы смотрите, имеет такую емкость, которая заставила программу DOS FORMAT создать 16-битовую FAT, задача оказывается несложной. Нужно просто знать, что элемент каждого кластера занимает два байта, и байты расположены на диске в "порядке Intel", т. е. младший байт первый. (Есть два основных стандарта на хранение многобайтовых чисел в последовательных ячейках памяти. "Порядок Intel" означает, что младший байт помещается по нижнему (меньшему) адресу памяти, а "порядок Motorola" помещает туда старший байт. В семействе микропроцессоров 80х86, которое применяется в ПК, принят первый порядок, а в микропроцессорах семейства 68х00 фирмы Motorola, которые применяются в компьютерах Macintosh, принят второй порядок.)
Если посмотреть 12-битовую FAT, картина более запутана. При внимательном просмотре рис.3.3 можно заметить, что три полубайта, образующие элемент для кластера, не расположены на диске последовательно. Но Disk Editor знает обо всех этих тонкостях и выводит любую FAT (12- или 16-битовую) в понятном формате.
Создает и управляет FAT сама DOS. Конечному пользователю (а также и большинству приложений) почти никогда не придется задумываться о FAT. Это просто внутреннее "приспособление" DOS, помогающее ей работать, не беспокоя понапрасну пользователей.
Во всех версиях DOS до 3.0 в FAT применялись исключительно 12-битовые числа, что ограничивало число кластеров не более 4000. Возведение 2 в степень 12 дает 4096. Вычитание специальных значений, которые нельзя использовать для указания других кластеров, дает максимум 4078 кластеров. Для гибких дисков во всех версиях DOS применяются 12-битовые элементы FAT.
Когда DOS 3 проводит форматирование высокого уровня, она анализирует емкость диска (общее число секторов в логическом томе). После этого она решает, нельзя ли оставить 4000 кластеров, не увеличивая размер кластера до слишком большого. Если это возможно, DOS образует FAT с 12-битовыми числами, а если нельзя, применяет 16-битовую FAT. Больший размер элементов FAT означает, что можно иметь 65518 кластеров.
В предыдущем абзаце применялся довольно расплывчатый термин "слишком большой". Точное правило выбора размера кластера и размера элементов FAT не документировано. Более того, DOS не позволяет пользователю сообщить о своем предпочтении. Программа FORMAT делает то, что встроено в нее, а пользователю остается смириться с ее выбором. Но можно немного повлиять на выбор, тщательно определяя емкости разделов. Необходимо отметим, что для разделов более 32 Мбайт кластеры обязательно будут больше одного сектора. При увеличении раздела кластеры также увеличиваются. Например, для раздела 260 Мбайт размер кластера составит 8 Кбайт. В табл.3.1 приведены взаимосвязи между емкостью тома, размером кластера и размером элемента FAT для версией DOS 3.3 и более поздних. Кроме того, можно воспользоваться для форматирования тома программами сторонних фирм, позволяющих выбирать тип FAT и размер кластера (естественно в возможных пределах), но при таком форматировании нет полной гарантии правильной работы DOS с таким томом.
Таблица 3.1.
Размеры кластеров для разных дисков или логических накопителей и версий DOS.
Емкость тома (Мбайт) | Размер кластеров (Кбайт) | Размер элемента FAT (биты) |
До 32 | 4 | 12 |
До 8 | 2 | 12 |
8-15 | 4 | 12 |
16-32 | 2 | 16 |
16-127 | 2 | 16 |
128-255 | 4 | 16 |
256-511 | 8 | 16 |
512-1023 | 16 | 16 |
1024-2047 | 32 | 16 |
Независимо от типа FAT, она занимает только малую часть описываемого диска. Поскольку FAT важна для правильного доступа к файлам на диске и имеет небольшой размер, DOS для большей надежности поддерживает на многих дисках две копии FAT.
Для 12-битовой FAT в каждые три байта DOS помещает два числа о состоянии кластеров, так как три байта составляют 24 бита. Следовательно, в DOS 1 или 2 размер FAT не может быть больше 6 Кбайт (4000 элементов по 1, 5 байта каждый). В DOS 3. 0 максимальный размер FAT больше, так как имеется больше кластеров (и больше элементов в FAT) и каждый элемент FAT занимает два байта. Для новых версий DOS максимальный размер FAT составляет 128 Кбайт.
Легко разрешить DOS хранить FAT размером 6 Кбайт в ОЗУ, но хранить там все 128 К очень накладно. Поэтому, начиная с DOS 3.0 часть FAT храниться в ОЗУ, а часть - считывается с диска при необходимости.
Когда DOS распределяет файлу новый кластер или отмечает, что кластер освобожден (так как файл удален), она модифицирует обе копии FAT. Если DOS получает ошибку при считывании первой FAT, она пытается считать вторую FAT. В случае успеха DOS пользуется полученной информацией, но не сообщает об использовании второй FAT и не пытается исправить поврежденную первую FAT.
Программа DOS CHKDSK позволяет обнаружить расхождения между двумя копиями FAT. Кроме этих двух применений, DOS игнорирует вторую FAT, что приводит к необходимости регулярно выполнять CHKDSK для выявления потенциальных ошибок.
DOS никогда не исправляет обнаруженные в FAT ошибки. Как максимум, она сообщает вам об этом, а затем оставляет все как есть. Необходимо исправить с помощью специальной утилиты прежде, чем DOS прекратит работать. Программа CHKDSK исправляет некоторые ошибки в FAT. К сожалению, ее способ исправления ошибок далек от совершенства.
Для более надежного отслеживания и исправления ошибок можно воспользоваться программой SCANDISK, входящей в комплект последних версий DOS или программами сторонних фирм.
Корневой каталог, т.е. упорядоченная таблица сведений о файлах, является последней областью раздела DOS или логического накопителя, который создает программа FORMAT. Именно здесь DOS начинает сохранять информацию о каталоге файлов, связывая имя файла с его расположением на диске.
Каждый элемент каталога состоит из 32 байт. Первые 11 байт содержат имя файла (8 байт) и расширение (3 байта). В следующем байте хранятся атрибуты файла. Десять байтов зарезервированы, т. е. фирма Microsoft не рекомендует использовать их. Обычно они заполняются нулями. После этого расположены время и дата, открытия программой файла с разрешением на изменение его содержимого (2 байта для времени и 2 байта для даты). Следующим расположен номер кластера, с которого DOS начинает сохранение содержимого файла (2 байта). Последние четыре байта отведены под размер файла в байтах (рис. 3.4).
На рис.3.4 каждый байт представлен прямоугольником, а каждый элемент каталога - одной строкой прямоугольников. Внутри каждого прямоугольника снизу показано 16-ричное число. Когда оно является символом кода ASCII, выше числа приводится этот символ.
Байт атрибутов DOS интерпретирует по битам. Рис.3.4 поясняет смысл каждого из шести используемых DOS атрибутов. Некоторые сетевые операционные системы используют один или оба из оставшихся битов.
Дата и время последнего изменения файла хранятся в двухбайтовых числах. На рис.3.4 показан формат этих полей. Старший бит (MSB) находится справа, а младший (LSB) - слева (для байтов атрибутов, времени и даты).
Отметим, что элемент каталога показывает только, где начинается файл, а не где находится весь файл. Для поиска остальной части файла DOS обращается к FAT, отправляясь от кластера, где начинается файл (и где он кончается, если файл небольшой), и прослеживая цепь кластеров до достижения конца файла.
Корневой
каталог имеет фиксированный размер, зависящий
от версии DOS, емкости и типа дискового
накопителя, обычно для жесткого диска
это 512 элементов.
Рис.3.4. Структура корневого каталога DOS.
При наличии более 512 файлов (или такого их числа, которое помещается в корневой каталог) необходимо хранить "каталогизирующую" информацию в подкаталоге, идея которого реализована начиная с DOS 2. 0.
Подкаталог - это просто специальный файл, т. е. хотя он и хранится как файл, но его содержимое интерпретируется как расширение корневого каталога. Подкаталоги первого уровня являются файлами в корневом каталоге. Они содержат списки других файлов и, возможно, других подкаталогов второго уровня и т.д.