Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции по ПО ЭВМ.doc
Скачиваний:
31
Добавлен:
26.09.2019
Размер:
5.17 Mб
Скачать

10. Архивация данных

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

Архивация – это сжатие одного или нескольких файлов и помещение их в специальный файл, называемый архивным. Для упаковки файлов и последующего их восстановления используют специальные программы  архиваторы.

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

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

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

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

Для сжатия без потерь в основном используют два классических метода: метод Хаффмана и метод Лемпеля-Зива.

Метод Хаффмана основан на том, что практически в любом тексте, составленном из стандартного 256-символьного набора, некоторые символы встречаются чаще, а некоторые – реже. Архивируемый текст предварительно просматривается программой-архиватором, и составляется таблица частотности использования символов. Затем для записи самых распространенных в данном тексте символов используются максимально короткие двоичные последовательности, следующих по распространенности – более длинные и т.д. К примеру, пусть в некотором тексте (на русском языке) буква ‘И’ по использованию оказалась на первом месте, буква ‘А’ на втором и буква ‘П’ на третьем. Тогда можно, в процессе архивации, заменить обычный 8-и битный код буквы ‘И’ на 0, буквы ‘А’ на 1 и буквы ‘П’ на 10 – экономия очевидна и велика. К перекодированному таким образом тексту при его хранении присоединяется таблица кодировки, которая позволяет при разархивировании восстановить исходный текст. Разумеется, описанное выше есть лишь идея метода Хаффмана, детали можно найти в специальной литературе.

Еще проще идея алгоритма Лемпеля-Зива (называемого также алгоритм LZ77). В потоке данных анализируются последовательности байт, и, если некоторая последовательность уже встречалась, и если запись о ее длине и смещении от текущей позиции короче, чем сама эта последовательность, то в создаваемый архивный файл записывается не сама последовательность, а ссылка на нее (ссылка включает смещение и длину). Например, фраза

«Лето просто пролетает»

при архивации таким способом предстанет в виде

Лето_прос(–7,2)_(–7,3)_(–15,3)а(–18,2)

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

Формат архивного файла, а, следовательно, и его расширение зависят от выбранного архиватора.

Примеры архиваторов:

Название архиватора

Расширение архивного файла

LHA

.lzh

RAR

.rar

ARJ

.arj

PKZIP/PKUNZIP

.zip

Некоторые архиваторы поддерживают создание самораспаковывающихся архивов. Такие архивы имеют расширение .exe и распаковываются при запуске этого файла.

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

Для вывода на экран справки о командах архиватора обычно достаточно набрать в командной строке имя архиватора, символ "/" и "?". Например: arj/? или rar/?.

В операционных системах Windows программы-архиваторы встроены в систему. Их можно автоматически вызвать по контекстному меню (правая клавиша мыши при выделении файла или группы файлов).

Рассмотрим в качестве примеров архиваторы ARJ и RAR.