Научная статья на тему 'Восстановление данных в информационных системах'

Восстановление данных в информационных системах Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
1887
98
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Н, М. Василега, В. Н, Крищук, А. В, Неласая

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

In this paper we show how it is possible to recover lost or damage files. In particular, we show general problems and specific ones for DBF-files.

Текст научной работы на тему «Восстановление данных в информационных системах»

П.1НФОРМАТИКА

УДК 681.3.067

ВОССТАНОВЛЕНИЕ ДАННЫХ В ИНФОРМАЦИОННЫХ СИСТЕМАХ

Н. М. Василега, В. Н. Крищук, А. В. Неласая

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

У статт1 розглядаються засоби в1дновлення втрачених або зруйнованих даних. Аналгзуються як загальш проблеми, що виникають при вгдновленш файлгв усих титв, так i специф(чш для DBF-файлiв.

In this paper we show how it is possible to recover lost or damage files. In particular, we show general problems and specific ones for DBF-files.

ВВЕДЕНИЕ

Современный мир немыслим без информационных технологий. По данным печати 70% мирового совокупного национального продукта прямо или косвенно зависят от информации, хранящейся в электронном виде. Поэтому актуальность проблемы защиты информации от преднамеренных и случайных искажений не вызывает сомнения. Интересны также методы восстановления утраченных или испорченных данных, если беда все же произошла. При всем этом единого мнения по вопросам применяемых технологий защиты информации до сих пор не существует. Теоретическая база науки о защите информации находится еще в стадии формирования. На практике администраторы компьютерных сетей при определении оптимальной конфигурации подсистемы защиты ориентируются не на единый научный подход, а на многочисленные, зачастую противоречащие друг другу рекомендации, которыми изобилует литература по компьютерной безопасности и страницы Internet. Особый интерес представляет технология защиты программных продуктов, в которых основную ценность составляет не исполняемый код, а входящие в него данные. Авария в сети - отключение питания, "зависание" сетевого программного обеспечения файл-сервера может привести к весьма неприятным последствиям.[1]

1 ПОСТАНОВКА ЗАДАЧИ

Как известно, для удаления записей в DBF-файлах в СУБД предусмотрено два уровня. По команде DELETE записи лишь помечаются к удалению с возможностью

последующего их восстановления. По команде PACK данные сжимаются на физическом уровне таким образом, что восстановление становиться невозможным. Еще одна команда ZAP позволяет полностью обнулить файл; при этом структура DBF-файла сохраняется, удаляются лишь сами данные. Восстановление после ZAP в СУБД не реализовано. Что же происходит с файлом при выполнении этих команд? DBF-файл на низком уровне представляет собой обычный набор байтов, причем начинается он с заголовка, в котором описана логическая структура данных. За заголовком непрерывным потоком следуют полезные данные в описанном формате. Структура заголовка представлена в таблице 1.1. Назовем это логическим уровнем.

Таблица 1.1 - Структура заголовка DBF-файла

Смещение (десятичное) Описание

00 Описатель типа файла: 03Ь-файл без полей memo, 80Ь-файл Foxbase+ с memo, 83Ь-файл Clipper с memo, F5h-файл FoxPro с memo

1-3 Дата последнего обновления

4-7 Количество записей данных в файле

8-9 Смещение первой записи данных от начала файла

10-11 Размер записи (включая байт удаления)

12-31 Зарезервировано

32-N Описание структуры записей (полей)

N+1 ODh-байт окончания заголовка

N+2 Начало первой записи данных (флажок удаления)

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

Каждая запись данных начинается с флажка удаления. Это один байт информации, который по умолчанию принимает значение 20h. Команда DELETE заносит в этот байт значение 2Ah (символ '*'). По команде RECALL производится обратная замена и запись восстанавливается. Физическое удаление помеченных записей производится командой PACK. Она работает таким образом, что данные "подтягиваются" к заголовку, полностью замещая собой помеченные к удалению записи. После этого на диске не остается и следа от удаленных записей, и восстановить их совершенно невозможно. Теоретически, исключение составляет тот случай, когда помеченным к удалению оказывается только одна или несколько смежных записей в конце файла. Но такое вряд ли возможно. Во всяком случае, отследить это на практике нельзя.

Иначе работает команда ZAP. Флажок удаления здесь не используется, данные не уничтожаются физически. Корректируется лишь количество записей в заголовке (сбрасывается в 0) и размер файла в элементе оглавления диска. Таким образом, существует возможность восстановить обнуленный файл.

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

2 МЕТОДЫ И АЛГОРИТМЫ РЕШЕНИЯ

Рассмотрим существующие методы восстановления файлов с помощью утилит типа UNDELETE, UNERASE. Алгоритм их работы таков.

1. Просмотрев оглавление диска определить элементы каталога, соответствующие удаленным файлам. Это те файлы, первый байт в поле имени которых изменен на E5. Если же элемент каталога удаленного файла в процессе работы был занят новым файлом, то

автоматическое восстановление невозможно.

2. Из выбранного списка пригодными к восстановлению являются только те файлы, кластеры которых еще не заняты другой информацией, то есть в таблице распределения файлов помечены как пустые. На первоначальном этапе утилиты восстановления к таким файлам относят те, начальный кластер файла которых помечен как свободный. Номер начального кластера берется из обрабатываемого элемента каталога. Для таких файлов необходимо заново ввести первую букву имени, чтобы восстановить запись каталога.

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

Как видно из приведенного алгоритма, самой большой проблемой является корректное восстановление цепочки кластеров в FAT. В простейшем случае, если размер файла не превышает одного кластера, первый кластер, номер которого хранится в элементе каталога, помечается как последний. Если файл занимает несколько соседних кластеров, после восстановления записи в каталоге утилита обращается к FAT и назначает файлу столько последовательных нераспределенных кластеров, сколько требует файл. Если файл разбросан, способ восстановления FAT заключается в последовательном передвижении по диску сначала по возрастанию номеров кластеров от начала файла, а при достижении внутреннего края диска, начиная с внешнего края, и назначением файлу требуемого числа свободных кластеров, встреченных на пути [2]. Программы автоматического восстановления вполне корректно работают, если диск периодически обрабатывается утилитами типа SpeedDisk и дефрагментация файлов сведена к минимуму. Но в этом случае навсегда утерянными станут те файлы, которые были удалены или повреждены до запуска подобной утилиты.

В качестве иллюстрации описанных принципов рассмотрим простой пример. Пусть существует два файла Filel и File2. Цепочка кластеров для Filel имеет вид 5-6-7-8-13-14, а для File2 - 9-10-11-12. Как видно из таблицы 2.l второму файлу принадлежат четыре смежных кластера, а цепочка кластеров первого файла разделена цепочкой второго на две части - с 5 по 8 и с

13 по 14 кластеры.

Если удалить Filel, а затем попытаться восстановить утилитой UNDELETE, она отработает вполне корректно. После удаления файла рассматриваемый фрагмент FAT приведен в таблице 2.2.

Таблица 2.2

Выбрав из элемента каталога номер первого кластера 5, утилита восстановления, убедившись, что он помечен как свободный, начинает связывать в цепочку смежные свободные кластеры, следуя по возрастанию их номеров. Получается первая часть 5-6-7-8. Следующий 9 кластер помечен как занятый, а необходимый размер файла еще не достигнут. Утилита последовательно пропускает занятые кластеры 9-10-11-12, пока не находит следующий свободный. После этого к первому файлу присоединяются кластеры 13-14. На этом работа заканчивается, так как достигнут необходимый размер файла. Как видно из приведенных рассуждений, в таком случае цепочка кластеров выстраивается в точном соответствии с таблицей 2.1.

Что же произойдет, если удалить оба файла, а затем попытаться их восстановить. В этом случае результат зависит от порядка восстановления файлов. Если первым восстановить File2, он восстановиться корректно, так как занимает смежные кластеры. Процесс восстановления после этого File1 рассмотрен выше. Если же начать с File1, то ситуация в корне меняется. Фрагмент FAT после удаления приведен в таблице 2.3.

Таблица 2.3

Содержимое элемента FAT Номер элемента FAT

0 5

0 6

0 7

0 8

0 9

0 10

0 11

0 12

0 13

0 14

Выбрав из элемента каталога номер первого кластера 5, утилита восстановления, убедившись, что он помечен как свободный, начинает связывать в цепочку смежные свободные кластеры до достижения требуемого размера файла. Так как все кластеры помечены как свободные, в цепочку попадут 6 смежных кластеров 5-6-7-8-9-10. А попытка восстановить после этого второй файл вообще не увенчается успехом, так как его начальный кластер

Содержимое элемента FAT Номер элемента FAT

0 5

0 6

0 7

0 8

10 9

11 10

12 11

# 12

0 13

0 14

Таблица 2.1

Содержимое элемента FAT Номер элемента FAT

6 5

7 6

8 7

13 8

10 9

11 10

12 11

# 12

14 13

# 14

номер 9 к этому моменту уже будет помечен как принадлежащий первому файлу. Результат показан в таблице 2.4.

Таблица 2.4

Восстановлению файлов после ZAP присущи те же проблемы, что и восстановлению файлов после удаления. Однако существует и принципиальное отличие. Поскольку сам файл не удаляется как таковой, запись в каталоге диска для этого файла остается, однако изменяется размер файла. Соответственно счетчик записей в заголовке DBF-файла сбрасывается в 0. Таким образом, возникает проблема, как определить реальный размер (и соответственно количество записей) при восстановлении.

3 РЕЗУЛЬТАТЫ

Исходя из приведенных соображений, вырисовывается алгоритм восстановления файла после ZAP.

Шаг 1.Определить размер файла до обнуления. Если предположить, что размер файла в байтах найден, то количество записей в этом случае можно определить как

K = (B - Z ) R '

где K - количество записей

B - размер файла в байтах

Z - размер заголовка

R - размер одной записи

Величина Z - это размер файла в байтах после операции ZAP, так как в этом случае файл представляет

собой только описательную часть без единой записи полезных данных. Размер записи, включая байт удаления, записан в заголовке по смещению 9-10.

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

B = Z + R ■ K .

Шаг 2. Изменить оба параметра: количество записей занести в заголовок файла по смещению 4-7, а размер файла в байтах в элемент каталога этого файла по смещению 28-31. При этом следует учитывать обратный порядок следования байтов.

Шаг 3. Восстановить цепочку кластеров в таблице размещения файлов. Этот шаг полностью аналогичен описанной выше проблеме восстановления FAT для файлов, удаленных с диска. Как было показано, не всегда можно быть полностью уверенным, что файл восстановиться корректно.

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

1. Процедура сохранения указанных параметров встраивается программистом в саму программу обработки данных. Возможен вариант, когда процедура, перехватывающая команду обнуления, оформляется как отдельный объектный модуль и присоединяется к программе на этапе компоновки.

2. Исполняемый модуль программы обработки данных обрабатывается специальным "конвертом" для включения в него кода предлагаемой процедуры.

3. Данная процедура разрабатывается как независимая резидентная программа, перехватывающая команду ZAP на уровне операционной системы.

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

Содержимое элемента FAT Номер элемента FAT

6 5

7 6

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

8 7

9 8

10 9

# 10

0 11

0 12

0 13

0 14

В. С. Выхованец: ОБОБЩЕННЫЕ ПОЛИНОМИАЛЬНЫЕ ФОРМЫ

ВЫВОДЫ

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

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

ПЕРЕЧЕНЬ ССЫЛОК

1. Минаев A.B. Восстановление поврежденных файлов баз данных FoxPro LAN //"Компьютеры + Программы" 1(9) 1994 г. - C. 34-35.

2. Нортон Питер, Джордейн Роберт. Работа с жестким диском IBM/PC. - М.:Мир,1992 - 560 с.

Надшшла 18.01.99 Шсля доробки 09.09.99

УДК 519.714+681.3

ОБОБЩЕННЫЕ ПОЛИНОМИАЛЬНЫЕ ФОРМЫ

В. С. Выхованец

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

There is shown in the article that multivalued data manipulation can be realized by calculation logic function represented as generalized polynomial. Generalized procedure of polynomial forms syntheses, which is realized both in the operation extended basis and with compounded significance of variables. Usage of the multiplicative shapes which permit to increase effectiveness of logical evaluations on computational tools with binary data coding is offered.

1 ВВЕДЕНИЕ

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

аргументов X = {Xn_ j, ...,X^,X, значности которых, в общем случае, различны и равны, соответственно,

К={кпkj, к0} :

f(Xn_ 1,...,X1,X0)£{0, 1,., kf- 1} ,

Xt e {0, 1,., kt - 1} . (1)

Современное состояние информационной технологии отражает неадекватность используемых методов обра-

ботки данных структуре вычислительных средств. Наименее изученными остаются вопросы, связанные с расширением форм представления логических данных с учетом операционных возможностей вычислительного устройства. Наблюдается закономерный интерес к разработке новых форм представления логических данных. В последнее время находит все большее применение метод расширения форм, основанный на преобразовании Фурье в дискретных базисах [1, 2]. Практический интерес представляют полиномиальные формы, которые имеют однородную алгебраическую структуру и хорошо реализуются средствами современной микроэлектроники. Основываясь на ранее полученных результатах [3], приведем обобщенную методику синтеза полиномиальных форм.

2 МЕТОДИКА СИНТЕЗА ПОЛИНОМИАЛЬНЫХ

ФОРМ

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

к — 1 к — 1

р(X) = X а,(сЫп":1 Ъп 1 ...8ох0°) = X агЧХ) , (2) , = о , = о

где к = кп_ 1 х...х¿1 хко; а, - коэффициенты формы; с, - произвольные константы; - логические операции; X, - переменная X, в логической степени ¡(;

1 = (, _ 1.,0) - представление числа , по смешанному " 1 0 к

основанию К; 0,(X) - полиномиальные ортогональные функции. Для синтеза полиномиальных форм исполь-

i Надоели баннеры? Вы всегда можете отключить рекламу.