Организация файловой системы
Файловая система – это система управления данными. Она предназначена для хранения данных на дисках и обеспечения доступа к ним. Все современные дисковые ОС обеспечивают создание файловой системы.
Каждый файл занимает некоторое количество блоков дисковой памяти – секторов. Чтобы компьютер мог найти на диске тот или иной файл, ему должно быть известно, где он расположен, то есть нужен его
адрес. Проще всего было бы записать адрес файла в виде номера поверхности диска, номера дорожки и номера сектора. Однако ввиду того, что у каждой поверхности есть своя головка для чтения-записи и эти головки перемещаются не порознь, а одновременно, вместо понятия дорожки используют понятие цилиндра (см. рисунок 3.19). Цилиндр – это совокупность всех дорожек, имеющих одинаковые номера, то есть равноудаленные от оси вращения. Поэтому место положения файла на жестком диске определяется номером цилиндра, номером поверхности и номером сектора.
Если на компьютере применена файловая система FAT, все дисковое пространство условно разделяется на четыре области:
1. Стартовый сектор.
2. FAT-таблицы (File Allocate Table) – таблицы размещения файлов.
3. Каталог.
4. Область данных.
Стартовый сектор содержит необходимые ОС сведения для работы с диском. Под него выделяется первый сектор диска на дорожке 00 поверхности 0. В стартовый сектор записываются следующие данные:
– идентификатор (имя) системы, если на диске записана ОС;
– размер секторов диска в байтах;
– количество копий FAT (обычно 2);
– количество элементов в корневом каталоге;
– количество секторов на диске;
– указатель типа магнитного носителя информации;
– количество секторов, занимаемых FAT;
– количество секторов на дорожку;
– количество поверхностей;
– программа блока начальной загрузки операционной системы.
При выполнении операций чтения-записи данных обмен между дисковыми накопителями и памятью компьютера осуществляется блоками. Минимальный объем блока равен одному сектору на диске. Обычный размер сектора равен 512 байт. Так как размер FAT-таблицы ограничен, то для дисков, размер которых больше 32 Мб, обеспечить адресацию к каждому отдельному сектору невозможно. Поэтому группы секторов условно объединяются в кластеры. Кластер (особый логический блок) – наименьшая единица адресации к данным. Его размер не фиксирован и зависит от емкости диска. Файлу, записанному на диск, выделяется целое число кластеров, причем кластеры могут находиться в различных местах диска. Файлы, хранящиеся в различных кластерах, называются фрагментированными, а файлы, расположенные в смежных кластерах, – непрерывными. Данные о том, в каком кластере диска начинается тот или иной файл, содержатся в FAT-таблицах.
Часто кластеры бывают не полностью заполнены, и потому потери могут составить 25 %– 40 % полной емкости диска. Чтобы предотвратить потери, желательно иметь небольшой размер кластеров, однако это приводит к увеличению количества адресов, что, в свою очередь, требует увеличения количества разрядов в FAT.
Операционные системы MS-DOS, OS/2, Wndows 95, Windows NT реализуют шестнадцатиразрядные поля в таблицах размещения файлов. Такая файловая система называется FAT 16. Она позволяет разместить в FAT-таблицах не более 216 = 65536 записей о местоположении данных. В связи с этим ограничением указанные операционные системы не позволяют работать с жесткими дисками размером более 2 Гбайт.
Операционные системы Windows 98/2000 и выше обеспечивают более совершенную файловую систему – FAT 32 с 32-разрядными полями в таблицах размещения файлов.
FAT представляет собой мини-образ диска, куда включен каждый его кластер. Для доступа к фрагменту файла в системе FAT16 и FAT32 приходится обращаться к соответствующей частичке FAT. Если файл, к примеру, расположен в трех фрагментах − в начале диска, в середине и в конце, то в системе FAT нам придется обратиться к фрагменту FAT также в его начале, в середине и в конце. В системе FAT16, где максимальный размер области FAT составляет 128 кбайт, это не составит проблемы: вся область FAT просто хранится в памяти или же считывается с диска целиком за один проход и буферизируется. FAT32 же, напротив, имеет типичный размер области FAT порядка сотен килобайт, а на больших дисках − даже несколько мегабайт. Если файл расположен в разных частях диска, это вынуждает систему совершать движения головок винчестера столько раз, сколько групп фрагментов в разных областях имеет файл, а это очень и очень сильно замедляет процесс поиска фрагментов файла.
Корневой каталог создает сама ОС в процессе операции форматирования диска. Файл корневого каталога (файл-каталог) состоит из записей, содержащих сведения о файлах, хранящихся на диске. Например в FAT-системе каждая запись каталога занимает 32 байта и хранит:
- имя файла (8 байт);
- расширение имени (3 байта);
- двоичный код атрибутов файла (1 байт);
- резервное поле (10 байт);
- код времени создания файла (2 байта);
- код даты создания файла (2 байта);
- номер первого кластера, занимаемого файлом – точка входа в FAT (2 байта);
- размер файла (4 байта).
Когда пользователь обращается к файлу, указывая операционной системе его имя, то ОС, прежде чем выполнить операцию с файлом, обращается к файлу-каталогу, находит в нем запись, соответствующую указанному имени файла, определяет местоположение секторов, занимаемых файлом, и только после этого выполняет заданные пользователем действия.
Область данных, которая располагается вслед за корневым каталогом, занимает все остальное пространство на диске.
Операционная система Windows ХР реализуют файловую систему NTFS. Это очень экономная система. Размер кластеров в ней разумно минимален − обычно это 4 кб. Как известно, система сильнее всего фрагментирует файлы, когда свободное место кончается, когда приходится использовать мелкие дырки, оставшиеся от других файлов. Тут возникает первое свойство NTFS, которое прямо способствует серьезной фрагментации.
Диск NTFS условно делится на две части. Первые 12 % диска отводятся под так называемую MFT (Master File Table − общая таблица файлов) зону − пространство, в которое растет метафайл MFT. Запись каких-либо данных в эту область невозможна. MFT-зона всегда держится пустой. Это делается для того, чтобы самый главный, служебный файл (MFT) не фрагментировался при своем росте. Остальные 88 % диска представляют собой обычное пространство для хранения файлов.
Файловая система NTFS представляет собой выдающееся достижение структуризации: каждый элемент системы представляет собой файл, даже служебная информация. Самый главный файл MFT представляет собой централизованный каталог всех остальных файлов диска и, как не парадоксально, себя самого. MFT поделен на записи фиксированного размера (обычно 1 кбайт), и каждая запись соответствует какому либо файлу (в общем смысле этого слова). Первые 16 файлов носят служебный характер и недоступны операционной системе. Они называются метафайлами, причем первый метафайл − сам MFT. Эти первые 16 элементов MFT - единственная часть диска, имеющая фиксированное положение. Интересно, что вторая копия первых трех записей, для надежности - они очень важны - хранится ровно посередине диска. Остальной MFT-файл может располагаться, как и любой другой файл, в произвольных местах диска - восстановить его положение можно с помощью его самого, «зацепившись» за самую основу - за первый элемент MFT.
В данной заключительной части «одной строчкой» собраны ключевые особенности быстродействия этих трех файловых систем.
Достоинства FAT :
- для эффективной работы требуется немного оперативной памяти;
- быстрая работа с малыми и средними каталогами;
- диск совершает в среднем меньшее количество движений головок (в сравнении с NTFS);
- эффективная работа на медленных дисках.
Недостатки FAT:
- катастрофическая потеря быстродействия с увеличением фрагментации, особенно для больших дисков (только FAT32);
- сложности с произвольным доступом к большим (скажем, 10 % и более от размера диска) файлам;
- очень медленная работа с каталогами, содержащими большое количество файлов.
Достоинства NTFS :
- фрагментация файлов не имеет практически никаких последствий для самой файловой системы - работа фрагментированной системы ухудшается только с точки зрения доступа к самим данным файлов;
- сложность структуры каталогов и число файлов в одном каталоге также не чинит особых препятствий быстродействию;
- быстрый доступ к произвольному фрагменту файла (например, редактирование больших .wav файлов);
- очень быстрый доступ к маленьким файлам (несколько сотен байт) - весь файл находится в том же месте, где и системные данные (запись MFT).
Недостатки NTFS:
- существенные требования к памяти системы (64 Мбайт - абсолютный минимум, лучше больше);
- медленные диски сильно снижают быстродействие NTFS;
- диск, долго работающий в заполненном на 80 % - 90 % состоянии, будет показывать крайне низкое быстродействие. Хотелось бы еще раз подчеркнуть, что на практике основной фактор, от которого зависит быстродействие файловой системы - это, как ни странно, объем памяти машины. Системы с памятью 64-96 Мбайт - некий рубеж, на котором быстродействие NTFS и FAT32 примерно эквивалентно. Обратите внимание также на сложность организации данных на вашей машине. Если вы не используете ничего, кроме простейших приложений и самой операционной системы, может случиться так, что FAT32 сможет показать более высокое быстродействие и на машинах с большим количеством памяти.
В новой версии операционной системы Windows Vista реализуется файловая система WinFS (Windows File System), которая, по словам вице-президента корпорации Microsoft, не заменит собой нынешнюю файловую систему NTFS, а дополнят ее. WinFS будет строиться поверх NTFS, и NTFS станет частью новой файловой системы. WinFS будет состоять из трех основных компонентов: NTFS, реляционной базы данных и базы данных на основе XML. Все вместе это позволит создать систему, не зависящую от конкретных приложений.
При работе с файловой системой пользователь не использует табличную адресацию файлов. Ему предоставляется логическая древовидная (иерархическая) структура диска. В вершине этой структуры находится корневой каталог. Ветки дерева образуют подкаталоги, которые создают или удаляют сами пользователи.
Дата добавления: 2015-08-08; просмотров: 2546;