Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Операцiйнi системи та середовища6.05.07(Антонов...doc
Скачиваний:
11
Добавлен:
04.05.2019
Размер:
801.79 Кб
Скачать

2 Концептуальні основи ос

2.1 Процеси

2.1.1 Означення процесу та граф його існування

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

Програма під час її виконання може вимагати надання їй процесора, а може відмовитись від нього. Програмі можуть бути потрібні пам’ять, пристрої введення/виведення, системний таймер тощо. Діяльністю, тобто перебігом розвинення процесу, треба керувати. Керування процесами, як поодинці, так і усіма разом, а їх у багатозадачній операційній системі водночас може існувати до 80, здійснює лише операційна система [2].

При виконанні програми на центральному процесорі найчастіше розрізнюють такі характерні окремі стани процесів:

  • породження – підготовлюються умови для першого виконання на процесорі;

  • активний стан або стан “лічби” – програма виконується на процесорі;

  • очікування – програма не виконується на процесорі через зайнятість певного необхідного ресурсу;

  • готовність – програма не виконується, але для виконання їй надано всі необхідні на даний момент ресурси, окрім центрального процесора;

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

Процес перебуває в кожнім з власних припустимих станів впродовж певного часу, після чого переходить до якогось іншого припустимого стану. Склад припустимих станів, а також припустимі переходи зі стану до стану зазвичай задають у формі графа існування процесу, приклад якого наведено на рис. 2.1.

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

Рисунок 2.1 – Граф існування процесу

2.1.2 Класифікування процесів

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

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

У будь-якій ОС за вимоги існуючого процесу чи процесу, що існував, може бути породжено новий процес. Процес, який задає вимогу, називають породжуючим, а створений за вимогою – породженим. Породжений процес на інтервалі свого існування, своєю чергою, може видати вимогу на породження іншого процесу.

При керуванні процесами важливим є забезпечення відтворювання результатів процесу за його багаторазового повторювання, керування ситуацією при розвиненні процесу. ОС має порівнювати процеси за їхними динамічними якостями. Порівняння провадиться за поняттям “траса” – послідовність та тривалість перебування процесу у дозволених станах на інтервалі існування.

Два процеси, які мають однаковий кінцевий результат опрацювання однакових даних за одною або навіть за різними програмами на одному або на різних процесорах, називають еквівалентними. У загальному випадку траси еквівалентних процесів не збігаються.

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

За збігання трас у тотожних процесів їх називають рівними.

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

Якщо на розглядуваному інтервалі часу існують одночасно два процеси, то вони на цьому інтервалі є паралельними один відносно другого.

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

В ОС процеси розрізнюють за місцем їхнього розвинення, тобто за тим, на якому з процесорів, у широкому розумінні, виконується програма процесу. На центральному процесорі розвиваються процеси, які називаються програмними або внутрішніми. Процеси, розвинення яких відбувається під контролем або керуванням ОС на процесорах, які не є центральними, називаються зовнішніми. Це, наприклад, процеси введення/виведення, які розвиваються в каналі, це також діяльність оператора, який обслуговує обчислювальну систему та спілкується з ОС, а також діяльність будь-якого користувача.

При розвиненні системного процесу виконується програма зі складу операційної системи. При розвиненні користувацького процесу виконується користувацька програма.

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

Взаємопов’язані процеси, які використовують спільно деякі ресурси, але не обмінюються інформацією, називаються інформаційно незалежними. Зв’язок поміж такими процесами може бути або функціональним або просторово-часовим. За наявності інформаційних зв’язків поміж двома процесами їх називають взаємодіючими. Взаємопов’язані за ресурсами процеси називаються конкуруючими.

Керування взаємопов’язаними процесами у складі ОС ґрунтується на низці обмежень, які регламентуються синхронізуючими правилами.

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

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

  • у стані готовності до процесора немає процесів з більшим пріоритетом;

  • процесор є вільний або його використовує процес з меншим, ніж Р, пріоритетом.

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

Багатозадачні ОС мають відповідні механізми й засоби, які враховують наведені властивості процесів при керуванні ними [2].