Здавалка
Главная | Обратная связь

Симетрична багатопроцесорність



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

Розглянемо її особливості:

•Усі процесори системи доступні з коду ОС. Планувальник ОС може організу­вати виконання її коду або коду потоку користувача на будь-якому процесорі.

•Для всіх процесорів доступні спільні дані, при цьому когерентність кеша під­тримується апаратно.

•Потоки користувача і потоки ядра можуть виконуватися паралельно на різних процесорах. Під час виконання потік може мігрувати із процесора на процесор.

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

•У системі можливе вирівнювання навантаження між процесорами, для чого планувальник ОС може передавати новий потік для виконання найменш за­вантаженому процесору.

Додавання нового процесора у систему автоматично робить його доступним для виконання коду ОС або процесів користувача. При цьому навантаження на інші процесори автоматично знижується.

Для того, щоб скористатися перевагами багатопроцесорної архітектури, код ОС має бути багатопотоковим і реентерабельним. При цьому необхідна підтрим­ка синхронізації на рівні ядра. Найпримітивнішим підходом до забезпечення синхронізації є велике блоку­вання ядра (big kernellock). При цьому кожен процесор перед виконанням будь-якого коду ОС займає глобальний м'ютекс. Цей підхід неефективний, оскільки в конкретний момент часу код ОС може бути виконаний тільки на одному процесорі.

Сучасні ОС реалізують гнучкіший підхід, у якому код ядра розбивають на не­залежні критичні ділянки, із кожною з яких пов'язують окремий м'ютекс.[1]

 

Продуктивність багатопроцесорних систем

Масштабування навантаження

Під масштабуванням навантаження (workload scalability) у SMP-системах розу­міють вплив додавання нових процесорів на продуктивність системи. У реальних умовах воно залежить від багатьох факторів.

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

•Кількість промахів кеша при цьому теж збільшується внаслідок того, що в сис­темі збільшено кількість потоків, які потрібно планувати.

•Що більше процесорів, то більше зусиль потрібно докладати для забезпечен­ня когерентності кеша.

Кількість блокувань у системі зростає із ростом кількості процесорів.

Найбільший рівень масштабування навантаження досягають для потоків, об­межених можливостями процесора, найменший — для потоків, обмежених мож­ливостями пристроїв введення-виведення.







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.