Структура каталогов
2 байта 14 байт
Номер индексного дескриптора Имя файла Структура записи каталога UNIX
(16 байт)
8 3 1 4
Имя файла Расширение Атрибуты Резервные Структура записи каталога
MS DOS (32 байта)
Резервные Время Дата Номер первого Размер
блока
Каталоги могут непосредственно содержать значения характеристик файлов, как это сделано в файловой системе MS DOS , или ссылаться на таблицы, содержащие эти характеристики, как это реализовано в ОС UNIX. Каталоги могут организовывать иерархическую структуру за счет того, что каталоги более низкого уровня могут входить в каталоги более высокого уровня. Иерархия каталогов может быть деревом или сетью. Каталоги образуют дерево, если файлу разрешено входить только в один каталог, и сеть - если файл может входить сразу в несколько каталогов.
Логическая организация файловой системы
Одноуровневая Дерево (иерархия MS DOS)
Сеть (иерархия UNIX)
Дескриптор файла
Введение понятия дескриптор файла позволяет отделить имя файла, с которым оперирует пользователь от специфических данных с которым работает ОС. Такой подход чрезвычайно гибок и позволяет манипулировать внешним представлением иерархии файлов, не перемещая самих файлов.
В частности, весьма просто один и тот же файл поместить в разные каталоги. Создав в них соответствующие именные ссылки на этот файл. Но никуда его физически не перемещая. Файл может иметь одно и то же имя в разных каталогах или имена-синонимы, но ссылаться они будут на один и тот же индексный дескриптор, который является ключом для доступа к данным файла.
Каждая новая ссылка из каталогов к индексному дескриптору отмечается в специальном его поле. Это позволяет файловой системе следить за занятостью файла: как только счетчик станет равным нулю, индексный дескриптор освобождается, а дисковое пространство может быть использовано для записи других файлов.
Индексные дескрипторы
1 13 22
root
p2 1 . 13
prog1 bin 1 .. 1
22 prog1 137 proc
P1
13 bin 98 p1
Proc
77 p2 22 myprog
Myprog
рис. 17 Фрагмент файловой системы и содержание каталогов
root и bin
Специальные файлы. В UNIX все внешние устройства рассматриваются как файлы, допуская производить над собой обычные файловые операции, соответственно интерфейс к драйверам устройств оформлен для пользователя как обращение к файлу, называемому специальным файлом. Каждому подключенному устройству, например терминалу, дискам, печатающему устройству и т.д. соответствует минимум один специальный файл.
Когда программа пользователя выполняет записи в такой специальный файл, ОС перехватывает их и направляет на соответствующее внешнее устройство. При чтении данных из этого файла в действительности они принимаются с соответствующего внешнего устройства.
Система обнаруживает отличие обычного файла от специального только после того, как будет проанализирован соответствующий индексный дескриптор, на который ссылается запись в каталоге. Индексный дескриптор специального файла содержит информацию о классе устройства, его типе и номере.
Специальные файлы не содержат какой-либо символьной информации, поэтому в каталоге их длина не указывается.Для специальных файлов в поле длины помещаются главный и дополнительный номера соответствующих устройств. Первый из них определяет тип устройства, второй - идентифицирует его среди однотипных. Так ОС может обслуживать несколько десятков терминалов, каждый из них должен иметь свой собственный специальный файл, поэтому наличие главного и дополнительного номеров позволяет установить требуемое соответствие между устройством и таким файлом.
Таким образом специальные файлы служат средством унификации ввода-вывода в ОС.
Дата добавления: 2017-01-29; просмотров: 876;