Как уже было замечено в
главе 2, каждый файл в системе UNIX
имеет уникальный индекс. Индекс
содержит информацию, необходимую
любому процессу для того, чтобы
обратиться к файлу, например, права
собственности на файл, права
доступа к файлу, размер файла и
расположение данных файла в
файловой системе. Процессы
обращаются к файлам, используя
четко определенный набор системных
вызовов и идентифицируя файл
строкой символов, выступающих в
качестве составного имени файла.
Каждое составное имя однозначно
определяет файл, благодаря чему
ядро системы преобразует это имя в
индекс файла. Эта глава посвящена описанию
внутренней структуры файлов в
операционной системе UNIX, в
следующей же главе рассматриваются
обращения к операционной системе,
связанные с обработкой файлов. Раздел 4.1 касается
индекса и работы с ним ядра, раздел 4.2 - внутренней
структуры обычных файлов и
некоторых моментов, связанных с
чтением и записью ядром информации
файлов. В разделе 4.3
исследуется строение каталогов -
структур данных, позволяющих ядру
организовывать файловую систему в
виде иерархии файлов, раздел
4.4 содержит алгоритм
преобразования имен
пользовательских файлов в индексы. В разделе 4.5 дается
структура суперблока, а в разделах 4.7
представлены алгоритмы назначения
файлам дисковых индексов и
дисковых блоков. Наконец, в разделе 4.8 идет речь
о других типах файлов в системе, а
именно о каналах и файлах
устройств. Алгоритмы, описанные в этой главе,
уровнем выше по сравнению с
алгоритмами управления буферным
кешем, рассмотренными в предыдущей
главе (Рисунок 4.1).
Алгоритм iget возвращает последний
из идентифицированных индексов с
возможностью считывания его с
диска, используя буферный кеш, а
алгоритм iput освобождает индекс.
Алгоритм bmap устанавливает
параметры ядра, связанные с
обращением к файлу. Алгоритм namei
преобразует составное имя
пользовательского файла в имя
индекса, используя алгоритмы iget, iput
и bmap. Алгоритмы alloc и free выделяют и
освобождают дисковые блоки для
файлов, алгоритмы ialloc и ifree
назначают и освобождают для файлов
индексы. Рисунок 4.1. Алгоритмы
файловой системы Предыдущая
глава || Оглавление
|| Следующая глава
ГЛАВА 4. ВНУТРЕННЕЕ
ПРЕДСТАВЛЕНИЕ ФАЙЛОВ
namei
alloc free
ialloc
ifree
iget iput bmap
алгоритмы
работы с буферами
getblk
brelse bread breada bwrite