Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие - ОС - текст.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
1.34 Mб
Скачать

Журналируемые файловые системы

Основная цель, которая преследуется при создании журналируемых файловых систем, состоит в том, чтобы обеспечить как можно большую вероятность быстрого восстановления системы после сбоев (например, после потери питания). Дело в том, что если происходит сбой, то часть информации о расположении файлов теряется, поскольку система не успевает записать все изменения из буфера на диск. После сбоя утилита fsck (в ОС Linux) должна проверить все диски, которые не были корректно демонтированы, с целью восстановления потерянной информации. При современных объемах жестких дисков, исчисляемых десятками гигабайт, на проверку двух-трех таких дисков может уйти слишком много времени. Кроме того, нет гарантии, что все данные удастся восстановить.

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

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

К журналируемым файловым системам относятся ReiserFS, XFS, JFS, GFS, ext3.

Задание на лабораторную работу

Разработать программу моделирующую файловую систему в соответствии с вариантом задания. При моделировании считать, что:

  • объем внешней памяти, используемой для хранения файловой системы – не менее 64К;

  • размер кластера или блока – 512 байт.

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

  • размер таблицы размещения файлов (FAT), размер суперблока, размер таблицы i-узлов и т.п. должен быть обосновано выбран в соответствии с заданными размерами кластера или блока и объемом внешней памяти.

Предусмотреть возможность визуального контроля за распределением пространства внешней памяти.

Варианты заданий

Вариант

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

1

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

2

Файловая система FAT. Предусмотреть журнализацию.

3

Файловая система NTFS. Предусмотреть возможность разграничения прав доступа пользователей.

4

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

5

Файловая система EXT2. Предусмотреть кроме основных операций возможность создания жестких ссылок. Предусмотреть возможность разграничения прав доступа пользователей.

6

Файловая система EXT2 с журнализацией. Исключить тройную косвенную адресацию. Предусмотреть кроме основных операций возможность создания жестких ссылок. Предусмотреть возможность разграничения прав доступа пользователей.

7

Файловая система FAT с журнализацией. Предусмотреть возможность разграничения прав доступа пользователей (с этой целью модифицировать стандартный дескриптор файла).