Архитектура операционной системы UNIX :: Бах Морис Дж.
Страница:
103 из 715
Копия индекса в памяти, кроме полей дискового индекса, включает в себя и следующие поля:
• Состояние индекса в памяти, отражающее
- заблокирован ли индекс,
- ждет ли снятия блокировки с индекса какой-либо процесс,
- отличается ли представление индекса в памяти от своей дисковой копии в результате изменения содержимого индекса,
- отличается ли представление индекса в памяти от своей дисковой копии в результате изменения содержимого файла,
- находится ли файл в верхней точке (см. раздел 5.15).
• Логический номер устройства файловой системы, содержащей файл.
• Номер индекса. Так как индексы на диске хранятся в линейном массиве (см. раздел 2.2.1), ядро идентифицирует номер дискового индекса по его местоположению в массиве. В дисковом индексе это поле не нужно.
• Указатели на другие индексы в памяти. Ядро связывает индексы в хеш-очереди и включает их в список свободных индексов подобно тому, как связывает буферы в буферные хеш-очереди и включает их в список свободных буферов. Хеш-очередь идентифицируется в соответствии с логическим номером устройства и номером индекса. Ядро может располагать в памяти не более одной копии данного дискового индекса, но индексы могут находиться одновременно как в хеш-очереди, так и в списке свободных индексов.
• Счетчик ссылок, означающий количество активных экземпляров файла (таких, которые открыты).
Многие поля в копии индекса, с которой ядро работает в памяти, аналогичны полям в заголовке буфера, и управление индексами похоже на управление буферами.
|< Пред. 101 102 103 104 105 След. >|