Размещение файлов в дисковой памяти

Myprog

Proc

P1

13 bin 98 p1

77 p2 22 myprog

 
 


рис. 17 Фрагмент файловой системы и содержание каталогов

root и bin


Каталог root является корневым каталогом тома и потому имеет индексный дескриптор с номером 1. Файлы с именами. и.. в каталоге root ссылаются сами на себя, т.к. каталога более высокого уровня нет. Интересно то, что имена myprog и prog1 ссылаются на один и тот же индексный дескриптор, т.е. на один и тот же файл.

Файлы и каталоги представляют собой, таким образом, логическую структуру файловой системы UNIX, которую можно представить в виде перевернутого дерева, имеющего один корень и множество ветвей. Каждая ветвь такого дерева является каталогом, а каждый листок на конкретной ветви - файлом каталога. Ветви ствола называются “родительсткими” каталогами по отношению к каталогам и файлам, которые они содержат внутри себя, и наоборот, каталоги и файлы, которые расположены на основных ветвях, называются “дочерними” каталогами и файлами по отношению к каталогам, в которых они содержатся.

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

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

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

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

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

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

Таким образом специальные файлы служат средством унификации ввода-вывода в ОС.

Размещение файлов в дисковой памяти во многом похоже на распределение памяти при мультипрограммировании с переменными разделами. Заметим, что в процессе работы системы, дисковое пространство подвержено фрагментации, в связи с чем, размещение файлов приходится осуществлять по разбросанным блокам. Очевидно, возможно использовать уже рассмотренный нами способ “сбора мусора”, однако это не всегда бывает эффективно.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: