Тема 2

Класифікація та характеристики розподілених систем

2.1 Класифікація розподілених систем

 

Класифікація розподілених систем залежить від апаратного і програмного забезпечення. Розглянемо класифікацію, в основі якої лежить апаратне забезпечення. Виходячи з того, яким чином окремі компоненти розподіленої системи з’єднані між собою і як вони взаємодіють. Виходячи з цього, можливі різні підходи до класифікації.

Комп’ютери, як основні складові апаратного забезпечення, поділяють на звичайні (однопроцесорні), паралельні (багатопроцесорні) та супер-комп’ютери.

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

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

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

Архітектури паралельних комп’ютерів можуть значно відрізнятися одна від одної. Паралельні комп’ютери містять три основні компоненти: процесори, модулі пам’яті, комутаційну мережу.

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

Однією з властивостей, за якими розрізняють паралельні комп’ютери, є кількість можливих потоків команд. Відомим прикладом є поділ на послідовні («єдиний») і паралельні («множинний») інструкції й потоки даних, що зумовило виокремлення чотирьох класів комп’ютерів:

1.              Класичний von Neumann – комп’ютер позначають як SISD (Single Instruction Single Data), де використовується єдина інструкція та єдиний потік даних.

2.              Паралельні й розподілені архітектури з MIMD (Multiple Instruction Multiple Data), де використовуються множинні інструкції та паралельні потоки даних.

3.  Змішані форми, що належать одному з класів SIMD (єдина інструкція – паралельний потік даних) або, рідше, MISD (множинні інструкції – єдиний потік даних).

Відповідно до наведеної класифікації розрізняють такі архітектури комп’ютерів: SIMD (Single Instruction Multiple Data), MIMD (Multiple Instruction Multiple Data).

Single Instruction Multiple – комп’ютер має N ідентичних синхронно працюючих процесорів, N потоків даних і один потік команд. Кожен процесор володіє власною локальною пам’яттю. Мережа, яка з’єднує процесори, зазвичай має регулярну топологію (рис. 2).

 

Рисунок 2 – Архітектура SIMD комп’ютера

 

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

Multiple Instruction Multiple –комп’ютер має N процесорів, N потоків команд і N потоків даних. Кожен процесор функціонує під керуванням власного потоку команд, тобто такий комп’ютер може паралельно виконувати зовсім різні програми (рис. 3).

 

Рисунок 3 – Архітектура MIMD’  комп’ютера

 

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

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

2.      Комп’ютери зі спільною пам’яттю (true shared memory) всі процесори спільно звертаються до загальної пам’яті переважно через шину або ієрархію шин.

3. Комп’ютери з віртуальною спільною пам’яттю (virtual shared memory) – у таких системах загальної пам’яті немає, кожен процесор має власну локальну пам’ять і може звертатися до локальної пам’яті інших процесорів, використовуючи глобальну адресу. Якщо глобальна адреса вказує не на локальну пам’ять, то доступ до пам’яті реалізується за допомогою повідомлень, які пересилаються мережею, що з’єднує процесори, з малою затримкою.

Паралельні обчислювальні засоби класу MIMD утворюють три підкласи: симетричні мультипроцесори (SMP), кластери, масово паралельні системи (MPP). В основу цієї класифікації покладено структурно-функціональний підхід.

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

Кластерна система утворюється з модулів, об’єднаних системою зв’язку або розділюваними пристроями зовнішньої пам’яті, наприклад дисковими масивами. Нині для cтворення кластерних систем використовуються спеціалізовані фірмові засоби (наприклад, MEMORY CHANNEL фірми DEC, AWS фірми NCR), або такі універсальні локальні та глобальні мережі, як Ethernet, FDDI (Fiber Distributed Data Interface), й інші мережі, наприклад, які працюють з протоколами TCP/IP, або дискові масиви з високошвидкісними широкими подвійними (Wide/Fast) і квадро PCI SCSI контролерами. Розмір кластера варіюється від декількох до декількох десятків модулів.

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

