
- •Л.С. Глоба
- •Розподілені системи
- •Історична довідка
- •Базові терміни та визначення
- •Комп'ютерні мережі, як частковий випадок розподілених систем
- •Модель клієнт-сервер.
- •Особливості розподілених систем
- •Переваги розподілених систем
- •Недоліки розподілених систем
- •Класифікація розподілених систем
- •Характеристики розподілених систем
- •Висновки
- •Питання для самоконтролю
- •Поняття розподіленого середовища
- •Концепції апаратних рішень
- •Архітектура багатопроцесорних систем
- •Системи із спільною пам'яттю
- •Системи з роздільною пам'яттю
- •Представники систем з роздільною пам'яттю
- •Топології багатопроцесорних систем
- •Концепції програмних рішень
- •Таблиця 2.1. Короткий опис розподілених і мережних операційних систем, а також засобів проміжного рівня
- •Операційні системи й розподіленість
- •Проміжне середовище
- •Поняття розподіленого середовища
- •Розподіл прикладних програм по рівнях
- •Варіанти архітектури клієнт-сервер
- •Де ік – інтерфейс користувача, лп – логіка прикладних програм, дд – доступ до даних, бд – база даних
- •Де ік – інтерфейс користувача, лп – логіка прикладних програм, дд – доступ до даних, бд – база даних
- •Програмні компоненти розподілених систем
- •Основи мережної взаємодії
- •Де ік – інтерфейс користувача, лп – логіка прикладних програм, дд – доступ до даних, бд – база даних
- •Взаємодія компонент розподіленої системи
- •Концепції взаємодії компонент розподіленої системи
- •Обмін повідомленнями
- •Віддалений виклик процедур
- •Використання віддалених об'єктів
- •Розподілені події
- •Розподілені транзакції
- •Безпека в розподілених системах
- •Опис інтерфейсу програмної компоненти
- •Мова xml і схеми xml
- •Soap: мова повідомлень розподіленої системи
- •Wsdl: опис інтерфейсу програмної компоненти
- •Серіалізація об'єктів
- •Базові технології представлення інформації в розподілених системах
- •Вимоги до прикладних програм серверної сторони
- •Огляд базових технологій
- •Таблиця 2.1 Основні оціночні характеристики платформ
- •Технологія ria
- •Таблиця 2.2 Порівняння даних профілізації традиційної веб-прикладної програма і ria
- •Таблиця 2.4 Порівняння технологій створення ria -прикладних програм
- •Дескриптор розгортання web-прикладних програм та компонент
- •Висновки
- •Питання для самоконтролю
- •Зв'язок
- •Рівні протоколів
- •Низькорівневі протоколи
- •Транспортні протоколи
- •Протоколи верхнього рівня
- •Віддалений виклик процедур
- •Звертання до віддалених об'єктів
- •Розподілені об'єкти
- •Прив'язка клієнта до об'єкта
- •Статичне й динамічне віддалене звернення до методів
- •Invoke(fobject, id(append). Int).
- •Передача параметрів
- •Зв’язок на основі потоків даних
- •Підтримка безперервних середовищ
- •Потоки даних й якість обслуговування
- •Таблиця 3.1 Характеристики технологій якості обслуговування
- •Синхронізація потоків даних
- •Протоколи проміжного рівня
- •Протокол soap
- •Родина протоколів xmpp
- •Протокол umsp
- •Висновки
- •Питання для самоконтролю
- •Процеси
- •Поняття процесу. Визначення та структура
- •Потоки виконання. Визначення та структура
- •Стан процесів та потоків виконання
- •Реалізація потоків виконання
- •Потоки виконання в нерозподілених системах
- •Потоки виконання в розподілених системах
- •Багатопотокові клієнти
- •Багатопотокові сервери
- •Таблиця 4.1 Три способи побудови сервера
- •Клієнти
- •Інтерфейси користувача
- •Клієнтське програмне забезпечення, яке забезпечує прозорість розподілу
- •Сервери
- •Загальні питання розробки серверів прикладного програмного забезпечення
- •Сервери об'єктів
- •Перенесення коду
- •Підходи до перенесення коду
- •Моделі перенесення коду
- •Перенесення і локальні ресурси
- •Перенесення коду в гетерогенних системах
- •Огляд перенесення коду в d'Agent
- •Питання реалізації
- •Програмні агенти
- •Програмні агенти в розподілених системах
- •Таблиця 4.2 Деякі важливі властивості агентів
- •Технологія агентів
- •Мови взаємодії агентів
- •Висновки
- •Питання для самоконтролю
- •Іменування
- •Іменовані сутності
- •Імена, ідентифікатори й адреси
- •Простір імен
- •Реалізація просторів імен
- •Покращене керування даними.
- •Допомагає організувати потоковий процес роботи.
- •Єдиний репозиторій і пошукової механізм для прикладного програмного забезпезпечення і сервісів.
- •Розміщення мобільних сутностей
- •Іменування й локалізація сутностей
- •Прості рішення
- •Підходи на основі базової точки
- •Ієрархічні підходи
- •Видалення сутностей, на які немає посилань
- •Проблема об'єктів, на які немає посилань
- •Підрахунок посилань
- •Організація списку посилань
- •Ідентифікація сутностей, на які немає посилань
- •Висновки
- •Фізичні годинники
- •Алгоритми синхронізації часу
- •Використання синхронізованих годин
- •Логічні годинники
- •Оцінка часу Лампорта (відмітки часу)
- •Векторна оцінка часу
- •Глобальний стан
- •Між записом свого стану й одержанням маркера процесQне приймав повідомлень по жодному зі своїх вхідних каналів.
- •Алгоритми голосування
- •Алгоритм «забіяки»
- •Кільцевий алгоритм
- •Взаємне виключення
- •Централізований алгоритм
- •Розподілений алгоритм
- •Алгоритм маркерного кільця
- •Порівняння трьох алгоритмів
- •Розподілені транзакції
- •Модель транзакцій
- •Таблиця 6.1 Деякі примітиви, використовувані в транзакціях
- •Класифікація транзакцій
- •Рівні ізольованості транзакцій
- •Таблиця 6.2 Рівні ізольованості та проблеми, які вони допускають
- •Реалізація розподілених транзакцій
- •Керування паралельним виконанням транзакцій
- •Компоненти розподілених транзакцій
- •Висновки
- •Список літератури
Системи з роздільною пам'яттю
Масштабовані системи масового паралелізму конструюють на основі об'єднання каналами передачі даних процесорних вузлів, що мають своєю локальною оперативною пам'яттю, недоступної іншим процесорам (рис. 2.3).
Рис.2.3 Багатопроцесорна система з роздільною пам'яттю
Обмін даними між процесорами при такому підході можливий лише за допомогою повідомлень, переданих по каналах зв'язку. Така схема має рядом переваг у порівнянні із системами, побудованими на основі загальної спільної пам'яті. Підкреслимо основні переваги систем з розподіленою пам'яттю:
порівняно низька вартість – найменший серед показників ціна/продуктивність;
масштабованість – можливість побудови систем необхідної продуктивності, і нарощування їх потужності за рахунок установки додаткових процесорів.
Системи з роздільною пам'яттю лідирують по показникові пікової продуктивності, оскільки будь-які нові однопроцесорні (або багатопроцесорні на основі пам'яті) системи можуть бути легко об'єднані мережею й використані в якості багатопроцесорних комплексів з роздільною пам'яттю. Але, на жаль, ефективне використання систем з розподіленою пам'яттю вимагає значних зусиль із боку розроблювачів прикладного забезпечення й можливо далеко не для всіх типів завдань. Для широкого кола послідовних алгоритмів, що добре зарекомендували себе, не вдається побудувати ефективні паралельні аналоги.
Представники систем з роздільною пам'яттю
Трансп`ютери
Саме із трансп`ютеров почалося масове поширення багатопроцесорних систем. Типова трансп`ютерна система виступає в якості паралельного обчислювального прискорювача для якого-небудь комп'ютера загального призначення хост комп'ютера (HOST). У якості хост-системи з однаковим успіхом виступають як робочі станції типу Sun, так і персональні комп'ютери ІBM PC (рис.2.4).
Рис. 2.4 Трансп`ютерна система й канали зв'язку
Кожний трансп`ютер виробництва фірми ІNMOS (Великобританія) є повноцінним процесором (рис. 2.5), що відрізняються від звичайного процесора тим, що у своєму складі він містить 4 канали міжпроцессорного обміну даними – линка (lіnk).
Рис. 2.5 Структура трансп`ютера типу Т-800
Кожний лінк являє собою обладнання синхронного небуферизованного послідовного обміну даними по 4-провідній лінії зв'язку (порівняйте з 96- провідною лінією доступу до оперативної пам'яті в системах із спільною пам'яттю). Саме завдяки можливості з'єднувати між собою довільне число процесорів, керованих однієї або декількома хост- системами, трансп`ютерні системи отримали настільки широке розповсюдження.
До складу трансп`ютера типу T800 входить обладнання обробки цілих чисел (CPU), обладнання обробки речовинних чисел і чотири двунаправленних каналу передачі даних – лінка. Кожне з перерахованих шістьох обладнань може працювати одночасно з іншими й незалежно від них. Виконуючи запити на обробку або передачу даних, кожне з них звертається до змінних, розташованим у доступній всім спільній оперативної пам'яті. При цьому цілком можлива ситуація, коли кілька обладнань одночасно звертаються до однієї й тієї ж змінної. Запити будуть оброблені коректно, якщо дані тільки зчитуються, але якщо хоча б одне з обладнань виконує запис даних, то результат виконання операцій читання/запису стає невизначеним. Точно так само, не визначений результат одночасного запису кількома обладнаннями різних значень у ту саму змінну, у цьому значенні кожний трансп`ютер являється системою із спільною пам'яттю.
У перших трансп`ютерних системах трансп`ютери з'єднувалися лінками безпосередньо між собою й одержувана в такий спосіб конфігурація – топологія, виявлялася зафіксована на час розв'язку задачі. При необхідності одержання іншої топології лінки доводилося з'єднувати вручну. Для спрощення обслуговування й для забезпечення можливості зміни топології системи безпосередньо в процесі обчислень був розроблений електронний комутатор C-004 (рис. 2.6).
Рис. 2.6 Електроно-реконфігуруєме з'єднання трансп`ютерів за допомогою комутатора C004
Це електроно-конфігуруруємий комутатор, що дозволяє задавати довільні парні зв'язки між 32 входами трансп`ютерних лінків і 32 виходи. У наведеному прикладі вісім трансп`ютерів жорстко з'єднані в лінійку (pіpe) двома із чотирьох своїх лінків, а іншими підключені до комутатора. Між підключеними до комутатора лінками можна програмно визначити будь-які 4 зв'язки. Наприклад, показана пунктиром зв'язок перетворює вихідну топологію Лінійка в топологію кільце.
Маючи порівняно невелику продуктивність, транп`ютери швидко втратили своє значення як обчислювальні елементи, але довгий час зберігали його в якості комутаційних у складі гібридних обчислювальних систем.
Гібридні системи
Розглянемо багатопроцесорну систему Parsytec Powerxplorer, що складається з 12 процесорних вузлів (рис. 2.7). Кожний вузол базується на процесорі Powerpc-601. Реальна продуктивність кожного процесора – близько 30 Mflops. Кожний процесор розташовує 8 Mb локальної оперативної пам'яті. До цієї ж оперативної пам'яті має доступ трансп`ютер типу Т805. Трансп`ютери за допомогою лінків зв'язані між собою в прямокутну сітку, частина трансп`ютерів має вихід через один зі своїх каналів зв'язку на керуючу машину типу Sunsparc (рис. 2.8). Підключення здійснюється за допомогою Scsі- устройства Scsі-Brіdge, що підтримує 4 трансп`ютерных лінка для зв'язку із системою Powerxplorer. Реальна продуктивність кожного з 4-х трансп`ютерных каналів зв'язку – від 1 Мбайт/cпри передачі довгих повідомлень, до 0.3 Мбайт/із при передачі повідомлень довжиною в декілька байт.
Програмування можливе в рамках системи програмування PARІX™. Ця система дозволяє використовувати будь-яку зручну віртуальну топологію (тор, решітку, зірку і т.д.), при цьому трансп`ютер прозорий для програміста. Фізична топологія жорстко задана й не змінюється.
Рис. 2.7 Структура вузла Powerxplore
Рис. 2.8 Підключення 12-процесорної системи PowerХplorer керуючій машині типу Sun
Гібридні системи, засновані на трансп`ютерних каналах зв'язку, отримали поширення, але в цей час втрачають своє значення через недостатню пропускну здатність лінків.
Кластери робочих станцій
З поширенням локальних мереж отримали свій розвиток кластери робочих станцій. Вони являють собою об'єднання невеликого числа персональних комп'ютерів і/або робочих станцій. Являючись порівняно дешевим рішення, ці системи часто програють в ефективності обробки прикладних задач спеціалізованим системам по наступних основних причинах:
ряд розповсюджених локальних мереж (Ethernet, Token Rіng) не підтримують одночасну передачу даних між різними парами комп'ютерів у межах одного сегмента мережі. Це означає, що дані між комп'ютерами cіdможуть бути передані тільки після передачі даних між комп'ютерамиaіb, що зменшує й без того не дуже високу швидкість передачі даних у таких мережах;
практично завжди на робочих станціях, що становлять кластер, продовжують виконуватися послідовні завдання користувачів. У результаті менш завантажені процесори змушено очікувати більше завантажені, що приводить до загального зниження продуктивності кластера при розв'язку паралельного завдання до рівня, обумовленого самої завантаженою машиною;
наявність у мережі файлових серверів приводить до нерегулярно мінливого обсягу даних, переданих через локальну мережу що може значно збільшувати час обміну повідомленнями між процесорами, збільшуючи інтервали простою останніх.
Системи на основі високошвидкісних мереж
Найбільш перспективними представляються багатопроцесорні системи, побудовані на основі спеціалізованих високошвидкісних мереж передачі даних. Характерним представником цього класу машин є представлені на рис. 2.9, 2.10 системи типу Parsytec CC (Cognіtіve Compute – комп'ютер розумний).
Рис. 2.9 Структура системи Parsytec CC-12
Рис. 2.10 Структура системи Parsytec CC-32
Кожний вузол систем цієї серії (рис. 2.11) являє собою повноцінний комп'ютер, керований Unіx- подобною операційною системою AІX. Система складається з вузлів двох типів – обчислювальних вузлів і вузлів введення/виводу. До складу процесорного вузла входить обчислювальний процесор Power PC-604, накопичувач на жорсткому диску, адаптер локальної мережі Ethernet, адаптер високошвидкісної мережі HS_Lіnk. До складу вузла вводу/виводу додатково входять відеоадаптер, адаптери клавіатури й маніпулятора типу миша, жорсткий диск збільшеного об'єму. Додатково може бути встановлений другий адаптер мережі Ethernet для підключення системи до локальної або глобальній мережі. Показаний на рис. 2.11 послідовний інтерфейс RS-232 служить для технічного обслуговування системи. Кожний концентратор високошвидкісної мережі (Router) може обслуговувати до вісьмох Hs- Lіnk каналів.
Рис. 2.11 Структура процесорного вузла системи Parsytec CC
Системи цієї серії мають наступні особливості:
висока швидкість передачі даних між процесорами за рахунок застосування спеціальних високошвидкісних комунікаційних модулів і високошвидкісних лінків;
кожний обчислювальний вузол обслуговує власна копія операційної системи, таким чином, кожний вузол є незалежною однопроцесорною обчислювальною системою зі своєю дисковою пам'яттю;
для функціонування системи не потрібно наявності додаткової керуючої машини, система сама по собі являється повноправним членом локальної Ethernet мережі;
зв'язок між вузлами здійснюється як по стандартній внутрішній Ethernet мережі, так і по спеціальній високошвидкісній мережі Hs- Lіnk.
Системи на основі розподіленої пам'яті є масштабованими. Для об'єднання великої кількості процесорів може використовуватися легко масштабована, необмежено нарощувана топологія, наведена на рис. 2.12.
Рис. 2.12 Масштабований варіант топології системи Parsytec CC
Ще однієї особливістю систем цього типу, є можливість їх побудови без концентраторів високошвидкісної мережі (Routers). Для цього досить установити на кожному із внутрішніх вузлів ланцюжка процесорів, показані на рис. 2.13, по адаптора Hs- Lіnk.
Рис. 2.13 Варіант топології системи Parsytec CC, що не вимагає використання високошвидкісних комутаторів