одним з необхідних вимог, які пред'являються до комп'ютерів, використовуваним як центральний сервер більш-менш великої мережі.
Не слід плутати мультипроцесорну обробку з мультипрограмною обробкою. У мультипрограмних системах паралельна робота різних пристроїв дозволяє одночасно вести обробку декількох програм, але при цьому в процесорі в кожний момент часу виконується тільки одна програма. Тобто в цьому випадку кілька завдань виконуються поперемінно на одному процесорі, створюючи лише видимість паралельного виконання. А в мультипроцесорних системах кілька завдань виконуються дійсно одночасно, тому що є кілька обробних пристроїв — процесорів. Звичайно, багатопроцесування зовсім не виключає мультипрограмування: на кожному із процесорів може поперемінно виконуватися деякий закріплений за даним процесором набір завдань.
Мультипроцесорна організація системи приводить до ускладнення всіх алгоритмів керування ресурсами, наприклад потрібно планувати процеси не для одного, а для декількох процесорів, що набагато складніше. Складності полягають і в зростанні числа конфліктів по звертанню до пристроїв вводу-висновку, даним, загальній пам'яті й спільно використовуваним програмам. Необхідно передбачити ефективні засоби блокування при доступі до поділюваних інформаційних структур ядра. Всі ці проблеми повинна вирішувати операційна система шляхом синхронізації процесів, ведення черг і планування ресурсів. Більше того, сама ОС повинна бути спроектована так, щоб зменшити існуючі взаємозалежності між власними компонентами.
У наші дні стає загальноприйнятим введення в ОС функцій підтримки мультипроцесорної обробки даних. Такі функції є у всіх популярних ОС, таких як Sun Solaris 2.x, Santa Crus Operations Open Server 3.x, IBM OS/2, Microsoft Windows NT і Novell NetWare, починаючи з 4.1.
Мультипроцесорні системи часто характеризують або як симетричні, або як несиметричні. При цьому варто чітко визначати, до якого аспекту мультипроцесорної системи ставиться ця характеристика - до типу архітектури або до способу організації обчислювального процесу.
Симетрична архітектура мультипроцесорної системи припускає однорідність всіх процесорів і однаковість включення процесорів у загальну схему мультипроцесорної системи. Традиційні симетричні мультипроцесорні конфігурації розділяють одну більшу пам'ять між всіма процесорами.
Масштабування, або можливість нарощування числа процесорів, у симетричних системах обмежена внаслідок того, що всі вони користуються однією й тією ж ОП. Отже, повинні розташовуватися в одному корпусі. Така конструкція, називана масштабованою по вертикалі, практично обмежує число процесорів до чотирьох або восьми.
У симетричних архітектурах всі процеси користуються однією й тією ж схемою відображення пам'яті. Вони можуть дуже швидко обмінюватися даними, так що забезпечується досить висока продуктивність для тих додатків (наприклад, при роботі з базами даних), у яких кілька завдань повинні активно взаємодіяти між собою.
В асиметричній архітектурі різні процесори можуть відрізнятися як своїми характеристиками (продуктивністю, надійністю, системою команд і т.д., аж до моделі мікропроцесора), так і функціональною роллю, що поручається їм у системі. Наприклад, одні процесори можуть призначатися для роботи як основні обчислювачі, інші - для керування підсистемою в/в, треті - ще для якихось особливих цілей.
Функціональна неоднорідність в асиметричних архітектурах спричиняє структурні відмінності у фрагментах системи, що містять різні процесори системи. Наприклад, вони можуть відрізнятися схемами підключення процесорів до системної шини, набором периферійних пристроїв і способами взаємодії процесорів із пристроями.
Масштабування в асиметричній архітектурі реалізується інакше, ніж у симетричній. Тому що вимога єдиного корпуса відсутня, система може складатися з декількох пристроїв, кожне з яких містить один або кілька процесорів. Це масштабування по горизонталі. Кожний такий пристрій називається кластером, а вся мультипроцесорна система — кластерної.
Іншим аспектом мультипроцесорних систем, що може характеризуватися симетрією або її відсутністю, є спосіб організації обчислювального процесу. Останній, як відомо, визначається й реалізується ОС.
Асиметричне мультипроцеування є найбільш простим способом організації обчислювального процесу в системах з декількома процесорами. Цей спосіб часто називають також «ведучий-відомий».
Функціонування системи за принципом « ведучий-відомий » припускає виділення одного із процесорів у якості «провідного», на якому працює операційна система і який управляє всіма іншими «веденими» процесорами. Тобто провідний процесор бере на себе функції розподілу завдань і ресурсів, а ведені процесори працюють тільки як обробні пристрої й ніякі дії по організації роботи обчислювальної системи не виконують.
Тому що ОС працює тільки на одному процесорі й функції керування повністю централізовані, те така ОС виявляється не набагато складніше ОС однопроцесорної системи.
Асиметрична організація обчислювального процесу може бути реалізована як для симетричної мультипроцесорної архітектури, у якій всі процесори апаратно нерозрізнені, так і для несиметричної, для якої характерна неоднорідність процесорів, їхня спеціалізація на апаратному рівні.
В архітектурно-асиметричних системах на роль провідного процесора може бути призначений найбільш надійний і продуктивний процесор. Якщо в наборі процесорів є спеціалізований процесор, орієнтований, наприклад, на матричні обчислення, то при плануванні процесів операційна система, що реалізує асиметричне мультипроцесування, повинна враховувати специфіку цього процесора. Така спеціалізація знижує надійність системи в цілому, тому що процесори не є взаємозамінними.
Симетричне мультипроцесування як спосіб організації обчислювального процесу може бути реалізоване в системах тільки із симетричною мультипроцесорною архітектурою. Нагадаємо, що в таких системах процесори працюють із загальними пристроями й поділюваною основною пам'яттю.
Симетричне мультипроцесування реалізується загальною для всіх процесорів ОС. При симетричній організації всі процесори рівноправно беруть участь і в керуванні обчислювальним процесом, і у виконанні прикладних завдань. Наприклад, сигнал переривання від принтера, що роздруковує дані прикладного процесу, виконуваного на деякому процесорі, може бути оброблений зовсім іншим процесором. Різні процесори можуть у якийсь момент одночасно обслуговувати як різні, так і однакові модулі загальної ОС. Для цього програми ОС повинні мати властивість повторної входимості (реєнтерабельності).
ОС повністю децентралізована. Модулі ОС виконуються на будь-якому доступному процесорі. Як тільки