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


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

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



       Буфер хранит содержимое блоков диска, к которым перед этим производились обращения. Перед чтением информации с диска ядро пытается считать что-нибудь из буфера кеша. Если в этом буфере отсутствует информация, ядро читает данные с диска и заносит их в буфер. Аналогично, информация, записываемая на диск, заносится в буфер для того, чтобы находиться там, если ядро позднее попытается считать ее.Каждому блоку соответствует один буфер. Свойства:- функциональность - инъективность - не всюду определено - сюръективный           Каждый буфер состоит из двух частей: области памяти, в которой хранится информация, считываемая с диска, и заголовка буфера, который идентифицирует буфер.          Состояние буфера представляет собой комбинацию из следующих условий: · буфер заблокирован (термины "заблокирован (недоступен)" и "занят" равнозначны, так же, как и понятия "свободен" и "доступен"), · буфер содержит правильную информацию, · ядро должно переписать содержимое буфера на диск перед тем, как переназначить буфер; это условие известно, как "задержка, вызванная записью", · ядро читает или записывает содержимое буфера на диск, · процесс ждет освобождения буфера. Буферы организуются в ХЭШ очереди. В зависимости от номера блока генерируется ХЭШ ключ, и буфер помещается в соответствующую этому ключу очередь. Буфер, с которым не производится чтение и запись или операции дискового ввода вывода помещается в список свободных буферов. Буферы, с которыми не производятся чтение/ запись процессом или операции дискового ввода/ вывода помещаются в список свободных буферов. Если нам нужен буфер, то он выделяется из начала списка свободных буферов. В него заносится нужная информация с диска, и буфер помещается в конец этого списка. Любой буфер всегда находится в хеш-очереди, но его положение в очереди не имеет значения. Ядро просматривает хеш-очередь, если ему нужно найти определенный буфер, и выбирает буфер из списка свободных буферов, если ему нужен любой свободный буфер. Еще раз напомним: буфер всегда находится в хеш-очереди, а в списке свободных буферов может быть, но может и отсутствовать. Механизм поиска буфера Рассмотрим оба случая: 1. Ядро обнаруживает блок в хеш-очереди, соответствующий ему буфер свободен. 2. Ядро обнаруживает блок в хеш-очереди, но его буфер в настоящий момент занят.

В версии V системы UNIX разрешается использовать не более 14 символов на каждую компоненту имени пути поиска. Что нужно сделать в файловой системе и в соответствующих алгоритмах, чтобы стали допустимыми имена компонент произвольной длины?

Файловая система S5FS (файловая система Unix System V)

Устройство файловой системы:

В суперблоке содержится информация о системе в целом, т.е. тип, размер, размер блока (512, 1024, 2048), число свободных блоков, число свободных инодов, список свободных блоков, список свободных инодов.

В списке свободных инодов находится ограниченное число инодов. В этом списке содержатся ссылки на иноды в таблице инодов. По мере захвата инодов можно перечитать таблицу инодов с целью её заполнения. Когда список инодов пустеет, тогда ОС просматривает таблицу инодов и пополняет его.

В списке свободных блоков содержатся ссылки на все свободные блоки данных.

Инод – запись содержащая информацию о файле и его размещении.

Инод содержит информацию о: типе файла, времени доступа и последней модификации файла, атрибутах(чтение, запись, исполнение), идентификаторах пользователя и группы(UID, GID), размере. Там также содержатся прямые и косвенные ссылки на блоки данных. Прямой ссылкой можно адресовать файл в 1кб. Косвенная ссылка содержит ссылку на блок, содержащийся в области блоков данных, который содержит ссылки на блоки ей можно адресовать 256 кб. Ссылка двойной косвенности содержит ссылку на блок, который содержит ссылки на блоки, которые содержат ссылки на блоки. Адресовать можно около 50 мб (256*256).

В иноде указывается число ссылок на этот инод. Т.е. сколько имен у этого файла. Сами же имена файлов содержатся с специализированных файлах (называемых директории или каталоги). В директории 14 кб отводится под имя файла и 2 кб на ссылку на номер инода.

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

Минусы: Уязвимость суперблока, Список свободных блоков сделан неудобно, Имя файла имеет фиксированную длину.

Необходимо перейти на более новую файловую систему ext 2 и изменить функцию поиска индекса namei

Файловая система ext2

Основные компоненты файловой системы ext2

Как и в любой файловой системе UNIX, в составе файловой системы ext2 можно выделить следующие составляющие:

- блоки и группы блоков;

- информационный узел (information node);

- суперблок (superblock);

Блоки и группы блоков

Все пространство раздела диска разбивается на блоки фиксированного размера, кратные размеру сектора - 1024, 2048 и 4096 байт. Размер блока указывается при создании файловой системы на разделе диска. Меньший размер блока позволяет экономить место на жестком диске, но также ограничивает максимальный размер файловой системы. Все блоки имеют порядковые номера.

Информационный узел

Базовым понятием файловой системы является информационный узел или inode. Это специальная структура, которая содержит информацию об атрибутах и физическом расположении файла. Атрибутами файла являются его тип (обычный файл, каталог и т.д.), права доступа к нему, идентификатор владельца, размер, время создания.

Суперблок

Суперблок - основной элемент файловой системы ext2. Он содержит следующую информацию о файловой системе (список не полный):

- общее число блоков и inode-ов в файловой системе

- число свободных блоков и inode-ов в файловой системе

- размер блока файловой системы

- количество блоков и inode-ов в группе

- размер inode-а

- идентификатор файловой системы

- номер первого блока данных. Другими словами, это номер блока, содержащего суперблок. Этот номер всегда равен 0, если размер блока файловой системы больше 1024 байт, и 1, если размер блока равен 1024 байт



Поделиться:


Последнее изменение этой страницы: 2019-05-20; просмотров: 87; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.93.136 (0.008 с.)