1   2   3   4   5   6   7   8
Ім'я файлу: пз.docx
Розширення: docx
Розмір: 1133кб.
Дата: 26.05.2023
скачати
Пов'язані файли:
16. 04. лекція Тригери на БТ.docx
Методичні вказівки до практичних занять з дисципліни «Комп’ютерн
Методичні вказівки до практичних занять з дисципліни «Комп’ютерн

1.3 Прогнозування експлуатаційних витрат



Експлуатаційні витрати це такі витрати, які забезпечують нормальне функціонування об’єкта дослідження в період експлуатації. В найбільш спрощеному вигляді величина експлуатаційних витрат в розрахунку за рік може бути спрогнозована за формулою:
Е= , (1.2)
де К - коефіцієнт, що враховує витрати на амортизацію, електроенергію, обслуговування К= 0,2-0,4;

А - коефіцієнт, який враховує прогнозований прибуток, податки, які повинен сплачувати виробник А = 1,5-2;

S – собівартість розробки, яка оцінюється приблизним способом;

- доля часу, який витрачає працівник на обслуговування розробки в загальному часі своєї роботи . Знаходимо експлуатаційні витрати:
Е = 0,4 24000 (грн)

1.4 Розрахунок капітальних вкладень



Прогноз на капітальні вкладення визначається спрощеним способом за формулою:
, (1.3)
де В - коефіцієнт, який враховує витрати на розробку, придбання, транспортування, монтаж, налагодження досліджуваної розробки, В=1,1-1,8;

А – коефіцієнт, який враховує прогнозний прибуток, податки, які повинен виплачувати виробник, А=1,5-2;

S – собівартість розробки, яка оцінюється приблизним способом.
К = 1,1 1,5 30000 = 49500 (грн)
Виходячи із отриманих прогнозних розрахунків, можна зробити висновок, що необхідність розробки програмного модуля є актуальною, що і підтверджують прогнозні розрахунки. Більш точні розрахунки витрат на розробку проекту та експлуатацію будуть наведені в четвертому розділі.

2 АНАЛІЗ НАПРЯМКІВ ПІДВИЩЕННЯ ЕФЕКТИВНОСТІ ВИРІШЕННЯ ЗАДАЧІ ПОШУКУ РАЦІОНАЛЬНИХ ВАРІАНТІВ ПЕРЕВІРКИ ОБ’ЄКТІВ КОМП’ЮТЕРНОЇ МЕРЕЖІ

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



Рисунок 2.1- Моделювання мережі

Чим більший розвиток мають комп'ютерні мережі, тим ефективніше можна проводити кібероперації.

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

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

Віруси діють незалежно, розповсюджуючись через електрону пошту та люки в системах безпеки програмного забезпечення, і потрапляють до нових “жертв”.

Близько 15 країн виробляють суперкомп’ютери, a фірм – виробників процесорів для суперкомп’ютерів усього вісім. Усі фірми із США. Перші 100 кращих світових суперкомп’ютерів містять 584 тисячі процесорів і можуть виконувати 2,0 мільярда операцій. Перші 100 кращих американських суперкомп’ютерів містять 409 тисяч процесорів і можуть виконувати 1,3 мільярда операцій, це 70 % щодо мікропроцесорів і 64 % за продуктивністю від загальносвітових показників.

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

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

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

Ключовим питанням організації інформаційної підготовки є розробка алгоритмів планування перевірки потенційних об’єктів кмп‛ютерної мережі, що базуються на загальній математичній постановці задачі відомої як “задача про комівояжера”. Сутність задачі полягає у знаходженні оптимального порядку перевірки (“обходу”) певної множини об’єктів будь-якої природи, щоб цільова функція накладних витрат на таку роботу була б мінімальною. При цьому матриця накладних витрат при переході до перевірки наступного з множини об’єктів є відомою, наприклад, час переходу. У загальній постановці рішення задачі комівояжера є порядок перевірки всіх об’єктів з мінімальним значенням цільової функції. Всі варіанти „обходу” об’єктів визначаються повним перебором, але для практичного застосування це не є ефективним, враховуючи те, що знаходження оптимального варіанту перевірки об’єктів здійснюється, як правило, в умовах часових обмежень.

Одним з можливих напрямків вирішення науково-практичної задачі планування перевірки об’єктів комп'ютерної мережі полягає у введенні до задачі комівояжера та її цільової функції показника багатокритеріальної оцінки об’єкта атаки, яка формується на основі значень його кількісних та якісних характерних ознак. В подальшому цю оцінку будемо інтерпретувати як “показник важливості об’єкта атаки у складі інформаційної мережі”.

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

