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

Вытесняющие и невытесняющие алгоритмы планирования

Основными различиями между вытесняющими и невытесняющими алгоритмами планирования является степень централизации механизма планирования потоков

Невытесняющие алгоритмы – основаны на том, что активному потоку позволяется выполняться, пока сам по собственной инициативе не отдаст управление ОС. Для того, чтобы та выбрала из очереди другой готовый к выполнению поток.

Вытесняющий алгоритм – алгоритмы, в которых решение о переключение процессора с выполнения одного потока на другой принимается ОС, а не активной задачей.

При вытесняющем мультипрограммировании ОС выполняет следующие функции:

  1. Определяет момент снятия с выполнения активного потока

  2. Запоминает его контекст

  3. Выбирает из очереди готовых потоков – следующий

  4. Запускает новый поток на выполнение, загружая его контекст

При невытесняющем мультипрограммировании механизм планирования разделён между ОС и прикладными программами:

  1. Прикладная программа получила управление от ОС, сама определяет момент завершения очередного цикла и передаёт управление ОС с помощью системного вызова

  2. ОС формирует очереди потоков и выбирает в соответствии с некоторым правилом следующий поток на выполнение

В случае невытесняющего мультипрограммирования могут быть проблемы:

  1. На некоторое время теряется управление системы

  2. Высокие требования к разработчикам приложений

  3. Приложения должны характеризоваться дружественностью

Невытесняющее мультипрограммирование обладает некоторым преимуществами:

  1. Даёт возможность разработчику самому определить порядок выполнения приложений, а, следовательно, возрастает быстродействие приложений

  2. Легче используются проблемы совместного использования данных

  3. Более высокая скорость переключения с потока на поток

В большинстве универсальных вычислительных систем и ОС для них реализуются вытесняющие алгоритмы планирования

  1. Алгоритмы планирования, основанные на квантовании

Алгоритмы планирования, основанные на квантовании

В основе многих вытесняющих алгоритмах планирования лежит концепция квантования. В этом случае, каждому потоку поочередно для выполнения предоставляется ограниченный непрерывный период процессорного времени – квант.

Смена активного потока происходит, если:

  1. Исчерпан квант процессорного времени

  2. Поток завершился и покинул систему

  3. Произошла ошибка

  4. Поток перешёл в состояние ждать

Рис. 1 – граф состояний потока в системе с квантованием

Рис. 1. Граф состояний потока в системе с квантованием

Кванты, выделяемые потоком, могут быть одинаковыми и различными

Одинаковые кванты:

Оптимизация поясняется рисунком 2

Рис. 2. Иллюстрация расчета времени ожидания в очереди

В этом случае, суммарное время ожидания каждым потоком пропорционально длительности кванта и количеству потоков n. Причём если квант короткий, то эта зависимость более ярко выражена. Если квант длинный, то зависимость становится менее ярко выраженной.

В случае длинных квантов, короткие потоки буду завершаться в первых циклах выполнения, и очередь потоков будет уменьшаться.

В ОС могут применяться кванты, фиксированные величины, а могут изменяться в течении жизненного цикла

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

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

Рис. 3. Квантование с предпочтением потоков, интенсивно

обращающихся к вводу-выводу

В этом случае, при выборе потока на выполнение, прежде всего, просматривается вторая очередь.