Поняття обчислювального процесу і ресурсу

Поняття «обчислювальний процес» (або просто - «процес») є одним з основних при розгляді операційних систем. Як поняття процес яв-ляется певним видом абстракції, і ми будемо дотримуватися следующе-го неформального визначення, наведеного в роботі [37]. Послідовний процес (іноді званий «завданням» 1) - це виконання окремої програми з її даними на послідовному процесорі. Концептуально процесор рас-розглядати в двох аспектах: по-перше, він є носієм даних і, по-друге, він (одночасно) виконує операції, пов'язані з їх обробкою.

Як приклади можна назвати наступні процеси (завдання): прикладні програми користувачів, утиліти і інші системні обробні програми. Процесами можуть бути редагування будь-якого тексту, трансляція вихідної програми, її компонування, виконання. Причому трансляція якийсь ні-будь вихідної програми є одним процесом, а трансляція наступної вихідної програми - іншим процесом, оскільки, хоча транслятор як об'єк-єднання програмних модулів тут виступає як одна і та ж програма, але дані, які він обробляє, є різними .

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

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

Поняття обчислювального процесу і ресурсу

Мал. 1.1. Класифікація ресурсів

При розробці перших систем ресурсами вважалися процесорний час, пам'ять, канали введення / виводу і периферійні пристрої [49, 89]. Однак дуже скоро поняття ресурсу стало набагато більш універсальним і загальним. Різного роду програмні та інформаційні ресурси також можуть бути визначені для сис-теми як об'єкти, які можуть розділятися і розподілятися і доступ до кото-рим необхідно відповідним чином контролювати. В даний час поняття ресурсу перетворилося в абстрактну структуру з цілим рядом Атрібі-тов, що характеризують способи доступу до цієї структури і її фізичне перед- дання в системі. Більш того, крім системних ресурсів, про які ми зараз говорили, як ресурс стали тлумачити і такі об'єкти, як повідомлення і синхросигнали, якими обмінюються завдання.

У перших обчислювальних системах будь-яка програма могла виконуватися тільки після повного завершення попередньої. Оскільки ці перші обчислювальні системи були побудовані відповідно до принципів, викладених в відомого-ної роботі Яноша Джон фон Неймана, всі підсистеми і пристрої комп'ютера керувалися виключно центральним процесором. Центральний процесор здійснював і виконання обчислень, і управління операціями вводу / виводи-да даних. Відповідно, поки здійснювався обмін даними між опера-нормативної пам'яттю і зовнішніми пристроями, процесор не міг виконувати обчислюва-лення. Введення до складу обчислювальної машини спеціальних контролерів дозволило поєднати в часі (распараллелить) операції виведення отриманий-них даних і наступні обчислення на центральному процесорі. Однак все одно процесор продовжував часто і довго простоювати, чекаючи завершення очереднойопераціі введення / виведення. Тому було запропоновано організувати так званий мультипрограмний (мультизадачність) режим роботи обчислювач-ної системи. Суть його полягає в тому, що поки одна програма (один обчислюва-лительного процес або завдання, як ми тепер кажемо) очікує завершення очереднойопераціі введення / виведення, інша програма (а точніше, інша задача) може бути поставлена ​​на рішення (рис. 1.2) .

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

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

Поняття обчислювального процесу і ресурсу

Мал. 1.2. Приклад виконання двох програм: а - однопрограмний режим;

б - мультипрограмний режим

Директива звернення до операційної системи передає їй управління, перев-дя процесор в привілейований режим роботи (див. Розділ «Переривання», глава 1), якщо такий існує. Не всі обчислювальні комплекси мають два (і більше) режиму роботи: привілейований (режим супервізора), користування земельними діл-тельский, режим емуляції якогось іншого комп'ютера і т. Д.

Ресурс може бути виділений задачі, яка звернулася до супервізору з відповідним-щим запитом, якщо:

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

 поточний запит і раніше видані запити допускають спільне вико-вання ресурсів;

 ресурс використовується завданням нижчого пріоритету і може бути тимчасово ото-бран (розділяється ресурс).

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

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

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

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

При організації управління ресурсами завжди потрібно прийняти рішення про те, що в даній ситуації вигідніше: швидко обслуговувати окремі найбільш важ-ні запити, надавати всім процесам рівні можливості або обслуговувати максимально можливу кількість процесів і найбільш повно вико-ти ресурси [37].