Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Питання ректорського контролю_2012_початок_курс...doc
Скачиваний:
3
Добавлен:
20.11.2019
Размер:
1.36 Mб
Скачать

3. Алгоритми в диспетчеризації з витісненням та без.

Диспетчеризація без розподілу процесорного часу (багатозадачність без витіснення) – це такий спосіб диспетчеризації, при якому активний процес виконується до тих пір, поки він по власній ініціативі не передасть управління диспетчеру задач для вибору іншого, готового до виконання процесу. До них відносяться дисципліни: FCFS, SJN, SRT.

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

4. Способи забезпечення гарантованого обслуговування процесів.

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

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

Гарантоване обслуговування може бути досягнуто трьома способами:

  1. виділяти мінімальну частину процесорного часу деякому класу процесів, у випадку, коли хоча б один з них готовий до виконання;

  2. виділяти мінімальну долю процесорного часу певному конкретному процесу якщо він готовий до виконання;

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

6. Вплив планування на ефективність обчислювальних систем.

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

В загальному випадку використовують наступні методи підвищення продуктивності системи:

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

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

7. Використання динамічних пріоритетів.

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

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

Операційна система може змінити пріоритет задачі в таких випадках:

  1. збільшення пріоритету активної задачі. При завантаженні задачі на виконання її пріоритет автоматично збільшується. Це знижує час реакції цієї активної задачі на дії користувачів в порівнянні з іншими фоновими задачами;

  2. збільшення пріоритету операції вводу/виводу. Після завершення операції вводу/виводу задача отримує найвищий пріоритет в певному класі задач. Це дозволяє більш швидко закінчити всі незавершені операції вводу/виводу;

  3. збільшення пріоритету “забутих” задач. Якщо задача не отримує часу процесора на протязі певного відрізку часу, то диспетчер задач тимчасово присвоює їй більш високий пріоритет, який не перевищує певної заданої межі. Це дозволяє перемикатися на такі забуті задачі більш швидко. Після виконання такої задачі на протязі певного кванту часу її пріоритет знижується до попереднього значення.