- •Лабораторная работа №1 «Моделирование файловых систем»
- •1.1Теоретические сведения Файлы и каталоги
- •Общая модель файловой системы
- •Физическая организация файла на устройстве внешней памяти
- •Права доступа к файлу и каталогу
- •Файловая система fat
- •Файловая система ntfs
- •Файловая система ext2
- •Журналируемые файловые системы
- •1.2Задание на лабораторную работу
- •Варианты заданий
Журналируемые файловые системы
Основная цель, которая преследуется при создании журналируемых файловых систем, состоит в том, чтобы обеспечить как можно большую вероятность быстрого восстановления системы после сбоев (например, после потери питания). Дело в том, что если происходит сбой, то часть информации о расположении файлов теряется, поскольку система не успевает записать все изменения из буфера на диск. После сбоя утилита fsck (в ОС Linux) должна проверить все диски, которые не были корректно демонтированы, с целью восстановления потерянной информации. При современных объемах жестких дисков, исчисляемых десятками гигабайт, на проверку двух-трех таких дисков может уйти слишком много времени. Кроме того, нет гарантии, что все данные удастся восстановить.
В журналируемых файловых системах для решения этой проблемы применяют транзакции, которые хорошо известны всем программистам баз данных. Идея транзакции достаточно проста – существует набор связанных операций, называемых транзакцией, и эта группа операций является атомарной (неделимой). Таким образом, транзакция является успешной (завершенной) в том случае, если все операции, составляющие транзакцию, завершились успешно. Но это еще не все. Система ведет журнал, в котором отражаются все действия с данными, и все изменения данных протоколируются. В случае сбоя на основании журнала можно вернуть систему в безошибочное состояние.
Основное отличие транзакций из области баз данных от транзакций, применяемых в журналируемых файловых системах, состоит в том, что в базах данных в журнале сохраняются изменяемые данные и вся управляющая информация, а в файловых системах – только мета-данные: индексные дескрипторы изменяемых файлов, битовые карты распределения свободных блоков и свободных индексных дескрипторов.
К журналируемым файловым системам относятся ReiserFS, XFS, JFS, GFS, ext3.
1.2Задание на лабораторную работу
Разработать программу моделирующую файловую системы в соответствии с вариантом задания. При моделировании считать, что:
объем внешней памяти, используемой для хранения файловой системы – не менее 64К;
размер кластера или блока – 512 байт.
модель файловая система должна выполнять операции создания, удаления, копирования, перемещения и переименования файлов.
размер таблицы размещения файлов (FAT), размер суперблока, размер таблицы i-узлов и т.п. должен быть обосновано выбран в соответствии с заданными размерами кластера или блока и объемом внешней памяти.
Предусмотреть возможность визуального контроля за распределением пространства внешней памяти.
Варианты заданий
Вариант |
Файловая система |
1 |
Файловая система FAT. Предусмотреть журнализацию. |
2 |
Файловая система NTFS. Предусмотреть возможность разграничения прав доступа пользователей. |
3 |
Файловая система NTFS с журназизацией. Исключить возможность использования сверхбольших файлов. Предусмотреть кроме основных операций возможность создания жестких ссылок. Предусмотреть возможность разграничения прав доступа пользователей. |
4 |
Файловая система FAT с журнализацией.Пердусмотреть возможность разграничения прав доступа пользователей (с этой целью модифицировать стандартный дискриптор файла). |
