Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СПЗ_лекції.docx
Скачиваний:
148
Добавлен:
23.02.2016
Размер:
136.33 Кб
Скачать

Лекція 3. Концепція процесу

  1. Поняття процесу та його модель.

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

В цій моделі все функціонуюче на комп’ютері програмне забезпечення, інколи навіть включаючи власне і операційну систему, організовано у вигляді набору послідовних процесів (або просто процесів). Розглянемо на рис.3.1.а схему комп’ютера, який працює з чотирма процесами. На рис. 3.1.б представлено чотири процеси, кожен зі своєю керуючою логікою (тобто лічильником команд), які йдуть незалежно один від одного. Насправді існує лише один лічильник команд, в який завантажується логічний лічильник поточного процесу. Якщо час відведений поточному процесу закінчується фізичний лічильник команд зберігається в логічному лічильнику команд процесу в пам’яті. На рис. 3.1в видно, що за достатньо великий проміжок часу змінився стан всіх чотирьох процесів, але в кожен конкретний момент в дійсності працює тільки один процес.

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

Відмінність між процесом і програмою важко помітна, але має принципове значення. Процес – це активність деякого роду. В нього є програма, вхідні та вихідні дані, а також стан. Один процесор може переключатись між різними процесами, використовувати деякий алгоритм планування для визначення моменту переключення від одного процесу до другого.

  1. Створення та завершення процесу.

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

1) ініціалізація системи.

2) виконання виданого працюючим процесом системного запиту на створення процесу.

  1. ініціювання пакетного завдання.

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

В UNIX існує тільки один системний запит, напрямлений на створення нового процесу: fork (розгалуження). В Windows викликом однієї функції Create Process інтерфейсу Win32 керується і створення процесу, і запуском в ньому потрібної програми. Крім того, є ще близько 100 функцій для керування процесами та їх синхронізації.

Процес завершується при настанні однієї із подій:

1.Звичайний вихід (передбачений)

2.Вихід через помилку (передбачений)

3.Знищення іншим процесом (непередбачений)

В основному процеси завершуються по мірі виконання своєї роботи.

  1. Ієрархія та стан процесів.

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

В UNIX процес і всі його подальші наступники утворюють групу процесів. Сигнал, який відправляється з клавіатури користувачем, направляється всім членам групи, взаємодіючим з клавіатурою в даний момент.

На рис.3.2. представлена діаграма станів, яка показує три можливих стани процесу:

1) працюючий (який в даний момент використовує процесор)

2) готовий до роботи (процес тимчасово призупинений, щоб дозволити виконуватись іншому процесу)

3) заблокований (процес не може бути запущений раніше, ніж відбудеться деяка зовнішня подія)

1. Процес блокується, очікуючи вхідних даних .

2. Планувальник вибирає інший процес .

3. Планувальник вибирає цей процес.

4. Доступні вхідні дані

Рис.3.2. Стани процесу

Розглянемо модель на рис.3.3. Нижній рівень операційної системи – це планувальник, на верхніх рівнях розміщено множину процесів.

Вся обробка переривань і деталі, пов’язані із зупиненням та запуском процесів, виконуються невеликою програмою, яку називають планувальником завдань. Вся інша частина операційної системи зручно структурована у вигляді набору процесів. Досить небагато відомих операційних систем так структуровані.

  1. Реалізація процесів

Для реалізації процесів операційна система містить таблицю (масив структур), яку називають таблицею процесів, з одним елементом для кожного процесу (можна зустріти назву – блоки керування процесом). В таблиці 3.1 представлені деякі найбільш важливі поля типової системи. Поля першого стовпця відносяться до керування процесом, решта стовпців описують керування пам’яттю і файлами.

Таблиця 3.1.

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

Керування перериванням і робота планувальника представлені в таблиці 3.2

Таблиця 3.2.