Процеси операційної системи

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

Всі сучасні комп'ютери програми-процеси можуть виконувати одночасно і відразу кілька

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

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

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

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

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

Інструменти