Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика_учебник.doc
Скачиваний:
412
Добавлен:
10.05.2015
Размер:
27.7 Mб
Скачать

Глава 3.3.Хранение данных. Файлы. Физическая и логическая структура файловой системы.

3.3.1. Файлы. Физическая файловая система.

Любые данные хранятся на любом носителе в виде файлов.

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

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

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

В широком смысле понятие "файловая система" включает следующие компоненты.

  • Совокупность всех файлов на диске.

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

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

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

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

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

По способу физической организациисуществует несколько различных файловых систем. Рассмотрим наиболее распространенные из них.

Файловая система FAT (File Allocations Table) – это одна из наиболее старых файловых систем для ПК, разработанная Биллом Гейтсом и Марком МакДональдом в 1977г. СистемаFAT может реализовываться на логических дискахHDD, наFDDи на других аналогичных носителях. При использовании системыFAT все пространство данного диска делится на равные последовательно расположенные области –кластеры. Как было указано ранее, существует минимальный объем данных, называемый сектором (блоком), который может быть записан на жесткий диск или прочитан с жесткого диска. Объем кластера должен составлять целое число секторов. Каждый файл может состоять из одного или из нескольких кластеров в зависимости от своего размера. Минимальный размер файла на диске – один кластер. Весь диск делится на 5 разделов - загрузочный сектор (1-й сектор 1-й дорожки), областьFAT-таблицы, область копииFAT-таблицы, область каталога, область файлов. Первые 4 раздела занимают небольшой объем и содержат системную информацию.

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

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

Каталог (корневая папка) содержит все имена файлов и подкаталогов (вложенных папок) со ссылкой на запись в FAT-таблице, указывающей на первый кластер данного файла. Кроме того, в каталоге указываются дополнительные характеристики (атрибуты) файла: дата и время создания, размер, дополнительные атрибуты (архивный, скрытый, системный, “только для чтения”).

Поскольку FAT изначально проектировалась для однопользовательской операционной системы DOS, то она не предусматривает хранения такой информации, как сведения о владельце или полномочия доступа к файлу/каталогу. Кроме того, т. к. DOS – 16-разрядная операционная система, то, соответственно, FAT – также 16-разрядная файловая система. Это означает, что максимальное количество кластеров на диске составляет 216 (примерно 64000 тыс.). Это совсем немного. Еще один недостаток FAT-системы – сильное уменьшение скорости поиска файлов, при увеличении объема носителей. Наконец, FAT не может поддерживать диски объемом более 2 ГБ.

В настоящее время FAT используется в основном для магнитных дискет (FDD).

Файловая система VFAT(VirtualFAT), реализованная в Windows 95/98 - это системаFAT, дополненная поддержкой длинных имен файлов в кодировке UNICODE (каждый символ имени кодируется 2 байтами). VFAT использует ту же самую схему распределения дискового пространства, что и файловая система FAT. В VFAT имя может быть длиной до 255 символов, в имя можно включать несколько пробелов и точек, текст после последней точки рассматривается как расширение, регистр символов в именах не различается, но сохраняется. Длинные имена по частям хранятся в специальных записях каталога. Для каждого файла и подкаталога в VFAT хранится два имени: длинное и короткое. Короткое имя генерируется файловой системой автоматически в формате 8.3 (имя из 8 символов, точка, расширение из 3-х символов).

Файловая система FAT32 - это 32-разрядная файловая система, которая пришла на сменуVFAT, сохранив основные черты и принципы организации последней. FAT32 поддерживает жесткие диски объемом до 2 терабайт. Впервые файловая система FAT32 была включена в состав ОС Windows  95 OSR 2. В FAT32 были расширены атрибуты файлов, позволяющие теперь хранить время и дату создания, модификации и последнего доступа к файлу или каталогу. ВFAT32 адрес каждого кластера стал 32 разрядным, что позволило иметь на диске до 232= 4 млрд. кластеров. ВFAT32 объем кластера должен быть не менее 4 кБ, а объем диска – не менее 512 МБ. Корневой каталог в FAT32 больше не располагается в определенном месте, вместо этого хранится указатель на начальный кластер корневого каталога. В результате снимается ранее существовавшее ограничение на число записей в корневом каталоге. Кроме того, для учета свободных кластеров, в зарезервированной области на разделе FAT32 имеется сектор, содержащий число свободных кластеров и номер самого последнего использованного кластера. Это позволяет системе при выделении следующего кластера не перечитывать заново всю таблицу размещения файла. FAT32 поддерживается в Windows 98, Windows ME, Windows 2000 и Windows XP.

