Автор работы: Пользователь скрыл имя, 25 Декабря 2011 в 20:29, реферат
Далее будет показана логическая организация хранения информации на жестком диске IBM совместимых ПЭВМ. Будет рассмотрена логическая структура жесткого диска, назначение и структура ее составных частей. Достаточно подробно будет рассмотрена организация файловой системы MSDOS (PCDOS) на жестком диске, а также кратко рассмотрены организации файловых систем других операционных систем.
Операционные системы Windows 95 и Windows 98 полностью поддерживают организацию разделов и файловую систему DOS. Для улучшения работы с диском и возможности организации логических томов размером более 2 Гбайт Windows 95, начиная с OSR 2, и Windows 98 поддерживают файловую систему FAT32. При установке FAT32, раздел или логический том становится недоступным для DOS.
Рис.2.5. Главная и расширенная таблицы разделов разбивают диск на логические тома.
Систему OS/2 фактически можно поместить в логический том DOS - в первичный раздел или один из логических томов внутри расширенного раздела. Но OS/2 можно также применить для реформатирования одного из логических томов DOS для файловой системы OS/2, называемой HPFS (High Performance File System - высокоэффективная файловая система). Пока OS/2 использует файловую систему с FAT, ее раздел и все ее файлы доступны DOS; кроме того, все файлы DOS доступны OS/2.
При создании логических накопителей с HPFS они будут доступны только OS/2. Начиная с версии 5, DOS может обращаться ко всем логическим накопителям с системой FAT даже в расширенном разделе DOS. Предыдущие версии DOS могли работать только с томами, использующими FAT, которые расположены перед первым томом HPFS.
Windows NT поддерживает три файловые системы (объявленная Microsoft новая версия - четыре). Ее можно инсталлировать и применять в томе с FAT (для новой версии - с FAT32) или в томах, форматированных с ее системой NTFS. Windows NT сможет считывать все файлы в любых томах с FAT, HPFS или NTFS.
После подготовки диска путем форматирования низкого уровня и разбиения диска на главную загрузочную запись, один или несколько разделов и диагностический цилиндр (плюс, возможно, секретный цилиндр) необходимо использовать программу DOS FORMAT для создания нескольких областей внутри раздела DOS и внутри каждого логического диска DOS в расширенном разделе (если были определены логические накопители). Только после этого диск готов к работе с DOS.
DOS разбивает каждый диск на четыре области. Она же разбивает каждый первичный раздел DOS, и каждый логический том на жестком диске на те же четыре области. Этими областями являются загрузочный сектор, таблица размещения файлов, корневой каталог и область данных (рис. 3.1).
Рис. 3.1. Четыре области внутри любого логического накопителя DOS.
На этом высшем уровне DOS считает все дисковое пространство в каждом из накопителей длинным единым списком логических секторов. Только когда DOS посылает команды нижним уровням и, в конце концов, BIOS, такое представление преобразуется в реальные физические адреса.
Загрузочная запись DOS - это первый сектор в логическом томе DOS. Она одинакова во всех томах, отформатированных одной версией DOS. Загрузочная запись DOS занимает точно один сектор и содержит программу, выполняющую важную часть загрузки, поэтому ее часто называют загрузочным сектором (рис. 3.2).
Загрузочная запись DOS выполняет две функции. Она содержит программу, которая загружает операционную систему, что нужно для компьютера (отсюда и название "загрузочная запись"), и таблицу данных с критической информацией об этом разделе DOS. Далее рассмотрим смысл всех чисел, хранимых в таблице данных загрузочной записи.
Структура всех загрузочных записей, создаваемых одной версией DOS, одинакова. Они содержат данные, описывающие диск, на котором находятся записи. Конечно, эти числа должны отличаться на дисках разной емкости и дисках, способы обращения к которым со стороны DOS и BIOS отличаются. Но, во всем остальном, кроме различия в содержимом таблицы данных, загрузочная запись, например на дискете форматированной DOS 3.3, аналогична загрузочной записи в первичном разделе DOS жесткого диска. В этом отношении загрузочная запись DOS одинакова в любом из логических накопителей, созданных в расширенном разделе DOS при условии, что эти логические накопители форматированы DOS 3.3.
На дискете DOS загрузочная запись имеет такой физический адрес: цилиндр 0, головка 0, сектор 1. На жестких дисках DOS 2 загрузочная запись первого раздела находится по адресу: цилиндр 0, головка 0, сектор 2. (Цилиндр 0, головку 0, сектор 1 занимает главная загрузочная запись, называемая таблицей разделов.) В версиях DOS 3.0, где занят только первый сектор дорожки, содержащий главную загрузочную запись, загрузочная запись находится и цилиндре 0, головке 1, секторе 1.
Аналогично в расширенном разделе DOS (начиная с DOS 3.3) каждый логический том начинается с головки 1, сектора 1, цилиндра 1 данной области диска. (Все разделы, включая расширенный раздел DOS, и все логические накопители начинаются на границе цилиндра.) Расширенная таблица разделов находится в головке 0, секторе 1 данного цилиндра, а остальные секторы дорожки пропускаются (головка 0, секторы 2 и т. д.).
Рис.
3.2. Загрузочная запись DOS.
Загрузочная запись DOS начинается командой перехода. После нее находится таблица данных, большая часть значении которой копируется в область памяти, называемую блоком параметров BIOS для этого накопителя. Наконец, есть фактическая программа загрузки, которая привлекает числа из таблицы для поиска системных файлов в разделе, если компьютер загружается из этого раздела. Конечно, загрузочным может быть только первичный раздел DOS (который является накопителем С). Следовательно, ни в одном из других разделов или логических томов программа загрузки не нужна. Но все разделы DOS и логические тома ради простоты имеют одинаковую загрузочную запись DOS.
Каждая загрузочная запись DOS заканчивается двумя байтами 55h AAh. Они называются сигнатурой и применяются и нескольких структурах данных DOS. Например, главная загрузочная запись также заканчивается такой же сигнатурой.
Несмотря на то, что область данных не является следующей частью раздела, нужно рассмотреть ее следующей. После изучения способа хранения данных проще разобраться с тем, зачем нужны две другие секции и как они организованы.
На одном из своих уровней DOS следит за файлом. На уровне, который немного ниже этого, она следит либо за символом (когда файл поступает из символьного устройства или передается в него), либо за сектором (когда он поступает от блокового устройства, например дискового накопителя, или передается в него).
Но хотя DOS следит за сектором данных при работе с дисковым накопителем, она не использует эту же единицу для слежения за ним при появлении. Вместо сектора DOS использует другую единицу, называемую кластером или единицей распределения.
Кластеры - это небольшая группа секторов. Кластер может состоять из любого числа секторов (включая один), равного степени двух. Количество секторов в кластере зависит от емкости дискового накопителя и версии DOS. Почему DOS использует кластеры и как она определяет размер кластера?
Каждый участок диска, на котором можно сохранить данные, находится в одном из трех состояний: свободен, занят файлом или подкаталогом, поврежден и не годится для хранения данных. DOS должна следить за состоянием каждого сектора в области данных каждого накопителя DOS. Далее, DOS должна следить за тем, какие файлы "владеют" каждым используемым участком диска. Если файл не помещается в один участок, его приходится хранить частями. Следовательно, DOS должна "уметь" связывать нужные участки в файл, когда программа запрашивает данные.
Система постоянно регистрирует эту информацию на диске с файлами, расположение которых она описывает. Для ускорения доступа к файлам она хранит большую часть информации в области ОЗУ, выделенной для диска, к которой обращается DOS.
Однако хранение этой информации в памяти "съедает" значительную область первых 640 Кбайт ОЗУ, поэтому разработчики DOS пошли на компромисс и разбили информацию о дисковых файлах на две части - информацию о каталоге файлов, которая дает полную информацию о файлах и начале их расположения, но не объясняет, как они расположены, и информацию о распределении дискового пространства, которая сообщает все о состоянии каждого участка области данных диска.
На диске часть информации о каталоге хранится в корневом каталоге, а остальная - в подкаталогах. Информация о распределении дискового пространства хранится в таблице размещения файлов (FAT).
При обращении к диску для получения одного файла DOS должна хранить в ОЗУ информацию о каталоге только для одного файла или, максимум, о нескольких файлах в одном подкаталоге. Чтобы знать, где на диске найти файл и куда она может поместить дополнительную информацию для этого или нового файла, DOS должна иметь в памяти информацию о распределении дискового пространства для большей части или всего диска.
Если необходимо получить информацию или записать ее только в один файл, DOS выполняет операции очень быстро. Обращение к новому файлу длится несколько дольше, так как DOS должна считать с диска информацию о каталоге для этого файла.
Упрощая информацию о распределении дискового пространства и отделяя ее от подробностей о файлах, занимающих это пространство, разработчики DOS минимизировали объем используемого DOS ОЗУ при обработке файлов или их создании.
Но даже сама информация о распределении пространства требует хранения в памяти многих данных. Если бы DOS следила за состоянием каждого отдельного сектора жесткого диска очень большой емкости, все ОЗУ пришлось бы отвести только для этой информации, а места для приложений не осталось бы. Именно здесь на помощь приходят кластеры.
Кластер - это некоторое удобное число секторов с последовательными номерами. Разбивая дисковое пространство на эти большие единицы, DOS должна следить за меньшим числом единиц. Сокращая максимальный номер кластера, DOS также экономит пространство.
Версии DOS 1 и 2 разбивали область данных любого диска не более чем на 4000 единиц хранения, или кластеров. Кластеры нумеруются, начиная с 2. Только здесь DOS нумерует элементы, начиная не с 0, не с 1, а именно с 2. Фактически в FAT есть элементы или, по крайней мере, места для этих элементов - для кластеров 0 и 1. Они используются для специального сигнатурного байта, называемого байтом дескриптора носителя, и заполнителей. Если посмотреть на любой жесткий диск, то окажется, что первый байт в каждой FAT содержит F8h, a следующих два-три байта (в зависимости от 12- или 16-битовой FAT) содержат FFh. Значение F8h является байтом дескриптора носителя для жесткого диска. Для гибких дисков разной емкости применяются другие значения. Байты FFh служат заполнителями.
Начиная с DOS 3, число возможных кластеров стало больше 65000.
Необходимость следить за 4000 или даже 65000 кластеров значительно упрощает задачу DOS по сравнению со слежением за каждым сектором. Напомним, что до версии DOS 4 на одном дисковом накопителе разрешалось иметь 65536 секторов - отсюда возникло известное логическое ограничение в 32 Мбайт. Начиная с версии DOS 4, максимальный номер увеличен по одному правилу до 4 млрд. (это новое логическое ограничение DOS), а по другому правилу - до 1 млн. (это ограничение INT 13h).
Пропадающее пространство. DOS во многом выигрывает, следя за распределением дискового пространства файлам группами секторов, называемыми кластерами. Но при этом появляется один недостаток. Не распределяя дисковое пространство байтами, DOS должна расходовать часть его впустую. Каждому файлу, независимо от его размера, приходится выделять участок диска, представляющий целое число кластеров.
Пространство в конце последнего кластера, отведенного файлу, которое не заполнено данными файла, называется пропавшим (пропадающим) пространством. У некоторых файлов такое пространство довольно велико, например однобайтный файл впустую расходует весь выделенный ему кластер, кроме одного байта. У других файлов пропавшее пространство меньше или его нет совсем, т.е. файл полностью занимает данными все выделенные ему кластеры.