4.01M
Category: programmingprogramming

Мультипрограмування як один з принципів проектування ЕОМ. Паралелізм на рівні машинних команд. Тема 5

1.

ТЕМА 5
МУЛЬТИПРОГРАМУВАННЯ ЯК ОДИН З ПРИНЦИПІВ
ПРОЕКТУВАННЯ ЕОМ. ПАРАЛЕЛІЗМ НА РІВНІ МАШИННИХ
КОМАНД
ПЛАН
1 ПОНЯТТЯ МУЛЬТИПРОГРАМУВАННЯ
2 МУЛЬТИПРОЦЕСОРНА ОБРОБКА
3 КОНВЕЄР. СУПЕРСКАЛЯРНА АРХІТЕКТУРА

2.

1 ПОНЯТТЯ МУЛЬТИПРОГРАМУВАННЯ
Мультипрограмування, або багатозадачність (multitasking) — це спосіб
організації обчислювального процесу, при якому на одному процесорі
поперемінно виконуються відразу декілька програм. Ці програми спільно
використовують не лише процесор, але і інші ресурси комп’ютера: оперативну і
зовнішню пам’ять, пристрої введення-виводу, дані. Мультипрограмування
покликане підвищити ефективність використання обчислювальної системи.
Залежно від вибраного критерію ефективності ОС діляться на системи пакетної
обробки, системи розподілу часу і системи реального часу. Кожен тип ОС має
специфічні внутрішні механізми і особливі сфери застосування. Деякі операційні
системи можуть підтримувати одночасно декілька режимів, наприклад частина
завдань може виконуватися в режимі пакетної обробки, а частина — в режимі
реального часу або в режимі розподілу часу.

3.

1 ПОНЯТТЯ МУЛЬТИПРОГРАМУВАННЯ
Мультипрограмування в системах пакетної обробки. Для досягнення цієї мети в
системах пакетної обробки використовується наступна схема функціонування: на початку
роботи формується пакет завдань, кожне завдання містить вимогу до системних ресурсів;
з цього пакету завдань формується мультипрограмна суміш, тобто множина одночасно
виконуваних завдань. Для одночасного виконання вибираються завдання, що
пред’являють різні вимоги до ресурсів, так, щоб забезпечувалося збалансоване
завантаження усіх пристроїв обчислювальної машини. Наприклад, в мультипрограмній
суміші бажана одночасна присутність обчислювальних завдань і завдань з інтенсивним
введенням-виводом. Таким чином, вибір нового завдання з пакету завдань залежить від
внутрішньої ситуації, що складається в системі, тобто вибирається «вигідне» завдання.
Отже, в обчислювальних системах, працюючих під управлінням пакетних ОС, неможливо
гарантувати виконання того або іншого завдання впродовж певного періоду часу.
Якщо ж в системі виконуються одночасно декілька завдань, з’являється можливість
поєднання обчислень одного завдання з введенням-виводом іншого. Поки одне
завдання чекає якої-небудь події (помітимо, що такою подією в мультипрограмній системі
може бути не лише завершення введення-виводу, але і, наприклад, настання певного
моменту часу, розблокування файлу або завантаження з диска бракуючої сторінки
програми), процесор не простоює, як це відбувається при послідовному виконанні
програм, а виконує інше завдання.

4.

1 ПОНЯТТЯ МУЛЬТИПРОГРАМУВАННЯ
Мультипрограмування в системах пакетної обробки.
Загальний час виконання суміші завдань часто виявляється менше, ніж їх сумарний час
послідовного виконання. Проте виконання окремого завдання в мультипрограмному
режимі може зайняти більше часу, чим при монопольному виділенні процесора цьому
завданню. Дійсно, при спільному використанні процесора в системі можуть виникати
ситуації, коли завдання готове виконуватися, але процесор зайнятий виконанням іншого
завдання.
У системах пакетної обробки перемикання процесора з виконання одного завдання на
виконання іншого відбувається за ініціативою найактивнішого завдання, наприклад, коли
воно відмовляється від процесора із-за необхідності виконати операцію введеннявиводу. Тому існує висока вірогідність того, що одне завдання може надовго зайняти
процесор і виконання інтерактивних завдань стане неможливим. Взаємодія користувача з
обчислювальною машиною, на якій встановлена система пакетної обробки, зводиться до
того, що він приносить завдання, віддає його диспетчерові-операторові, а у кінці дня
після виконання усього пакету завдань отримує результат. Очевидно, що такий порядок
підвищує ефективність функціонування апаратури, але знижує ефективність роботи
користувача.

