Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект_РВу.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
7.3 Mб
Скачать

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

Одеський національний політехнічний університет

Кафедра системного програмного забеспечення

Паулін О.М.

КОНСПЕКТ ЛЕКЦІЙ

З ДИСЦИПЛІНИ

РОЗПОДІЛЕНІ СИСТЕМИ

Для студентів

спеціальності 6.050103 – Програмна інженерія.

Одеса 2017

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

Одеський національний політехнічний університет

Кафедра системного програмного забеспечення

Паулін О.М.

КОНСПЕКТ ЛЕКЦІЙ

З ДИСЦИПЛІНИ

РОЗПОДІЛЕНІ СИСТЕМИ

Затверджено на засіданні кафедри

системного програмного забеспечення

Протокол № 8 від 16 січня 2017 р.

Одеса 2017

Конспект лекцій «Розподілені обчислення». Для студентів спеціальності 6.050103 – Програмна інженерія. /Укл.: О.М. Паулін. – Одеса: ОНПУ, 2017. - 82 с.

Зміст

Тема 1. ВСТУП 4

Лекція 1. Характеристика і зміст дисципліни 4

Тема 2. ПАРАЛЕЛІЗМ ОБЧИСЛЕНЬ. АРХІТЕКТУРИ ПАРАЛЕЛЬНИХ ОС 6

Лекція 2. Види і засоби обчислень 6

Лекція 3. Поняття і види паралелізму обчислень 13

Лекція 4. Традиційна класифікація паралельних ОС 18

Лекція 5. Сучасні паралельні ОС і суперкомп'ютери 23

Тема 3. ЗАГАЛЬНА ХАРАКТЕРИСТИКА РС 28

Лекція 6. Розподілені системи: особливості, характеристики 28

Лекція 7. Надійність і безпека розподілених систем 35

Тема 4. РОЗПОДІЛЕНА ОБРОБКА ІНФОРМАЦІЇ 40

Лекція 8. Розподілені задачі і алгоритми 40

Лекція 9. Мова Triad моделювання розподілених систем 44

Лекція 10. Хвильові алгоритми розповсюдження інформації 49

Лекція 11. Хвильові алгоритми обходу сайтів 56

Лекція 12. Хвильові алгоритми вибору сайтів 62

Лекція 14. Розподілені бази даних 74

Тема 5. ЗАКЛЮЧЕННЯ 82

Лекція 15. Огляд матеріалу по курсу 82

Література 83

Тема 1. Вступ Лекція 1. Характеристика і зміст дисципліни

Мета і задачи дисципліни. Структура і зміст дисципліни. Контрольні заходи.

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

Розподілена обробка даних. Відміни розподілених і паралельних обчислювальних систем.

Лекції – 30 годин, тобто 15 лекцій, об’єднаних у 2 семестрових та 8 змістових модулях.

Лабораторні роботи – 16 годин.

Передбачено 2 модульних контроля.

Курс завершується диференційованим заліком.

Метою вивчення дисципліни «Розподілені обчислення» є формування комплексу знань, на яких базуються сучасні розподілені системи (РС), та набуття практичних навичок організації функціонування РС і взаємодії її вузлів.

Задачи даного курсу:

1) навчити студентів ставити розподілені задачи та розробляти розподілені алгоритми;

2) прищепити навички програмної реалізації розподілених алгоритмів.

Література: основна – [1-5], додаткова – [6-17].

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

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

Відзначимо вітчизняних розробників: Лебедєв С.А., Глушков В. М., Бурцев В.С., Бабаян Б.А., Каляєв А.В. та ін. і побудовані під їх керівництвом ОС: МЭСМ, БЭСМ-6, сімейство машин МИР, сімейство Ельбрус (включаючи Е2К), СКІФ, ІНПАРКОМ.

Видатний внесок у розвиток комп'ютеробудування вніс легендарний Сеймур Крей (США), який спроектував лінійку векторно-конвеєрних суперкомп'ютерів (СК) CRAY – 4 покоління, відкриваючи кожен раз нову епоху в побудові СК і паралельних ОС.

Потужні системи обробки даних (СОД) [6] можна створювати, об'єднуючи багато ЕОМ в обчислювальні комплекси, системи та мережі. Це дозволяє створювати широку номенклатуру високопродуктивних відмовостійких СОД.

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

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

Нагадаємо, що являють собою ці структури.

Скаляр – константа, змінна (число, дане). Наприклад, число .

Вектор – упорядкована сукупність скаляров. Наприклад, координати точки в багатовимірному просторі; вектором є також рядок або стовпець елементів матриці.

Матриця – сукупність рядків з однаковим числом елементів. Наприклад, коефіцієнти системи лінійних алгебраїчних рівнянь можуть бути зведені в матрицю коефіцієнтів. Тоді система може бути записана в матричній формі: Y=AX+B, де Y – вектор-стовпець змінних рішення; X – вектор-стовпець невідомих змінних; A – матриця коефіцієнтів рівнянь; B – вектор-стовпець вільних членів.

При перемножении двох матриць з розмірностями [n*m] та [m*k] трудомісткість операції перемноження оцінюється як O(n*m*k). Тому при великих розмірностях матриць, що характерно для СОД, вдаються до їх декомпозиції на підматриці (блочні підматриці).

Граф – сукупність вузлів, часто позначаються крапками, і зв'язків між ними. Вузли являють собою об'єкти однакової природи, наприклад, міста; зв'язки між точками позначають, наприклад, відстані між містами. Тоді граф може бути інтерпретирован як карта автомобільних доріг деякою держави. Ще приклад – схема алгоритму.

Дерево – граф без циклів. Наприклад, складна багатоетапна процедура вибору з двох альтернатив в кожному вузлі може бути представлена бінарним деревом.

При реалізації в пам'яті машини АСД трансформуються в машинні структури даних (МСД), які мають певний тип: цілі, текстові, з подвійною точністю і т.д. У пам'яті ЕОМ матриці відповідає масив; графи і дерева представляються у вигляді списків. Існують списки спеціального виду: стеки (магазини) і черги. Можлива ієрархічна побудова МСД, наприклад, списки масивів, дерево стеків та ін.

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

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

Розподілені обчислювальні системи здійснюють різноманітну обробку даних. Під розподіленою обробкою будемо розуміти наступне:

• власне обробку (види, технології організації обробки: COM, DCOM, CORBA);

• взаємодія з розподіленим сховищем даних та знань;

• засоби обміну даними (мультиагентні системи) і технології обміну даними (MPI);

• синхронізацію процесів обчислень.

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

1. Засоби обробки розподілені в просторі, а не зосереджені на одному обчислювальному центрі.

2. Використовуються персональні комп'ютери і робочі станції в якості сервера, а не суперЕОМ або кластери.

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

4. Використовуються розподілені (паралельні) алгоритми з низькою інтенсивностю потоків міжпроцесорних передач даних.

5. Розв'язується множина задач, а не одна задача.

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