У загальному випадку постановка задачі пошуку об’єктів мережі відноситься до класу задач про комівояжера, базова ідея якої полягає у знаходженні оптимальної послідовності проходження (відвідування, перевірки) об’єктів будь-якої природи, керуючись результативним значенням цільової функції для кожного варіанта проходження з множини можливих. Схематична інтерпретація задачі – пересування маркера, який відповідає виконанню переходу, між вершинами (об’єкти) графу зі зваженими ребрами (перехід від об’єкта до об’єкта зі значеннями накладних витрат на виконання переходу). Обчислення цільової функції зводиться, як правило, до підсумовування ваг переходів. Передбачається існування зваженого переходу будь-якими двома вершинами графу, а також одноразове „відвідування” кожної вершини.

Пошук об’єктів компютерної мережі вимагає врахування наступних умов:

– можливі обмеження загального часу на виконання пошуку;

– значна кількість вузлів системи, які підлягають тестуванню на наявність обчислювального процесу – об’єкта атаки.

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


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

Для здійснення впливу на комп’ютерну мережу необхідна наявність адекватних даних про об’єкти та суб’єкти атаки. В якості таких даних можуть виступати ідентифікатори об’єктів комп’ютерної мережі (IPадреса, DNS ім’я), інформація про активність цих об’єктів за певний проміжок часу, перелік об’єктів особливої важливості з точки здійснення кібернетичного впливу(шлюз, маршрутизатор, proxy-сервер), інформація про активність цих об’єктів в поточний момент часу. Під адекватністю даних розуміється забезпечення правдивості цих даних у момент їх використання чи обробки.

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

Задача організації збору подібних даних про об’єкти комп’ютерної мережі не є суттєвою при невеликій кількості таких об’єктів але на даний момент глобальна мережа Інтернет щодня поповнюється мільйонами користувачів по всьому світі. Звичайно обраховувати параметри кожного комп’ютера що має доступ до Інтернету не є необхідним та можливим, та навіть для порівняно невеликої кількості об’єктів спостереження потрібні досить великі затрати з боку обчислювальних ресурсів. Навіть сучасні суперкомпютери потужністю 5 -10 трильйонів операцій за секунду не завжди підходять для вирішення такої задачі. Тому необхідно побудувати дієвий алгоритм що б забезпечив як адекватність та наявність необхідних даних так і не перевищував існуючі обмеження до обчислювальних ресурсів. У якості такого алгоритму був використаний «Мурашиний алгоритм» як оптимальний для розв’язання задач на графах (рисунок 2.2).


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

Одним з можливих шляхів практичного вирішення задачі є розподілення частин роботи щодо пошуку об’єктів компютерної мережі між кількома виконуючими пристроями та їх паралельне виконання. Центральним моментом організації паралельного пошуку об’єктів атаки є створення програмного забезпечення централізованого управління декількома виконуючими пристроями (рисунок 2.3).



Рисунок 2.3- Пошук об’єктів комп’ютерної мережі
Таким чином, програмне забезпечення організації паралельного пошуку об’єктів мережі, як потенційних об’єктів атаки повинно відповідати наступним вимогам:

по-перше, можливість внесення змін в конфігурацію та/або вибору режиму роботи виконуючих пристроїв, що використовуються в програмному забезпеченні;

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

по-третє, подальша обробка інформації зі сховища даних з використанням відповідних математичних методів;

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

Інший спосіб вирішення такої задачі полягає у впровадженні спеціального алгоритму обрахунку графу великої розмірності. Такий алгоритм повинен буде забезпечити як задану точність обрахунків так і відповідність наявним обчислювальним ресурсам. В якості такого алгоритму може виступати «Мурашиний алгоритм».