Приклад. Прикладом систем зі спільною пам’яттю може бути багатоядерний центральний процесор сімейства Intel Core, що має один корпус і встановлюється в один роз’єм на системній платі комп’ютера, але операційна система сприймає кожне його обчислювальне ядро як окремий процесор з повним набором обчислювальних ресурсів. Кеш-пам’ять першого рівня у кожного ядра своя, а кеш-пам’ять другого рівня поділювана – кеш розміщений на одному кристалі, так само, як обидва ядра, та доступний кожному з них у повному обсязі. На сьогодні основні виробники процесорів – Intel і AMD – визнали подальше збільшення кількості ядер процесорів одним з пріоритетних напрямів збільшення продуктивності. Вже освоєно виробництво 4, 6-ядерних процесорів для домашніх комп’ютерів, а також 8 і 10-ядерних у серверних системах.

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

До систем із розподіленою пам’яттю належать:

·       трансп’ютер – паралельний обчислювальний прискорювач для комп’ютера загального призначення (HOST). Як хост-системи можуть бути робочі станції типу Sun та персональні комп’ютери ІBM PC;

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

·      кластери робочих станцій – об’єднання певної кількості персональних комп’ютерів і/або робочих станцій.

Приклад. Прикладом систем з розподіленою пам’яттю можуть бути багатоядерні центральні процесори сімейства Athlon 64 X2 (3-10) або багатопроцесорні материнські плати для одноядерних процесорів, які обробляють задачі конвеєрно. У процесі виконання команд у конвеєрі зміщуються етапи виконання для декількох команд (тобто в конвеєрі одночасно міститься декілька команд) на різних стадіях. Кожний етап конвеєрного обчислення виконується за один машинний цикл. Зрозуміло, що виконання окремої команди на послідовному процесорі (де команда виконується зразу за один машинний цикл) може бути швидшим, аніж у конвеєрній організації, але за рахунок зміщення виконання різних команд загальна швидкодія істотно збільшується.

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

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

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

 

Рисунок 4 – Шинно- і switch-базовані системи зі спільною пам’яттю і без неї

 

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

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

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

Приклад: оператори персонального комп’ютера із власним CPU, власною пам’яттю й операційною системою, які спільно використовують лазерний принтер.

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

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

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

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

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

Розподілені системи поділяють на такі категорії:

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

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

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

 

2.2 Характеристики розподілених систем

 

Розподілені системи мають такі характерні риси:

·       просторова розподіленість компонент розподіленої системи, тобто вони взаємодіють або локально, або віддалено;

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

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

·       компоненти працюють окремо й можуть «випадати», не руйнуючи системи в цілому, незалежно одна від одної, таким чином розподілені системи підлягають частковому системному «випаданню»;

·       система працює асинхронно, процеси комунікації й обробки не керують-ся глобальним системним часом, змінні й процеси синхронізуються;

·       у розподіленій системі функції керування розподіляються між різними автономними компонентами, оскільки жодна окрема компонента не може здійснювати весь контроль, що гарантує певний рівень автономії;

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

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

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

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

·       розподіленій системі властива еволюція, вона може змінюватися протягом часу її життя;

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

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

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

Розрізняють багато характерних рис прозорості розподілу, серед яких відокремимо такі:

·       прозорість доступу приховує спеціальні механізми доступу для локальних або віддалених служб до ресурсів системи;

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

·       прозорість міграції приховує факт переміщення ресурсів у інше місце;

·       прозорість виконання приховує спосіб обробки обчислювальних потоків, коли обчислення виконуються паралельно або послідовно;

·       прозорість зміни місця розташування приховує зміну ресурсу під час його обробки;

·       прозорість реплікації приховує факт реплікації під час обробки даних;

·       прозорість паралельного доступу приховує факт спільного використання ресурсів декількома конкуруючими процесами користувачів;

·       прозорість відмови приховує факт виникнення відмов у системі й відновлення ресурсу після їх локалізації;

·       збереження приховує факт розташування ресурсу на носіях або кешування ресурсу;

·       прозорість з’єднання приховує межі між адміністративними й технологічними областями в системі;

·       прозорість групи приховує користувачів від групи під час колективної роботи із системою.

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

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

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

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

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

Основні підходи, що забезпечують масштабованість розподіленої системи:

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

2.  Розподіл передбачає розбиття компонентів системи на дрібні частини й подальше рознесення цих частин фізичними територіально розподіленими вузлами системи. Прикладом розподілу є система доменних імен Internet (DNS).

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

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

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

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

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

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

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

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

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

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

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