- •Архитектура ОС UNIX
- •Контрольные вопросы
- •Буфер
- •Заголовки буфера
- •Заголовок буфера
- •Список свободных буферов
- •Буферы в хеш-очередях
- •Механизмы поиска буфера
- •Внутреннее представление файлов
- •Индекс на диске
- •Пример индекса
- •Индекс в оперативной памяти
- •Размещение файлов. Пример
- •Размещение файлов
- •Адресация
- •Максимальный размер файла
- •алгоритм bmap
- •Адресация
- •Содержимое каталога
- •Превращение составного имени файла в индекс. Алгоритм namei
- •Превращение составного имени файла в индекс. Алгоритм namei
- •Суперблок
- •Суперблок
- •Другие типы файлов
Содержимое каталога
Каталог - это файл, содержимым которого является набор записей, состоящих из номера индекса и имени файла, включенного в каталог.
Смещение в байтах |
Номер индекса Имя файла |
||
внутри каталога |
(2 байта) |
||
0 83 . |
|
|
|
16 2 |
.. |
|
|
32 1798 init |
|
|
|
48 1276 fsck |
|
|
|
64 85 |
clri |
|
|
80 1268 motd |
|
|
|
96 1799 mount |
|
|
|
112 |
88 |
mknod |
|
128 |
2114 |
passwd |
|
144 |
1717 |
umount |
|
160 |
1851 |
checklist |
|
Превращение составного имени файла в индекс. Алгоритм namei
Начальное обращение к файлу производится по его составному имени в командах open, chdir...
Поскольку внутри системы ядро работает с индексами, а не с именами путей поиска, оно преобразует имена путей поиска в идентификаторы индексов, чтобы производить доступ к файлам.
КАКИМ ОБРАЗОМ ВЫПОЛНЯЕТЯ ПРЕОБРАЗОВАНИЕ?
Превращение составного имени файла в индекс. Алгоритм namei
Каждый процесс связан с текущим каталогом (и протекает в его рамках); рабочая область, отведенная под задачу пользователя, содержит указатель на индекс текущего каталога.
Текущим каталогом первого из процессов в системе, нулевого процесса, является корневой каталог. Путь к текущему каталогу каждого нового процесса берет начало от текущего каталога процесса, являющегося родительским по отношению к данному.
Ядро выполняет линейный поиск файла в каталоге, ассоциированном с рабочим индексом, пытаясь найти для компоненты имени пути поиска подходящую запись в каталоге (для этого указывалось имя файла в каталоге).
Суперблок
размер файловой системы,
количество свободных блоков в файловой системе,
список свободных блоков, имеющихся в файловой системе,
индекс следующего свободного блока в списке свободных блоков,
размер списка индексов,
Суперблок
количество свободных индексов в файловой системе,
список свободных индексов в файловой системе,
следующий свободный индекс в списке свободных индексов,
заблокированные поля для списка свободных блоков и свободных индексов,
флаг, показывающий, что в суперблок были внесены изменения.
Другие типы файлов
КаналыСпециальные файлы устройств