Мурашиний алгоритм (алгоритм оптимізації мурашиної колонії, англ. ant colony optimization, ACO) — один з ефективних поліноміальних алгоритмів для знаходження наближених рішень задачі комівояжера, а також аналогічних завдань пошуку маршрутів на графах. Підхід запропонований бельгійським дослідником Марко Доріго (англ. Marco Dorigo). Суть підходу полягає в аналізі та використанні моделі поведінки мурах, що шукають дороги від колонії до їжі. В природі, мурахи (початково) блукають довільним чином, і по знаходженні їжі повертаються до колонії, залишаючи по собі феромоновий слід. Якщо інші мурахи знаходять такий шлях, вони схильні припинити свої блукання, натомість слідувати позначеним шляхом, посилюючи його під час повернення у разі знайдення їжі.
2.3 Програмно апаратні рішення щодо забезпечення обчислювальних ресурсів в умовах значної розмірності
Для вирішення задач на графах великої розмірності необхідні надзвичайно великі обчислювальні потужності, адже тільки при наявності 10 вузлів кількість можливих варіантів перебору нараховує 3628800, а у випадку обрахунку графа що представляє собою мережу Інтернет кількість вузлів може зрости до декількох тисяч чи мільйонів. Для вирішення подібних задач використовують розподілені обчислення. Розподілені обчислення (розподілена обробка даних) — спосіб розв'язання трудомістких обчислювальних завдань з використанням двох і більше комп'ютерів, об'єднаних в мережу.

Розподілені обчислення є окремим випадком паралельних обчислень. Існує багато способів досягнення паралелізму в обрахунках. Першим кроком в розвитку паралельних обчислень стали багатозадачні операційні системи що забезпечували контроль над доступом до процесорного часу. Усі запущені на такій ОС додатки по черзі виконувалась на процесорі тим самим емалюючи паралельне виконання. З розвитком нанотехнологій з’явились багатоядерні процесори, що підтримували одночасне виконання двох потоків команд. Обидва ядра розташовувались в одному процесорному корпусі але мали окремі області кеш пам’яті першого рівня. До створення багатоядерних процесорів найефективнішим способом забезпечення паралельного виконання було створення багатопроцесорних систем. Такі системи мали декілька процесорів встановлених на системній платі підключених на шинному рівні. Для подальшої характеристики мультипроцесорних систем необхідно розподілити їх за принципом організації доступу до спільної пам’яті. Залежно від особливостей апаратної реалізації, багатопроцесорні системи бувають такі:

- з однорідним доступом до пам'яті (рисунок 2.4) або UMA-системи (Uniform Memory Access), у яких доступ до будь-якої адреси у пам'яті здійснюється з однаковою швидкістю;


Рисунок 2.4 - Багатопроцесорні системи з однорідним доступом до пам'яті.
- з неоднорідним доступом до пам'яті (рисунок 2.5) або NUMA-системи (Non-Uniform Memory Access), для яких це не виконується.


Рисунок 2.5 - Багатопроцесорні системи з неоднорідним доступом до пам'яті
Однорідний доступ до пам'яті Архітектура UMA-систем передбачає, що доступ будь-якого процесора до будь-якого модуля пам'яті відбувається однаково. Найпоширенішим підходом до реалізації такої системи є архітектура зі спільною шиною, коли всі процесори і модулі пам'яті з'єднані між собою спільною шиною пам'яті. У разі необхідності отримати доступ до пам'яті процесор перевіряє, чи не зайнята шина, і, якщо вона вільна, виконує фізичний доступ за заданою адресою.

Якщо шина зайнята, процесор чекає, поки вона не звільниться. Необхідність такого очікування є головним недоліком базової архітектури зі спільною шиною. Кількість процесорів, які можна використати в цій архітектурі, невелика (від 2 до 4). Найпоширенішим способом зменшення часу очікування на спільній шині є оснащення кожного процесора власним апаратним кешем досить великого обсягу. При цьому, якщо відбувається вдале звертання до кеша, доступ до шини не потрібен. Навантаження на шину знижується, отже, у системі може підтримуватися більша кількість процесорів. У цьому разі, однак, виникає інша проблема, пов'язана із необхідністю підтримки когерентності кеша (cache coherence) - погодженості даних, які перебувають у кешах різних процесорів. Є ймовірність, що одна й та саме ділянка пам'яті (наприклад, яка відповідає деякій структурі даних) буде одночасно збережена в кешах кількох процесорів. Розглянемо ситуацію, коли код одного з потоків змінює цю структуру даних. У результаті зміниться вміст основної пам'яті та кеш процесора, на якому виконувався цей потік. Вміст кешів інших процесорів при цьому залишиться незмінним і перестане відповідати даним, які перебувають в основній пам'яті, — кеш втратить когерентність. Забезпечення когерентності кеша спричиняє зниження продуктивності. Необхідно, аби процесор, що змінює дані в пам'яті, передавав шиною спеціальний сигнал, який сповіщає інші процесори про цю зміну. У разі отримання сигналу кожен процесор, який визначив, що він кешував ті ж самі дані, має вилучити їх із кеша (зробити перехресне очищення кеша, cross invalidation). Періодичні звертання процесорів до шини для виявлення сигналу і перехресне очищення кеша займають багато часу. Крім того, підвищується ймовірність промаху під час доступу до кеша. Незважаючи на ці проблеми, UMA-архітектуру із когерентним кешем широко використовують на практиці.

