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