Пріоритет потоків, Правила використання потоків - Економічна ефективність розподілених систем і паралельних обчислень

Операційна система планує час процесора відповідно до пріоритету потоків. Коли потік створюється, йому призначається пріоритет, відповідний пріоритету його процесу, що породив. У свою чергу, процеси можуть мати наступні класи пріоритетів:

    - Реального часу (Real time) - Високий (High) - Нормальний (Normal) - Фоновий (Idle)

Пріоритети мають значення від 0 до 31. Процес, що породив потік, може згодом змінити його пріоритет; у цій ситуації програміст має нагоду управляти швидкістю відгуку кожного потоку. Пріоритет потоку може відрізнятися від пріоритету процесу, що породив його, на плюс-мінус дві одиниці. розподілений паралельний обчислення

Правила використання потоків

Потоки необхідно використовувати:

Для досягнення підвищеного паралелізму. Дуже часто додаткам вимагається виконувати декілька задач одночасно.

З метою спрощення конструкції. Популярний спосіб спрощення структури складних систем - використання черг і асинхронної обробки. Щоб задіяти таку конструкцію вам доведеться підготувати черги для обробки подій, що відбуваються у вашій системі. Замість прямого виклику методів створюються об'єкти і поміщаються в черги, в яких відбувається їх обробка. На іншому кінці цих черг працює багато потокові серверні програми, налаштовані на відстежування повідомлень, що приходять в ці черги. Перевага спрощених конструкцій цього типу - надійність, стійкість і розширюваність заснованих на них систем.

Для ефективного використання процесорного часу. Частиє в випадок, коли програмний додаток реально не виконує ніякої роботи, в той же час продовжуючи використовувати свій квант. Прикладом може служити очікування виводу документів на друк або закінчення операцій введення-виведення жорсткого диску CD-ROM. У кожному з цих випадків процесорний час не використовується. Ці випадки є кандидатами на перевід в потоки, що працюють у фоновому режимі.

Застосовується до даних, які оперують великими масивами чисел. Проводиться в два етапи:

Розділення даних

Використання для розподілу основного завдання на окремі задачі цього розділення

Секціонування здійснюється різними способами, буває різних типів:

Секціонування за вихідними даними

Секціонування за вхідними даними

Секціонування за вхідними і вихідними даними

Секціонування за проміжними даними

Правило власника обчислень - кожне секціонування має виконувати обчислення над всіма даними, якими володіє.

Секціонування за вхідними даними застосовується у випадку, коли кожен вихідний елемент обчислюється як функція входу, але секціонування за вихідними даними неможливе

Приклад: матричне множення. Максимальний ступінь паралелізму дорівнює 4. Можна збільшити ступінь паралелізму, ввівши проміжні дані. На цій додатковій стадії обчислення додаються субматриці, а результат зберігається у проміжній тривимірній субматриці D.

Реструктуризація первинного алгоритму дала змогу отримати вищий ступінь паралелізму програми, але це прискорення було досягнуто за рахунок використання додаткового об'єму пам'яті.

Схема МПД може бути представлена сукупністю процесорних елементів. Кожен вузол визначає операцію для виконання і адреси всіх вузлів, які очікують на обчислення даного операнду. В дійсності процесор МПД працює як простий круговий конвеєр. Токени - дані, що надходять з мережі. Складаються з даних і адреси призначення або тега. Актори - дії, операції, що виконуються над токенами.

У вузлі відповідності тег порівнюється з тегами, наявними у сховищі токенів. Якщо такі присутні, то вони обираються разом з операцією, яку над ними необхідно виконати. Потім вони разом подаються до модуля виконання. Отриманий результат відправляється за тими адресами, де на нього очікують. Якщо ж не всі токени для операції готові, то даний токен розміщується у сховищі токенів і очікує своєї черги на виконання.

Процес - це виконання програми. Компоненти процесу - це програма, що виконується, її дані, її ресурси (пам'ять), стан виконання. Процес володіє своїм адресним простором, і його стан характеризується наступною інформацією: таблиці сторінок, дескриптори файлів, замовлення на ввід/вивід інформації, регістри.

Процеси можуть взаємодіяти:

Через розподілення пам'яті (ОП, зовн.)

Завдяки передачі повідомлень

При взаємодії процесів через спільну пам'ять необхідна синхронізація їх виконання.

Розрізняють 2 види синхронізації:

Взаємне виключення критичних інтервалів

Похожие статьи




Пріоритет потоків, Правила використання потоків - Економічна ефективність розподілених систем і паралельних обчислень

Предыдущая | Следующая