Неоднорідний доступ до пам'яті. Реалізація когерентного кеша не вирішує всіх проблеми, пов'язаних із наявністю спільної шини в UMA-архітектурі. Для створення багатопроцесорних систем, які розраховані на значну кількість процесорів (більше ніж 100) і матимуть можливість подальшого масштабування, потрібно використати неоднорідний доступ до пам'яті (NUMA-архітектуру). В NUMA-архітектурі із кожним процесором пов'язують його власну локальну пам'ять. Єдиний для всіх процесорів адресний простір при цьому збережено кожен процесор у системі може одержати доступ до локальної пам'яті будь-якого іншого процесора, але доступ до такої віддаленої пам'яті відбувається повільніше, ніж до локальної. Фактично NUMA-система складається з набору вузлів (nodes), кожен із яких містить один або кілька процесорів та мікросхеми їхньої локальної пам'яті (а також, можливо, засоби введення-виведення). Вузли з'єднані між собою спільною шиною. Очевидно, що доступ до локальної пам'яті не вимагає звертання до шини, внаслідок чого навантаження на неї значно знижується. Крім того, звичайно організовують когерентний кеш для операцій доступу до цієї шини (системи із таким кешем називають CC-NUM A - Cache-Coherent NUMA) . Паралельні обчислення - такий спосіб організації комп'ютерних обчислень, при якому програми розробляються як набір взаємодіючих обчислювальних процесів, що працюють паралельно (одночасно). Термін охоплює сукупність питань паралелізму в програмуванні, а також створення ефективно діючих апаратних реалізацій.

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

В деяких паралельних системах програмування передача даних між компонентами прихована від програміста (наприклад, за допомогою механізму обіцянок (англ.)), тоді як в інших вона повинна вказуватися явно. Явні взаємодії можуть бути розділені на два типи:

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

  • взаємодія з допомогою передачі повідомлень (наприклад, в Erlang або Оккама). Обмін повідомленнями може відбуватися асинхронно, або з використанням методу «рандеву», при якому відправник блокований до тих пір, поки його повідомлення не буде доставлене. Асинхронна передача повідомлень може бути надійною (з гарантією доставки) або ненадійною.

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

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

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

