Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Операційні системи.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
6 Мб
Скачать
☆

Перемикання з одного процесу на інший

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

Рис. 8.3.  Перемикання з одного процесу на іншій.

На схемі зображено два процеси - P0 й P1. При перериванні або системному виклику в процесі P0 операційна система зберігає його стан у його PCB і перемикає процесор на процес P1 (аналогічно обробляється процес P1). Показано періоди виконання й простоювання кожного із процесів.

Черги, пов'язані з диспетчеризацією процесів

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

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

  • Черга готових процесів (ready queue) – найбільше часто використовувана й змінювана черга, що містить безліч всіх процесів, що перебувають в основній пам'яті й готових до виконання. У неї попадає кожен новий процес, що система допускає до виконання, а також кожен процес після виконання вводу-виводу або настання очікуваної події.

  • Черги процесів, що очікують вводу-виводу (device queues) – безлічі процесів, що очікують результату роботи пристроїв вводу-виводу (для кожного пристрою організується своя черга).

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

На рис. 8.4 зображено схему організації черги готових процесів і черг до пристроїв вводу-виводу.

Рис. 8.4.  Черга готових процесів і черги до пристроїв вводу-виводу.

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

Рис. 8.5.  Графічне подання диспетчеризації процесів.

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