5.

1 ПОНЯТТЯ МУЛЬТИПРОГРАМУВАННЯ
Мультипрограмування в системах розподілу часу. Підвищення зручності і
ефективності роботи користувача є метою іншого способу мультипрограмування —
розподілу часу. Зрозуміло, що в пакетних системах можливості діалогу користувача з
додатком дуже обмежені.
У системах розподілу часу ця проблема вирішується за рахунок того, що ОС
примусово періодично призупиняє додатки, не чекаючи, коли вони добровільно
звільнять процесор. Усім додаткам поперемінно виділяється квант процесорного часу,
таким чином користувачі, що запустили програми на виконання, дістають можливість
підтримувати з ними діалог.
Ясно, що системи розподілу часу мають меншу пропускну спроможність, чим системи
пакетної обробки, оскільки на виконання приймається кожне запущене користувачем
завдання, а не те, яке «вигідне» системі. Крім того, продуктивність системи знижується ізза збільшених накладних витрат обчислювальної потужності на частіше перемикання
процесора із завдання на завдання. Це цілком відповідає тому, що критерієм
ефективності систем розподілу часу є не максимальна пропускна спроможність, а
зручність і ефективність роботи користувача. В той же час мультипрограмне виконання
інтерактивних застосувань підвищує і пропускну спроможність комп’ютера (хай і не в
такій мірі, як пакетні системи). Апаратура завантажується краще, оскільки у той час, поки
однин додаток чекає повідомлення користувача, інші додатки можуть оброблятися
процесором.

6.

1 ПОНЯТТЯ МУЛЬТИПРОГРАМУВАННЯ
Мультипрограмування в системах реального часу. Ще один різновид
мультипрограмування використовується в системах реального часу, призначених для
управління від комп’ютера різними технічними об’єктами (наприклад, верстатом,
супутником, науковою експериментальною установкою і т. д.) або технологічними
процесами (наприклад, гальванічною лінією, доменним процесом і т. п.). У усіх цих
випадках існує гранично допустимий час, впродовж якого має бути виконана та або інша
програма, що управляє об’єктом. Інакше може статися аварія: супутник вийде із зони
видимості, експериментальні дані, що поступають з датчиків, будуть втрачені, товщина
гальванічного покриття не відповідатиме нормі. Таким чином, критерієм ефективності тут
є здатність витримувати заздалегідь задані інтервали часу між запуском програми і
отриманням результату. Цей час називається часом реакції системи, а відповідна
властивість системи — реактивністю. Вимоги до часу реакції залежать від специфіки
керованого процесу. Контролер робота може вимагати від вбудованого комп’ютера
відповідь протягом менше 1 мс, тоді як при моделюванні польоту може бути прийнятна
відповідь в 40 мс.
У системах реального часу мультипрограмна суміш є фіксованим набором
заздалегідь розроблених програм, а вибір програми на виконання здійснюється по
перериваннях (виходячи з поточного стану об’єкту) або відповідно до розкладу
планових робіт.

7.

1 ПОНЯТТЯ МУЛЬТИПРОГРАМУВАННЯ
Мультипрограмування в системах реального часу.
У системах реального часу не прагнуть максимально завантажувати усі
пристрої, навпаки, при проектуванні програмного управляючого комплексу
зазвичай закладається деякий «запас» обчислювальної потужності на випадок
пікового навантаження. Статистичні аргументи про низьку вірогідність виникнення
пікового навантаження, засновані на тому, що вірогідність одночасного
виникнення великої кількості незалежних подій дуже мала, не застосовані до
багатьох ситуацій в системах управління. Наприклад, в системі управління
атомною електростанцією у разі виникнення великої аварії атомного реактора
багато аварійних датчиків спрацюють одночасно і створять корельоване
навантаження. Якщо система реального часу не спроектована для підтримки
пікового навантаження, то може статися так, що система не впорається з роботою
саме тоді, коли вона потрібна найбільшою мірою.

8.

