Подкаталоги и надкаталоги. Все каталоги, кроме корневого, на самом деле являются файлами специального вида. Каждый каталог имеет имя, и он может быть зарегистрирован в другом каталоге. Если каталог Х зарегистрирован в каталоге У, то говорят, что Х – подкаталог У, а У – надкаталог или родительский каталог для Х.
Текущий каталог – это каталог, с которым пользователь работает в данный момент.
Путь. Когда вы используете файл не из текущего каталога, необходимо указать, в каком каталоге этот файл находится. Это можно сделать с помощью указания пути к файлу. Путь – это последовательность из имен каталогов, разделенных знаком \ , которые нужно последовательно открыть, чтобы найти файл (включая диск). Этот путь задает маршрут от корневого каталога диска к тому каталогу, в котором находится нужный файл.
Полное имя файла, или спецификация, включает в себя диск, путь, собственно имя и расширение имени, т. е. путь\имя.расширение
Например, D:\school\profes\music.exe
Файловые системы
Для управления файлами создаются соответствующие файловые системы.
Файловая система — это часть операционной системы, назначение которой состоит в том, чтобы организовать эффективную хранение данных на диске, и обеспечить пользователю удобный доступ к этим данным и интерфейс при работе с такими данными.
Организовать хранение информации на магнитном диске непросто. Это требует, например, хорошего знания устройства контроллера диска, особенностей работы с его регистрами. Непосредственное взаимодействие с диском — прерогатива компонента системы ввода-вывода ОС, называемого драйвером диска. Для того чтобы избавить пользователя компьютера от сложностей взаимодействия с аппаратурой, была придумана ясная абстрактная модель файловой системы. Операции записи или чтения файла концептуально проще, чем низкоуровневые операции работы с устройствами.
Главная задача файловой системы — скрыть особенности ввода-вывода и дать программисту простую абстрактную модель файлов, независимых от устройств.
Перечислим основные функции файловой системы:
1. Идентификация файлов. Связывание имени файла с выделенным ему пространством внешней памяти.
2. Распределение внешней памяти между файлами. Для работы с конкретным файлом пользователю не требуется иметь информацию о местоположении этого файла на внешнем носителе информации. Например, для того чтобы загрузить документ в редактор с жесткого диска, нам не нужно знать, на какой стороне какого магнитного диска, на каком цилиндре и в каком секторе находится данный документ.
3. Обеспечение надежности и отказоустойчивости. Обеспечение защиты от несанкционированного доступа.
4. Обеспечение совместного доступа к файлам, так чтобы пользователю не приходилось прилагать специальных усилий по обеспечению синхронизации доступа.
5. Обеспечение высокой производительности.
Специальное системное программное обеспечение, реализующее работу с файлами по принятым спецификациям файловой системы, часто называют системой управления файлами. Именно системы управления файлами отвечают за создание, уничтожение, организацию, чтение, запись, модификацию и перемещение файловой информации, а также за управление доступом к файлам и за управление ресурсами, которые используются файлами.
Назначение системы управления файлами — предоставление более удобного доступа к данным, организованным как файлы, то есть вместо низкоуровневого доступа к данным с указанием конкретных физических адресов нужной нам записи используется логический доступ с указанием имени файла и записи в нем.
Благодаря системам управления файлами пользователям предоставляются следующие возможности:
1. создание, удаление, переименование (и другие операции) именованных наборов данных (файлов) из своих программ или посредством специальных управляющих программ, реализующих функции интерфейса пользователя с его данными и активно использующих систему управления файлами;
2. работа с недисковыми периферийными устройствами как с файлами;
3. обмен данными между файлами, между устройствами, между файлом и устройством (и наоборот);
4. работа с файлами путем обращений к программным модулям системы управления файлами;
5. защита файлов от несанкционированного доступа.
Любая система управления файлами не существует сама по себе – она разработана для функционирования в конкретной ОС. То есть, для работы с файлами, организованными в соответствии с некоторой файловой системой, для каждой ОС должна быть разработана соответствующая система управления файлами. Эта система управления файлами будет работать только в той ОС, для которой она и создана. Но при этом она позволит работать с файлами, созданными с помощью системы управления файлами другой ОС и организованными в файловую систему по тем же основным принципам.
В некоторых ОС может быть несколько систем управления файлами, что обеспечивает им возможность работать с несколькими файловыми системами.
Системы управления файлами, будучи компонентом ОС, не являются независимыми от этой ОС, поскольку они активно используют соответствующие вызовы прикладного программного интерфейса API (application program interface). С другой стороны, системы управления файлами сами дополняют API новыми вызовами. Можно сказать, что основное назначение файловой системы и соответствующей ей системы управления файлами – организация удобного доступа к данным, организованным как файлы, то есть вместо низкоуровневого доступа к данным с указанием конкретных физических адресов нужной записи используется логический доступ с указанием имени файла и записи в нем.
Термин «файловая система» определяет, прежде всего, принципы доступа к данным, организованным в файлы. Этот же термин часто используют и по отношению к конкретным файлам, расположенным на том или ином носителе данных. А термин «система управления файлами» следует употреблять по отношению к конкретной реализации файловой системы. То есть система управления файлами – это комплекс программных модулей, обеспечивающих работу с файлами в конкретной операционной системе.
Файловая система FAT
В FAT пространство любого диска делится на части:
1. BOOT-сектор содержит основные количественные параметры дискового тома и файловой системы, а также может содержать программу начальной загрузки ОС.
2. таблица FAT (File Allocation Table) – содержит информацию о размещении файлов и свободного места на диске. Ввиду критической важности этой таблицы она всегда хранится в двух экземплярах, которые должны быть идентичны. Каждая операция, изменяющая содержимое FAT, должна одинаковым образом изменять оба экземпляра.
3. ROOT – корневой каталог системы, содержащий данные о файлах и о подкаталогах верхнего уровня, каждый из которых в свою очередь может содержать файлы и подкаталоги.
4. Область данных – массив кластеров, содержащий все файлы и все каталоги (кроме корневого).
Область данных разбивается на кластеры. Кластеры представляют один или несколько смежных секторов в области данных. Кластер – минимальная адресная единица дисковой памяти, выделенная файлу. Кластеры, принадлежащие одному файлу, связываются в цепочки. Каждый файл занимает целое число кластеров. Последний кластер при этом может быть задействован не полностью, что при большом размере кластера может приводить к заметной потере дискового пространства.
Разбиение области данных на кластеры вместо секторов имеет смысл по причинам:
- Уменьшается размер самой FAT;
- Уменьшается возможная фрагментация файлов;
- Ускоряется доступ к файлу, т.к. в несколько раз сокращается длина цепочек – фрагментов дискового пространства, выделенного файлу.
Т.к. FAT интенсивно используется, то она помещается в ОЗУ, а на диске хранится в двух экземплярах. Используется только первый, если он оказывается поврежден, то происходит обращение ко второму экземпляру.
Записи FAT «по историческим причинам» нумеруются, начиная с 2 и заканчивая максимальным номером кластера, каждая запись FAT описывает соответствующий кластер с тем же номером. Запись может принимать следующие значения:
1. если кластер принадлежит некоторому файлу (или каталогу) и является последним (или единственным) в этом файле, то запись FAT содержит специальное значение – FFFF;
2. если кластер принадлежит некоторому файлу (или каталогу), но не является последним в файле, то запись FAT содержит номер следующего кластера того же файла;
3. если кластер свободен, то запись содержит все нули;
4. если кластер дефектный (т.е. при проверке диска выяснилось, что данный кластер содержит хотя бы один дефектный сектор), то запись содержит специальное значение FFF7.
FAT16 | |
Длина записи (под номер кластера) | 16 бит (разрядов) |
Количество записей | 216 |
Размер кластера | 32 Кбайт (64 сектора) |
Максимальный объем диска | 2 Гбайт |
Кол-во элементов в корневом каталоге | 512 |
Длина кластера составляет 32 Кбайт (64 сектора). Это не вполне рациональный расход рабочего пространства, поскольку любой файл (даже очень маленький) полностью оккупирует весь кластер, которому соответствует только одна адресная запись в таблице размещения файлов. Даже если файл достаточно велик и располагается в нескольких кластерах, все равно в его конце образуется некий остаток, нерационально расходующий целый кластер.
Такие системы не могут работать с дисками, объем которых больше 2 Гбайт.