русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

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


Дата добавления: 2013-12-23; просмотров: 262; Нарушение авторских прав


Архитектура взаимодействия с файловой системой

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

Место файловой системы в Linux может отражено на рис.1. В пространстве пользователя происходит запуск процессов и приложений. Библиотека GNU C предоставляет интерфейс управления элементами файловой системы (например, процедуры открытия, чтения, записи). В результате системных вызовов происходит обращение к соответствующим элементам ядра.

Ядро должно поддерживать работу с различными файловыми системами, следовательно, необходим унифицированный интерфейс работы с файлами и каталогами. Такой интерфейс обеспечивает виртуальная файловая система. Она преобразует системные вызовы приложений в вызовы отдельных файловых систем. Для файлов и каталогов используются различные кэши, в которых хранятся списки inodes и записи каталогов dentries соответственно.

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

  Рис. 3. Архитектура связей файловой системы

Файловые системы данного типа используют физическое пространство диска для хранения файлов. Примером может служить файловая система ext2fs , которая долгое время была основной для Linux.

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



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

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

Существуют различные стратегии журналирования:

1. Режим обратной записи. Журналированию подвергаются только метаданные, блоки с данными записываются непосредственно на диск. Структура файловой системы защищена, но повреждение самих данных возможно, если крах системы наступает после записи метаданных в журнал, но до записи блока с данными.

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

3. Режим данных. В журнал заносятся как метаданные, так и сами данные. Этот режим обладает наивысшим уровнем устойчивости к повреждению и потере данных, но имеет недостаток в виде низкой производительности, поскольку все данные записываются дважды (сначала в журнал, потом на диск).

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

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

Например, файл размером 100 Мб может храниться в одном экстенте такого же размера, а не в 25600 блоках. Производительность особенно повышается при работе с большими файлами.

Linux поддерживает различные файловые системы:

ext2fs,ext3fs,ext3fs. «Расширенные файловые системы» (extended filesystem) — основныe файловые системы Linux. ext2fs долгое время являлась основной файловой системой Linux. ext3fs по своей сути является надстройкой к ext2fs, предоставляя ряд дополнительных возможностей. ext4fs можно назвать полноценной файловой системой, включающей в себя передовые технологии функционирования файловых систем.

nfs. Сетевая файловая система, используемая для доступа к файлам на удаленных компьютерах;

swap. Раздел (или файл) свопинга.



<== предыдущая лекция | следующая лекция ==>
Виртуальные файловые системы | Структура файловой системы ext2fs


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Полезен материал? Поделись:

Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.002 сек.