Процеси

Розглянемо ряд прикладів.

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

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

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