Координація операційною системою дій ЕОМ

 

ОС координує виконання прикладних програм, утиліт і власних програмних елементів.

Однією з найбільш фундаментальних концепцій у сучасних ОС є розмежування між програмою та діяльністю, пов'язаною з її виконан­ням. Перша являє собою статистичний набір інструкцій, тоді як друга – динамічну діяльність, властивості які змінюються в часі. Ця діяльність називається процесом. Процес охоплює поточний стан роботи, який зветься станом процесу. Цей стан включає поточну позицію виконуваної програми (значення лічильника адреси), а також значення інших регістрів центрального процесора і тих чарунок пам'яті, до яких робиться звертання. Стан процесу– це стан машини у певний момент часу.

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

Диспетчер – це компонента ядра, що відповідає за те, щоб заплановані процеси виконувалися. Як уже раніше говорилося, задача розв'язується за допомогою розбивки часу процесора на короткі інтервали - кванти. Кожному процесу надається можливість безупинного виконання лише протягом одного кванта часу (Рис.13.3) Процедура зміни одного проце­су іншим називається переключенням процесів.

 

Рис.14.4

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

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

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