Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
46
Добавлен:
12.02.2016
Размер:
390.14 Кб
Скачать

Диспетчери (продовження)

Короткочасний диспетчер викликається дуже часто (протягом найближчих мілісекунд) => повинен бути дуже швидким

Довгочасний диспетчер викликається відносно рідко (хвилини, секунди) => може бути відносно повільним

Сама довгочасний диспетчер визначає ступінь (коефіцієнт)

мультипрограмування

Процеси можна охарактеризувати як:

Орієнтовані на ввід-вивід (I/O-bound) – витрачають більше часу на ввід-вивід, ніж на обрахунки; витрачають багато коротких квантів процесорного часу

Орієнтовані на використання процесора (CPU-bound) – витрачають основний час на обрахунки; використовують невелику кількість довгочасних квантів процесорного часу

11

Переключення контексту процесу (context switch)

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

Переключення контексту відноситься до накладних витрат (overhead); система не виконує ніяких корисних дій при переключенні з одного процесу на інший

Час залежить від апаратної підтримки

Приклад: “Эльбрус” – контексне переключення – одна команда СМСТЕК (сменить стек, тобто переключитись з одного процесу на інший)

12

Створення процесу

Основний процес створює додаткові процеси, які в свою чергу створюють інші процеси, тим самим формуючи дерево процесів

Розділення ресурсів

Основний процес і додаткові процеси розділюють всі ресурси

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

Основний процес і додаткові процеси не мають спільних ресурсів

Виконання

Основний процес і додаткові процеси виконуються разом

Основний процес очікує виконання додаткових процесів

13

Створення процесу (продовження)

Адресний простір

Додатковий процес копіює адресний простір основного процесу

У додатковго процесу є програма, завантажена в нього

UNIX:

fork – системний виклик, який створює процес

exec (execve) – системний виклик, який використовується після fork, з метою заміни простір пам’яті процесу новою програмою

14

Дерево процесів в системі UNIX

15

Знищення процесу

Процес виконує останній оператор та звертається до ОС для своєї ліквідації (exit).

Передача данних від додаткового процесу до основного процесу (wait).

Ресурси процесу звільняються операційною системою

Основний процес може знищити додаткові процеси (abort).

Додатовий процес перевищив надані йому ресурси

Вирішення задачі, яка виконувалась процесом, вже не є потрібною

Відбувається вихід із основного процесу

ОС не дозволяє продовження виконання додаткового процесу, якщо його основний процес знищується

“Каскадне” знищення процесів

16

Взаємодіючі (cooperating) процеси

Незалежний процесс – не може впливати на виконання інших процесів і визначати їх вплив.

Взаємодіючий (спільний) процес – може впливати на виконання інших процесів або відчувати їхній вплив

Переваги взаємодіючих процесів

Спільне використання данних

Пришвидшення обчислень

Модульність

Зручність

17

Види процесів

Підпорядкований – залежить від основного процесу; знищується при його знищенні; основний процес повинен очікувати закінчення всіх додаткових процесів

Незалежний – не залежить від основного процесу; виконується незалежно від нього (наприклад, процес- демон: cron, smbd та ін.)

Сопроцес (co-process, co-routine) – зберігає своє

поточне локальне керування (program counter); взаємодіє з іншим сопроцесом Q за допомогою операцій resume (Q). Операція detach переводить сопроцес в пасивний стан (SIMULA-67). Приклад: взаємодія ітератора з циклом

18

Q & A

Питання та відповіді

19

Соседние файлы в папке 5-8