Діаграма порівняння
Основа для порівняння | Мультиобробка | Багатопотоковість |
---|---|---|
Основний | Multiprocessing додає процесори для збільшення обчислювальної потужності. | Багатопоточність створює кілька потоків одного процесу для збільшення обчислювальної потужності. |
Виконання | Паралельно виконуються кілька процесів. | Паралельно виконуються декілька потоків одного процесу. |
Створення | Створення процесу є трудомістким і ресурсомістким. | Створення потоку економічно в обох сенсах часу і ресурсу. |
Класифікація | Мультипроцессирование може бути симетричним або асиметричним. | Багатопоточність не класифікується. |
Визначення багатопроцесорної обробки
Багатопроцесорною системою є система, що має більше двох процесорів. Процесори додаються до системи для збільшення швидкості обчислення системи. Кожен процесор має власний набір регістрів і основну пам'ять. Просто тому, що процесори є окремими, може статися так, що один процесор не повинен мати нічого для обробки і може сидіти в режимі очікування, а інший може бути перевантажений процесами. У таких випадках процеси і ресурси поділяються динамічно між процесорами.
Мультипроцесинг можна класифікувати як симетричну багатопроцесорну і асиметричну багатопроцесорну . У симетричній багатопроцесорній обробці всі процесори можуть вільно запускати будь-який процес у системі. В асиметричній багатопроцесорній обробці між процесорами існують відносини майстер-підлеглий. Головний процесор відповідає за виділення процесу на підлеглі процесори.
Якщо процесор має вбудований контролер пам'яті, додавання процесора збільшить кількість адресної пам'яті в системі. Мультипроцессирование може змінювати модель доступу до пам'яті з єдиного доступу до пам'яті до неоднорідного доступу до пам'яті . Однорідний доступ до пам'яті дорівнює тому ж часу для доступу до будь-якої ОЗП з будь-якого Процесора. З іншого боку, неоднорідний доступ до пам'яті становить більше часу для доступу до частини пам'яті, ніж інші частини.
Визначення багатопоточності
Багатопоточність - це виконання декількох потоків одного процесу одночасно в контексті цього процесу. Тепер давайте спочатку обговоримо, що таке нитка? Потік процесу означає сегмент коду процесу, який має свій власний ідентифікатор потоку, лічильник програм, регістри і стек і може виконуватись незалежно. Але потоки, що належать до одного і того ж процесу, повинні розділяти речі цього процесу, як код, дані і системні ресурси. Створення окремих процесів для кожного сервісного запиту споживає час і вичерпують системні ресурси. Замість того, щоб приносити накладні витрати, ефективніше створювати потоки процесу.
Створення потоку є економічним, оскільки він поділяє код і дані процесу, до якого вони належать. Таким чином, системі не потрібно виділяти ресурси окремо для кожного потоку. Багатопоточність може бути збільшена на багатопроцесорній операційній системі. Як багатопоточність на декількох ЦП збільшується паралелізм .
Основні відмінності між багатопроцесорною та багатопоточністю
- Ключова відмінність між багатопроцесорною і багатопоточністю полягає в тому, що мультипроцессінг дозволяє системі мати більше двох CPU, доданих до системи, тоді як багатопоточність дозволяє процесу генерувати кілька потоків для збільшення швидкості обчислення системи.
- Система багатопроцесорної обробки виконує кілька процесів одночасно, тоді як багатопоточна система дозволяє одночасно виконувати кілька потоків процесу.
- Створення процесу може витрачати час і навіть вичерпувати системні ресурси. Однак створення потоків є економічним, оскільки нитки, що належать до одного і того ж процесу, поділяють речі цього процесу.
- Мультипроцессирование можна класифікувати на симетричні багатопроцесорні та асиметричні багатопроцесорні, тоді як багатопоточність не класифікується далі.
Висновок:
Переваги багатопоточності можуть бути поступово збільшені в багатопроцесорній середовищі, оскільки багатопоточність на багатопроцесорній системі збільшує паралелізм.