
- •Лекція № 6.
- •2.Вивчення нового матеріалу. Робота з дисками Форматування дискети
- •Копіювання диска
- •Отримання відомостей про диск
- •Дефрагментація дисків. Утиліта Defrag
- •Пошук і усунення помилок на дисках. Утиліта ScanDisk
- •Комп'ютерні віруси. Антивірусні програми Поняття про комп'ютерні віруси
- •Класифікація вірусів
- •Типи антивірусних програм
- •Профілактичні заходи
- •Загальні поняття про архівацію та стиснення файлів Архівація і стиснення
- •Методи стискання даних без втрат
- •3. Закріплення нового матеріалу
- •4. Підсумки лекції.
- •5. Домашнє завдання.
Загальні поняття про архівацію та стиснення файлів Архівація і стиснення
З розвитком інформаційних технологій гостро постало питання щодо способів зберігання даних. Починаючи з сорокових років XX ст., вчені розробляють методи представлення даних, за яких простір на носіях інформації використовувався б економніше. Результатом цього стала технологія стиснення й архівації даних (англійською мовою backup).
Архівація даних - це злиття кількох файлів чи каталогів до єдиного файла - архіву. Стиснення даних є скороченням обсягу вихідних файлів шляхом усунення надлишкової інформації.
Для виконання цих завдань є програми-apxiватоpu, які забезпечують як архівацію, так і стиснення даних. За допомогою спеціальних алгоритмів архіватори видаляють з файлів усю надмірну інформацію, а при зворотних операціях розпаковування вони відновлюють інформацію у первісному вигляді. При цьому стиснення та відновлення інформації відбувається без втрат. Стиснення без втрат актуальне при роботі з текстовими і програмними файлами, у задачах криптографії.
Існують також методи стиснення із втратами. Вони видаляють з потоку інформацію, яка незначно впливає на дані або взагалі не сприймається людиною. Такі методи стиснення застосовуються для аудіо- та відеофайлів, деяких форматів графічних файлів.
Методи стискання даних без втрат
На сьогодні розроблено багато способів стискання без втрат, в основі їх лежать такі методи кодування:
Групове кодування RLE (Run Length Encoding) - один з найстаріших методів стиснення, який використовується в основному для архівації графіки.
Кодування Хаффмана (англ. Huffman) - в основі лежить той факт, що деякі символи в тексті можуть траплятися частіше середньої частоти повторень, а інші - рідше.
Кодування Лемпеля-Зіва (англ. Lempel, Ziv) - використовує факт неодноразового повторення фрагментів тексту, тобто послідовностей байтів. Практично всі популярні програми-архіватори без втрат (ARJ, RAR, ZIP тощо) застосовують методи Лемпеля-Зіва і Хаффмана (так званий алгоритм LZH - за початковими літерами прізвищ авторів).
Групове кодування RLE
Подамо зображення у числовому вигляді як ланцюжок байтів, записаних по рядках растру. Послідовності байтів, що повторюються, замінимо парою чисел: перше число буде представляти колір, а друге - кількість пікселів. Тоді, наприклад, такий рядок зображення
що описаний байтами:
255 255 255 255 128 128 0 0 0 0 0
буде подано як
255 4 128 2 0 5
Замість 11 байтів для запису цього рядка потрібно буде 6 байтів. Зрозуміло, що ступінь ущільнення залежатиме від характеру зображення та наявності довгих ланцюжків з байтами, що повторюються. Це виконується для зображень з великими одноколірними ділянками. Зображення, в яких мало сусідніх пікселів однакового кольору, не придатні для стиснення по методу RLE. Розмір стиснутого файла в такому разі може перевищувати розмір вихідного файла.
Кодування Хаффмана
Нагадаємо, що при кодуванні текстової інформації кожному символу відводиться 1 байт. Однак на практиці одні символи у конкретному тексті трапляються частіше, інші - рідше. Основою методу Хаффмана є те, що для запису поширених символів використовуються короткі послідовності біт (довжиною менше 8 біт), а для запису рідкісних символів - довгі. При цьому сумарний обсяг файла зменшується,
Хаффман запропонував дуже простий графічний спосіб визначення того, якому символу потрібно присвоїти певний код. Уникаючи подробиць покажемо дію методу на прикладі кодування слова «інфінітив». Частота появи літер у цьому слові така:
і-3; т-1;
н-2; и-1;
ф-1; в-1.
Користуючись методом Хаффмана, літерам можна присвоїти коди: і - 11; н -01; ф - 101; т-001; и - 000; в - 100. Після кодування слово «інфінітив» буде записуватися як 1101101110111001000100 та матиме довжину 22 біти. Оскільки вихідне слово займало 72 (=9x8) біти, отримаємо стиснення більш ніж утричі.
Зверніть увагу, що в методі Хаффмана код жодного символу не є початком коду будь-якого іншого символу. Це дозволяє отримувачеві однозначно відновити код стиснутого файла, навіть якщо він не знає довжини коду кожного переданого символу. Під час прийому коду отримувач спершу відділить перший символ, у нашому прикладі: 11-01101110111001000100. Потім буде відділений другий символ: 11 -01 -101110111001000100 і так до повного розшифрування коду: 11-01-101-11-01-11-001-000-100.
Недоліком методу Хаффмана є лише те, що до закодованого файла слід додавати таблицю кодування символів (у кожного файла вона буде своя). Однак, якщо файл великий, наявність таблиці несуттєво вплине на підсумковий розмір архівного файла.
Кодування Лемпеля-Зіва
Згідно з методом Лемпеля-Зіва у потоці даних відшукують послідовності символів, що повторюються. До стиснутого файлу записують не самі послідовності, а посилання на них у вигляді параметрів (зміщення, довжина).
Пояснимо це на прикладі вислову «давним-давно», яка кодується як «давним-(-7,4)о». Тобто замість повторюваної послідовності «давн», що складається з 4 символів та починається з 8-ої позиції, виконується така підстановка. Відраховується зміщення від поточної позиції на 7 знаків вліво (зміщення вліво позначається знаком мінус) та використовується фрагмент з 4 знаків.
Представимо за допомогою метода Лемпеля-Зіва ще такий вірш:
Грицю, Грицю, до роботи! В Гриця порвані чоботи...
Грицю, Грицю, до телят! В Гриця ніженьки болять...
Після кодування одержимо «-_Грицю,_(-7,6)_до_роботи!/В(-20,5)я_порвані _ч(-24,5).../(- 1,19)телят (-50,10)ніженьки_бо(-24,3)ь...».Знак абзацу тут позначено косою рискою «/».
Метод Лемпеля-Зіва найчастіше застосовується для стиснення текстів та файлів, які взагалі не стискаються методом RLE.
Завдання архівації
Досі йшлося про одне призначення архівації даних - економніше використання носіїв інформації. Однак за допомогою архівації можна виконувати цілий комплекс завдань:
Зменшення обсягу файлів. Це завдання виконується за допомогою методів стискання, що були розглянуті вище. Зменшення файлів актуальне не лише для економії вільного місця на дисках, а й для швидшого передавання файлів по мережі. Якщо дисковий простір можна «нарощувати» шляхом придбання сучасніших дисків більшої ємності, то швидкість передавання ще довго стримуватиме збільшення розміру файлів, що передаються.
Резервне копіювання. У процесі експлуатації комп'ютера не виключені ситуації, що загрожують невідновною втратою інформації (несправність пристрою накопичувача або дефекти на поверхні жорсткого диска, неправильні операції з файлами або випадкове знищення файлів, чи руйнування інформації комп'ютерним вірусом). Для збереження важливої інформації застосовується резервне копіювання на зовнішні носії (магнітооптичні диски, диски CD-R і CD-RW, вінчестери). Резервне копіювання виконується за допомогою спеціальних утиліт, що забезпечують створення компактних архівів. Одна з таких утиліт, Microsoft Backup, входить до комплекту Windows.
Архівація при шифруванні даних. Ця операція виконується з метою зменшення імовірності злому криптосистеми. Доведено, що чим менша кореляція (взаємозв'язок) між блоками вхідної інформації, тим нижча імовірність злому. Процедура архівації, знищуючи надмірну інформацію, ліквідує кореляції у вхідному потоці.
Термін "архівація" не зовсім точний. Головне призначення програм-архіваторів - стискування файлів з метою економії пам'яті. Стискуванню (ущільненню) можуть бути піддані: файли, теки, диски. Стискування файлів і папок потрібне або для їх транспортування, або для резервного копіювання, або для обміну інформацією по мережі Інтернет. Ущільнення дисків застосовують для підвищення ефективності використання їх робочого простору (зазвичай для дисків недостатньої місткості).
Існує багато програми-архіваторів, що мають різні показники по мірі і часу стискування, ці показники можуть бути різними для різних файлів (текстових, графічних, виконуваних і так далі), тобто один архіватор добре стискує текстовий файл, а інший - виконуваний.
Архіватором (пакувальником) називається програма, що дозволяє за рахунок застосування спеціальних методів стискування інформації створювати копії файлів меншого розміру, а також об'єднувати копії декількох файлів в один архівний файл, з якого можна при необхідності витягнути файли в їх первинному виді.
Увесь спектр існуючих сьогодні архіваторів можна розділити на три групи, які ми умовно назвемо файловими, програмними і дисковими.
Файлові архіватори - дозволяють упаковувати один або декілька файлів (наприклад, увесь вміст цього підкаталогу разом з вкладеними в нього підкаталогами) в єдиний архівний файл. Розмір останнього, як правило, менше, ніж сумарний розмір початкових файлів, але скористатися запакованими програмами або даними, поки вони знаходяться в архіві, не можна, поки вони не будуть розпаковані. Для розпаковування архівного файлу зазвичай використовується той же самий архіватор.
Програмні архіватори діють інакше. Вони дозволяють упакувати за один прийом один єдиний файл - виконувану програму ЕХЕ-типу, та зате так, що програма, що заархівувала, буде відразу після її запуску на виконання самораспаковываться в оперативній пам'яті і тут же починати роботу.
Дискові архіватори - дозволяють програмним способом збільшити доступний простір на жорсткому диску. Типовий дисковий архіватор є резидентним драйвером, який непомітно для користувача архівує будь-яку записувану на диск інформацію і розпаковує її назад при читанні. Проте операції читання/запису файлів дещо сповільнюються, оскільки процесору потрібно час для упаковки і розпаковування.
Для архівації використовуються спеціальні програми - архіватори або диспетчери архівів. Найбільш відомі архіватори: WinZip; WinRar; WinArj. Ці програми забезпечують можливість використання і інших архіваторів, тому, якщо на комп'ютері, куди перенесені стислі в них файли, відсутні вказані програми, архіви можна розпакувати за допомогою іншого архіватора. Досі широко використовуються і відповідні програми, створені в MS DOS, але здатні працювати і в Windows. Майже усі архіватори дозволяють створювати зручні архіви (SFX - Self - extracting -архивы), що самораспаковывающиеся, - файли з розширенням .ехе. Для розпаковування такого архіву не потрібно програму-архіватор, досить запустити архів *.ехе як програму. Багато архіваторів дозволяють створювати багатотомні (розподілені) архіви, які можуть розміщуватися на декількох дискетах.
Основними характеристиками програм-архіваторів є:
швидкість роботи;
сервіс (набір функцій архіватора);
міра стискування - відношення розміру початкового файлу до розміру упакованого файлу.
Основними функціями архіваторів є:
створення архівних файлів з окремих (чи усіх) файлів поточного каталогу і його підкаталогів, завантажуючи в один архів до 32 000 файлів;
додавання файлів в архів;
витягання і видалення файлів з архіву;
перегляд утримуваного архіву;
перегляд вмісту файлів, що архівуються, і пошук рядків у файлах, що архівуються;
введення в архів коментарі до файлів;
створення багатотомних архівів;
створення архівів, що самораспаковывающихся, як в одному томі, так і у вигляді декількох томів;
забезпечення захисту інформації в архіві і доступ до файлів, поміщених в архів, захист кожного з поміщених в архів файлів циклічним кодом;
тестування архіву, перевірка збереження в нім інформації;
відновлення файлів (частково або повністю) з пошкоджених архівів;
підтримка типів архівів, створених іншими архіваторами та ін.