Myprog
Proc
P1
13 bin 98 p1
77 p2 22 myprog
рис. 17 Фрагмент файловой системы и содержание каталогов
root и bin
Каталог root является корневым каталогом тома и потому имеет индексный дескриптор с номером 1. Файлы с именами. и.. в каталоге root ссылаются сами на себя, т.к. каталога более высокого уровня нет. Интересно то, что имена myprog и prog1 ссылаются на один и тот же индексный дескриптор, т.е. на один и тот же файл.
Файлы и каталоги представляют собой, таким образом, логическую структуру файловой системы UNIX, которую можно представить в виде перевернутого дерева, имеющего один корень и множество ветвей. Каждая ветвь такого дерева является каталогом, а каждый листок на конкретной ветви - файлом каталога. Ветви ствола называются “родительсткими” каталогами по отношению к каталогам и файлам, которые они содержат внутри себя, и наоборот, каталоги и файлы, которые расположены на основных ветвях, называются “дочерними” каталогами и файлами по отношению к каталогам, в которых они содержатся.
|
|
Специальные файлы. В UNIX все внешние устройства рассматриваются как файлы, допуская производить над собой обычные файловые операции, соответственно интерфейс к драйверам устройств оформлен для пользователя как обращение к файлу, называемому специальным файлом. Каждому подключенному устройству, например терминалу, дискам, печатающему устройству и т.д. соответствует минимум один специальный файл.
Когда программа пользователя выполняет записи в такой специальный файл, ОС перехватывает их и направляет на соответствующее внешнее устройство. При чтении данных из этого файла в действительности они принимаются с соответствующего внешнего устройства. Пользовательская программа не должна учитывать особенности работы устройства ввода-вывода. Для этой цели и служат специальные файлы, которые выполняют функции интерфейса между компонентами ядра ОС (драйверы) и прикладными программами общего назначения.
Система обнаруживает отличие обычного файла от специального только после того, как будет проанализирован соответствующий индексный дескриптор, на который ссылается запись в каталоге. Индексный дескриптор специального файла содержит информацию о классе устройства, его типе и номере.
Класс устройств. Некоторые устройства ввода-вывода работают посимвольно, другие поблочно. Типичным примером устройства с посимвольным обменом может служить терминал. Компьютер осуществляет обмен данными с терминалом в побайтовом режиме. Специальные файлы, обеспечивающие связь с устройствами такого типа, называют байт-ориентированными.
Для блочных устройств характерен обмен большими блоками информации, чтобы ускорить обмен и сделать его более эффективным. Так работают все дисковые устройства, которые называются блочными, а специальные файлы, обслуживающие их - блок-ориентированными.
|
|
Тип и номер устройств. Специальные файлы не содержат какой-либо символьной информации, поэтому в каталоге их длина не указывается.Для специальных файлов в поле длины помещаются главный и дополнительный номера соответствующих устройств. Первый из них определяет тип устройства, второй - идентифицирует его среди однотипных. Так UNIX может обслуживать несколько десятков терминалов, каждый из них должен иметь свой собственный специальный файл, поэтому наличие главного и дополнительного номеров позволяет установить требуемое соответствие между устройством и таким файлом.
Таким образом специальные файлы служат средством унификации ввода-вывода в ОС.
Размещение файлов в дисковой памяти во многом похоже на распределение памяти при мультипрограммировании с переменными разделами. Заметим, что в процессе работы системы, дисковое пространство подвержено фрагментации, в связи с чем, размещение файлов приходится осуществлять по разбросанным блокам. Очевидно, возможно использовать уже рассмотренный нами способ “сбора мусора”, однако это не всегда бывает эффективно.