
- •Л.С. Глоба
- •Розподілені системи
- •Історична довідка
- •Базові терміни та визначення
- •Комп'ютерні мережі, як частковий випадок розподілених систем
- •Модель клієнт-сервер.
- •Особливості розподілених систем
- •Переваги розподілених систем
- •Недоліки розподілених систем
- •Класифікація розподілених систем
- •Характеристики розподілених систем
- •Висновки
- •Питання для самоконтролю
- •Поняття розподіленого середовища
- •Концепції апаратних рішень
- •Архітектура багатопроцесорних систем
- •Системи із спільною пам'яттю
- •Системи з роздільною пам'яттю
- •Представники систем з роздільною пам'яттю
- •Топології багатопроцесорних систем
- •Концепції програмних рішень
- •Таблиця 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 Рівні ізольованості та проблеми, які вони допускають
- •Реалізація розподілених транзакцій
- •Керування паралельним виконанням транзакцій
- •Компоненти розподілених транзакцій
- •Висновки
- •Список літератури
Висновки
Розподілені системи складаються з автономних комп'ютерів, які працюють спільно, створюючи уявлення про роботу у єдиній зв'язній системі. Їхня перевага полягає в тому, що вони спрощують інтеграцію різних прикладних програм, що працюють на різних комп'ютерах, у єдину систему, добре масштабуються при їхньому правильному проектуванні.
Розмір розподілених систем обмежується тільки розміром базової мережі.
Розподілені системи класифікуються за принципами, які основані на апаратному та програмному забезпеченні.
Реалізація розподілених систем характеризується складністю програмного забезпечення, падінням продуктивності й наявністю проблем з безпекою.
Розподілені операційні системи використовуються для управління апаратним забезпеченням взаємозалежних комп'ютерних систем та сприймаються у вигляді єдиної системи.
Мережні операційні системи, з іншого боку, ефективно поєднують різні комп'ютери, що працюють під управлінням своїх операційних систем, забезпечуючи користувачам доступ до локальних служб кожного з вузлів. Однак мережні операційні системи не створюють відчуття роботи з єдиною системою, що характерно для розподілених операційних систем.
Питання для самоконтролю
Дайте визначення поняттю розподілена система?
Яким є основне завдання розподіленої системи?
Коли та чим була викликана відмова від централізації?
Перерахуйте переваги розподілених систем.
Які недоліки мають розподілені системи?
Приведіть класифікацію розподілених систем відповідно до апаратного забезпечення.
Приведіть класифікація розподілених систем відповідно до програмного забезпечення.
Які характерні риси мають розподілені системи?
Яким вимогам повинні задовольняти розподілені системи? Коротко охарактеризуйте кожну з них.
Дайте визначення поняттю суперкомп'ютер.
Назвіть основні компоненти паралельних комп'ютерів.
Чому апаратура компютерів пішла шляхом «розподілення»?
Наведіть приклади реалізації апаратури з спільною памяттю для ПК.
Наведіть приклади реалізації апаратури з розділюваною памяттю для ПК.
Поняття розподіленого середовища
Концепції апаратних рішень
Незважаючи на те, що всі розподілені системи містять по декілька процесорів, існують різні способи їх організації в систему. Особливо це стосується варіантів їх з'єднання й організації взаємного обміну.
Розглянемо коротко апаратне забезпечення розподілених систем, зокрема варіанти з'єднання машин між собою. За минулі роки були запропоновані різні класифікації комп'ютерних систем з декількома процесорами, але жодна з них не стала дійсно популярною й широко розповсюдженою.
Зупинимося винятково на системах, до яких входять незалежні комп'ютери. Всі комп'ютери можна розділити на дві групи. Системи, у яких комп'ютери використовують пам'ять спільно, називаютьсямультипроцесорами (multiprocessors), а ті, щопрацюють кожен зі своєю пам'яттю–мультикомп’ютерами (multicomputers). Основна різниця між ними полягає у тому, що мультипроцесори маютьєдиний адресний простір, який спільно використовується всіма процесорами. У мультикомп’ютерах кожна машина використовує свою власну пам'ять.
Кожна із цих категорій може бути підрозділена на додаткові категорії на основі архітектури мережі, яка їх з'єднує. Частіше за все використовуються дві архітектури – шинна (bus)ікомутована (switched). Підшиноюрозумієтьсяплата, шина, кабель або інше середовище, що з'єднує всі машини між собою.Комутовані системи, на відміну від шинних, не мають єдиної магістралі, такої як, наприклад, у кабельного телебачення. Замість неї від машини до машини тягнуться окремі канали, виконані із застосуванням різних технологій зв'язку. Повідомлення передаються по каналах з узгодженням рішення про комутацію з конкретним вихідним каналом для кожного з них.
Існує також поділ розподілених комп'ютерних систем на гомогенні (homogeneous) і гетерогенні (heterogeneous). Цей поділ стосується винятково мультикомп’ютерних систем. Для гомогенних мультикомп’ютерних систем характерна одна мережа, яка з'єднує комп'ютери та використовує єдину технологію. Однакові також і всі процесори, які в основному мають доступ до однакових обсягів власної пам'яті. Гомогенні мультикомп’ютерні системи нерідко використовуються в якості паралельних (працюючих з одним завданням), за аналогією з мультипроцесорними.
На відміну від гомогенних, гетерогенні мультикомп’ютерні системи можуть містити цілий набір незалежних комп'ютерів, з'єднаних різноманітними мережами. Так, наприклад, розподілена комп'ютерна система може бути побудована з декількох локальних комп'ютерних мереж, з'єднаних комутованою магістраллю FDDI або ATM.
Мультипроцесорні системи мають одну характерну рису: всі процесори мають прямий доступ до загальної пам'яті. Мультипроцесорні системи шинної архітектури складаються з деякої кількості процесорів, приєднаних до загальної шини, а через неї – до модулів пам'яті. Найпростіша конфігурація містить плату із шиною або материнською платою, у яку вставляються процесори й модулі пам'яті. Проблема такої схеми полягає в тому, що у випадку вже 4 або 5 процесорів шина виявляється стабільно перевантаженою й продуктивність різко падає. Рішенням цієї проблеми може бути розміщення між процесором і шиною високошвидкісної кеш-пам'яті (cache memory).
На відміну від мультипроцесорів побудувати гомогенну мультикомп’ютерну систему відносно нескладно. Кожний процесор прямо зв'язаний зі своєю локальною пам'яттю. Єдина проблема – це спілкування процесорів між собою. У цьому випадку необхідна схема з'єднання, але оскільки ключовим моментом є тільки наявність зв'язку між процесорами, обсяг трафіку буде на кілька порядків нижче, ніж при використанні мережі для підтримки трафіку між процесорами й пам'яттю.
Найбільше число існуючих у цей час розподілених систем побудовано за схемою гетерогенних мультикомп’ютерних систем. Це означає, що комп'ютери, що є частинами цієї системи, можуть бути різноманітними, наприклад, по типу процесора, розміру пам'яті й продуктивності каналів вводу-виводу. На практиці роль деяких із цих комп'ютерів можуть виконувати високопродуктивні паралельні системи, наприклад мультипроцесорні або гомогенні мультикомп’ютерні. Мережа, яка їх з'єднує, також може бути дуже неоднорідною. Прикладом гетерогенності є створення великих мультикомп’ютерних систем з використанням існуючих мереж і каналів.
Приклад.
Не є чимось незвичайним існування кампусних університетських розподілених систем, що складаються з локальних мереж різних факультетів, з'єднаних між собою високошвидкісними каналами. У глобальних системах різні станції можуть у свою чергу, з'єднуватися загальнодоступними мережами, наприклад мережними службами, пропонованими комерційними операторами зв'язку, наприклад АТМ або Frame relay.