ВУЗ:
Составители:
Рис. 5.10. Архитектура современной файловой системы
Каждый компонент уровня файловых систем выполнен в виде драйвера соответствующей файловой системы и поддер-
живает определенную организацию файловой системы. Переключатель является единственным модулем, который может
обращаться к драйверу файловой системы. Приложение не может обращаться к нему напрямую.
Драйвер файловой системы может быть написан в виде реентерабельного кода, что позволяет сразу нескольким прило-
жениям выполнять операции с файлами. Каждый драйвер файловой системы в процессе собственной инициализации регист-
рируется у переключателя, передавая ему таблицу точек входа, которые будут использоваться при последующих обращени-
ях к файловой системе.
Для выполнения своих функций драйверы файловых систем обращаются к подсистеме ввода-вывода, образующей сле-
дующий слой файловой системы новой архитектуры. Подсистема ввода вывода – это составная часть файловой системы,
которая отвечает за загрузку, инициализацию и управление всеми модулями низших уровней файловой системы. Обычно
эти модули представляют собой драйверы портов, которые непосредственно занимаются работой с аппаратными средствами.
Кроме этого подсистема ввода-вывода обеспечивает некоторый сервис драйверам файловой системы, что позволяет им осу-
ществлять запросы к конкретным устройствам. Подсистема ввода-вывода должна постоянно присутствовать в памяти и ор-
ганизовывать совместную работу иерархии драйверов устройств. В эту иерархию могут входить драйверы устройств опреде-
ленного типа (драйверы жестких дисков или накопителей на лентах), драйверы, поддерживаемые поставщиками (такие
драйверы перехватывают запросы к блочным устройствам и могут частично изменить поведение существующего драйвера
этого устройства, например зашифровать данные), драйверы портов, которые управляют конкретными адаптерами.
Большое число уровней архитектуры файловой системы обеспечивает авторам драйверов устройств большую гибкость
– драйвер может получить управление на любом этапе выполнения запроса – от вызова приложением функции, которая за-
нимается работой с файлами, до того момента, когда работающий на самом низком уровне драйвер устройства начинает
просматривать регистры контроллера. Многоуровневый механизм работы файловой системы реализован посредством цепо-
чек вызова.
В ходе инициализации драйвер устройства может добавить себя к цепочке вызова некоторого устройства, определив
при этом уровень последующего обращения. Подсистема ввода-вывода помещает адрес целевой функции в цепочку вызова
устройства, используя заданный уровень для того, чтобы должным образом упорядочить цепочку. По мере выполнения за-
проса, подсистема ввода-вывода последовательно вызывает все функции, ранее помещенные в цепочку вызова.
Внесенная в цепочку вызова процедура драйвера может решить передать запрос дальше – в измененном или в неизме-
ненном виде – на следующий уровень, или, если это возможно, процедура может удовлетворить запрос, не передавая его
дальше по цепочке.
Страницы
- « первая
- ‹ предыдущая
- …
- 57
- 58
- 59
- 60
- 61
- …
- следующая ›
- последняя »
