ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 16.06.2020

Просмотров: 492

Скачиваний: 4

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

 Як окремий напрямок слід виділити мови програмування баз даних, призначені для маніпуляції великими централізованими масивами даних і отримання з них інформації.
 Багато з цих мов (Access, FoxPro, 4GL та ін.) мають розвинені процедурні елементи. Фактичним стандартом стала мова запитів до баз даних SQL.












4. Існує багато різних практичних методів стиснення без втрати інформації, які, як правило, мають різну ефективність для різних типів даних та різних обсягів. Однак, в основі цих методів лежать три теоретичних алгоритми:

  • алгоритм RLE (Run Length Encoding);

  • алгоритми групи KWE(KeyWord Encoding);

  • алгоритм Хафмана.

Алгоритм RLE

В основі алгоритму RLE лежить ідея виявлення послідовностей даних, що повторюються, та заміни цих послідовностей більш простою структурою, в якій вказується код даних та коефіцієнт повторення. Наприклад, нехай задана така послідовність даних, що підлягає стисненню:

1 1 1 1 2 2 3 4 4 4

В алгоритмі RLE пропонується замінити її наступною структурою: 1 4 2 2 3 1 4 3, де перше число кожної пари чисел -це код даних, а друге - коефіцієнт повторення. Якщо для зберігання кожного елементу даних вхідної послідовності відводиться 1 байт, то вся послідовність займатиме 10 байт пам'яті, тоді як вихідна послідовність (стиснений варіант) займатиме 8 байт пам'яті. Коефіцієнт стиснення, що характеризує ступінь стиснення, можна обчислити за такою формулою:

де Vx- обсяг пам'яті, необхідної для зберігання вихідної (результуючої) послідовності даних, Vn- вхідної послідовності даних.

Чим менше значення коефіцієнта стиснення, тим ефективніший метод стиснення. Зрозуміло, що алгоритм RLE буде давати кращий ефект стиснення при більшій довжині послідовності даних, що повторюється. У випадкові розглянутого вище прикладу, якщо вхідна послідовність матиме такий вигляд: 1 1 1 1 1 1 3 4 4 4, то коефіцієнт стиснення буде рівний 60%. У зв'язку з цим найбільша ефективність алгоритму RLE досягається при стисненні графічних даних (особливо для однотонових фонових зображень).

Алгоритми групи KWE

В основі алгоритму стиснення за ключовими словами покладено принцип кодування лексичних одиниць групами байт фіксованої довжини. Прикладом лексичної одиниці може бути звичайне слово. На практиці, в ролі лексичних одиниць вибираються послідовності символів, що повторюються, які кодуються ланцюжком символів (кодом) меншої довжини. Результат кодування зводиться в таблицю, утворюючи так званий словник.

Існує досить багато реалізацій цього алгоритму, серед яких найбільш поширеними є алгоритм Лемпеля-Зіва (алгоритм LZ) та його модифікація алгоритм Лемпеля-Зіва-Велча (алгоритм LZW). Словником в даному алгоритмі є потенційно нескінченний список фраз. Алгоритм починає роботу з майже пустого словника, що містить тільки один закодований рядок, так званий NULL-рядок. Коли зчитується черговий символ вхідної послідовності даних, він додається до поточного рядка. Процес продовжується доти, поки поточний рядок відповідає якій-небудь фразі з словника. Але рано або пізно поточний рядок перестає відповідати якій-небудь фразі словника. У цей момент, коли поточний рядок являє собою останній збіг зі словником плюс щойно прочитаний символ повідомлення, кодер видає код, що складається з індексу збігу і наступного за ним символа, що порушив збіг рядків. Крім того, нова фраза, що складається з індексу збігу і наступного за ним снмвола, додається в словник. У наступний раз, коли ця фраза з'явиться в повідомленні, вона може бути використана для побудови більш довгої фрази, що підвищує міру стиснення інформації.


