на апаратній платформі. Нитки кожного процесу повинні чекати, поки призначений ним процесор звільниться. Такий метод, як правило, менш ефективний, ніж симетричний метод. Симетрична многопроцессорная обробка припускає, що всі процесори мають однакові можливості.
Під симетричної багатопроцесорної обробкою зазвичай розуміють рівноправне поділ між процесорами різних завдань, в числі яких в асиметричних системах можуть бути введення-виведення або числові обчислення. У SMP системі всі процесори функціонально ідентичні, і будь-яка задача може виконуватися на будь-якому процесорі. SMP ОС запускає процес (нитка) із загальної черги на першому звільненому процесорі, як тільки виконання процесу (нитки) після пріоритетного переривання ОС поновлюється. У SMP-моделі навантаження динамічно розподіляється між процесорами, так що неможлива ситуація, в якій одні центральні процесори перевантажені, в той час як інші нічим не зайняті.
Хоча всі процесори в SMP системі функціонально ідентичні, виділяється два їх типу: завантажувальний процесор (BSP) і прикладні процесори (АР). Який процесор грає роль завантажувального, визначається апаратними засобами або спільно апаратурою та BIOS. Це зроблено для зручності і має значення тільки під час ініціалізації і виключення. BSP-процесор відповідає за ініціалізацію системи та за завантаження ОС. АР-процесор активізується після завантаження ОС.
Симетричність має два важливих аспекти: симетричність пам'яті і введення-виведення. Пам'ять симетрична, якщо всі процесори спільно використовують загальний простір пам'яті і мають у цьому просторі доступ з одними і тими ж адресами. Симетричність пам'яті припускає, що всі процесори можуть виконувати єдину копію ОС. У такому випадку будь-які існуючі системи та прикладні програми будуть працювати однаково, незалежно від числа встановлених в системі процесорів. Вимога симетричності вводу-виводу виконується, якщо всі процесори мають можливість доступу до одних і тих же підсистемах вводу-виводу (включаючи порти та контролери переривання), причому будь-який процесор може отримати переривання від будь-якого джерела. Деякі багатопроцесорні системи, що мають симетричний доступ до пам'яті, в той же час є асиметричними стосовно до переривань пристроїв введення-виведення, оскільки виділяють один процесор для обробки переривань. Симетричність введення-виведення допомагає прибрати потенційно вузькі місця вводу-виводу і тим самим підвищити розширюваність системи.
Системи, що володіють симетричністю пам'яті і введення-виведення, дозволяють забезпечити розширюваність апаратних засобів, а також стандартизувати програмні засоби.
Є дві загальні реалізації SMP, відомі як Сільносвязанная і слабосвязанних. Сільносвязанная реалізація базується на схемою, згідно з якою процесори спільно використовують дані з пулу загальних ресурсів, насамперед, із загальної пам'яті. Слабкозв'язаного системи використовують механізм обміну повідомленнями між процесами для спільного використання ресурсів, коли це необхідно. У деяких слабосвязанних системах кожен процесор може навіть мати свій власний контролер диска та інші підсистеми.
Найбільш доцільно використовувати симетричну сильнозв'язаних модель. Тоді ОС забезпечує потужну підтримку симетричної багатопроцесорної обробки, так як планувальник в ядрі ОС функціонує на рівні нитки, тому сервер може призначити дві нитки одного процесу різним процесорам. Це особливо корисно для прикладних програм баз даних, де запити можуть бути розщеплені на нитки і розподілені між процесорами, що веде до значного збільшення продуктивності.
Щоб повніше скористатися перевагами SMP при організації багатозадачності, виконання ниток процесу контролюється за допомогою пріоритетних переривань. Пріоритетне переривання дозволяє операційній системі підтримувати контроль над програмами, яку програму і коли запускати, так що збилися програми не можуть поневолити систему і викликати проблеми. При пріоритетних переривання - постійний, що займають мікросекунди запуск і зупинка декількох програм - як тільки відновлюється виконання нитки, ОС може призначити її іншому процесору.
Основною перевагою такої архітектури є те, що прикладні програми мають у своєму розпорядженні стільки центральних процесорів, скільки є в наявності у сервера. Так як операційна система займається плануванням роботи процесорів, прикладним програмам немає необхідності знати про кількість наявних процесорів. Операційна система призначить кожну нитку першому вільному процесору. Планувальник дозволяє розподіляти навантаження і в кінцевому підсумку виконувати програми точно з тією ж швидкістю, з якою кілька центральних процесорів і можуть з ними впоратися.
Однією з переваг SMP-платформ, є їх масштабованість. Компанія, що реалізувала однопроцесорних систему з таким сервером, в майбутньому буде мати можливість реалізувати SMP з тією ж самою версією ОС. Якщо завдання рос...