
- •Місце операційної системи в структурі комп'ютера
- •Програмне|програмове| забезпечення і його види
- •1. Лекція: Введення|вступ|
- •Головні поняття з Операційних систем
- •Основні принципи побудови|шикування| ос
- •Класифікація ос
- •Модель клієнт-сервер
- •Особливості методів побудови
- •3. Лекція: Процеси в операційних системах. Стратегії планування процесів
- •Стратегії планування процеcу
- •4.3.2 Пріоритетне планування
- •4.3.3 Методи розділення процесів на групи
- •4.4 Планування в системах реального часу
- •4.4.1 Планування однорідних процесів
- •4.4.2 Загальне планування реального часу
- •Адресний простір процесу
- •3. Взаємодія процесів. Користувальницький рівень.
3. Лекція: Процеси в операційних системах. Стратегії планування процесів
У лекції описується основоположне поняття процесу, розглядаються|розглядують| його достатки|стани|, модель
представлення процесу в операційній системі і операції, які можуть виконуватися над процесса-|
ми операційною системою.
Починаючи|зачинати| з|із| цієї лекції ми знайомитимемося|ознайомлюватимемося| з|із| внутрішнім устроєм і механізмами дії опе-|
раціонних систем, розбираючи одну за іншою їх основні функції окремо і у взаємозв'язку.
Фундаментальним поняттям для вивчення роботи операційних систем є поняття процесів як основних динамічних об'єктів, над якими системи виконують певні дії. Дана лекція присвячена опису таких об'єктів, їх достатків|станів| і властивостей, їх виставі|поданню| в обчислювальних системах, а також операціям, які можуть проводитися над ними.
Мета: Ознайомити студентів з поняттям процесу, управління процесами, методами планування процесів для ОС. Перериваннями ОС.
До самостійної роботи
Розглянемо|розглядуватимемо| наступний|такий| приклад|зразок|. Два студенти запускають програму витягання|видобування| квадратного кореня.
Один хоче обчислити|вичисляти| квадратний корінь з|із| 4, а другий – з|із| 1. З точки зору|з погляду| студентів, запущена одна і та ж програма; з точки зору|з погляду| комп'ютерної системи, їй доводиться займатися двома різними обчислювальними процесами, оскільки|тому що| різні вихідні|початкові| дані приводять|наводять| до різного набору обчислень|підрахунків|.
Отже, на рівні того, що відбувається|походить| усередині|всередині| обчислювальної системи ми не можемо використовувати
термін "програма" в призначеному для користувача сенсі|змісті| слова.
Розглядаючи|розглядувати| системи пакетної обробки, ми ввели|запроваджували| поняття "завдання|задавання|" як сукупність програми
набору команд мови|язика| управління завданнями|задаваннями|, необхідних для її виконання, і вхідних даних.
З точки зору|з погляду| студентів, вони, підставивши різні вихідні|початкові| дані, сформували два різні завдання|задавання|.
Можливо, термін "завдання|задавання|" підійде нам для опису внутрішнього функціонування компьютер-|
ных| систем? Щоб|аби| з'ясувати це, давайте розглянемо|розглядуватимемо| інший приклад|зразок|. Хай|нехай| обидва студенти намагаються|пробують| обчислити |спричиняти| корінь квадратний з|із| 1, тобто|цебто| хай|нехай| вони сформували ідентичні завдання|задавання|, але|та| завантажили їх в
обчислювальну систему із|із| зрушенням|зсувом| за часом. Тоді як одне з виконуваних завдань|задавань| присту-|
пило до друку|печатки| набутого значення і чекає закінчення операції введення-виводу|висновку|, друге лише|тільки| починає|зачинає|
виконуватися. Чи можна говорити про ідентичність завдань|задавань| усередині|всередині| обчислювальної системи в даний
момент? Ні, оскільки|тому що| достаток|стан| процесу їх виконання різний. Отже, і слово "завдання|задавання|" в
призначеному для користувача сенсі|змісті| не може застосовуватися для опису що відбувається|походить| в обчислювальній систе|мі.
Це відбувається|походить| тому, що терміни "програма" і "завдання|задавання|" призначені для опису статичних
неактивних об'єктів. Програма ж в процесі виконання є динамічною, активним об’єк|том. По ходу її роботи комп'ютер обробляє різні команди і перетворить значення змінної||.
Для виконання програми операційна система повинна виділити певну кількість
оперативної пам'яті, закріпити за нею певні пристрої введення-виводу або файли (звідки повинні поступати вхідні дані і куди потрібно доставити отримані результати), тобто зарезервувати певні ресурси із спільного числа ресурсів всієї обчислювальної системи. Їх кількість і конфігурація з часом можуть змінюватися. Для опису таких активних об'єктів усередині комп'ютерної системи замість термінів "програма" і "завдання" ми використовуватимемо новий термін "процес".
Повторюваний термін переривання дії:
Настання тієї чи іншої події сигналізується перериваннями - Interrupt. Джерелами переривань можуть бути як апаратура (HardWare), так і програми (SoftWare).
Апаратура "повідомляє" про переривання асинхронно (у будь-який момент часу) шляхом пересилання в CPU через загальну шину сигналів переривань. Програма "повідомляє" про переривання шляхом виконання операції System Call. Приклади подій, що викликають переривання:
спроба ділення на 0
запит на системне обслуговування
завершення операції введення - висновку
неправильне звертання до пам'яті
Кожне переривання обробляється відповідно оброблювачем переривань (Interrupt handler), що входять до складу ОС.
Головні функції механізму переривань - це:
розпізнавання чи класифікація переривань
передача керування відповідно оброблювачу переривань
коректне повернення до перерваної програми
Перехід від програми, що переривається, до оброблювача і назад повинний виконуватися як умога швидше. Одним зі швидких методів є використання таблиці, що містить перелік усіх припустимих для комп'ютера переривань і адреси відповідних оброблювачів. Така таблиця називається вектором переривань (Interrupt vector) і зберігається на початку адресного простору основної пам'яті (UNIX/MS DOS).
Для коректного повернення до перерваної програми перед передачею керування оброблювачу переривань, вміст регістрів процесора запам'ятовується або в пам'яті з прямим доступом або в системному стеці - System Stack.
Звичайно забороняються переривання оброблювача переривань. Однак, у деяких ОС переривання забезпечуються пріоритетами, тобто робота оброблювача переривання з більш низьким пріоритетом може бути перервана, якщо відбулося переривання з більш високим пріоритетом.
ІІ. Керування процесами.
Процес - це програмний модуль, виконуваний у CPU. Операційна система контролює наступну діяльність, зв'язану з процесами:
створення і видалення процесів
планування процесів
синхронізація процесів
комунікація процесів
рішення тупикових ситуацій
1 Поняття Процес. Стану процесу
Не слід змішувати поняття процес і програма. Програма - це план дій, а процес - це сама дія. Поняття процес включає:
програмний код
дані
уміст стека
вміст адресного й іншого регістрів CPU.
Таким чином, для однієї програми можуть бути створені кілька процесів, у тому випадку, якщо за допомогою однієї програми в комп'ютері виконується кілька незбіжних послідовностей команд. За годину існування процес багаторазово змінює свій стан.
Існують наступні стани процесу:
новий (new, процес тільки створений)
виконуємий (running, команди програми виконуються в CPU)
що очікує (waiting, процес очікує завершення деякої події, найчастіше операції введення - виведення)
готовий (ready, процес очікує звільнення CPU)
завершений (terminated, процес завершив свою роботу)
Кожен процес представлений в операційній системі набором даних, які називаються process control block . У process control block процес описується набором значень, параметрів, що характеризують його поточний стан і використовуєму операційну систему для керування проходженням процесу через комп'ютер.
2. Планування процесів. Поняття черги.
Система керування процесами забезпечує проходження процесу через комп'ютер. У залежності від стану процесу йому повинний бути надати той чи інший ресурс. Наприклад, новий процес необхідно розмістити в основній пам'яті, отже, йому необхідно виділити частина адресного простору. Процесу в стані готовий повинно бути надано процесорний час. Виконуваний процес може вимагати обладнання введення - виведення і доступ до файлу.
Розподіл процесів між наявними ресурсами зветься планування процесів.
Одним з методом планування процесів, орієнтованих на ефективне завантаження ресурсів, є метод черг ресурсів. Нові процеси знаходяться у вхідній черзі, часто названою чергою робіт - завдань (job queue).
Вхідна черга розташовується в зовнішній пам'яті, у вхідній черзі процеси очікують звільнення ресурсу - адресного простору основної пам'яті.
Готові до виконання процеси розташовуються в основній пам'яті і зв'язані чергою готових процесів чи ready queue. Процеси в цій черзі очікують звільнення ресурсу процесорний час.
Процес у стані чекання завершення операції введення - виведення знаходиться в одній з черг до обладнання введення - виводу, що зветься devices queue.
При проходженні через комп'ютер процес мігрує між різними чергами під керуванням програми, що називається планувальник. (scheduler) Операційна система, що забезпечує режим мультипрограмування, звичайно має два планувальника - довгостроковий (long term scheduler) і короткостроковий (short term scheduler/CPU scheduler).
Основна відмінність між довгостроковим і короткостроковим планувальниками полягає в частоті запуску, наприклад: короткостроковий планувальник може запускатися кожні 100 мс, довгостроковий - один раз за кілька хвилин.
Довгостроковий планувальник вирішує, який із процесів, що знаходяться у вхідній черзі, повинний бути переведений у чергу готових процесів у випадку звільнення ресурсів пам'яті.
Довгостроковий планувальник вибирає процес із вхідної черги з метою створення неоднорідної мультипрограмної суміші. Це означає, що в черзі готових процесів повинні знаходитися в різній пропорції як процеси, орієнтовані на введення - виведення, так і процеси, орієнтовані на переважну роботу з CPU.
Короткостроковий планувальник вирішує, який із процесів, що знаходяться в черзі готових процесів, повинний бути переданий на виконання в CPU. У деяких операційних системах довгостроковий планувальник може бути відсутнім. Наприклад, у системах поділу часу (time sharing system), кожен новий процес відразу ж міститься в основну пам'ять.
Планування процесу.
Короткостроковий планувальник вибирає процеси з черги готових процесів і передає їх на виконання в CPU. Існують різні алгоритми чи стратегії рішення цієї задачі, що відрізняються відношенням до критеріїв планування.
Критерії планування процесора.
Використовуються наступні критерії, що дозволяють порівнювати алгоритми короткострокових планувальників:
утилізація CPU (використання) CPU utilization. утилізація CPU теоретично може знаходитися в межах від 0 до 100%. У реальних системах утилізація CPU коливається в межах 40% для легко завантаженого CPU, 90% для важко завантаженого CPU.
пропускна здатність CPU throughput. Пропускна здатність CPU може вимірятися кількістю процесів, що виконуються в одиницю часу.
час обороту (turnaround time) для деяких процесів важливим критерієм є повний час виконання, тобто інтервал від моменту появи процесу у вхідній черзі до моменту його завершення. Цей час названий часом обороту і включає час чекання у вхідній черзі, час чекання в черзі готових процесів, час чекання в чергах до устаткування, час виконання в процесорі і час уведення - виводу.
час чекання (waiting time). під часом чекання розуміється сумарний час перебування процесу в черзі готових процесів.
час відгуку (response time) для сугубо інтерактивних програм важливим показником є час відгуку чи час, що пройшов від моменту влучення процесу у вхідну чергу до моменту першого звертання до терміналу.
Очевидно, що найпростіша стратегія короткострокового планувальника повинна бути спрямована на максимізацію середніх значень завантаженості і пропускної здатності, часу чекання і часу відгуку.
У ряді випадків використовуються складні критерії, наприклад так називаний мінімаксний критерій, тобто замість простого критерію мінімум середнього часу відгуку використовується наступний - мінімум максимального часу відгуку.
Висновок|ув'язнення|
Поняття процесу характеризує деяку сукупність набору команд, що виконуються, ассоційованих|
з|із| ним ресурсів і теперішнього моменту його виконання, що знаходиться|перебуває| під управлінням операційної|
системи.
У будь-який момент процес повністю|цілком| описується своїм контекстом, що складається з регіст-|
ровох|, системної і призначеної для користувача частин|часток|. У операційній системі процеси представляються визначеною структурою даних – PCB|, що відображає|відбиває| вміст|зміст| регістрового і системного контекстів.
Процеси можуть знаходитися|перебувати| в п'яти основних достатках|станах|: народження, готовність, виконання, чекання|очікування|, закінчив виконання.
З|із| одного режиму в інший|стан| процес переводиться|переказує| операційною системою в резуль|таті| виконання над ним операцій.
Операційна система може виконувати над процесами наступні|слідуючі|
операції: створення|створіння| процесу, завершення процесу, призупинення|припинення| процесу, запуск процесу, блокування|
| процесу, розблокування процесу, зміна пріоритету процесу.