2 МУЛЬТИПРОЦЕСОРНА ОБРОБКА
Мультипроцесорна обробка — це спосіб організації обчислювального процесу в
системах з декількома процесорами, при якому декілька завдань (процесів, потоків)
можуть одночасно виконуватися на різних процесорах системи.
Не слід плутати мультипроцесорну обробку з мультипрограмною обробкою. У
мультипрограмних системах паралельна робота різних пристроїв дозволяє одночасно
вести обробку декількох програм, але при цьому в процесорі в кожен момент часу
виконується тільки одна програма. Тобто в цьому випадку декілька завдань виконуються
поперемінно на одному процесорі, створюючи лише видимість паралельного виконання.
А в мультипроцесорних системах декілька завдань виконуються дійсно одночасно,
оскільки є декілька оброблювальних пристроїв — процесорів. Звичайно,
мультипроцесування зовсім не виключає мультипрограмування: на кожному з процесорів
може поперемінно виконуватися деякий закріплений за цим процесором набір завдань.
Мультипроцесорна організація системи призводить до ускладнення усіх алгоритмів
управління ресурсами, наприклад вимагається планувати процеси не для одного, а для
декількох процесорів, що набагато складніше. Складнощі полягають і в зростанні числа
конфліктів по зверненню до пристроїв введення-виводу, даних, загальної пам’яті і спільно
використовуваних програм.

9.

2 МУЛЬТИПРОЦЕСОРНА ОБРОБКА
Мультипроцесорні системи часто характеризують або як симетричні, або як
несиметричні.
Асиметричне мультипроцесування є найбільш простим способом організації
обчислювального процесу в системах з декількома процесорами. Цей спосіб часто
називають також «ведений».
Функціонування системи за принципом «ведений» припускає виділення одного
з процесорів в якості «ведучого», на якому працює операційна система і який
управляє усіма іншими «веденими» процесорами. Тобто «ведучий» процесор
бере на себе функції розподілу завдань і ресурсів, а ведені процесори працюють
тільки як оброблювальні пристрої і ніяких дій з організації роботи обчислювальної
системи не виконують.
Оскільки операційна система працює тільки на одному процесорі і функції
управління повністю централізовані, то така операційна система виявляється не
набагато складніше за ОС однопроцесорної системи.

10.

2 МУЛЬТИПРОЦЕСОРНА ОБРОБКА
Симетричне мультипроцесування реалізується на загальній для усіх
процесорів операційній системі. При симетричній організації усі процесори
рівноправно беруть участь і в управлінні обчислювальним процесом, і у виконанні
прикладних завдань. Наприклад, сигнал переривання від принтера, який
роздруковує дані прикладного процесу, що виконується на деякому процесорі,
може бути оброблений зовсім іншим процесором. Різні процесори можуть в
якийсь момент одночасно обслуговувати як різні, так і однакові модулі загальної
операційної системи.
Операційна система повністю децентралізована. Модулі ОС виконуються на
будь-якому доступному процесорі. Як тільки процесор завершує виконання
чергового завдання, він передає управління планувальникові завдань, який
вибирає із загальної для усіх процесорів системної черги завдання, яке
виконуватиметься на цьому процесорі наступним.

11.

3 КОНВЕЄР. СУПЕРСКАЛЯРНА АРХІТЕКТУРА
Вже багато років відомо, що головною перешкодою високої швидкості
виконання команд є необхідність їх виклику з пам’яті. Для вирішення цієї
проблеми можна викликати команди з пам’яті заздалегідь і зберігати в
спеціальному наборі регістрів. Ця ідея використовувалася ще в 1959 році при
розробці комп’ютера Stretch компанії IBM, а набір регістрів був названий буфером
вибірки з попередженням. Таким чином, коли була потрібна певна команда, вона
викликалася прямо з буфера, а звернення до пам’яті не відбувалося.
Насправді при вибірці з попередженням команда обробляється за два кроки:
спочатку відбувається виклик команди, а потім — її виконання. Ще більше
просунула цю стратегію ідея конвеєра. При використанні конвеєра команда
обробляється вже не за два, а за більшу кількість кроків, кожен з яких
реалізується певним апаратним компонентом, причому усі ці компоненти
можуть працювати паралельно.

12.

3 КОНВЕЄР. СУПЕРСКАЛЯРНА АРХІТЕКТУРА
На рисунку 2, а зображений конвеєр з п’яти блоків, які називаються східцями.
Перший ступінь (блок С1) викликає команду з пам’яті і поміщає її у буфер, де вона
зберігається до тих пір, поки не знадобиться. Другий ступінь (блок С2) декодує цю
команду, визначаючи її тип і тип її операндів. Третій ступінь (блок СЗ) визначає
місцезнаходження операндів і викликає їх з регістрів або з пам’яті.
Четвертий ступінь (блок С4) виконує команду, зазвичай проводячи операнди
через тракт даних. І нарешті, блок С5 записує результат назад в потрібний регістр.

