Системи пакетної обробки
Використання мультипрограммирования для підвищення пропускної здатності комп'ютера головною метою є мінімізація простоїв всіх пристроїв комп'ютера, і перш за все, процесора. Простої можуть виникати через припинення завдань через внутрішні причини, пов'язаним, наприклад, з очікуванням введення даних. Дані можуть зберігатися на диску або надходити від користувача, від вимірювальної апаратури і т. Д. При виникненні таких ситуацій найпростішим і природним рішенням, що підвищує ефективність використання процесора, є перемикання процесора на виконання іншої задачі, у який є всі дані для обробки. Така концепція мультипрограммирования лежить в основі пакетних систем.
Системи пакетної обробки призначалися для вирішення в основному обчислювальних завдань, які потребують швидкого отримання результату. Головним критерієм ефективності пакетної системи є пропускна здатність - кількість вирішуваних завдань в одиницю часу.
Для максимізації цього критерію в таких системах використовується наступна схема функціонування:
- на початку роботи системи формується пакет завдань,
- кожне завдання містить вимогу до системних ресурсів,
- з цього пакета завдань формується мультипрограммная суміш, тобто, безліч одночасно виконуваних завдань.
Для одночасного виконання вибираються завдання, що пред'являються різні вимоги до ресурсів, щоб забезпечувалася збалансована завантаження всіх пристроїв комп'ютера. Наприклад, в мультипрограммной суміші бажана присутність обчислювальних задач і задач з інтенсивним введенням і висновком.
Вибір нового завдання з пакета залежить від внутрішньої ситуації в системі, тобто, вибирається вигідне для даної ситуації завдання. З цього випливає, що в пакетних обчислювальних системах не можна гарантувати виконання того чи іншого завдання протягом певного часу.
Розглянемо варіанти поєднання в часі операцій введення-виведення і обчислень.
Один з варіантів такого суміщення характерний для комп'ютерів, що мають спеціалізований процесор вводу-виводу. В основному комплекті такі процесори називають каналами. Зазвичай канал має власну систему команд, що відрізняється від системи команд центрального процесора. Ці команди призначені для управління зовнішніми пристроями, і мають вигляд:
- перевірити стан пристрою,
- встановити магнітну головку,
- встановити початок листа,
- надрукувати рядок і т. д.
Канальні програми можуть зберігатися в тій же пам'яті, що і програми центрального процесора. Спеціальна інструкція центрального процесора передає каналу параметри і вказує, яку програму введення-виведення він повинен виконати. З цього моменту центральний процесор і канал можуть працювати паралельно (рисунок 7.1).
Інший спосіб поєднання обчислень з операціями вводу-виводу реалізується в комп'ютерах, в якому зовнішні пристрої керовані не процесором введення-виведення, а контролерами. Зазвичай кожне зовнішній пристрій або їх група має власний контролер, який автономно відпрацьовує команди, що надходять від центрального процесора. При цьому контролери і центральний процесор працюють асинхронно.
Малюнок 7.1 - Паралельне виконання обчислень і операцій введення-виведення в системах з каналом
Малюнок 7.2 - Паралельне виконання обчислень і операцій введення-виведення в системах з контролерами
Багато зовнішні пристрої включають в себе рухомі частини, контролер зазвичай виконує свої команди повільніше, ніж центральний процесор. Цей факт використовується для організації паралельного виконання обчислень і операцій введення-виведення. Обчислення можуть виконуватися між видачею команд контролерам зовнішніх пристроїв. Такий механізм показаний на малюнку 7.2.
Центральний процесор дізнається про те, що контролер готовий прийняти наступну команду або по сигналу переривання, або періодично опитуючи стан контролерів.
Максимальний ефект досягається при найбільш повному перекритті обчислень і операцій введення-виведення. Якщо в системі виконується одне завдання, ступінь прискорення залежить від характеру даного завдання і від того, наскільки ретельно було враховано можливий паралелізм при програмуванні. Якщо в задачі переважають обчислення або введення-виведення, прискорення практично відсутня. Неможливий паралелізм також в тих випадках, коли для продовження обчислень необхідно повне завершення операцій введення-виведення. У цих випадку простої центрального процесора неминучі.
Якщо в системі одночасно виконується кілька завдань, з'являється можливість суміщення обчислень одного завдання з операціями вводу-виводу інший. Поки одна задача очікує будь-якого події (розблокування файлу, завантаження сторінки або завершення операції введення-виведення), процесор не простоює, як при послідовному виконанні програм, а виконує іншу задачу.
Часто загальний час виконання суміші завдань виявляється менше, ніж їх сумарний час при послідовному виконанні. При цьому виконання окремого завдання в мультипрограммном режимі може зайняти більше часу, ніж при монопольному виділення процесора цьому завданні. При спільному використанні процесора в системі можуть виникати ситуації, коли завдання готова виконуватися, але процесор в цей час зайнятий виконанням іншого завдання. У цьому випадку завдання, що завершила введення-виведення, готова виконуватися, але змушена чекати звільнення процесора, що подовжує час її виконання. Так, на малюнку 7.3 видно, що в однопрограмні режимі завдання А виконується за 6 одиниць часу, а в мультипрограммном - 7. Завдання В також замість 5 одиниць часу виконується за 6. Зате сумарний час виконання обох завдань в мультипрограммном режимі складає всього 8 одиниць, а в однопрограмні - 11.
У системах пакетної обробки переключення процесора з виконання одного завдання на виконання іншої відбувається з ініціативи активної завдання - активна задача відмовляється від процесора через необхідність виконання операції введення-виведення.
Малюнок 7.3 - Час виконання двох завдань в однопрограмні системі (О) і в мультипрограммной системі (М)
Цей механізм визначає високу ймовірність того, що одна задача може надовго зайняти процесор і виконання інших завдань припиниться.
Очевидно, що пакетна система підвищує ефективність використання апаратних засобів, але унеможливлює роботу в інтерактивному режимі.
7.2.3 Мультипрограмування в системах поділу часу -
У системах поділу часу одному або декільком користувачам надається можливість одночасної інтерактивної роботи з декількома додатками. Для цього кожен додаток періодично має спілкуватися з користувачем. Очевидно, що системи пакетної обробки не можуть надати таку можливість.
Для реалізації систем поділу часу зазвичай використовується «витісняє» багатозадачність, при якій операційна система періодично примусово припиняє кожен додаток, не чекаючи, коли вона добровільно віддасть управління системі. У цьому випадку кожен додаток періодично отримує квант часу для обробки, тому кожне з цих додатків може підтримувати діалог з користувачем.
У системах поділу часу, на відміну від систем пакетної обробки, користувач продовжує спілкуватися зі своїм додатком протягом усього часу його обробки. Це дозволяє виявляти і виправляти помилки, вводити дані і отримувати результати в реальному часі.
Кожному користувачеві в цьому випадку надається окремий термінал, а його програма періодично отримує квант часу, протягом якого воно обробляється центральним процесором. Так як кожного завдання виділяється тільки квант процесорного часу, жодна програма не може зайняти процесор надовго, і час реакції системи виявляється прийнятним. Якщо квант часу досить малий, то при достатній продуктивності обчислювальної системи і відповідній кількості одночасно працюючих користувачів у всіх одночасно працюючих користувачів створюється враження монопольного володіння обчислювальною системою.
Зрозуміло, що системи поділу часу значно менш ефективні з точки зору завантаження центрального процесора і пристроїв системи, ніж системи пакетної обробки. Це пов'язано з тим, що в кожен момент часу виконується не те додаток, яке найбільш ефективно завантажить систему, а додаток, чия черга підійшла на отримання чергового кванта часу. Додаткове зниження продуктивності відбувається через необхідність більш частого перемикання процесора з додатка на додаток - це вимагає частого перемикання контексту процесів, що істотно збільшує накладні витрати системи.
З іншого боку, використання систем поділу часу підвищує ефективність використання обчислювальної системи в порівнянні з монопольним режимом, так як без помітного погіршення характеристик обслуговування користувачів система одночасно обслуговує декілька (іноді досить багато) користувачів.
7.2.4 Мультипрограмування в системах реального часу -
У системах реального часу мультипрограммная суміш являє собою фіксований набір заздалегідь розроблених передбачуваних програм. Вибір конкретної програми проводиться по перериваннях від об'єкта або відповідно до плану.
Здатність апаратури комп'ютера і операційної системи до гарантовано швидкому відповіді залежить від швидкості перемикання з одного завдання на інше, яка в свою чергу суттєво залежить від швидкості обробки сигналів переривання. Якщо при виникненні переривання процесор за допомогою опитування з'ясовує, хто саме викликав переривання, реакція системи може виявитися надмірно повільної.
Перед проектувальниками систем реального часу не варто мета максимально ефективно використовувати апаратні засоби. Навпаки, при проектуванні таких систем процесор зазвичай вибирається з досить великим запасом, щоб навіть при виникненні пікових навантажень система справлялася зі своїми завданнями.
Тут слід зазначити, що повсюдно використовується підхід до проектування «звичайних» обчислювальних систем, заснований на оцінці середнього навантаження, середньої інтенсивності заявок, середнього часу очікування і т. Д. Абсолютно не підходить до керуючих систем - системам реального часу. Ці системи повинні проектуватися з урахування можливості виникнення найгіршого поєднання умов при експлуатації. Це призводить до того, що керуюча обчислювальна система більшу частину часу буде діяти, а отже, середнє завантаження апаратних засобів буде дуже малою. Це неминуча плата за те, що в разі виникнення нештатної (аварійної) ситуації система спрацює правильно, і технологічний процес не буде порушений. Якщо не дотримуватися такого підходу до управляючих систем реального часу, неминучі нові Чорнобилі.