Файловая система

Автор работы: Пользователь скрыл имя, 22 Ноября 2011 в 22:20, реферат

Краткое описание

Файловая система (англ. file system) — это часть операционной системы, назначение которой состоит в том, чтобы обеспечить пользователю удобный интерфейс при работе с данными, хранящимися на диске, и обеспечить совместное использование файлов несколькими пользователями и процессами.

Содержание

Понятие файловой системы 1
Типы файлов 3
Обычные файлы
Специальные файлы
Каталоги
Иерархия каталогов 6
Классификация Ф.С. 8
Задачи Ф.С. 9
Логическая организация файла 9
Физическая организация файла адрес 10
Права доступа к файлу 12
Кэширования файла 13
Общая модель файловой системы 14
Структура Ф.С. 15
Монтируемые Ф.С. 17
Интерфейс Ф.С. 18
Современные архитектуры Ф.С . 20
Список литературы 22

Вложенные файлы: 1 файл

Файловая система.docx

— 108.85 Кб (Скачать файл)

Следующий способ физической организации - размещение в  виде связанного списка блоков дисковой памяти (рисунок 1.1,б ). При таком способе в начале каждого блока содержится указатель на следующий блок. В этом случае адрес файла также может быть задан одним числом - номером первого блока. В отличие от предыдущего способа, каждый блок может быть присоединен в цепочку какого-либо файла, следовательно фрагментация отсутствует. Файл может изменяться во время своего существования, наращивая число блоков. Недостатком является сложность реализации доступа к произвольно заданному месту файла: для того, чтобы прочитать пятый по порядку блок файла, необходимо последовательно прочитать четыре первых блока, прослеживая цепочку номеров блоков. Кроме того, при этом способе количество данных файла, содержащихся в одном блоке, не равно степени двойки (одно слово израсходовано на номер следующего блока), а многие программы читают данные блоками, размер которых равен степени двойки.

Рис. 1.1. Физическая организация файла  
а - непрерывное размещение; б - связанный список блоков;  
в - связанный список индексов; г - перечень номеров блоков

Популярным способом, используемым, например, в файловой системе FAT операционной системы MS-DOS, является использование связанного списка индексов. С каждым блоком связывается некоторый  элемент - индекс. Индексы располагаются  в отдельной области диска (в MS-DOS это таблица FAT). Если некоторый блок распределен некоторому файлу, то индекс этого блока содержит номер следующего блока данного файла. При такой  физической организации сохраняются  все достоинства предыдущего  способа, но снимаются оба отмеченных недостатка: во-первых, для доступа  к произвольному месту файла  достаточно прочитать только блок индексов, отсчитать нужное количество блоков файла по цепочке и определить номер нужного блока, и, во-вторых, данные файла занимают блок целиком, а значит имеют объем, равный степени двойки.

Права доступа к файлу

Определить права  доступа к файлу - значит определить для каждого пользователя набор  операций, которые он может применить  к данному файлу. В разных файловых системах может быть определен свой список дифференцируемых операций доступа. Этот список может включать следующие  операции:

  • создание файла,
  • уничтожение файла,
  • открытие файла,
  • закрытие файла,
  • чтение файла,
  • запись в файл,
  • дополнение файла,
  • поиск в файле,
  • получение атрибутов файла,
  • установление новых значений атрибутов,
  • переименование,
  • выполнение файла,
  • чтение каталога,

и другие операции с файлами и каталогами.

В самом общем  случае права доступа могут быть описаны матрицей прав доступа, в  которой столбцы соответствуют  всем файлам системы, строки - всем пользователям, а на пересечении строк и столбцов указываются разрешенные операции (рисунок 1.2). В некоторых системах пользователи могут быть разделены на отдельные категории. Для всех пользователей одной категории определяются единые права доступа. Например, в системе UNIX все пользователи подразделяются на три категории: владельца файла, членов его группы и всех остальных.

Рис. 1.2. Матрица прав доступа

Различают два  основных подхода к определению  прав доступа:

  • избирательный доступ, когда для каждого файла и каждого пользователя сам владелец может определить допустимые операции;
  • мандатный подход, когда система наделяет пользователя определенными правами по отношению к каждому разделяемому ресурсу (в данном случае файлу) в зависимости от того, к какой группе пользователь отнесен.

