Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Асиметрична багатопроцесорність
У разі використання асиметричної багатопроцесорності кожен процесор виконує код операційної системи незалежно від інших процесорів. Кожна копія ОС може бути завантажена в окрему ділянку пам'яті, можливе також спільне використання коду ОС різними процесорами з виділенням окремих ділянок пам'яті для даних. Цей підхід було використано на ранніх стадіях розвитку підтримки багатопроцесорних архітектур в ОС. Наведемо його недоліки. ♦ Усі процеси користувача деякої копії ОС виконуються на тому самому процесорі, що й сама копія. Немає можливості організувати паралельне виконання коду в рамках окремого процесу, не можна вирівнювати навантаження на окремі процесори і на пам'ять. ♦ Неможливо організувати дисковий кеш через те, що копії ОС різних процесорів кешуватимуть дискові блоки окремо. Якщо різні процесори одночасно модифікують один і той самий дисковий блок у кеші, а потім спробують зберегти ці зміни на диск, втратиться інформація, оскільки тільки одна з цих змін буде справді записана на диск.
Симетрична багатопроцесорність Основним підходом, який застосовують нині для підтримки UMA-архітектур, є симетрична багатопроцесорність (SMP). У даному разі у спільну пам'ять завантажують єдину копію операційної системи і всіх її даних, при цьому її код може б ути виконаний кожним із процесорів або кількома проесорами одноасно.
Особливості SMP-систем наведено нижче. ♦ Усі процесори системи доступні з коду ОС. Планувальник ОС може організувати виконання її коду або коду потоку користувача на будь-якому процесорі. ♦ Для всіх процесорів доступні спільні дані, при цьому когерентність кеша підтримується апаратно. ♦ Потоки користувача і потоки ядра можуть виконуватися паралельно на різних процесорах. Під час виконання потік може мігрувати із процесора на процесор. ♦ Спроба повторного читання одних і тих самих даних процесором CPUA може дати інший результат внаслідок того, що ці дані були змінені процесором CPUB. ♦ У системі можливе вирівнювання навантаження між процесорами, для чого планувальник ОС може передавати новий потік для виконання найменш завантаженому процесору. ♦ Додавання нового процесора у систему автоматично робить його доступним для виконання коду ОС або процесів користувача. При цьому навантаження на інші процесори автоматично знижується.
Для того щоб скористатися перевагами багатопроцесорної архітектури, код ОС має бути багатопотоковим і реентерабельним. При цьому необхідна підтримка синхронізації на рівні ядра. Найпримітивнішим підходом до забезпечення синхронізації є велике блокування ядра (big kernel lock). При цьому кожен процесор перед виконанням будь-якого коду ОС займає глобальний м'ютекс. Цей підхід неефективний, оскільки в конкретний момент часу код ОС може бути виконаний тільки на одному процесорі. Сучасні ОС реалізують гнучкіший підхід, у якому код ядра розбивають на незалежні критичні ділянки, із кожною з яких пов'язують окремий м'ютекс.
Підтримка NUMA-архітектур ОС, що підтримує NUMA-архітектуру, має прагнути до підвищення продуктивності внаслідок планування потоків для виконання на процесорах, що перебувають у тих самих вузлах, що і пам'ять, використовувана цими потоками. Природно, що повністю уникнути звертань до віддаленої пам'яті неможливо, але їхня кількість має бути мінімальною. Звичайно для організації більш якісного планування у системі підтримують структуру даних, що описує топологію конкретної NUMA-системи (вузли, їхні характеристики і зв'язки між ними). Крім того, мають бути передбачені системні виклики, що дають змогу задавати вузли, на яких виконуватиметься потік.
Продуктивність багатопроцесорних систем Масштабування навантаження Під масштабуванням навантаження (workload scalability) у SMP-системах розуміють вплив додавання нових процесорів на продуктивність системи. У реальних умовах воно залежить від багатьох факторів. ♦ У разі збільшення кількості процесорів зростає навантаження на системну шину та пам'ять і, як наслідок, ціна промаху кеша. ♦ Кількість промахів кеша при цьому теж збільшується внаслідок того, що в системі збільшено кількість потоків, які потрібно планувати. ♦ Що більше процесорів, то більше зусиль потрібно докладати для забезпечення когерентності кеша. ♦ Кількість блокувань у системі зростає із ростом кількості процесорів. Найбільший рівень масштабування навантаження досягають для потоків, обмежених можливостями процесора, найменший - для потоків, обмежених можливостями пристроїв введення-виведення.
|
|||||
Последнее изменение этой страницы: 2017-02-06; просмотров: 257; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.219.22.169 (0.004 с.) |