ЗНАЕТЕ ЛИ ВЫ?

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



 

Операційна система при керуванні процесами забезпечує їхнє почергове виконання. Це завдання вирішує планувальникОС. Схема перемикання процесора з одного процесу на іншій зображена на рис. 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 для дочірнього процесу створюється новий простір віртуальної пам'яті, у яку копіюється вміст пам'яті процесу-батька. Після цього процес-батько уступає процесор дочірньому процесу. Подібна схема створення дочірнього процесу, зрозуміло, не завжди зручна.

Планувальники, що виконують диспетчеризацію процесів

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

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

Короткочасний планувальник (планувальник процесора)– визначає, які процеси повинні бути виконані наступним й яким процесам повинен бути наданий процесор.

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

Рис. 8.6. Додавання в систему планувальника відкачки й підкачування процесів.

Особливості планувальників і процесів. Кожен планувальник має свої особливості поводження, як і кожен процес.

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

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

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

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

· Орієнтованими на ввід-вивід (I/O-bound)– процеси, які витрачають більше часу на ввід-вивід, чим на обчислення. Такі процеси звичайно витрачають багато коротких квантів процесорного часу.

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

Перемикання контексту

Коли процесор перемикається на інший процес, система повинна зберегти стан старого процесу й завантажити збережений стан для нового процесу. Така дія системи називається перемиканням контексту (context switch).

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

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





Последнее изменение этой страницы: 2016-07-11; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 34.201.3.10 (0.008 с.)