Кэширование диска

В некоторых  файловых системах запросы к внешним  устройствам, в которых адресация  осуществляется блоками (диски, ленты), перехватываются промежуточным  программным слоем-подсистемой буферизации. Подсистема буферизации представляет собой буферный пул, располагающийся  в оперативной памяти, и комплекс программ, управляющих этим пулом. Каждый буфер пула имеет размер, равный одному блоку. При поступлении запроса  на чтение некоторого блока подсистема буферизации просматривает свой буферный пул и, если находит требуемый  блок, то копирует его в буфер  запрашивающего процесса. Операция ввода-вывода считается выполненной, хотя физического  обмена с устройством не происходило. Очевиден выигрыш во времени доступа  к файлу. Если же нужный блок в буферном пуле отсутствует, то он считывается  с устройства и одновременно с  передачей запрашивающему процессу копируется в один из буферов подсистемы буферизации. При отсутствии свободного буфера на диск вытесняется наименее используемая информация. Таким образом, подсистема буферизации работает по принципу кэш-памяти.

 

Общая модель файловой системы

Функционирование  любой файловой системы можно  представить многоуровневой моделью (рисунок 1.3), в которой каждый уровень предоставляет некоторый интерфейс (набор функций) вышележащему уровню, а сам, в свою очередь, для выполнения своей работы использует интерфейс (обращается с набором запросов) нижележащего уровня.

Рис. 1.3. Общая модель файловой системы

Задачей символьного  уровня является определение по символьному  имени файла его уникального  имени. В файловых системах, в которых  каждый файл может иметь только одно символьное имя (например, MS-DOS), этот уровень  отсутствует, так как символьное имя, присвоенное файлу пользователем, является одновременно уникальным и  может быть использовано операционной системой. В других файловых системах, в которых один и тот же файл может иметь несколько символьных имен, на данном уровне просматривается  цепочка каталогов для определения  уникального имени файла. В файловой системе UNIX, например, уникальным именем является номер индексного дескриптора  файла (i-node).

На следующем, базовом уровне по уникальному имени  файла определяются его характеристики: права доступа, адрес, размер и другие. Как уже было сказано, характеристики файла могут входить в состав каталога или храниться в отдельных  таблицах. При открытии файла его  характеристики перемещаются с диска  в оперативную память, чтобы уменьшить  среднее время доступа к файлу. В некоторых файловых системах (например, HPFS) при открытии файла вместе с его характеристиками в оперативную память перемещаются несколько первых блоков файла, содержащих данные.

Следующим этапом реализации запроса к файлу является проверка прав доступа к нему. Для  этого сравниваются полномочия пользователя или процесса, выдавших запрос, со списком  разрешенных видов доступа к  данному файлу. Если запрашиваемый  вид доступа разрешен, то выполнение запроса продолжается, если нет, то выдается сообщение о нарушении  прав доступа.

Структура файловой системы

Файловая система  обычно размещается на дисках или  других устройствах внешней памяти, имеющих блочную структуру. Кроме  блоков, сохраняющих каталоги и файлы, во внешней памяти поддерживается еще  несколько служебных областей.

В мире UNIX существует несколько разных видов файловых систем со своей структурой внешней  памяти. Наиболее известны традиционная файловая система UNIX System V (s5) и файловая система семейства UNIX BSD (ufs). Файловая система s5 состоит из четырех секций (рисунок 1.4,a). В файловой системе ufs на логическом диске (разделе реального диска) находится последовательность секций файловой системы (рисунок 1.4,b).

Рис. 1.4. Структура внешней памяти файловых систем s5 и ufs  

