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


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

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

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

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

Точные правила именования файлов варьируются от системы к системе, но все современные операционные системы поддерживают использование в качестве имен файлов 8-символьные текстовые стро­ки. Так, книга, страница, карандаш являются допустимыми именами файлов. Часто в именах файлов также разрешается использова­ние цифр и специальных символов, поэтому могут применяться и такие имена файлов, как 2 (лучше _2), срочный!  Многие файловые системы поддерживают имена файлов длиной до 255 сим­волов.

В некоторых ФС различаются прописные и строчные символы, в других, таких как MS-DOS, нет. Операционные системы Windows 95 и Windows 98 используют файловую систему MS-DOS и наследуют многие ее свойства, включая именование файлов. Операционные системы Windows NT и Windows 2000 также поддерживают файловую систему MS-DOS и наследуют ее свойства. Однако у них имеется своя файловая система NTFS, обладающая отличными свойствами.

Во многих ОС имя файла может состоять из двух частей, разде­ленных точкой, например progr.exe. Часть имени файла после точки называется расширением файла и обычно означает тип файла. Так, в MS-DOS имя файла может содержать от 1 до 8 символов плюс через точку расширение от 0 до 3 символов. В некоторых ОС, например в UNIX, расширения файлов являются просто соглашениями, и ОС не заставляет пользователя их строго придерживаться. Так, файл ffle.txt может быть текстовым файлом, но это скорее памятка пользовате­лю, а не руководство к действию для операционной системы. Сис­тема Windows, напротив, знает о расширениях файлов и назначает каждому расширению определенное значение. Пользователи или процессы могут регистрировать расширения в ОС, указывая програм­му, создающую данное расширение. При двойном щелчке мышью на имени файла запускается программа, назначенная этому расшире­нию, с именем файла в качестве параметра. Например, двойной щел­чок мышью на имени file.doc запускает MS Word, который открыва­ет файл file.doc.

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

При организации ФС в виде дерева каталогов требуется некото­рый способ указания файла. Для этого обычно используются два различных метода. В первом случае каждому файлу дается абсолют­ное имя пути, состоящее из имен всех каталогов от корневого до того, в котором содержится файл, и имени самого файла. Например, путь \user\abc\myfile.doc означает, что корневой каталог содержит каталог user, который, в свою очередь, содержит подкаталог abc, где находит­ся файл myfile.doc. Абсолютные имена путей всегда начинаются от корневого каталога и являются уникальными. Если первым симво­лом имени пути является разделитель, это означает, что путь абсо­лютный. Применяется и относительное имя пути. Оно используется вместе с понятием текущего каталога. Пользователь может назначить один из каталогов текущим рабочим каталогом. В этом случае все имена путей, не начинающиеся с символа разделителя, считаются относительными и отсчитываются относительно текущего каталога. Например, если текущим каталогом является \user\abc, тогда к фай­лу с абсолютным путем \user\abc\myfile.doc можно обратиться про­сто как к myfile.doc.

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

     определение физического расположения частей файла;

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

Скорость выполнения этих операций напрямую зависит от са­мой ФС. Разные файловые системы используют различные механиз­мы для реализации указанных задач и имеют свои преимущества и недостатки. ФС типа FAT (File Allocation Table) представляют собой образ носителя в миниатюре, где детализация ведется до кластерно­го уровня. Поэтому операция поиска физических координат файла при его большой фрагментации будет затруднительна. ФС FAT16 за­нимает объем 128 Кб. И это позволяет легко кэшировать ее инфор­мацию. Для FAT32 эта величина для больших дисков составит ~ 1 Мб, что еще более затрудняет поиск физических координат фрагментированного файла. Еще хуже обстоит дело с поиском свободного ме­ста для больших файлов. Приходится просматривать практически всю таблицу. Быстродействие падает. NTFS (New Technology File System) использует более компактную форму записи, что ускоряет поиск фай­ла. Операции с выделением места проходят быстрее. Ключевое пре­имущество NTFS — возможность ограничения доступа к файлам и папкам.

Важный параметр — размер кластера. Больший размер кластера гарантирует более высокую производительность за счет уменьшения самой ФС. Для NTFS увеличение кластера — болезненная процеду­ра из-за невозможности выполнить дефрагментацию, поскольку большинство таких программ не работает с кластерами, отличными от штатных 4 Кб.

 

Вопросы для самоконтроля:

1.Методы доступа к файлам: методы доступа с очередями; базисные методы доступа

2.Функции файловой системы

 

Рекомендуемая литература:

1.Системное программное обеспечение, А.В. Гордеев, А Ю. Молчанов – СПб.: Питер, 2003. – 736с.

2.Соболь Б.В., Галин А.Б., Панов Ю.В. Информатика: Учебник. – Ростов н/Д: Феникс,2005. – 448 с.