Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Общая модель файловой системыСодержание книги Похожие статьи вашей тематики
Поиск на нашем сайте
Функционирование любой файловой системы можно представить многоуровневой моделью (рисунок 6), в которой каждый уровень предоставляет некоторый интерфейс (набор функций) вышележащему уровню, а сам, в свою очередь, для выполнения своей работы использует интерфейс (обращается с набором запросов) нижележащего уровня. Рис. 6. Общая модель файловой системы Задачей символьного уровня является определение по символьному имени файла его уникального имени. В файловых системах, в которых каждый файл может иметь только одно символьное имя, этот уровень отсутствует. В файловых системах, в которых один и тот же файл может иметь несколько символьных имен, на данном уровне просматривается цепочка каталогов для определения уникального имени файла. На базовом уровне по уникальному имени файла определяются его характеристики: права доступа, адрес, размер и другие. Характеристики файла могут входить в состав каталога или храниться в отдельных таблицах. При открытии файла его характеристики перемещаются с диска в оперативную память, чтобы уменьшить среднее время доступа к файлу. Следующим этапом реализации запроса к файлу является проверка прав доступа к нему. Для этого сравниваются полномочия пользователя или процесса, выдавших запрос, со списком разрешенных видов доступа к данному файлу. На логическом уровне требуется определить, на каком расстоянии (в байтах) от начала файла находится требуемая логическая запись. Алгоритм работы данного уровня зависит от логической организации файла. Например, если файл организован как последовательность логических записей фиксированной длины l, то n-ая логическая запись имеет смещение l((n-1) байт. Для определения координат логической записи в файле с индексно-последовательной организацией выполняется чтение таблицы индексов (ключей), в которой непосредственно указывается адрес логической записи.
Исходные данные: Требуется определить на физическом уровне: n - номер блока, содержащего требуемую логическую запись s - смещение логической записи в пределах блока n = N + [S/V], где [S/V] - целая часть числа S/V На физическом уровне файловая система определяет номер физического блока, который содержит требуемую логическую запись, и смещение логической записи в физическом блоке. Для решения этой задачи используются результаты работы логического уровня - смещение логической записи в файле, адрес файла на внешнем устройстве, а также сведения о физической организации файла, включая размер блока. Рисунок 7 иллюстрирует работу физического уровня для простейшей физической организации файла в виде непрерывной последовательности блоков. После определения номера физического блока, файловая система обращается к системе ввода-вывода для выполнения операции обмена с внешним устройством. В ответ на этот запрос в буфер файловой системы будет передан нужный блок, в котором на основании полученного смещения выбирается требуемая логическая запись.
Разработчики новых операционных систем стремятся обеспечить пользователя возможностью работать сразу с несколькими файловыми системами. Новая файловая система имеет многоуровневую структуру (рисунок 9), на верхнем уровне которой располагается так называемый переключатель файловых систем (в Windows 95, например, такой переключатель называется устанавливаемым диспетчером файловой системы - installable filesystem manager, IFS). Он обеспечивает интерфейс между запросами приложения и конкретной файловой системой, к которой обращается это приложение. Переключатель файловых систем преобразует запросы в формат, воспринимаемый следующим уровнем - уровнем файловых систем.
Рис. 9. Архитектура современной файловой системы Каждый компонент уровня файловых систем выполнен в виде драйвера соответствующей файловой системы и поддерживает определенную организацию файловой системы. Переключатель является единственным модулем, который может обращаться к драйверу файловой системы. Приложение не может обращаться к нему напрямую. Драйвер файловой системы может быть написан в виде реентерабельного кода, что позволяет сразу нескольким приложениям выполнять операции с файлами. Каждый драйвер файловой системы в процессе собственной инициализации регистрируется у переключателя, передавая ему таблицу точек входа, которые будут использоваться при последующих обращениях к файловой системе. Для выполнения своих функций драйверы файловых систем обращаются к подсистеме ввода-вывода, образующей следующий слой файловой системы новой архитектуры. Подсистема ввода вывода - это составная часть файловой системы, которая отвечает за загрузку, инициализацию и управление всеми модулями низших уровней файловой системы. Обычно эти модули представляют собой драйверы портов, которые занимаются работой с аппаратными средствами.. Большое число уровней архитектуры файловой системы обеспечивает авторам драйверов устройств большую гибкость - драйвер может получить управление на любом этапе выполнения запроса - от вызова приложением функции, которая занимается работой с файлами, до того момента, когда работающий на самом низком уровне драйвер устройства начинает просматривать регистры контроллера. Многоуровневый механизм работы файловой системы реализован посредством цепочек вызова.
Файловая система MS-DOS
Файловая система важнейшая подсистем DOS. Она используется в процессе загрузки операционной системы и в процессе ее работы. Сама операционная система записана на системном диске в виде файлов (IO.SYS, MSDOS.SYS, COMMAND.COM, драйверы, внешние команды и т.д.). Все программы и данные для них хранятся на дисках в виде файлов. Для обращения к файловой системе прикладная программа использует прерывания DOS, которые выполняют все файловые операции - создание, удаление файлов и каталогов, буферизованная и не буферизованная запись или чтение, получение справочной информации о состоянии файловой системы и другие. Файловая система работает с дисками через драйверы. Драйверы, в свою очередь, пользуются сервисом BIOS. На уровне BIOS выполняются элементарные операции с диском, такие как чтение/запись секторов, форматирование и т.п. Этот низкий уровень доступен и прикладной программе. Таблица разделов и логические диски Зачем нужно разбивать диск на логические диски?
Самый первый сектор жесткого диска (сектор 1, дорожка 0, головка 0) содержит так называемую главную загрузочную запись (Master Boot Record). Эта запись занимает не весь сектор, а только его начальную часть. Сама по себе главная загрузочная запись является программой. Эта программа во время начальной загрузки операционной системы с жесткого диска помещается по адресу 7C00:0000, после чего ей передается управление. В конце самого первого сектора жесткого диска располагается таблица разделов диска (Partition Table). Эта таблица содержит элементы, описывающие раздела диска. В последних двух байтах сектора находится число 55AA. Это признак таблицы разделов. Элемент таблицы разделов диска. Это структура размером 16 байтов, описывающая часть диска, называемую разделом. В структуре описаны границы раздела, там располагается информация о размере раздела в секторах и о назначении раздела. Разделы диска могут быть активными, активный раздел может быть использован для загрузки операционной системы. Приведем формат первого сектора жесткого диска:
Все элементы таблицы разделов диска имеют одинаковый формат:
Загрузка операционной системы с жесткого диска - двухступенчатый процесс. Вначале модули инициализации BIOS считывают главную загрузочную запись в память по адресу 7C00:0000 и ей передается управление. Главная загрузочная запись просматривает таблицу разделов и находит активный раздел. Если активных разделов несколько, на консоль выводится сообщение о необходимости выбора активного раздела для продолжения загрузки. После того как активный раздел найден, главная загрузочная запись считывает самый первый сектор раздела в оперативную память. Этот сектор содержит загрузочную запись, которой главная загрузочная запись и передает управление. Загрузочная запись активного раздела выполняет загрузку операционной системы, находящейся в активном разделе. Такой двухступенчатый метод загрузки операционной системы необходим по той причине, что способ загрузки зависит от самой операционной системы, поэтому каждая операционная система имеет свой собственный загрузчик. Фиксированным является только расположение загрузочной записи - самый первый сектор активного раздела.
Таблица размещения файлов Сразу после загрузочного сектора на логическом диске находятся сектора, содержащие таблицу размещения файлов FAT (File Allocation Table). Доступ к информации, записанной на магнитном диске, может выполняться либо последовательным, либо прямым методом доступа. Использование прямого метода доступа позволяет позиционировать головки сразу на тот файл, который вам нужен. Операционные системы, подобные DOS, UNIX, OS/2 при создании файла для него не задается начальное распределение памяти в дорожках или секторах. По мере того, как файл увеличивается в размерах, операционная система распределяет этому файлу сектора из числа свободных, не используемых другими файлами. При этом файл располагается не обязательно в смежных областях диска, он может быть разбросан по разным дорожкам и секторам. Очевидно, что в этом случае операционная система должна вести учет используемых участков диска. Для каждого файла она должна хранить где-то информацию о том, какому файлу какие участки диска распределены. В операционной системе MS-DOS для хранения этой информации используется таблица размещения файлов. Весь диск разбивается операционной системой на участки одинакового размера, называемые кластерами. Кластер может содержать несколько секторов. Для каждого кластера FAT имеет свою индивидуальную ячейку, в которой хранится информация об использовании данного кластера. Другими словами, таблица размещения файлов - это массив, содержащий информацию о кластерах. Размер этого массива определяется общим количеством кластеров на логическом диске. Все свободные кластеры помечены в ней нулями. Если файл занимает несколько кластеров, то эти кластеры связаны в список. Для связанных в список кластеров элементы таблицы FAT содержат номера следующих используемых данным файлом кластеров. Конец списка отмечен в таблице специальным значением. Номер первого кластера, распределенного файлу, хранится в элементе каталога, описывающего данный файл. Утилиты операционной системы проверяют диск на предмет наличия дефектных областей. Кластеры, которые находятся в этих дефектных областях, отмечаются в FAT как плохие и не используются операционной системой.
++ ++ ¦ ¦AUTOEXECBAT¦... ¦Номер 1-го кластера: 11¦..¦ ¦ ++++¦ ¦ ¦CONFIG SYS¦... ¦Номер 1-го кластера: 27¦..¦ ¦ ++ ¦ ¦ ¦ ¦ ¦ +++ ++ ¦ ++ ¦ ¦...¦12¦13¦14¦15¦16¦17¦18¦19¦20¦FF¦ 0¦ 0¦ 0¦ 0¦...¦ ¦ ++ ¦ ++ ¦ ¦...¦28¦29¦30¦FF¦...¦ ¦ ++ ¦ ++ На этом рисунке показаны фрагменты корневого каталога диска С: и элементы FAT для файлов autoexec.bat и config.sys. Реально эти файлы не используют столько кластеров. Последняя ячейка, соответствующая последнему кластеру распределенному этому файлу, содержит специальное значение - FF. Существуют два формата FAT - 12-битовый и 16-битовый. Эти форматы используют, соответственно, 12 и 16 битов для хранения информации об одном кластере диска. 12-битовый формат удобен для дискет с небольшим количеством секторов - вся таблица размещения файлов помещается целиком в одном секторе. Если размер диска такой, что для представления всех секторов двенадцати разрядов недостаточно, можно увеличить размер кластера, например до восьми секторов. Однако большой размер кластера приводит к неэффективному использованию дискового пространства. Это происходит из-за того, что минимальный выделяемый файлу элемент - кластер - имеет слишком большой размер. Даже для файла, имеющего длину 1 байт выделяется целиком кластер. Значит, если размер кластера составляет 8 секторов, то для хранения одного байта будет использовано 4 килобайта дисковой памяти. При использовании FAT 16-битового формата операционная система может работать с диском, который имеет размер более 32 мегабайт. DOS версии 4.0 при использовании 16-битового формата FAT и кластеров размером 4 сектора может работать с разделами, по размеру достигающими 134 мегабайтов. Опишем подробно формат FAT. Первый байт FAT называется "Описатель среды" (Media Descriptor) или байт ID идентификации FAT. Он имеет такое же значение, как и байт-описатель среды, находящийся в BOOT -секторе логического диска. Следующие 5 байтов для 12-битового формата или 7 байтов для 16-битового формат всегда содержат значение 0ffh. Остальная часть FAT состоит из 12-битовых или 16-битовых ячеек, каждая ячейка соответствует одному кластеру диска. Эти ячейки могут содержать следующие значения:
Общая схема использования FAT такая:
Процедура извлечения номера кластера из FAT зависит от формата таблицы размещения файлов. 16-битовую FAT можно представить как массив 16-битовых чисел. Для определения номера следующего кластера вам надо просто извлечь 16-битовое значение из FAT, использовав в качестве индекса номер предыдущего кластера. Для 12-битовой FAT процедура значительно сложнее. Необходимо выполнить следующие действия:
. Файлы и каталоги Файловая система DOS имеет древовидную структуру. В корневом каталоге располагаются 32-байтовые элементы, которые содержат информацию о файлах и других каталогах. Для чтения корневого каталога необходимо определить его расположение и размер. Корневой каталог находится сразу за последней копией FAT. Количество секторов, занимаемых одной копией FAT, находится в блоке параметров BIOS в BOOT -секторе в поле fatsize, количество копий FAT - в поле fatcnt блока BPB. Следовательно, перед корневым каталогом находится один BOOT -сектор и (fatcnt_*_fatsize) секторов таблицы размещения файлов FAT. Размер корневого каталога можно определить исходя из значения поля rootsize. В этом поле при форматировании диска записывается максимальное количество файлов и каталогов, которые могут находиться в корневом каталоге. Для каждого элемента в каталоге отводится 32 байта, поэтому корневой каталог имеет длину (32_*_rootsize) байтов. Корневой каталог занимает непрерывную область фиксированного размера. Размер корневого каталога задается при форматировании и определяет максимальное количество файлов и каталогов, которые могут быть описаны в корневом каталоге. Для определения количества секторов, занимаемых корневым каталогом, можно воспользоваться следующей формулой: RootSecs = sectsize_/_(32_*_rootsize) В этой формуле sectsize - размер сектора в байтах, он может быть получен из соответствующего поля BOOT -сектора. После корневого каталога на логическом диске находится область файлов и подкаталогов корневого каталога. На рисунке изображены все области логического диска. Такую структуру имеют логические диски, расположенные в разделах жестких дисков, а также дискеты.
Области логического диска Номер начального сектора на логическом диске
++ ¦ ¦ 0 ¦ BOOT-сектор и ¦ ¦ зарезервированные ¦ ¦ сектора ¦ ¦ ¦ +¦ ¦ ¦ ressecs - количество резервных ¦ Первая копия FAT ¦ секторов ¦ ¦ +¦ ¦ ¦ ressecs+fatsize ¦ Вторая копия FAT ¦ ¦ ¦ +¦ ¦ ¦ ressecs+(fatsize*fatcnt) ¦ Корневой каталог ¦ ¦ ¦ +¦ ¦ ¦ ressecs+(fatsize*fatcnt)+ ¦ Область данных ¦ sectsize_/_(32*rootsize) ¦ ¦ ++ Область данных разбита на кластеры, причем нумерация кластеров начинается с числа 2. Кластеру с номером 2 соответствуют первые сектора области данных. Приведем формулу, которая позволит связать номер кластера с номерами секторов, занимаемых им на логическом диске: SectNu = DataStart + ((ClustNu-2) * clustsize) В этой формуле: SectNu - номер первого сектора, распределенного кластеру с номером ClustNu;
DataStart = ressecs+(fatsize*fatcnt)+(sectsize/(32*rootsize));
ClustNu - номер кластера, для которого необходимо определить номер первого сектора;
clustsize - количество секторов, занимаемых кластером, находится в блоке параметров BIOS.
Приведем формат дескриптора:
Байт атрибутов является принадлежностью каждого файла. Биты этого байта имеют следующие значения:
В любом каталоге, кроме корневого, два первых дескриптора имеют специальное назначение. Первый дескриптор содержит в поле имени строку: ". " Этот дескриптор указывает на содержащий его каталог. Т.е. каталог имеет ссылку сам на себя. Второй специальный дескриптор содержит в поле имени строку: ".. " Этот дескриптор указывает на каталог более высокого уровня. Если в поле номера первого занимаемого кластера дескриптора с именем ".. " находится нулевое значение, это означает, что данный каталог содержится в корневом каталоге. Таким образом, в древовидной структуре каталогов имеются ссылки как в прямом, так и в обратном направлении. Эти ссылки можно использовать для проверки сохранности структуры каталогов файловой системы. При удалении файла первый байт его имени заменяется на байт E5h (символ 'х'). Все кластеры, распределенные файлу, отмечаются в FAT как свободные.
Формат поля времени показан на рисунке: 15 11 10 5 4 0 ++ ¦ Часы (0...23) ¦ Минуты (0...59) ¦ Секунды/2 (0...29) ¦ ++
Формат даты обновления файла напоминает формат времени: 15 9 8 5 4 0 ++ ¦ Год (0...119) ¦ Месяц (1...12) ¦ День (1...31) ¦ ++ Для того, чтобы получить значение года обновления файла, необходимо прибавить к величине, хранимой в старших семи битах, значение 1980. Поля месяца и дня каких-либо особенностей не имеют, они полностью соответствуют календарной дате. Поле длины в дескрипторе содержит точную длину файла в байтах. Для каталогов в поле длины записано нулевое значение.
Файловые системы Windows
В Windows версии 5.0 поддерживаются три' файловые системы: • NTFS (Windows NT file system) — исключительно для Windows NT; • FAT (File Allocation Table) — для совместимости с приложениями MS-DOS; • FAT 32 — модифицированная версия FAT, используемая в Windows95 OSR2 и Windows 98. Выбор файловой системы зависит от используемых приложений и от требований, предъявляемых к ней. У каждой свои полезные свойства, но возможности защиты и аудита систем различны. Также в новой версии Windows NT поддерживаются распределенная файловая система DFS (Distributed File System) и файловая система с шифрованием EFS (Encrypted File System). Строго говоря, последние не являются файловыми системами в полной мере, как, например, FAT. DFS представляет собой расширение сетевого сервиса и позволяет объединять в единый логический том сетевые ресурсы, расположенные на разделах с различными файловыми системами. EFS — это надстройка над NTFS, добавляющая к последней функции шифрования данных.
Файловая система FAT
Файловая система Windows FAT функционирует аналогично MS-DOS и. Windows NT, начиная с версии 3.5, использует биты атрибута для поддержки длинных (до 255 символов) имен файлов в разделах FAT. Применяемый для этого способ не мешает MS-DOS или OS/2 обращаться к подобному разделу. Всякий раз, когда пользователь создает файл с длинным (превышающим стандартное для FAT ограничение «8+3») именем, Windows NT учреждает элемент каталога для этого файла, соответствующий соглашению «8+3» (по тем правилам, что и для NTFS) с добавлением одного или нескольких вторичных элементов каталога. Каждый из таких вторичных элементов рассчитан на 13 символов в длинном имени файла и сохраняет длинную часть имени файла в UNICODE. Для этих элементов устанавливаются атрибуты: том, системный, скрытый, только для чтения. MS-DOS и OS/2 игнорируют элементы каталога с таким набором атрибутов, и последние не видимы в этих операционных системах. Вместо них MS-DOS и OS/2 обращаются к элементам, содержащим информацию в стандартном виде «8+3». Некоторые дисковые утилиты сторонних производителей, взаимодействуя непосредственно с FAT, могут расценивать созданные Windows NT элементы каталога с длинным именем файла как ошибки логической структуры тома. Попытки этих утилит исправить ошибки могут привести к потере файлов и каталогов. Чтобы избежать подобных неприятностей, не используйте не проверенные на совместимость с Windows NT утилиты работы с диском или его дефрагментации.
Файловая система FAT32 FAT32 — модифицированная версия FAT, позволяющая создавать разделы объемом более 2 Гб. Кроме того, она дает возможность использовать кластеры меньшего размера, и, соответственно, более эффективно расходовать дисковое пространство. Впервые данная файловая система появилась в Windows 95 OSR2. В таблице 4-1 сравниваются размеры кластеров, устанавливаемых по умолчанию для FAT и FAT32.
Таблица 4-1
Формат новой файловой системы не совместим с прежним форматом FAT, поэтому следует внимательно подходить к выбору для работы с диском
Файловая система NTFS
По сравнению с FAT или FAT32, NTFS предоставляет пользователю новые возможностит: эффективность, надежность и совместимость. Она разработана для быстрого выполнения на очень больших жестких дисках файловых операций. Поддерживая управление доступом к данным и привилегии владельца, NTFS дает гарантии безопасности, требуемые для файловых серверов и высококачественных персональных компьютеров в корпоративной среде. Это важно для целостности корпоративных данных. NTFS простая, но очень мощная разработка, для которой вся информация на томе NTFS — файл или часть файла. Каждый распределенный на томе NTFS сектор принадлежит некоторому файлу. Частью файла являются даже метаданные файловой системы (информация, описывающая непосредственно файловую систему). Эта основанная на атрибутах файловая система поддерживает объектно-ориентированные приложения, обрабатывая все файлы как объекты с атрибутами, определяемыми пользователем и системой.
Главная файловая таблица Каждый файл на томе NTFS представлен записью в специальном файле — главной файловой таблице MFT (Master File Table). NTFS резервирует первые 1б записей таблицы для специальной информации. Первая запись таблицы описывает непосредственно главную файловую таблицу. За ней следует зеркальная запись MFT. Если первая запись MFT разрушена, NTFS считывает вторую запись, чтобы отыскать зеркальный файл MFT, первая запись которого идентична первой записи MFT. Местоположение сегментов данных MFT и зеркального файла MFT записано в секторе начальной загрузки. Дубликат сектора начальной загрузки находится в логическом центре диска. Третья запись MFT — файл регистрации, применяемый для восстановления файлов. Семнадцатая и последующие записи главной файловой таблицы используются собственно файлами и каталогами на томе. На рисунке показана упрощенная структура MFT, обеспечивающая очень быстрый доступ к файлам.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2016-07-16; просмотров: 1731; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.219.18.238 (0.011 с.) |