logo search
ZH ос 20 вопр 36 стр

16. Методы отслеживания изменений файловой системы

Файловые системы.

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

  1. Совокупность всех файлов на диске.

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

  3. Комплекс системных программных средств, реализующих управление файлами (создание, удаление, копирование, перенос и тому подобное).

Сектор – аппаратно адресуемые блоки носителя. Размер сектора в системах х86 – 512 байт.

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

Журнал транзакций.

Используется несколько типов записей. Это записи модификации и записи контрольной точки.

Записи модификации. Большинство записей в журнале – это запись модификации. Каждая запись модификации содержит два вида информации:

  1. Информация для повтора, которая содержит сведения о том, как вновь применить к тому подоперацию полностью запротоколированной подтверждённой транзакции. Если сбой системы произошёл до того, как транзакция была переписана из кэша на диск. Если какая-либо операция выполнена, то её надо повторить.

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

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

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

NTFS организована как реляционная база данных. Отмена транзакций проводится в обратном направлении. Если повторение идёт в прямом, то откат идёт в обратном направлении.

Информация для повтора и отмены может быть выражена либо физически, либо логически. Физическое описание задаёт модификацию тома как диапазон байт. Логическое описание представля-ет модификацию в терминах операций, например удалить файл a.dat. NTFS генерирует записи моди-фикации для каждой из следующих транзакций: создание файла (каталога), удаление файла (ката-лога), расширение файла (каталога), урезание файла (каталога), становка файловой информации, пере-нос, изменение прав доступа.

Записи контрольной точки.

Запись контрольной точки помогает NTFS определить, какая обработка необходима для тома после сбоя. Благодаря записи контрольной точки NTFS знает, как далеко ей надо пройти, чтобы начать восстановление.

Элемент управления FileSystemWatcher и отслеживание изменений файловой системы

Элемент управления FileSystemWatcher является образцом класса FileSystemWatcher пространства имён System.IO. Он используется для отслеживания изменений в файловой системе. Свойство Path экземпляра класса FileSystemWatcher задаёт каталог, в котором отслеживаются изменения в файловой системе. Свойство NotifyFilter задаёт фильтр, отсеивающий типы наблюдаемых изменений. Свойства Changed, Created, Deleted и Renamed специфицируют тип изменения. Оператор AddHandler разрешает связать отслеживаемое изменение с соответствующим обработчиком события.

Для аудита файлов в системах NT/2000 можно использовать также встроенные возможности файловой системы NTFS. Просто щелкните правой кнопкой мыши на нужном файле или каталоге, выберите команду Security, щелкните на кнопке Auditing, и установите требуемые параметры для каждого пользователя или группы.