Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции)ос)конспект.docx
Скачиваний:
9
Добавлен:
13.11.2019
Размер:
456.55 Кб
Скачать

3. Лекція: Процеси в операційних системах. Стратегії планування процесів

У лекції описується основоположне поняття процесу, розглядаються|розглядують| його достатки|стани|, модель

представлення процесу в операційній системі і операції, які можуть виконуватися над процесса-|

ми операційною системою.

Починаючи|зачинати| з|із| цієї лекції ми знайомитимемося|ознайомлюватимемося| з|із| внутрішнім устроєм і механізмами дії опе-|

раціонних систем, розбираючи одну за іншою їх основні функції окремо і у взаємозв'язку.

Фундаментальним поняттям для вивчення роботи операційних систем є поняття процесів як основних динамічних об'єктів, над якими системи виконують певні дії. Дана лекція присвячена опису таких об'єктів, їх достатків|станів| і властивостей, їх виставі|поданню| в обчислювальних системах, а також операціям, які можуть проводитися над ними.

Мета: Ознайомити студентів з поняттям процесу, управління процесами, методами планування процесів для ОС. Перериваннями ОС.

До самостійної роботи

Розглянемо|розглядуватимемо| наступний|такий| приклад|зразок|. Два студенти запускають програму витягання|видобування| квадратного кореня.

Один хоче обчислити|вичисляти| квадратний корінь з|із| 4, а другий – з|із| 1. З точки зору|з погляду| студентів, запущена одна і та ж програма; з точки зору|з погляду| комп'ютерної системи, їй доводиться займатися двома різними обчислювальними процесами, оскільки|тому що| різні вихідні|початкові| дані приводять|наводять| до різного набору обчислень|підрахунків|.

Отже, на рівні того, що відбувається|походить| усередині|всередині| обчислювальної системи ми не можемо використовувати

термін "програма" в призначеному для користувача сенсі|змісті| слова.

Розглядаючи|розглядувати| системи пакетної обробки, ми ввели|запроваджували| поняття "завдання|задавання|" як сукупність програми

набору команд мови|язика| управління завданнями|задаваннями|, необхідних для її виконання, і вхідних даних.

З точки зору|з погляду| студентів, вони, підставивши різні вихідні|початкові| дані, сформували два різні завдання|задавання|.

Можливо, термін "завдання|задавання|" підійде нам для опису внутрішнього функціонування компьютер-|

ных| систем? Щоб|аби| з'ясувати це, давайте розглянемо|розглядуватимемо| інший приклад|зразок|. Хай|нехай| обидва студенти намагаються|пробують| обчислити |спричиняти| корінь квадратний з|із| 1, тобто|цебто| хай|нехай| вони сформували ідентичні завдання|задавання|, але|та| завантажили їх в

обчислювальну систему із|із| зрушенням|зсувом| за часом. Тоді як одне з виконуваних завдань|задавань| присту-|

пило до друку|печатки| набутого значення і чекає закінчення операції введення-виводу|висновку|, друге лише|тільки| починає|зачинає|

виконуватися. Чи можна говорити про ідентичність завдань|задавань| усередині|всередині| обчислювальної системи в даний

момент? Ні, оскільки|тому що| достаток|стан| процесу їх виконання різний. Отже, і слово "завдання|задавання|" в

призначеному для користувача сенсі|змісті| не може застосовуватися для опису що відбувається|походить| в обчислювальній систе|мі.

Це відбувається|походить| тому, що терміни "програма" і "завдання|задавання|" призначені для опису статичних

неактивних об'єктів. Програма ж в процесі виконання є динамічною, активним об’єк|том. По ходу її роботи комп'ютер обробляє різні команди і перетворить значення змінної||.

Для виконання програми операційна система повинна виділити певну кількість

оперативної пам'яті, закріпити за нею певні пристрої введення-виводу або файли (звідки повинні поступати вхідні дані і куди потрібно доставити отримані результати), тобто зарезервувати певні ресурси із спільного числа ресурсів всієї обчислювальної системи. Їх кількість і конфігурація з часом можуть змінюватися. Для опису таких активних об'єктів усередині комп'ютерної системи замість термінів "програма" і "завдання" ми використовуватимемо новий термін "процес".

Повторюваний термін переривання дії:

Настання тієї чи іншої події сигналізується перериваннями - Interrupt. Джерелами переривань можуть бути як апаратура (HardWare), так і програми (SoftWare).

Апаратура "повідомляє" про переривання асинхронно (у будь-який момент часу) шляхом пересилання в CPU через загальну шину сигналів переривань. Програма "повідомляє" про переривання шляхом виконання операції System Call. Приклади подій, що викликають переривання:

  1. спроба ділення на 0

  2. запит на системне обслуговування

  3. завершення операції введення - висновку

  4. неправильне звертання до пам'яті

Кожне переривання обробляється відповідно оброблювачем переривань (Interrupt handler), що входять до складу ОС.

