Виртуальные файловые системы (VFS). Реализации файловых систем. Сетевая файловая система NFS
Ключевые термины
File-allocation table (FAT) – файловая система со ссылочным размещением файлов, используемая в MS DOS и в Windows.
NFS (Network File System) - распространенная сетевая файловая система, используемая в системе Solaris.
Veritas File System (Vx-FS) – основная файловая система в ОС HP-UX (Hewlett-Packard).
Виртуальная файловая система (VFS) – файловая система, обеспечивающая объектно-ориентированный способ реализации файловых систем, единый интерфейс системных вызовов для различных типов файловых систем, включая сетевые файловые системы.
Виртуальный диск – диск для временного хранения файлов, организованный в основной памяти, с целью улучшения производительности персонального компьютера.
Индексируемое размещение файлов - метод размещения, при котором все указатели на блоки файла собраны вместе в индексный блок ; используется индексная таблица, ссылающаяся на блоки данных файла.
Индексный блок (i-node, superblock) – специальный блок при индексируемом размещении файлов, в котором хранятся указатели на блоки данных файла.
Кэширование диска – использование специальной области основной памяти для копирования часто используемых блоков диска.
Опережающее считывание (read-ahead) - метод оптимизации последовательного доступа к диску, при котором вместе с очередным блоком файла считываются в основную память и несколько следующих блоков.
Освобождение прочитанного (free-behind) - метод оптимизации последовательного доступа к диску, при котором основная память, где хранились копии прочитанных блоков, автоматически освобождается при считывании следующих блоков.
Расширение (extent) - смежный блок на диске для хранения части файла; файл состоит из одного или нескольких расширений.
Cмежное размещение файлов – метод размещения, при котором каждый файл занимает набор смежных блоков на диске.
Ссылочное размещение файлов – метод размещения, при котором каждый файл представляется в виде связанного списка дисковых блоков.
Унифицированная буферная кэш-память - кэш-память, использующая один и тот же кэш страниц для кэширования и файлов, отображаемых в память, и обычных операций ввода-вывода через файловую систему.
Файловая система с журналом транзакций (log structured filesystem) - файловая система, фиксирующая любое изменение как транзакцию; все транзакции записываются в журнал.
Краткие итоги
Виртуальные файловые системы – системы, абстрагирующие пользователя от различий между файловыми системами и обеспечивающие единый интерфейс системных вызовов для различных файловых систем, включая сетевые.
Способы реализации директорий в файловых системах – линейный список либо хеш-таблица. Последний обеспечивает более высокую эффективность.
Основные методы размещения файлов в файловых системах – смежное, ссылочное и индексируемое размещение.
При смежном размещении файл занимает смежную область памяти на диске. При этом обеспечивается простой и эффективный доступ, но невозможно увеличение файла; возможны потери дисковой памяти.
В файловых системах, основанных на расширениях (extents), файл представляется как смежная область памяти и список расширений – смежных областей памяти.
При ссылочном размещении файл представляется в виде списка дисковых блоков. Например, такой метод применен в системе FAT (File Allocation Table), используемой в MS DOS и в Windows. При таком методе отсутствуют потери дискового пространства, но нет возможности произвольного доступа к файлу.
При индексируемом размещении все указатели на блоки данных файла собраны в специальный индексный блок (индексную таблицу). При этом возможен произвольный доступ, но требуется хранение индексных блоков. Кроме того, в случае порчи индексного блока данные файла становится недоступными.
Для управления свободной дисковой памятью используются битовый вектор, каждый элемент которого указывает, свободен ли i -й блок или занят. Другой метод – использование списков свободной дисковой памяти. Использование битового вектора позволяет легко получить информацию о смежных областях дисковой памяти. При использовании списка свободной памяти это сделать невозможно, но отсутствуют дополнительное расходование дисковой памяти.
Производительность управления дисковой памятью и вводом-выводом зависит от кэширования диска, оптимизаций опережающего считывания и освобождения прочитанного, организации виртуальных дисков в основной памяти.
Для оптимизации кэширования используется унифицированная буферная кэш-память, которая используется как при вводе-выводе в обычные файлы, так и при работе с файлами, отображаемыми в память.
Для сохранения и восстановления файлов рекомендуется использовать резервное копирование.
Файловые системы с журналом транзакций обеспечивают повышенную надежность обработки файлов.
Сетевая файловая система NFS реализована на основе механизмов и протоколов RPC (удаленный вызов процедуры) и XDR (внешнее представление данных для передачи через сеть). Система обеспечивает работу пользователя с удаленными файловыми системами с помощью тех же операций, которые используются и для локальных файловых систем. Удаленные файловые системы монтируются на локальные. При этом указывается имя машины с удаленной директорией. В реализации NFS используются процессы-демоны. NFS-сервисы не имеют состояния (stateless). Архитектура NFS трехуровневая – интерфейс системных вызовов для UNIX; уровень виртуальной файловой системы; нижний уровень реализации NFS-сервисов.
Набор для практики
Вопросы
- Что такое виртуальная файловая система?
- Какими способами реализуются директории в файловых системах?
- Какие основные методы используются для размещения файлов?
- Каковы особенности, достоинства и недостатки смежного размещения файлов?
- Каковы особенности, достоинства и недостатки ссылочного размещения файлов?
- Каковы особенности, достоинства и недостатки индексируемого размещения файлов?
- Что такое расширения (extents) и как они используются для размещения файлов?
- Как организованы файловые системы по методу File Allocation Table (FAT)?
- Какие методы используются для представления информации о свободной дисковой памяти, в чем их сравнительные достоинства и недостатки?
- Что такое кэширование диска?
- Что такое унифицированная буферная кэш-память и для чего она используется?
- Что такое опережающее считывание?
- Что такое освобождение прочитанного?
- Какие методы используются для восстановления файлов?
- Что такое файловая система с журналом транзакций?
- Что такое NFS?
- На каких сетевых протоколах и механизмах основана реализация NFS?
- Каковы возможности системы NFS для пользователя?
- Каковы особенности монтирования удаленных файловых систем в NFS?
- Каковы уровни архитектуры NFS?
Упражнения
- Реализуйте директорию и операции над ней с использованием хеш-функции.
- Реализуйте смежное размещение файлов и основные операции над файлами при данном размещении.
- Реализуйте ссылочное размещение файлов и основные операции над файлами при данном размещении.
- Реализуйте индексируемое размещение файлов и основные операции над файлами при данном размещении.
- Реализуйте размещение файлов на основе расширений (extents) и основные операции над файлами при данном размещении.
- Реализуйте представление информации о свободной дисковой памяти в виде битового вектора и основные операции над ним.
Темы для курсовых работ, рефератов, эссе
- Обзор виртуальных файловых систем (реферат).
- Файловая система FAT (реферат).
- Файловые системы с индексируемым размещением файлов (реферат).
- Обзор системы NFS (реферат).
- Реализация директории и операций над ней с использованием хеш-функции (курсовая работа).
- Реализация смежного размещения файлов и основных операций над файлами при данном размещении (курсовая работа).
- Реализация ссылочного размещения файлов и основных операций над файлами при данном размещении (курсовая работа).
- Реализация индексируемого размещения файлов и основных операций над файлами при данном размещении (курсовая работа).
- Реализация размещения файлов на основе расширений (extents) и основных операций над файлами при данном размещении (курсовая работа).
- Реализация представления информации о свободной дисковой памяти в виде битового вектора и основных операций над ним (курсовая работа).