КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Системи з загальною пам’яттю
Системами з загальною пам’яттю називають системи, в яких декілька процесорів мають загальну оперативну пам’ять. Наприклад, комп’ютери з багатоядерними процесорами (multi-core). Преваги: · Не потрібний обмін даними: дані, які розмістив в пам’ять один процесор, автоматично стають доступні другим процесорам. Відповідно, система не повинна витрачати час на пересилання даних. · Для таких систем просто писати програми: можна, наприклад, створити декілька обчислювальних потоків, або ж використати в програмі спеціальні директиви (н-д, технологія OpenMP), які підкажуть компілятору, як розпаралелити програму. Крім того, можливе повністю автоматичне розпаралелювання програми компілятором. · Компактність систем: може бути реалізована в вигляді декількох процесорів на одній материнській платі, і/або в вигляді декількох ядер всередині процесора. Недоліки: Припустимо, у нас є об'єкт, що містить числа A і B, і для правильної роботи об'єкта потрібно, щоб A + B завжди дорівнювала нулю. Якщо перший процес змінить A, і не встигне змінити B перш, ніж другий процес прочитає A і B, то другий процес отримає неправильний об'єкт, в якому A + B не дорівнює нулю. Для вирішення подібних проблем можна використовувати критичні секції. Якщо потік інструкцій першого процесу входить в критичну секцію з ідентифікатором N, то потік інструкцій іншого процесу не зможе увійти в критичну секцію з тим же ідентифікатором, і буде чекати, поки перший процес не вийде з цієї секції. • Проблема спільного доступу до пам'яті: потрібно обережно працювати з тими ділянками пам'яті, для яких можливе одночасне виконання записи одним процесором та іншої операції (запису або читання) іншим процесором. • Проблема синхронності кешей: для прискорення доступу до пам'яті процесори забезпечуються кешами. Якщо один процесор змінив дані в оперативній пам'яті, і ці дані прокешіровани іншими процесорами, то їх кеші повинні автоматично оновитися. Дана проблема відсутня в багатоядерних процесорах, що використовують загальний кеш. • Проблема повільного звернення до оперативної пам'яті і її обмеженого обсягу: процесор працює швидко, а пам'ять-повільно, тому навіть одному процесору доводиться чекати завантаження даних з оперативної пам'яті. Якщо ж процесорів декілька, то їм доводиться чекати ще довше. Швидкість роботи кожного процесора з пам'яттю стає тим менше, чим більше число процесорів є в системі. Крім того, обсяг пам'яті не може бути зроблений як завгодно великим, тому що для цього доведеться збільшувати розрядність шини пам'яті. • Проблема масштабованості: дуже складно зробити подібну систему з великим числом процесорів, так як дуже сильно зростає вартість і падає ефективність роботи через описані вище проблеми. Практично всі подібні системи мають ≤ 8 процесорів.
Дата добавления: 2014-01-07; Просмотров: 489; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |