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



Содержание


Важным отличительным свойством хранения данных на внешних носителях является наличие файловой системы (см. “Носители информации” и “Память внешняя”). Благодаря такой организации пользователь получает возможность ссылаться на программы и данные не путем указания наборов из нескольких числовых координат, но гораздо более удобным способом — по имени. Реальных преимуществ от использования наглядной и практичной файловой концепции даже больше: “Представление пользователя о файловой системе как об иерархически организованном множестве информационных объектов имеет мало общего с порядком хранения файлов на диске. Файл, имеющий образ цельного, непрерывающегося набора байт, на самом деле очень часто разбросан “кусочками” по всему диску, причем это разбиение никак не связано с логической структурой файла…” 15.

Чтением и записью файлов системы занимается операционная система (см. “Операционная система”). “Программа, скрывающая истину об аппаратном обеспечении и представляющая простой список поименованных файлов, которые можно читать и записывать, и является операционной системой. …Абстракция, предлагаемая операционной системой, намного проще и удобнее в обращении, чем то, что может предложить нам непосредственно основное оборудование”16. Таким образом, принципы организации файловой системы существенно зависят от ОС. Правда, если рассмотреть проблему поглубже, то окажется, что одна и та же ОС может использовать несколько разных файловых систем (FAT и NTFS в Windows, Ext3 и Reizer в Linux и т.д.). Более того, развитая ОС содержит средства доступа к файлам других систем (например, в Linux служба Samba обеспечивает доступ к файлам Windows).

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

В зависимости от содержания информации различают файлы с программами (исполняемые) и с данными (в современной терминологии их часто называют документами). Программы создают и обрабатывают документы, поэтому в современных системах между ними существуют определенные ассоциации. Так файлы odt являются продуктом текстового редактора Open Office Writer, а ppt — презентационной системы MS PowerPoint. Система имеет средства для настройки ассоциаций между документами и программами.

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

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

Для решения возникшего затруднения файловой системе была придана иерархическая структура. Прежний каталог остался; он стал называться корневым, но в нем теперь могли храниться не только файлы, но и каталоги более низкого уровня; те, в свою очередь, помимо файлов могли содержать новые подкаталоги (subdirectory) и т.д. В пользовательской литературе по ОС Windows принято использовать термин папки, который почти совпадает с классическим понятием каталогов. Ради общности рассуждений мы не будем конкретизировать систему и переходить на терминологию Windows.

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

На рисунке a показана структура файловых систем с единым каталогом (CP/M, RT-11
и др.), на рисунке b — иерархическая структура каталогов MS-DOS (версий 2.0 и выше) и Windows, а на рисунке c — иерархия ОС семейства Unix. Принципиальное отличие двух последних рисунков заключается в том, что в системах Microsoft всегда имеет место однозначная связь между каталогом и файлом, а в Unix это необязательно: некоторые файлы (на рисунке c они закрашены серым цветом) могут одновременно принадлежать к нескольким каталогам и даже в них по-разному называться! Заметим, что граф, изображенный на рисунке b, в математике принято называть деревом, а на рисунке cсетью (см. “Графические модели”).

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

Концепция файловой системы зависит и от архитектуры ПК, в частности, принятая на компьютерах Apple организация файлов отличается от привычной нам на IBM PC.

В заключение отметим, что хотя для пользователя файл является единой конструкцией, сама ОС в процессе хранения делит его на отдельные логические блоки (кластеры). Причина чисто технологическая: системе слишком “обременительно” отслеживать состояние каждого отдельного сектора, т.к. их на современных носителях слишком много. На дискете кластер состоит из 1–2 секторов, зато на жестком диске большого объема это количество может быть гораздо больше, например, 16 секторов для 100 Гб диска (см. “Память внешняя”). Наряду с оптимизацией файловой системы применение крупных блоков записи одновременно приносит и отрицательные свойства. В частности, при “кластерном” методе сохранения небольшие файлы занимают лишь малую часть кластера, а оставшееся в блоке дисковое пространство просто не используется.

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

Методические рекомендации

Курс информатики основной школы

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

Изучение данной темы в последнее время стало еще более актуальным в связи с широким распространением пользовательской философии работы в ОС Windows. При описании действий пользователя чаще всего используется терминология “программа/документ”, причем то, что все это хранится на диске в виде файлов (одного или нескольких), просто не упоминается. В результате такого, с позволения сказать, изложения элементарное копирование документов с жесткого диска на дискету или флэш становится процедурой невероятно трудной для понимания. С позиций “принципиального пользователя” алгоритм копирования текстового файла путем загрузки в Word с последующей операцией “Сохранить как...” и указанием дискеты выглядит более естественно, чем общепринятая процедура копирования.

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

Курс информатики в старших классах

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

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

Целесообразно также дать ученикам хотя бы минимальное понятие о командах ОС, которые работают с файлами, продемонстрировав им интерфейс командной строки (см. “Пользовательский интерфейс”).



15 Олифер В.Г., Олифер Н.А. Сетевые операционные системы. СПб.: Питер, 2002, 544 с.

16 Таненбаум Э. Современные операционные системы. СПб.: Питер, 2004, 1040 с.




Наверх