Главная / 2ИСиП / Лекция № 5. ФАЙЛОВЫЕ СИСТЕМЫ

Лекция № 5. ФАЙЛОВЫЕ СИСТЕМЫ

Часть операционной системы, работающая с файлами, называется файловой системой. Она предоставляет пользователю следующие возможности.

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

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

         Операционные системы персональных компьютеров MS DOC и Windows имели файловую систему FAT (File Allocation Table – таблица размещения файлов). Разработка новой операционной системы Windows NT привела к появлению новой файловой системы, названной NTFS (New Technology File System – файловая система новой технологии).

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

Эта файловая система получила свое название благодаря простой таблице, в которой указываются:

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

В файловой системе FAT дисковое пространство любого логического диска делится на две части: системную область и область данных.

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

  • загрузочной записи (Boot Record, BR);
  • зарезервированных секторов (Reserved Sectors, ResSec);
  • таблицы размещения файлов (File Allocation Table, FAT);
  • корневого каталога (Root Directory, RDir).

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

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

Каждый файл занимает целое число кластеров. Последний кластер при этом может быть задействован не полностью, что при большом размере кластера может приводить к заметной потере дискового пространства. На дискетах кластер занимает один или два сектора, а на жестких дисках его размер его размер зависит от объема раздела. В таблице FAT кластеры, принадлежащие одному файлу (или файлу-каталогу), связываются в цепочки. Для указания номера кластера в файловой системе FAT16 используется 16-ти разрядное слово, следовательно, можно иметь до  кластеров (с номерами от 0 до 65 535).

В Windows NT/2000/XP разделы файловой системы FAT могут иметь размер до 4097 Мбайт. В этом случае кластер будет объединять уже 128 секторов.

Логическое разбиение области данных на кластеры как совокупности секторов взамен использования одиночных секторов имеет следующий смысл:

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

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

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

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

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

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

При проектировании NTFS особое внимание было уделено надежности, механизмам ограничения доступа к файлам и каталогам, расширенной функциональности, поддержке дисков большого объема и пр. Одним из основных понятий, используемых при работе с NTFS, является понятие тома (volume). Том означает логическое дисковое пространство, которое может быть воспринято как логический диск, то есть том может иметь буквенный идентификатор диска.

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

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

Файловая система NTFS поддерживает объектную модель безопасности операционной системы Windows NT и рассматривает все тома, каталоги и файлы как самостоятельные объекты. Система NTFS обеспечивает безопасность на уровне файлов и каталогов. Это означает, что разрешения доступа к томам, каталогам и файлам могут зависеть от учетной записи пользователя и тех групп, к которым он принадлежит.

Система NTFS создавалась с расчетом на работу с большими дисками. Она достаточно хорошо проявляет себя при работе с томами объемом 100 Гбайт и выше. Чем больше объем диска и чем больше на нем файлов, тем больший выигрыш мы получаем, используя NTFS вместо FAT16 или FAT32. Максимально возможные размеры тома (и размеры файла) составляют 16 Эбайт (один экзабайт равен  байт, или приблизительно 16 000 млрд. гигабайт), в то время как при работе под Windows NT/2000/XP диск с FAT16 не может иметь размер более 4 Гбайт, а с FAT32 – 32 Гбайт.

Количество файлов в корневом и некорневом каталогах (в NTFS они называются «folders» – «папками») не ограничено. Поскольку в основу структуры папок заложена эффективная структура данных, называемая «двоичным деревом», время поиска файлов в NTFS не связано линейной зависимостью с их количеством (в отличие от систем на базе FAT). Наконец, помимо немыслимых размеров томов и файлов, система NTFS также обладает встроенными средствами сжатия, что позволяет экономить дисковое пространство и размещать в нем больше файлов. Сжатие можно применять, как к отдельным файлам, так и целым папкам и даже томам.

Как и многие другие файловые системы, NTFS делит все полезное дисковое пространство тома на кластеры – блоки данных, адресуемые как единицы данных. Файловая система NTFS поддерживает размеры кластеров от 512 байт до 64 Кбайт; неким стандартом считается кластер размером 2 или 4 Кбайт. При увеличении размера кластера свыше 4 Кбайт становится невозможным сжимать файлы и папки.

Все дисковое пространство в NTFS делится на две неравные части. Первые 12 % диска отводятся под так называемую зону MFT (Master File Table – главная таблица файлов). Эта зона предназначена для таблицы MFT (с учетом ее будущего роста), представляющей собой специальный файл со служебной информацией, позволяющей определять местонахождение всех остальных файлов. Запись каких-либо данных в зону MFT невозможна – она всегда остается пустой, чтобы при росте MFT по возможности не было фрагментации. Остальные 88 % тома представляют собой обычное пространство для хранения файлов.

Таблица MFT поделена на записи фиксированного размера в 1 Кбайт, и каждая запись соответствует какому-либо файлу. Первые 16 файлов носят служебный характер и недоступны через интерфейс операционной системы – они называются метафайлами, причем самый первый метафайл – это сам MFT. Часть диска с метафайлами – единственная часть диска, имеющая строго фиксированное положение. Копия же 16 записей таблицы MFT хранится в середине тома – для надежности, поскольку они очень важны.