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