Автор работы: Пользователь скрыл имя, 26 Марта 2011 в 17:01, курсовая работа
Развитие файловых систем персональных компьютеров определялось двумя факторами - появлением новых стандартов на носители информации и ростом требований к характеристикам файловой системы со стороны прикладных программ (разграничение уровней доступа, поддержка длинных имен файлов в формате UNICODE). Первоначально, для файловых систем первостепенное значение имело увеличение скорости доступа к данным и минимизация объема хранимой служебной информации.
Рисунок
4 Физическая организация
файла
а - непрерывное размещение;
б - связанный список
блоков;
в - связанный список
индексов; г - перечень
номеров блоков
Популярным способом, используемым, например, в файловой системе FAT операционной системы MS-DOS, является использование связанного списка индексов. С каждым блоком связывается некоторый элемент - индекс. Индексы располагаются в отдельной области диска (в MS-DOS это таблица FAT). Если некоторый блок распределен некоторому файлу, то индекс этого блока содержит номер следующего блока данного файла. При такой физической организации сохраняются все достоинства предыдущего способа, но снимаются оба отмеченных недостатка: во-первых, для доступа к произвольному месту файла достаточно прочитать только блок индексов, отсчитать нужное количество блоков файла по цепочке и определить номер нужного блока, и, во-вторых, данные файла занимают блок целиком, а значит имеют объем, равный степени двойки.
В
заключение рассмотрим задание физического
расположения файла путем простого перечисления
номеров блоков, занимаемых этим файлом.
ОС UNIX использует вариант данного способа,
позволяющий обеспечить фиксированную
длину адреса, независимо от размера файла.
Для хранения адреса файла выделено 13
полей. Если размер файла меньше или равен
10 блокам, то номера этих блоков непосредственно
перечислены в первых десяти полях адреса.
Если размер файла больше 10 блоков, то
следующее 11-е поле содержит адрес блока,
в котором могут быть расположены еще
128 номеров следующих блоков файла. Если
файл больше, чем 10+128 блоков, то используется
12-е поле, в котором находится номер блока,
содержащего 128 номеров блоков, которые
содержат по 128 номеров блоков данного
файла. И, наконец, если файл больше 10+128+128(128,
то используется последнее 13-е поле для
тройной косвенной адресации, что позволяет
задать адрес файла, имеющего размер максимум
10+ 128 + 128(128 + 128(128(128.
2.Общие понятия файловой системы
2.1Общая модель файловой системы
Функционирование любой файловой системы можно представить многоуровневой моделью (рисунок 5), в которой каждый уровень предоставляет некоторый интерфейс (набор функций) вышележащему уровню, а сам, в свою очередь, для выполнения своей работы использует интерфейс (обращается с набором запросов) нижележащего уровня.
Задачей символьного уровня является определение по символьному имени файла его уникального имени. В файловых системах, в которых каждый файл может иметь только одно символьное имя (например, MS-DOS), этот уровень отсутствует, так как символьное имя, присвоенное файлу пользователем, является одновременно уникальным и может быть использовано операционной системой.
Рисунок 5 Общая модель файловой системы
В
других файловых системах, в которых
один и тот же файл может иметь
несколько символьных имен, на данном
уровне просматривается цепочка
каталогов для определения
На следующем, базовом уровне по уникальному имени файла определяются его характеристики: права доступа, адрес, размер и другие. Как уже было сказано, характеристики файла могут входить в состав каталога или храниться в отдельных таблицах. При открытии файла его характеристики перемещаются с диска в оперативную память, чтобы уменьшить среднее время доступа к файлу. В некоторых файловых системах (например, HPFS) при открытии файла вместе с его характеристиками в оперативную память перемещаются несколько первых блоков файла, содержащих данные.
Следующим этапом реализации запроса к файлу является проверка прав доступа к нему. Для этого сравниваются полномочия пользователя или процесса, выдавших запрос, со списком разрешенных видов доступа к данному файлу. Если запрашиваемый вид доступа разрешен, то выполнение запроса продолжается, если нет, то выдается сообщение о нарушении прав доступа.
На логическом уровне определяются координаты запрашиваемой логической записи в файле, то есть требуется определить, на каком расстоянии (в байтах) от начала файла находится требуемая логическая запись. При этом абстрагируются от физического расположения файла, он представляется в виде непрерывной последовательности байт. Алгоритм работы данного уровня зависит от логической организации файла. Например, если файл организован как последовательность логических записей фиксированной длины l, то n-ая логическая запись имеет смещение l((n-1) байт. Для определения координат логической записи в файле с индексно-последовательной организацией выполняется чтение таблицы индексов (ключей), в которой непосредственно указывается адрес логической записи.
Рисунок 6 Функции физического уровня файловой системы
Исходные
данные:
V - размер блока
N - номер первого блока файла
S - смещение логической записи в файле
Требуется определить на физическом уровне:
n
- номер блока, содержащего
s - смещение логической записи в пределах блока
n
= N + [S/V], где [S/V] - целая часть числа
S/V
s = R [S/V] - дробная часть числа S/V
На физическом уровне файловая система определяет номер физического блока, который содержит требуемую логическую запись, и смещение логической записи в физическом блоке. Для решения этой задачи используются результаты работы логического уровня - смещение логической записи в файле, адрес файла на внешнем устройстве, а также сведения о физической организации файла, включая размер блока. Рисунок 6 иллюстрирует работу физического уровня для простейшей физической организации файла в виде непрерывной последовательности блоков. Подчеркнем, что задача физического уровня решается независимо от того, как был логически организован файл.
После определения номера физического блока, файловая система обращается к системе ввода-вывода для выполнения операции обмена с внешним устройством. В ответ на этот запрос в буфер файловой системы будет передан нужный блок, в котором на основании полученного при работе физического уровня смещения выбирается требуемая логическая запись.
2.2 Современные архитектуры файловых систем
Разработчики новых операционных систем стремятся обеспечить пользователя возможностью работать сразу с несколькими файловыми системами. В новом понимании файловая система состоит из многих составляющих, в число которых входят и файловые системы в традиционном понимании.
Новая
файловая система имеет многоуровневую
структуру (рисунок 7), на верхнем уровне
которой располагается так называемый
переключатель файловых систем (в Windows
95, например, такой переключатель называется
устанавливаемым диспетчером файловой
системы - installable filesystem manager, IFS). Он обеспечивает
интерфейс между запросами приложения
и конкретной файловой системой, к которой
обращается это приложение. Переключатель
файловых систем преобразует запросы
в формат, воспринимаемый следующим уровнем
- уровнем файловых систем.
Рисунок 7 Архитектура современной файловой системы
Каждый компонент уровня файловых систем выполнен в виде драйвера соответствующей файловой системы и поддерживает определенную организацию файловой системы. Переключатель является единственным модулем, который может обращаться к драйверу файловой системы. Приложение не может обращаться к нему напрямую. Драйвер файловой системы может быть написан в виде реентерабельного кода, что позволяет сразу нескольким приложениям выполнять операции с файлами. Каждый драйвер файловой системы в процессе собственной инициализации регистрируется у переключателя, передавая ему таблицу точек входа, которые будут использоваться при последующих обращениях к файловой системе.
Для выполнения своих функций драйверы файловых систем обращаются к подсистеме ввода-вывода, образующей следующий слой файловой системы новой архитектуры. Подсистема ввода вывода - это составная часть файловой системы, которая отвечает за загрузку, инициализацию и управление всеми модулями низших уровней файловой системы. Обычно эти модули представляют собой драйверы портов, которые непосредственно занимаются работой с аппаратными средствами. Кроме этого подсистема ввода-вывода обеспечивает некоторый сервис драйверам файловой системы, что позволяет им осуществлять запросы к конкретным устройствам. Подсистема ввода-вывода должна постоянно присутствовать в памяти и организовывать совместную работу иерархии драйверов устройств. В эту иерархию могут входить драйверы устройств определенного типа (драйверы жестких дисков или накопителей на лентах), драйверы, поддерживаемые поставщиками (такие драйверы перехватывают запросы к блочным устройствам и могут частично изменить поведение существующего драйвера этого устройства, например, зашифровать данные), драйверы портов, которые управляют конкретными адаптерами.
Большое
число уровней архитектуры
В
ходе инициализации драйвер
Внесенная
в цепочку вызова процедура драйвера
может решить передать запрос дальше
- в измененном или в неизмененном
виде - на следующий уровень, или, если
это возможно, процедура может
удовлетворить запрос, не передавая
его дальше по цепочке.
3. Виды файловых систем
3.1 Файловая система FAT
Большинство существующих на сегодняшний день файловых систем построены на основе таблицы размещения файлов (File Allocation Table - FAT), которая содержит дорожки данных в каждом кластере на диске. Существует несколько типов файловой системы FAT - FAT 12, FAT 16 и FAT 32. Они отличаются количеством цифр, используемых в таблице размещения файлов. Другими словами, в FAT 32 используется 32-разрядное число для хранения дорожки данных в каждом кластере, в FAT 16 - 16-разрядное число и т.д. В настоящее время существуют следующие типы файловой системы FAT:
Файловые системы
FAT 12 и FAT 16 изначально применяются в
DOS и Windows и поддерживаются практически
всеми известными на сегодняшний
день операционными системами. Большинство
персональных компьютеров поставляется
с жесткими дисками, на которых установлена
одна из файловых систем FAT.
Файловая система FAT 32 поддерживается
операционной системой Windows 95 и более поздними
версиями, а также Windows 2000.
Для обеспечения пользовательским приложениям
доступа к файлам независимо от типа используемого
диска в операционной системе предусмотрено
несколько структур. Эти структуры поддерживаются
системами Windows и представлены ниже в порядке
расположения на диске:
Информация о
каждом разделе сохраняется в загрузочном
секторе раздела (или логического диска)
в начале каждого раздела. Существует
также основная таблица списка разделов,
помещенная в загрузочный сектор главного
раздела.
Загрузочный сектор
главного раздела (или главная загрузочная
запись (Master Boot Record - MBR)) является первым
сектором на жестком диске (цилиндр 0, головка
0, сектор 1) и состоит из двух элементов.