Смекни!
smekni.com

Курс лекций Операционным системам и среды (стр. 19 из 21)

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

Текущий каталог – это каталог, с которым пользователь работает в данный момент.

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

Полное имя файла, или спецификация, включает в себя диск, путь, собственно имя и расширение имени, т. е. путь\имя.расширение

Например, 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 Гбайт.