Наступним етапом розвитку паралельних обчислень стали мультикомпютери. Мультикомп’ютери (багатопроцесорні системи з розподіленою пам'яттю) вже не забезпечують загальний доступ до всієї наявної в системах пам'яті

При всій схожості подібної архітектури з системами з розподіленою загальної пам'яттю, мультикомп’ютери мають принципову відмінність - кожен процесор системи може використовувати тільки свою локальну пам'ять, в той час як для доступу до даних, розташовуваних на інших процесорах, необхідно явно виконати операції передачі повідомлень (Операції передачі повідомлень). Даний підхід використовується при побудові двох важливих типів багатопроцесорних обчислювальних систем - масивно-паралельних систем (в широкому масштабі паралельний процесор або MPP) і кластерів (кластерів). Серед представників першого типу систем – IBM RS/6000 SP2, Intel PARAGON, ASCI Red, транспьютерном системи Parsytec та ін;. Прикладами кластерів є, наприклад, системи AC3 швидкості і NCSA NT зверхнакопичення. Слід зазначити надзвичайно швидкий розвиток багатопроцесорних обчислювальних систем кластерного типу - загальна характеристика даного підходу наведена, наприклад, в огляді, підготовленому під редакцією Barker (2000). Під кластером зазвичай розуміється (див., наприклад, Сюй і Хван (1998), Пфістер (1998)) безліч окремих комп'ютерів, об'єднаних в мережу за допомогою спеціальних апаратно-програмних засобів забезпечується можливість уніфікованого управління (єдиний образ системи), надійного функціонування (наявність) і ефективного використання (продуктивність).

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

Для організації обрахунків в подібних обчислювальних системах виникає необхідність розділити поставлену задачу на множину окремих під задач та визначити порядок синхронізації обчислень. У комп’ютерних системах елементарною одиницею споживання процесорного часу є потік, тому отримані під задачі будуть виконуватись у окремих потоках однієї або декількох робочих станцій. Розподілені обчислення на даний момент не являються новиною і тому існує багато готових варіантів реалізації подібної системи, наприклад архітектури MPI, JAVA RMI, VM WARE Cloud, GOOGLECloud та інші. Кожна з таких систем передбачає певну вартість розгортання, особливості реалізації та вірогідність відмов. Вершиною розвитку розподілених обчислень є хмарні обчислення. Хмарні обчислення (англ. Cloud Computing) — це модель забезпечення повсюдного та зручного доступу на вимогу через мережу до спільного пулу обчислювальних ресурсів, що підлягають налаштуванню (наприклад, до комунікаційних мереж, серверів, засобів збереження даних, прикладних програм та сервісів), і які можуть бути оперативно надані та звільнені з мінімальними управлінськими затратами та зверненнями до провайдера.

При використанні хмарних обчислень програмне забезпечення надається користувачеві як Інтернет-сервіс. Користувач має доступ до власних даних, але не може управляти і не повинен піклуватися про інфраструктуру, операційну систему і програмне забезпечення, з яким він працює. «Хмарою» метафорично називають Інтернет, який приховує всі технічні деталі. Згідно з документом IEEE, опублікованим у 2008 році, «Хмарні обчислення — це парадигма, в рамках якої інформація постійно зберігається на серверах у мережі Інтернет і тимчасово кешується на клієнтській стороні, наприклад на персональних комп'ютерах, ігрових приставках, ноутбуках, смартфонах тощо». Виділяють наступні моделі надання послуг за допомогою хмари:

  • програмне забезпечення як послуга (SaaS) Прикладами програмного забезпечення як послуги, що працює на основі обчислювальної хмари, є сервіси GmailтаGoogledocs;

  • платформа як послуга (PaaS) Наприклад, Google Apps надає застосунки для бізнесу в режимі он-лайн, доступ до яких відбувається за допомогою Інтернет-браузера тоді як ПЗ і дані зберігаються на серверах Google.;

  • інфраструктура як послуга (IaaS) Найбільшими гравцями на ринку інфраструктури як послуги є Amazon, Microsoft, VMWare, Rackspace та Red Hat. Хоча деякі з них пропонують більше чим просто інфраструктуру, їх об’єднує мета продавати базові обчислювальні ресурси.

Загальною характеристикою компаній, що будують свої продукти на основі хмар, є впевненість у тому, що мережа Інтернет в змозі задовольнити потреби користувачів в обробці даних. Обчислювальна хмара може бути розгорнута як: приватна, публічна, громадська або гібридна. Приватна хмара (англ. private cloud) - це хмарна інфраструктура, яка призначена для використання виключно однією організацією, що включає декілька користувачів (наприклад, підрозділів). Приватна хмара може перебувати у власності, керуванні та експлуатації як самої організації, так і третьої сторони (чи деякої їх комбінація). Така хмара може фізично знаходитись як в, так і поза юрисдикцією власника. Публічна хмара (англ. public cloud) - це хмарна інфраструктура, яка призначена для вільного використання широким загалом. Публічна хмара може перебувати у власності, керуванні та експлуатації комерційних, академічних (освітніх та наукових) або державних організацій (чи будь-якої їх комбінації). Публічна хмара знаходиться в юрисдикції постачальника хмарних послуг. Громадська хмара (англ. community cloud) - це хмарна інфраструктура, яка призначена для використання конкретною спільнотою споживачів із організацій, що мають спільні цілі (наприклад, місію, вимоги щодо безпеки, політику та відповідність різноманітним вимогам). Громадська хмара може перебувати у спільній власності, керуванні та експлуатації однієї чи більше організацій зі спільноти або третьої сторони (чи деякої їх комбінації). Така хмара може фізично знаходитись як в, так і поза юрисдикцією власника. Гібридна хмара (англ. hybrid cloud) - це хмарна інфраструктура, що складається з двох або більше різних хмарних інфраструктур (приватних, громадських або публічних), які залишаються унікальними сутностями, але з’єднанні між собою стандартизованими або приватними технологіями, що уможливлюють переносимість даних та прикладних програм (наприклад, використання ресурсів публічної хмари для балансування навантаження між хмарами).

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

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

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

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

Недоліки "хмарних" рішень зводяться, в основному, до проблеми довіри постачальнику сервісу, від якого залежить як безперебійна робота, так і збереження важливих даних користувача. Крім того "хмарні обчислення" висувають високі вимоги до якості каналів зв'язку, які гарантують повсюдний якісний доступ в Інтернет.

Існує ймовірність, що з повсюдним приходом цієї технології стане очевидною проблема створення неконтрольованих даних, коли інформація, залишена користувачем, буде зберігатися роками, або без його відома, або він буде не в змозі змінити якусь її частину. Прикладом того можуть служити сервіси Google, де користувач не в змозі видалити невикористовуванні їм сервіси і навіть видалити окремі групи даних, створені в деяких з них (FeedBurner, Google Friend Connect і, можливо, інші). В якості альтернативи «очищення» свого профілю пропонується створити новий. Однак не варто забувати про те, що ім'я користувача вже зайнято попередньої обліковим записом, а нові - на кшталт John22441 - влаштовують не всіх. Оскільки хмарні обчислення будуть цілком пропрієтарних (відкритий API не виправляє ситуацію), поки немає надії на те, що користувачеві нададуть засіб для видалення своїх же даних на подібних серверах.

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

Дана система реалізована цілком на мові програмування JAVA та використовує мережу для взаємодії з клієнтом. Так як в операційній системі елементарною одиницею використання процесорного часу є потік то і для ефективного використання даної системи клієнтський додаток повинен буди багато потоковим та створювати ці потоки за допомогою спеціальної бібліотеки що у подальшому перетворює ці потоки у послідовність байтів та передає по мережі до обчислювального центру. Так як мова програмування JAVA є об’єктно-орієнтована то створений потік також являється об’єктом. Для перетворення створеного додатком потоку у послідовність байтів використовується принцип серіалізації. У сьогоднішньому світі типовий промисловий додаток буде мати безліч компонентів і буде поширюватись через різні системи та мережі. У Java все представлено у вигляді об'єктів; Якщо двом компонентам Java необхідно спілкуватися один з одним, то їм необхідний механізм для обміну даними. Є кілька способів реалізувати цього механізму. Перший спосіб це розробити власний протокол і передати об'єкт. Це означає, що одержувач повинен знати протокол, який використовується відправником для відтворення об'єкта, що ускладнює розробку сторонніх компонентів. Отже, повинен бути універсальний і ефективний протокол передачі об'єктів між компонентами. Серіалізація створена для цього, і компоненти Java використовують цей протокол для передачі об'єктів. Насправді між клієнтом та центром обробки даних існує посередник, що відповідає за балансування навантаження на сервери обробки даних, і клієнт працює безпосередньо з ним і не має доступу до внутріaшньої структури кластеру.

Для ефективної реалізації інформаційного впливу суб’єкт атаки повинен мати відомості для визначення цілей програми атаки. Отримання таких відомостей є результатом проведення інформаційної підготовки суб’єктом атаки. Ключовим питанням організації інформаційної підготовки є розробка алгоритмів планування перевірки потенційних об’єктів атаки, що базуються на загальній математичній постановці задачі відомої як “задача про комівояжера”. Сутність задачі полягає у знаходженні оптимального порядку перевірки (“обходу”) певної множини об’єктів будь-якої природи.

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

Розподілені обчислення є окремим випадком паралельних обчислень. Існує багато способів досягнення паралелізму в обрахунках. Першим кроком в розвитку паралельних обчислень стали багатозадачні операційні системи що забезпечували контроль над доступом до процесорного часу. Усі запущені на такій ОС додатки по черзі виконувалась на процесорі тим самим емалюючи паралельне виконання. З розвитком нанотехнологій з’явились багатоядерні процесори, що підтримували одночасне виконання двох потоків команд. До створення багатоядерних процесорів найефективнішим способом забезпечення паралельного виконання було створення багатопроцесорних систем. Залежно від особливостей апаратної реалізації, багатопроцесорні системи бувають такі:

  • з однорідним доступом до пам'яті або UMA-системи (UniformMemoryAccess), у яких доступ до будь-якої адреси у пам'яті здійснюється з однаковою швидкістю;

  • з неоднорідним доступом до пам'яті або NUMA-системи (Non-UniformMemoryAccess), для яких це не виконується;

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

1   2   3   4   5   6   7   8

скачати

© Усі права захищені
написати до нас