Головні функції механізму переривань - це:

  • розпізнавання чи класифікація переривань

  • передача керування відповідно оброблювачу переривань

  • коректне повернення до перерваної програми

Перехід від програми, що переривається, до оброблювача і назад повинний виконуватися як умога швидше. Одним зі швидких методів є використання таблиці, що містить перелік усіх припустимих для комп'ютера переривань і адреси відповідних оброблювачів. Така таблиця називається вектором переривань (Interrupt vector) і зберігається на початку адресного простору основної пам'яті (UNIX/MS DOS).

Для коректного повернення до перерваної програми перед передачею керування оброблювачу переривань, вміст регістрів процесора запам'ятовується або в пам'яті з прямим доступом або в системному стеці - System Stack.

Звичайно забороняються переривання оброблювача переривань. Однак, у деяких ОС переривання забезпечуються пріоритетами, тобто робота оброблювача переривання з більш низьким пріоритетом може бути перервана, якщо відбулося переривання з більш високим пріоритетом.

ІІ. Керування процесами.

Процес - це програмний модуль, виконуваний у CPU. Операційна система контролює наступну діяльність, зв'язану з процесами:

  • створення і видалення процесів

  • планування процесів

  • синхронізація процесів

  • комунікація процесів

  • рішення тупикових ситуацій

1 Поняття Процес. Стану процесу

Не слід змішувати поняття процес і програма. Програма - це план дій, а процес - це сама дія. Поняття процес включає:

  • програмний код

  • дані

  • уміст стека

  • вміст адресного й іншого регістрів CPU.

Таким чином, для однієї програми можуть бути створені кілька процесів, у тому випадку, якщо за допомогою однієї програми в комп'ютері виконується кілька незбіжних послідовностей команд. За годину існування процес багаторазово змінює свій стан.

Існують наступні стани процесу:

  1. новий (new, процес тільки створений)

  2. виконуємий (running, команди програми виконуються в CPU)

  3. що очікує (waiting, процес очікує завершення деякої події, найчастіше операції введення - виведення)

  4. готовий (ready, процес очікує звільнення CPU)

  5. завершений (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. Існують різні алгоритми чи стратегії рішення цієї задачі, що відрізняються відношенням до критеріїв планування.

Критерії планування процесора.

Використовуються наступні критерії, що дозволяють порівнювати алгоритми короткострокових планувальників:

  1. утилізація CPU (використання) CPU utilization. утилізація CPU теоретично може знаходитися в межах від 0 до 100%. У реальних системах утилізація CPU коливається в межах 40% для легко завантаженого CPU, 90% для важко завантаженого CPU.

  2. пропускна здатність CPU throughput. Пропускна здатність CPU може вимірятися кількістю процесів, що виконуються в одиницю часу.

  3. час обороту (turnaround time) для деяких процесів важливим критерієм є повний час виконання, тобто інтервал від моменту появи процесу у вхідній черзі до моменту його завершення. Цей час названий часом обороту і включає час чекання у вхідній черзі, час чекання в черзі готових процесів, час чекання в чергах до устаткування, час виконання в процесорі і час уведення - виводу.

  4. час чекання (waiting time). під часом чекання розуміється сумарний час перебування процесу в черзі готових процесів.

  5. час відгуку (response time) для сугубо інтерактивних програм важливим показником є час відгуку чи час, що пройшов від моменту влучення процесу у вхідну чергу до моменту першого звертання до терміналу.

Очевидно, що найпростіша стратегія короткострокового планувальника повинна бути спрямована на максимізацію середніх значень завантаженості і пропускної здатності, часу чекання і часу відгуку.

У ряді випадків використовуються складні критерії, наприклад так називаний мінімаксний критерій, тобто замість простого критерію мінімум середнього часу відгуку використовується наступний - мінімум максимального часу відгуку.

Висновок|ув'язнення|

Поняття процесу характеризує деяку сукупність набору команд, що виконуються, ассоційованих|

з|із| ним ресурсів і теперішнього моменту його виконання, що знаходиться|перебуває| під управлінням операційної|

системи.

У будь-який момент процес повністю|цілком| описується своїм контекстом, що складається з регіст-|

ровох|, системної і призначеної для користувача частин|часток|. У операційній системі процеси представляються визначеною структурою даних – PCB|, що відображає|відбиває| вміст|зміст| регістрового і системного контекстів.

Процеси можуть знаходитися|перебувати| в п'яти основних достатках|станах|: народження, готовність, виконання, чекання|очікування|, закінчив виконання.

З|із| одного режиму в інший|стан| процес переводиться|переказує| операційною системою в резуль|таті| виконання над ним операцій.

Операційна система може виконувати над процесами наступні|слідуючі|

операції: створення|створіння| процесу, завершення процесу, призупинення|припинення| процесу, запуск процесу, блокування|

| процесу, розблокування процесу, зміна пріоритету процесу.