Мультипрограмування в системах пакетної обробки
Мультипрограмування. Процеси і потоки
Мультипрограмування, або багатозадачність (multitasking). - це спосіб організації обчислювального процесу, при якому на одному процесорі поперемінно виконуються відразу кілька програм. Ці програми спільно використовують не тільки процесор, але і інші ресурси комп'ютера: оперативну та зовнішню пам'ять, пристрої введення-виведення, дані. Мультипрограмування покликане підвищити ефективність використання обчислювальної системи, проте ефективність може розумітися по різному. Найбільш характерними критеріями ефективності обчислювальних систем є:
• пропускна здатність - кількість завдань, які виконуються обчислювальною системою в
• зручність роботи користувачів, що полягає, зокрема, в тому, що вони мають
можливість інтерактивно працювати одночасно з декількома додатками на
• реактивність системи - здатність системи витримувати заздалегідь задані
(Можливо, дуже короткі) проміжки часу між запуском програми і
Залежно від обраного критерію ефективності ОС діляться на системи пакетної обробки, системи поділу часу і системи реального часу. Кожен тип ОС має специфічні внутрішні механізми і особливі області застосування. Деякі операційні системи можуть підтримувати одночасно кілька режимів, наприклад частина завдань може виконуватися в режимі пакетної обробки, а частина - в режимі реального часу або в режимі поділу часу.
Мультипрограмування в системах пакетної обробки
При використанні мультипрограммирования для підвищення пропускної здатності комп'ютера головною метою є мінімізація простоїв всіх пристроїв комп'ютера, і перш за все центрального процесора. Такі простої можуть виникнути через припинення завдання по її внутрішнім причин, пов'язаних, наприклад, з очікуванням введення даних для обробки. Дані можуть зберігатися на диску або ж надходити від користувача, що працює за терміналом, а також від вимірювальної апаратури, встановленої на зовнішніх технічних об'єктах. При виникненні такого роду блокування виконуваного завдання природним рішенням, що веде до підвищення ефективності використання процесора, є перемикання процесора на виконання іншої задачі, у якій є дані для обробки. Така концепція мультипрограммирования покладена в основу так званих пакетних систем.
Системи пакетної обробки призначалися для вирішення завдань в основному обчислювального характеру, які не потребують швидкого отримання результатів. Головною метою і критерієм ефективності систем пакетної обробки є максимальна пропускна здатність, тобто рішення максимального числа завдань в одиницю часу.
Для досягнення цієї мети в системах пакетної обробки використовується наступна схема функціонування: на початку роботи формується пакет завдань. кожне завдання містить вимогу до системних ресурсів; з цього пакета завдань формується мультипрограммная суміш, тобто безліч одночасно виконуваних завдань. Для одночасного виконання вибираються завдання, що пред'являють різні вимоги до ресурсів. так, щоб забезпечувалася збалансована завантаження всіх пристроїв обчислювальної машини. Наприклад, в мультипрограммной суміші бажано одночасна присутність обчислювальних задач і задач з інтенсивним введенням-виведенням. Таким чином, вибір нового завдання з пакета завдань залежить від внутрішньої ситуації, що складається в системі, тобто вибирається «вигідне» завдання. Отже, в обчислювальних системах, що працюють під управлінням пакетних ОС, неможливо гарантувати виконання того чи іншого завдання протягом певного періоду часу.
Розглянемо більш детально суміщення в часі операцій введення-виведення і обчислень. Таке поєднання може досягатися різними способами.
1. Один з них характерний для комп'ютерів, що мають спеціалізований процесор вводу-виводу (іноді їх називають каналами). Зазвичай канал має систему команд, що відрізняється від системи команд центрального процесора. Ці команди спеціально призначені для управління зовнішніми пристроями, наприклад «перевірити стан пристрою», «встановити магнітну головку», «встановити початок листа», «надрукувати рядок». Канальні програми можуть зберігатися в тій же оперативної пам'яті, що і програми центрального процесора. В системі команд центрального процесора передбачається спеціальна інструкція, за допомогою якої каналу передаються параметри і вказівки на те, яку програму введення-виведення він повинен виконати. Починаючи з цього моменту, центральний процесор і канал можуть працювати паралельно (рис. 1, а).
Мал. 1. Паралельне виконання обчислень і операцій введення-виведення.
2. Інший спосіб поєднання обчислень з операціями вводу-виводу реалізується в комп'ютерах, в яких зовнішні пристрої керовані не процесором введення-виведення, а контролерами. Кожне зовнішнє пристрій (або група зовнішніх пристроїв одного типу) має свій власний контролер, який автономно відпрацьовує команди, що надходять з центрального процесора. При цьому контролер і центральний процесор працюють асинхронно. Оскільки багато зовнішні пристрої включають електромеханічні вузли, контролер виконує свої команди управління пристроями істотно повільніше, ніж центральний процесор - свої. Ця обставина використовується для організації паралельного виконання обчислень і операцій введення-виведення: в проміжку між передачею команд контролера центральний процесор може виконувати обчислення (рис. 1, б). Контролер може повідомити центрального процесора про те, що він готовий прийняти наступну команду, сигналом переривання або центральний процесор дізнається про це, періодично опитуючи стан контролера.
Якщо в системі виконуються одночасно кілька завдань, з'являється можливість суміщення обчислень одного завдання з введенням-висновком іншого. Поки одна задача очікує будь-якого події (зауважимо, що такою подією в мультипрограммной системі може бути не тільки завершення введення-виведення, а й, наприклад, наступ певного моменту часу, розблокування файлу або завантаження з диска відсутньої сторінки програми), процесор не простоює , як це відбувається при послідовному виконанні програм, а виконує іншу задачу.
Загальний час виконання суміші завдань часто виявляється менше, ніж їх сумарний час послідовного виконання (рис 2, а).
У системах пакетної обробки переключення процесора з виконання одного завдання на виконання іншої відбувається з ініціативи самої активної задачі. наприклад, коли вона відмовляється від процесора через необхідність виконати операцію вводу-виводу. Тому існує висока ймовірність того, що одна задача може надовго зайняти процесор і виконання інтерактивних завдань стане неможливим. Взаємодія користувача з обчислювальною машиною, на якій установлена система пакетної обробки, зводиться до того, що він приносить завдання, віддає його диспетчеру-оператору, а в кінці дня після виконання всього пакета завдань отримує результат. Очевидно, що такий порядок підвищує ефективність функціонування апаратури, але знижує ефективність роботи користувача.
Рис 2. Час виконання двох завдань: в однопрограмні системі (а), в
мультипрограммной системі (б).