Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вопросы и ответы по ОС.doc
Скачиваний:
37
Добавлен:
27.08.2019
Размер:
3.35 Mб
Скачать

4. Вытесняющая многозадачность. Цели алгоритма планирования и их противоречивость. Основные алгоритмы планирования и их модификации.

13 Вопрос. Вытесняющая многозадачность

Это вид многозадачности, при которой операционная система может временно прервать текущий процесс без какой-либо помощи с его стороны. Благодаря этому, зависшие приложения как правило не завешивают операционную систему.

Русская википедия

Когда планировать?

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

Во-вторых, планирование необходимо, когда процесс завершает работу. Этот процесс уже не существует, следовательно, необходимо из набора готовых процессов выбрать и запустить следующий. Если процессов, находящихся в состоянии готовности, нет, обычно запускается холостой процесс, поставляемый системой.

В-третьих, когда процесс блокируется на операции ввода-вывода, семафоре, или по какой-либо другой причине, необходимо выбрать и запустить другой процесс. Иногда причина блокировки может повлиять на выбор. Например, если А - важный процесс и он ожидает выхода процесса В из критической области, можно запустить следующим процесс В, чтобы он вышел из критической области и позволил процессу A продолжать работу. Сложность, однако, в том, что планировщик обычно не обладает информацией, необходимой для принятия правильного решения.

В-четвертых, необходимость планирования может возникнуть при появлении прерывания ввода-вывода. Если прерывание пришло от устройства ввода-вывода, закончившего работу, можно запустить процесс, который был блокирован в ожидании этого события. Планировщик должен выбрать, какой процесс запустить: новый, тот, который был остановлен прерыванием, или какой-то другой.

14 Вопрос. Задачи алгоритмов планирования

Чтобы разработать алгоритм планирования, необходимо иметь представление о том, что должен делать хороший алгоритм. Некоторые задачи зависят от среды (системы пакетной обработки, интерактивные или реального времени), но есть задачи, одинаковые во всех системах. Список задач представлен в табл. 2.5. Мы рассмотрим их ниже.

Таблица 2.5. Некоторые задачи алгоритмов планирования

Все системы Справедливость - предоставление каждому процессу справедливой доли процессорного времени Принудительное применение политики - контроль за выполнением принятой политики Баланс - поддержка занятости всех частей системы

Системы пакетной обработки данных Пропускная способность - максимальное количество задач в час Оборотное время - минимизация времени, затрачиваемого на ожидание обслуживания и обработку задачи Использование процессора - поддержка постоянной занятости процессора

Интерактивные системы Время отклика - быстрая реакция на запросы Соразмерность - выполнение пожеланий пользователя

Системы реального времени Окончание работы к сроку - предотвращение потери данных Предсказуемость - предотвращение деградации качества в мультимедийных системах