Суть и назначение каждой области диска.

  • Boot-блок содержит программу раскрутки, которая служит для первоначального запуска ОС UNIX. В файловых системах s5 реально используется boot-блок только корневой файловой системы. В дополнительных файловых системах эта область присутствует, но не используется.
  • Суперблок - это наиболее ответственная область файловой системы, содержащая информацию, которая необходима для работы с файловой системой в целом. Суперблок содержит список свободных блоков и свободные i-узлы (information nodes - информационные узлы). В файловых системах ufs для повышения устойчивости поддерживается несколько копий суперблока (как видно из рисунка 2.2,b, по одной копии на группу цилиндров). Каждая копия суперблока имеет размер 8196 байт, и только одна копия суперблока используется при монтировании файловой системы . Однако, если при монтировании устанавливается, что первичная копия суперблока повреждена или не удовлетворяет критериям целостности информации, используется резервная копия.
  • Блок группы цилиндров содержит число i-узлов, специфицированных в списке i-узлов для данной группы цилиндров, и число блоков данных, которые связаны с этими i-узлами. Размер блока группы цилиндров зависит от размера файловой системы. Для повышения эффективности файловая система ufs старается размещать i-узлы и блоки данных в одной и той же группе цилиндров.
  • Список i-узлов (ilist) содержит список i-узлов, соответствующих файлам данной файловой системы. Максимальное число файлов, которые могут быть созданы в файловой системе, определяется числом доступных i-узлов. В i-узле хранится информация, описывающая файл: режимы доступа к файлу, время создания и последней модификации, идентификатор пользователя и идентификатор группы создателя файла, описание блочной структуры файла и т.д.
  • Блоки данных - в этой части файловой системы хранятся реальные данные файлов. В случае файловой системы ufs все блоки данных одного файла пытаются разместить в одной группе цилиндров. Размер блока данных определяется при форматировании файловой системы командой mkfs и может быть установлен в 512, 1024, 2048, 4096 или 8192 байтов.

 

Монтируемые файловые системы

Файлы любой  файловой системы становятся доступными только после "монтирования" этой файловой системы. Файлы "не смонтированной" файловой системы не являются видимыми операционной системой.

Для монтирования файловой системы используется системный  вызов mount. Монтирование файловой системы означает следующее. В имеющемся к моменту монтирования дереве каталогов и файлов должен иметься листовой узел - пустой каталог (в терминологии UNIX такой каталог, используемый для монтирования файловой системы, называется directory mount point - точка монтирования). В любой файловой системе имеется корневой каталог. Во время выполнения системного вызова mount корневой каталог монтируемой файловой системы совмещается с каталогом - точкой монтирования, в результате чего образуется новая иерархия с полными именами каталогов и файлов.

Смонтированная  файловая система впоследствии может  быть отсоединена от общей иерархии с использованием системного вызова umount. Для успешного выполнения этого системного вызова требуется, чтобы отсоединяемая файловая система к этому моменту не находилась в использовании (т.е. ни один файл из этой файловой системы не был открыт). Корневая файловая система всегда является смонтированной, и к ней не применим системный вызов umount.

 

Интерфейс с файловой системой

Ядро ОС UNIX поддерживает для работы с файлами несколько  системных вызовов. Среди них  наиболее важными являются open, creat, read, write, lseek и close.

Важно отметить, что хотя внутри подсистемы управления файлами обычный файл представляется в виде набора блоков внешней памяти, для пользователей обеспечивается представление файла в виде линейной последовательности байтов. Такое представление  позволяет использовать абстракцию файла при работе в внешними устройствами, при организации межпроцессных  взаимодействий и т.д.

Файл в системных  вызовах, обеспечивающих реальный доступ к данным, идентифицируется своим  дескриптором (целым значением). Дескриптор файла выдается системными вызовами open (открыть файл) и creat (создать файл). Основным параметром операций открытия и создания файла является полное или относительное имя файла. Кроме того, при открытии файла указывается также режим открытия (только чтение, только запись, запись и чтение и т.д.) и характеристика, определяющая возможности доступа к файлу:

open(pathname, oflag [,mode])

Одним из признаков, которые могут участвовать в  параметре oflag, является признак O_CREAT, наличие которого указывает на необходимость создания файла, если при выполнении системного вызова open файл с указанным именем не существует (параметр mode имеет смысл только при наличии этого признака). Тем не менее по историческим причинам и для обеспечения совместимости с предыдущими версиями ОС UNIX отдельно поддерживается системный вызов creat, выполняющий практически те же функции.

Информация о работе Файловая система