Алгоритм LZW побудований навколо таблиці фраз (словника), яка відображає рядки символів стиснуваного повідомлення в коди фіксованої довжини. Таблиця володіє так званою властивістю передування, тобто для кожної фрази словника, що складається з деякої фрази w і символа К фраза w також міститься в словнику. Якщо всі частинки словника повністю заповнені кодування перестає бути адаптивним (кодування відбувається виходячи з вже існуючих в словнику фраз).

Алгоритми стиснення цієї групи найефективніші для текстових даних великих обсягів і малоефективні для файлів малих розмірів (за рахунок необхідності зберігання словника).

Алгоритм Хафмана

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

Основна ідея полягає в наступному: чим частіше зустрічається символ, тим меншою кількістю біт він кодується. Результат кодування зводиться в словник, що необхідний для декодування.

Розглянемо простий приклад, що ілюструє роботу алгоритму Хафмана. Нехай задано текст, в якому літера 'А' входить 10 разів, літера 'B' - 8 раз, 'C'- 6 разів , 'D' - 5 разів, 'E' і 'F' - по 4 рази. Тоді один з можливих варіантів кодування за алгоритмом Хафмана наведений у таблиці 1.

Таблиця 1.

Символ

Частота входження

Бітовий код

A

10

00

B

8

01

C

6

100

D

5

101

E

4

110

F

4

111

Як видно з таблиці 1, розмір вхідного тексту до стиснення рівний 37 байт, тоді як після стиснення - 93 біт, тобто майже 12 байт (без врахування довжини словника). Коефіцієнт стиснення рівний 32%. Алгоритм Хафмана універсальний, тобто його можна застосовувати для стиснення даних будь-яких типів, але він малоефективний для файлів малих розмірів (за рахунок необхідності зберігання словника).

На практиці програмні засоби стиснення даних синтезують ці три "чистих" алгоритми, оскільки їх ефективність залежить від типу та обсягу даних. У таблиці 2 наведені найпоширеніші формати стиснення та відповідні їм програми-архіватори, що використовуються на практиці.

Таблиця 2.

Формат стиснення

Операційна система MS DOS

Операційна система Windows

Програма архівування

Програма розархівування

Програма архівування

Програма розархівування

ARJ

Arj.exe

Arj.exe

WinArj.exe

WinArj.exe

RAR

Rar.exe

Unrar.exe

WinRar.exe

WinRar.exe

ZIP

Pkzip.exe

Pkunzip.exe

WinZip.exe

WinZip.exe

Крім того, сучасні архіватори надають користувачеві повний спектр послуг для роботи з архівами, основними з яких є:

  1. створення нового архіву;

  2. додавання файлів в існуючий архів;

  3. розпакування файлів з архіву;

  4. створення архівів, що саморозпаковуються (self-extractor archive);

  5. створення розподілених архівів фіксованих розмірів для носіїв малої ємності;

  6. захист архівів паролями від несанкціонованого доступу;

  7. перегляд вмісту файлів різних форматів без попереднього розархівування;

  8. пошук файлів і даних всередині архіву;

  9. перевірка на віруси в архіві до розпакування;

  10. вибір та налаштування коефіцієнта стиснення.


































5. Комп'ютерний вірус - це невелика програма, що написана програмістом високої кваліфікації, здатна до саморозмноження й виконання різних деструктивних дій. На сьогоднішній день відомо понад 50 тис. Комп'ютерних вірусів. Існує багато різних версій стосовно дати народження першого комп'ютерного вірусу. Однак більшість фахівців сходяться на думці, що комп'ютерні віруси, як такі, вперше з'явилися у 1986 році, хоча історично виникнення вірусів тісно пов'язане з ідеєю створення самовідтворюючих програм.

Одним із "піонерів" серед комп'ютерних вірусів вважається вірус "Brain", створений пакистанським програмістом на прізвище Алві. Тільки у США цей вірус вразив понад 18 тис. комп'ютерів. На початку епохи комп'ютерних вірусів розробка вірусоподібних програм носила чисто дослідницький характер, поступово перетворюючись на відверто вороже протистояння користувачів та безвідповідальних, і навіть кримінальних "елементів". В ряді країн карне законодавство передбачає відповідальність за комп'ютерні злочини, в тому числі за створення та розповсюдження вірусів.

