Розподілені системи

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук
Розподілені системи


Поняття розподільна система

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

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

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

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

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

Sdffd.jpg

Рис.1. Розподілена системо організована у вигляді служби проміжного рівня


Концепції побудови розподілених систем

Апаратна побудова розподілених систем

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

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


Програмна побудова розподілених ситем

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


Комп'ютерні мережі, як частковий випадок розподілених систем

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


Мультипроцесорні комп'ютери.

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

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

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

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


Багатомашинні системи.

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


Обчислювальні мережі

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


Паралельні обчислювальні системи