Операционные системы. Управление ресурсами



         

Целостность данных и файловой системы - часть 2


Концепция обратных копий может быть расширена до сохранения нескольких поколений версий файлов: при изменении файла создается его новая версия, а старая версия сохраняется. Создание новых версий может производиться разными способами:

  • вручную - пользователь сам копирует файл, версию которого он хочет сохранить, под новым именем;
  • специальными утилитами - некоторые программы (например, текстовые редакторы) автоматически создают новую версию файла, который они изменяют (BAK-файлы, хорошо известные пользователям MS DOS);
  • общей утилитой - которая проверяет версии всех файлов (или заданной группы файлов) и создает новые версии для изменившихся файлов;
  • автоматически - самой ОС при открытии любого файла для записи.

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

Профилактикой случайного удаления файла может быть неполное удаление. Такое удаление предполагает сохранение физического файла на диске, а следовательно, и возможность его последующего восстановления. Элемент каталога, соответствующий не полностью удаленному файлу, может помечаться специальным признаком или файл может переноситься в специальный каталог для удаленных файлов. Такой подход должен обеспечиваться двумя системными вызовами - deleteFile для неполного удаления и purgeFile - для полного. Неполное удаление создает, однако, проблему дискового пространства: неполное удаление файла не освобождает места на диске.


Содержание  Назад  Вперед