Віруси діють тільки програмним шляхом. Вони, як правило, приєднуються до файлу або проникають всередину файлу. У цьому випадку кажуть, що файл заражений вірусом. Вірус потрапляє в комп'ютер тільки разом із зараженим файлом. Для активізації вірусу потрібно завантажити заражений файл, і тільки після цього вірус починає діяти самостійно. Деякі віруси під час запуску зараженого файлу стають резидентними (постійно знаходяться в оперативній пам'яті комп'ютера) і можуть заражати інші файли та програми, що завантажуються. Інші різновиди вірусів відразу після активізації можуть спричиняти серйозні пошкодження, наприклад, форматувати жорсткий диск.

Дія вірусів може проявлятися по різному: від різних візуальних ефектів, що заважають працювати, до повної втрати інформації. Більшість вірусів заражують виконавчі програми, тобто файли з розширенням .EXE та .COM, хоча останнім часом все більшої популярності набувають віруси, що розповсюджуються через систему електронної пошти. Слід зауважити, що комп'ютерні віруси здатні заражати лише самі комп'ютери. Тому абсолютно абсурдними є різні твердження про вплив комп'ютерних вірусів на користувачів комп'ютерів.

Основними джерелами вірусів є:

  • дискета, на якій знаходяться заражені вірусом файли;

  • комп'ютерна мережа, в тому числі система електронної пошти та Internet;

  • жорсткий диск, на який потрапив вірус в результаті роботи з зараженими програмами;

  • вірус, що залишився в оперативній пам'яті після попереднього користувача.

Звідси випливає, що зараження комп'ютера не відбудеться, якщо:

  • на комп'ютері переписуються тексти програм, документів, файли даних системи управління базами даних (СУБД), таблиць табличних процесорів і т. д. (ці файли не є програмами);

  • виконується копіювання файлів з однієї дискети на іншу, в разі копіювання зараженого файлу його копія також буде заражена.


Основними ранніми ознаками зараження комп'ютера вірусом є:

  • зменшення обсягу вільної оперативної пам'яті;

  • сповільнення завантаження та роботи комп'ютера;

  • незрозумілі (без причин) зміни у файлах, а також зміни розмірів та дати останньої модифікації файлів;

  • помилки при завантаженні операційної системи;

  • неможливість зберігати файли в потрібних каталогах;

  • незрозумілі системні повідомлення, музикальні та візуальні ефекти і т.д.

Коли вірус переходить в активну фазу можливі такі ознаки:

  • зникнення файлів;

  • форматування жорсткого диска;

  • неспроможність завантаження файлів або операційної системи.

Існує дуже багато різних вірусів. Умовно їх можна класифікувати наступним чином:

  1. завантажувальні віруси або BOOT-віруси: заражають boot-сектори дисків. Дуже небезпечні, можуть призвести до повної втрати всієї інформації, що зберігається на диску;

  2. файлові віруси: заражають файли. Поділяються на:

    1. віруси, що заражують програми (файли з розширенням .EXE і .COM);

    2. макровіруси: віруси, що заражують файли даних, наприклад, документи Word або робочі книги Excel;

    3. віруси-супутники: використовують імена інших файлів;

    4. віруси сімейства DIR: спотворюють системну інформацію про файлові структури;

  3. завантажувально-файлові віруси: здатні вражати як код boot-секторів, так і код файлів;

  4. віруси-невидимки або STEALTH-віруси: фальсифікують інформацію прочитану з диска так, що програма, якій призначена ця інформація отримує невірні дані. Ця технологія, яку, інколи, так і називають Stealth-технологією, може використовуватися як в BOOT-вірусах, так і у файлових вірусах;

  5. ретровіруси: заражують антивірусні програми, намагаючись знищити їх або зробити непрацездатними;

  6. віруси-хробаки: заражують невеликі повідомлення електронної пошти, так званим заголовком, який по своїй суті є всього навсього лише Web-адресою місцезнаходження самого вірусу. При спробі прочитати таке повідомлення вірус починає зчитувати через глобальну мережу Internet своє 'тіло', яке після завантаження починає свою деструктивну дію. Дуже небезпечні, так як виявити їх дуже важко у зв'язку з тим, що заражений файл фактично не містить коду вірусу.