Файловая система NTFS (New Technology File System) - наиболее предпочтительная файловая система при работе с ОС Windows 2000 иWindows XP.

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

NTFS является 64-разрядной файловой системой, что дает возможность иметь 264кластеров, каждый размером до 64 Кбайт. Как и в FAT размер кластера может меняться, но необязательно возрастает пропорционально размеру диска. NTFS позволяет хранить файлы размером до 16 эксабайт (264байт).

Файловая система NTFS являетсяжурналируемой– все изменения в файловой системе записываются в специальный журнал транзакций (log file), что позволяет восстанавливать файловую систему после сбоев системы.

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

Файловые системы UFS (Unix File System) – это семейство файловых систем для операционных систем UNIX. Существует много различных версий ОС UNIX, разработанных разными фирмами, соответственно существуют и различные виды UFS, в том числе 32-разрядные и 64-разрядные USF. Так же как и в других файловых системах, в UFS файл записывается в один или несколько (а может быть и в несколько сотен тысяч) кластеров. Особенностью USF является иерархическая кластерная структура файла, включающая кластеры, содержащие адреса других кластеров данного файла. Еще одной особенностью UFS является очень мощная и разветвленная система защиты файлов от несанкционированного доступа – для этого файловая система содержит большое количество атрибутов. Классическая UFS поддерживает 14-буквенные имена файлов, современные UFS позволяют создавать длинные имена (до 255 символов).

Перечислим еще несколько современных файловых систем, близких по принципам построения к NTFSиUSF.

Файловая система HPFS (High Performance File System) была разработана вместе с операционной системой OS/2. По структуре и возможностям близка к NTFS. В настоящее время используется редко.

Файловые системы Linux ext, Linux ext2, Linux ext3 (extended file system) специально разработаны под операционную системуLinux. Они обладают высокой надежностью и производительностью. Начиная сext3 файловая система становится журналируемой.

Файловая система XFS — высокопроизводительная64-разрядная журналируемая файловая система, созданная компаниейSilicon Graphicsи поддерживаемая операционными системами Linux (начиная с версии 2.4.25) и.FreeBSD. Позволяет эффективно работать с данными на RAID-массивах и других носителях очень большого объема.

Для персональных компьютеров Mac подMac OS X используются файловые системыHFS (Hierarchical File System), HFS Plus. Недавно для этих компьютеров была разработана высокопроизводительная 64- битная сетевая файловая системаXsan.

Одной из неприятностей, возникающих при работе с файловой системой, является фрагментация файлов – в процессе удаления файлов (очистки кластеров) и записи новых файлов (заполнения кластеров) неизбежно оказывается, что многие файлы состоят из кластеров, находящихся в разных частях диска. В результате сильно понижается скорость работы с диском (для чтения или записи фрагментированного файла магнитной головке необходимо последовательно перемещаться на все дорожки, содержащие кластеры этого файла). Для избежания этого необходимо периодически проводить процедуру дефрагментации диска– запускать специальную утилиту, которая собирает данные из всех кластеров каждого файла и записывает их в компактную область диска (насколько это возможно). Для эффективной работы процедуры дефрагментации необходимо, чтобы диск не был полностью занят, желательно, чтобы не менее 20 – 30% диска было свободно. Особенно это важно для файловой системыNTFS.Процедуру дефрагментации лучше проводить, не дожидаясь сильной фрагментации диска, т.к. время на эту процедуру резко возрастает с увеличением фрагментации. Для сильно фрагментированного диска процедура дефрагментации может потребовать несколько часов. Для проведения дефрагментации в состав ОСWindows входит утилита, которая так и называется Дефрагментация диска.

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