
- •Основні архітектури пз для паралельного та розподіленого програмування
- •18)Uml-діаграми для створення багатопоточних паралельних та розподілених програм.
- •Два види процесів
- •Блок керування процесами.
- •Анатомія процесу
- •Стани процесу
- •2 . Стани процесів
- •Планування процесу, стратегії планування.
- •Встановлення та отримання пріоритету
- •Перемикання контексту
Основні архітектури пз для паралельного та розподіленого програмування
Паралельні обчислення — це форма обчислень, в яких кілька дій проводяться одночасно. Ефективний розподіл процесу обчислень між багатьма процесорами й забезпечення їхнього рівномірного завантаження - основна складність паралельного програмування, яке справедливо вважається набагато складнішим, ніж послідовне. Паралельні та розподілені архітектури можуть бути найрізноманітнішими. В той час як деякі розподілені архітектури чудово працюють в Web- середовищі, вони практично приречені на невдачу в середовищі реального часу. Наприклад, розподілені архітектури, які розраховані на тривалі часові затримки, цілком прийнятні для Web- середовища і цілковито неприйнятні для багатьох середовищ реального часу. Затримка (час очікування), яка присутня в багатьох поштових Web- системах, була б просто нищівною для таких систем реального часу, як банкомати. Наприклад, методи векторної обробки даних найкраще придатні для рішення певних математичних задач і проблем імітаційного моделювання, але вони абсолютно неефективні в застосування до мультиагентних алгоритмів планування. Поширені архітектури ПЗ, що придатні для паралельного та розподіленого програмування, подано в табл.
Чотири базові моделі, подані в табл. 2, і їх варіанти забезпечують основу для всіх паралельних типів архітектур Вибраний тип архітектури повинен максимально відповідати цьому природному паралелізму. Наприклад, паралелізм в рішенні, можливо, краще описувати за допомогою симетричної моделі, або моделі мережі з рівноправними вузлами (peer-to-peer model)? в якій всі виконавці є рівноправними, на відміну від несиметричної моделі керуючийвиконавчий, в якій існує головний (керуючий) процес, який керує всіма іншими процесами як підлеглими.
Таблиця 2. |
Поширені архітектури ПЗ, які використовуються для паралельного і розподіленого програмування |
|||
Модель |
Архітектура |
Розподілене програмування |
Паралельне програмування |
|
Модель ведучого вузла, інакше кажучи:
|
Головний вузол керує задачами, тобто контролює їх виконання і передає роботу підлеглим задачам |
|
|
|
Модель рівноправних вузлів |
Всі задачі, в основному, мають однаковий ранг, і робота між ними розподіляється рівномірно |
|
|
|
Векторна або конвеєрна (потокова) обробка |
Один виконавчий вузол відповідає кожному елементу масиву (вектора) або кроку конвеєра |
|
|
18)Uml-діаграми для створення багатопоточних паралельних та розподілених програм.
UML — уніфікована мова моделювання, використовується у парадигмі об'єктно-орієнтованого програмування. UML був створений для визначення, візуалізації, проектування й документування в основному програмних систем. Подано сім UML-діаграм, які часто використовуються при створенні багатопоточних, паралельних або розподілених програм.
|
UML-діаграми, які використовуються при створенні багатопоточних, паралельних або розподілених програм |
|
UML-діаграми |
Опис |
|
Діаграма (видів) діяльності |
Різновид діаграми станів, в якій більшість станів (або всі) являють види діяльності, а більшість переходів (або всі) активізуються при виконанні деякої дії у вихідних станах |
|
Діаграма взаємодії |
Тип діаграми, що відображає взаємодію між об’єктами. Взаємодія описується у вигляді повідомлень, якими вони обмінюються. До діаграм взаємодії належать діаграми взаємодії, діаграми послідовностей і діаграми (видів) діяльності |
|
Діаграма (паралельних) станів |
Діаграма, яка показує послідовність перетворень об’єкту в процесі його реакції на події. При використанні діаграми паралельних станів дані перетворення можуть відбуватися на протязі одного і того ж інтервалу часу |
|
Діаграма послідовностей |
Діаграма взаємодії, в якій відображено організацію структури об’єктів, які приймають або відправляють повідомлення (акцент на впорядкування подій в часі) |
|
Діаграма співробітництва |
Діаграма взаємодії, в якій відображено організацію структури об’єктів, які приймають або відправляють повідомлення (акцент на структурній організації) |
|
Діаграма розгортання (впровадження) |
Діаграма, яка показує динамічну конфігурацію вузлів обробки, апаратних засобів і програмних компонентів в системі |
|
Діаграма компонентів |
Діаграма взаємодії, в якій відображається організація фізичних модулів програмного коду (пакетів) в системі залежності між ними |