Смекни!
smekni.com

Файловая система 2 (стр. 3 из 3)

- Задача физического уровня решается независимо от того, как был логически организован файл.

8. Общая модель файловой системы
Физический уровень

8. Общая модель файловой системы
Обращение к подсистеме ввода-вывода

- После определения номера физического блока, ФС обращается к системе ввода-вывода для выполнения операции обмена с внешним устройством.

- В ответ на этот запрос в буфер ФС будет передан нужный блок, в котором на основании полученного при работе физического уровня смещения выбирается требуемая логическая запись.

9. Отображаемые в память файлы

- По сравнению с доступом к памяти, традиционный доступ к файлам выглядит запутанным и неудобным.

- По этой причине некоторые ОС, обеспечивают отображение файлов в адресное пространство выполняемого процесса.

- Это выражается в появлении двух новых системных вызовов: MAP (отобразить) и UNMAP (отменить отображение).

- Первый вызов передает операционной системе в качестве параметров имя файла и виртуальный адрес, и операционная система отображает указанный файл в виртуальное адресное пространство по указанному адресу.

9. Отображаемые в память файлы
Пример

- Предположим, что файл f имеет длину 64 К и отображается на область виртуального адресного пространства с начальным адресом 512 К.

- После этого любая машинная команда, которая читает содержимое байта по адресу 512 К, получает 0-ой байт этого файла и т.д.

- Очевидно, что запись по адресу 512 К + 1100 изменяет 1100 байт файла.

- При завершении процесса на диске остается модифицированная версия файла, как если бы он был изменен комбинацией вызовов SEEK и WRITE.

9. Отображаемые в память файлы
Пример

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

- Таким образом, чтение по адресу 512 К вызывает страничный отказ, в результате чего страница 0 переносится в физическую память.

- Аналогично, запись по адресу 512 К + 1100 вызывает страничный отказ, в результате которого страница, содержащая этот адрес, перемещается в память, после чего осуществляется запись в память по требуемому адресу.

- Если эта страница вытесняется из памяти алгоритмом замены страниц, то она записывается обратно в файл в соответствующее его место.

- При завершении процесса все отображенные и модифицированные страницы переписываются из памяти в файл.

9. Отображаемые в память файлы
Пример

- Отображение файлов лучше всего работает в системе, которая поддерживает сегментацию.

- В такой системе каждый файл может быть отображен в свой собственный сегмент, так что k-ый байт в файле является k-ым байтом сегмента.

- На рисунке (а) изображен процесс, который имеет два сегмента-кода и данных.

- Предположим, что этот процесс копирует файлы. Для этого он сначала отображает файл-источник, например, abc. Затем он создает пустой сегмент и отображает на него файл назначения, например, файл ddd.

9. Отображаемые в память файлы
Пример

9. Отображаемые в память файлы
Пример

- С этого момента процесс может копировать сегмент-источник в сегмент-приемник с помощью обычного программного цикла, использующего команды пересылки в памяти типа mov.

- Никакие вызовы READ или WRITE не нужны. После выполнения копирования процесс может выполнить вызов UNMAP для удаления файла из адресного пространства, а затем завершиться. Выходной файл ddd будет существовать на диске, как если бы он был создан обычным способом.

9. Отображаемые в память файлы
Пример

-
Хотя отображение файлов исключает потребность в выполнении ввода-вывода и тем самым облегчает программирование, этот способ порождает и некоторые новые проблемы.

- Во-первых, для системы сложно узнать точную длину выходного файла, в данном примере ddd.

- Проще указать наибольший номер записанной страницы, но нет способа узнать, сколько байт в этой странице было записано.

- Предположим, что программа использует только страницу номер 0, и после выполнения все байты все еще установлены в значение 0 (их начальное значение).

- Быть может, файл состоит из 10 нулей. А может быть, он состоит из 100 нулей. Как это определить?

- Операционная система не может это сообщить. Все, что она может сделать, так это создать файл, длина которого равна размеру страницы.

9. Отображаемые в память файлы
Пример

- Вторая проблема проявляется (потенциально), если один процесс отображает файл, а другой процесс открывает его для обычного файлового доступа.

- Если первый процесс изменяет страницу, то это изменение не будет отражено в файле на диске до тех пор, пока страница не будет вытеснена на диск.

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

9. Отображаемые в память файлы
Пример

- Третья проблема состоит в том, что файл может быть больше, чем сегмент, и даже больше, чем все виртуальное адресное пространство.

- Единственный способ ее решения состоит в реализации вызова MAP таким образом, чтобы он мог отображать не весь файл, а его часть. Хотя такая работа, очевидно, менее удобна, чем отображение целого файла.

10. Современные архитектуры файловых систем

- Разработчики ОС стремятся обеспечить пользователя возможностью работать сразу с несколькими ФС.

- В современном понимании ФС состоит из многих составляющих, в число которых входят и ФС в традиционном понимании.

10. Современные архитектуры файловых систем

- Современная файловая система имеет многоуровневую структуру (рисунок 4.9), на верхнем уровне которой располагается так называемый переключатель файловых систем (в Windows 95, например, такой переключатель называется устанавливаемым диспетчером файловой системы - installable filesystem manager, IFS). Он обеспечивает интерфейс между запросами приложения и конкретной файловой системой, к которой обращается это приложение. Переключатель файловых систем преобразует запросы в формат, воспринимаемый следующим уровнем - уровнем файловых систем.

10. Современные архитектуры файловых систем

10. Современные архитектуры файловых систем

- Каждый компонент уровня файловых систем выполнен в виде драйвера соответствующей файловой системы и поддерживает определенную организацию файловой системы.

- Переключатель является единственным модулем, который может обращаться к драйверу файловой системы. Приложение не может обращаться к нему напрямую.

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

10. Современные архитектуры файловых систем

- Для выполнения своих функций драйверы файловых систем обращаются к подсистеме ввода-вывода, образующей следующий слой файловой системы новой архитектуры.

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

- Обычно эти модули представляют собой драйверы портов, которые непосредственно занимаются работой с аппаратными средствами.

- Кроме этого подсистема ввода-вывода обеспечивает некоторый сервис драйверам файловой системы, что позволяет им осуществлять запросы к конкретным устройствам.

10. Современные архитектуры файловых систем

- Подсистема ввода-вывода должна постоянно присутствовать в памяти и организовывать совместную работу иерархии драйверов устройств.

- В эту иерархию могут входить драйверы устройств определенного типа (драйверы жестких дисков или накопителей на лентах), драйверы, поддерживаемые поставщиками (такие драйверы перехватывают запросы к блочным устройствам и могут частично изменить поведение существующего драйвера этого устройства, например, зашифровать данные), драйверы портов, которые управляют конкретными адаптерами.

10. Современные архитектуры файловых систем

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

- Многоуровневый механизм работы файловой системы реализован посредством цепочек вызова.

10. Современные архитектуры файловых систем

- В ходе инициализации драйвер устройства может добавить себя к цепочке вызова некоторого устройства, определив при этом уровень последующего обращения.

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

- По мере выполнения запроса, подсистема ввода-вывода последовательно вызывает все функции, ранее помещенные в цепочку вызова.

- Внесенная в цепочку вызова процедура драйвера может решить передать запрос дальше - в измененном или в неизмененном виде - на следующий уровень, или, если это возможно, процедура может удовлетворить запрос, не передавая его дальше по цепочке.


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