13.

3 КОНВЕЄР. СУПЕРСКАЛЯРНА АРХІТЕКТУРА
На рисунку 2, б ми бачимо, як діє конвеєр в часі. Під час циклу 1 блок С1
обробляє команду 1, викликаючи її з пам’яті. Під час циклу 2 блок С2 декодує
команду 1, тоді як блок С1 викликає з пам’яті команду 2. Під час циклу 3 блок С3
викликає операнди для команди 1, блок С2 декодує команду 2, а блок С1
викликає команду 3. Під час циклу 4 блок С4 виконує команду 1, С3 викликає
операнди для команди 2, С2 декодує команду 3, а С1 викликає команду 4.
Нарешті, під час циклу 5 блок С5 записує результат виконання команди 1 назад в
регістр, тоді як інші східці конвеєра обробляють наступні команди.

14.

3 КОНВЕЄР. СУПЕРСКАЛЯРНА АРХІТЕКТУРА
Повернемося до нашого конвеєра на рисунку 2. Припустимо, що час циклу у
цієї машини — 2 нс. Тоді для того, щоб одна команда пройшла через увесь
конвеєр, потрібно 10 нс. На перший погляд може здатися, що такий комп’ютер
виконуватиме 100 млн. команд в секунду, насправді ж швидкість його роботи
набагато вища. Впродовж кожного циклу (2 нс) завершується виконання однієї
нової команди, тому машина виконує не 100, а 500 млн. команд в секунду!

15.

3 КОНВЕЄР. СУПЕРСКАЛЯРНА АРХІТЕКТУРА
Суперскалярна архітектура. Один конвеєр — добре, а два — ще краще. Одна з
можливих схем процесора з двома конвеєрами показана на рисунку 3. У її основі
лежить конвеєр, зображений на рисунку 2. Тут загальний блок вибірки команд
викликає з пам’яті відразу по дві команди і поміщає кожну з них в один з
конвеєрів. Кожен конвеєр містить АЛП для паралельних операцій. Щоб
виконуватися паралельно, дві команди не повинні конфліктувати із-за ресурсів
(наприклад, регістрів), і жодна з них не повинна залежати від результату
виконання іншої.

16.

3 КОНВЕЄР. СУПЕРСКАЛЯРНА АРХІТЕКТУРА
Конвеєри в процесорах компанії Intel з’явилися, тільки починаючи з моделі 486.
Процесор 486 мав один п’ятиступінчастий конвеєр, a Pentium — два такі конвеєри.
Перехід до чотирьох конвеєрів можливий, але вимагає громіздкого апаратного
забезпечення. Замість цього використовується інший підхід. Основна ідея — один
конвеєр з великою кількістю функціональних блоків. Pentium І, приміром, має
схожу структуру. У 1987 році для позначення цього підходу був введений термін
суперскалярна архітектура.
З часом значення поняття «суперскалярний» дещо змінилося. Тепер
суперскалярними називають процесори, здатні запускати декілька команд
(частенько від чотирьох до шести) за один тактовий цикл. Природно, щоб
передавати усі ці команди, в суперскалярному процесорі має бути декілька
функціональних блоків.

17.

УЗАГАЛЬНЕННЯ ВИВЧЕНОГО МАТЕРІАЛУ:
Усно дайте відповіді на питання.
1 Яку назву має спосіб організації обчислювального процесу, при якому на одному процесорі
поперемінно виконуються відразу декілька програм?
2 Яку назву має спосіб обробки команд, коли кожна команда виконується в декілька етапів?
3 Яку назву має архітектура процесора, що дозволяє запускати декілька команд за один тактовий
цикл?
4 Яка мета реалізації мультипрограмування в обчислювальних системах?
5 Яким чином реалізується мультипрограмування в системах пакетної обробки?
6 Яким чином реалізується мультипрограмування в системах розподілу часу?
7 Яким чином реалізується мультипрограмування в системах реального часу?
8 Яку назву має спосіб організації обчислювального процесу при якому декілька завдань (процесів,
потоків) можуть одночасно виконуватися на різних процесорах системи?

18.

ДОМАШНЄ ЗАВДАННЯ
1 Усно дати відповіді на контрольні запитання в розділі
Узагальнення вивченого матеріалу.
2 Пройти Тест до теми 5.
English     Русский Rules