Якщо не вживати заходів для захисту від комп'ютерних вірусів, то наслідки зараження можуть бути дуже серйозними. В ряді країн карне законодавство передбачає відповідальність за комп'ютерні злочини, в тому числі за впровадження вірусів. Для захисту інформації від вірусів використовуються загальні та програмні засоби.

До загальних засобів, що допомагають запобігти зараженню та його руйнівних наслідків належать:

  • резервне копіювання інформації (створення копій файлів і системних областей жорстких дисків);

  • уникнення користування випадковими й невідомими програмами. Найчастіше віруси розповсюджуються разом із комп'ютерними вірусами;

  • перезавантаження комп'ютера перед початком роботи, зокрема, у випадку, якщо за цим комп'ютером працювали інші користувачі;

  • обмеження доступу до інформації, зокрема фізичний захист дискети під час копіювання файлів із неї.


До програмних засобів захисту належать різні антивірусні програми (антивіруси). Антивірус - це програма, яка виявляє й знешкоджує комп'ютерні віруси. Слід зауважити, що віруси у своєму розвиткові випереджають антивірусні програми, тому навіть у випадку регулярного користування антивірусів немає 100% гарантії безпеки. Антивірусні програми можуть виявляти та знищувати лише відомі віруси, при появі нового комп'ютерного вірусу захисту від нього не існує до тих пір, поки для нього не буде розроблено свій антивірус. Однак, багато сучасних антивірусних пакетів мають у своєму складі спеціальний програмний модуль, який називається евристичний аналізатор, і який здатний досліджувати вміст файлів на наявність коду, характерного для комп'ютерних вірусів. Це дає змогу вчасно виявляти та попереджати про небезпеку зараження новим вірусом.

Розрізняють такі типи антивірусних програм:

  1. програми-детектори: призначені для знаходження заражених файлів одним із відомих вірусів. Деякі програми-детектори можуть також лікувати файли від вірусів або знищувати заражені файли. Існують спеціалізовані (тобто призначені для боротьби з одним вірусом) детектори та поліфаги (можуть боротися з багатьма вірусами);

  2. програми-лікарі: призначені для лікування заражених дисків і програм. Лікування програми полягає у вилученні із зараженої програми тіла вірусу. Також можуть бути як поліфагами, так і спеціалізованими;

  3. програми-ревізори: призначені для виявлення зараження вірусом файлів, а також знаходження ушкоджених файлів. Ці програми запам'ятовують дані про стан програми та системних областей дисків у нормальному стані (до зараження) і порівнюють ці дані у процесі роботи комп'ютера. В разі невідповідності даних виводиться повідомлення про можливість зараження;

  4. лікарі-ревізори: призначені для виявлення змін у файлах і системних областях дисків й у разі змін повертають їх у початковий стан.

  5. програми-фільтри: призначені для перехоплення звернень до операційної системи, що використовуються вірусами для розмноження і повідомляють про це користувача. Останній має можливість дозволити або заборонити виконання відповідної операції. Такі програми є резидентними, тобто вони знаходяться в оперативній пам'яті комп'ютера.

  6. програми-вакцини: використовуються для обробки файлів і boot-секторів із метою попередження зараження відомими вірусами (в останній час цей метод використовується все частіше).

Слід зауважити, що вибір одного "найкращого" антивірусу є вкрай помилковим рішенням. Рекомендується використовувати декілька різних антивірусних пакетів одночасно. Вибираючи антивірусну програму слід звернути увагу на такий параметр, як кількість розпізнаючих сигнатур (послідовність символів, які гарантовано розпізнають вірус). Другий параметр - наявність евристичного аналізатора невідомих вірусів, його присутність дуже корисна, але суттєво уповільнює час роботи програми. На сьогоднішній день існує велика кількість різноманітних антивірусних програм. Розглянемо коротко найбільш поширені в Україні.