Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекція 1_ ПРО.doc
Скачиваний:
6
Добавлен:
14.07.2019
Размер:
211.46 Кб
Скачать

Недоліки:

Припустимо, у нас є об'єкт, що містить числа A і B, і для правильної роботи об'єкта потрібно, щоб A + B завжди дорівнювала нулю. Якщо перший процес змінить A, і не встигне змінити B перш, ніж другий процес прочитає A і B, то другий процес отримає неправильний об'єкт, в якому A + B не дорівнює нулю. Для вирішення подібних проблем можна використовувати критичні секції. Якщо потік інструкцій першого процесу входить в критичну секцію з ідентифікатором N, то потік інструкцій іншого процесу не зможе увійти в критичну секцію з тим же ідентифікатором, і буде чекати, поки перший процес не вийде з цієї секції.

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

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

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

Проблема масштабованості: дуже складно зробити подібну систему з великим числом процесорів, так як дуже сильно зростає вартість і падає ефективність роботи через описані вище проблеми. Практично всі подібні системи мають ≤ 8 процесорів.

Системи з розподіленою пам'яттю

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

Системи з розподіленою пам'яттю, в яких кожен обчислювальний вузол являє собою повноцінний комп'ютер зі своєю копією операційної системи, називають кластерними (або «кластерами»). Кластери, зазвичай, являють собою шафи з компактними системними блоками, які з'єднані один з одним каналами зв'язку (за допомогою спеціальних комутаторів), які передають дані зі швидкістю 10 Гбіт / сек і більше.

Переваги:

  • Простота і дешевизна побудови: можна взяти велику кількість звичайних комп'ютерів, з'єднати їх каналами зв'язку (наприклад, Ethernet), і отримати кластер.

  • Ефективне вирішення завдань, що вимагають малого обміну даними: кожен комп'ютер буде працювати на повну потужність, не чекаючи, поки звільниться доступ до оперативної пам'яті.

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]