24513

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

Доклад

Информатика, кибернетика и программирование

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

Русский

2013-08-09

92.27 KB

45 чел.

Вопрос 18. Алгоритмы планирования, основанные на квантовании, приоритетах, смешанные алгоритмы.

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

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

- поток завершился и покинул систему;

- произошла ошибка;

- поток перешел в состояние ожидания;

- исчерпан квант процессорного времени, отведенный данному потоку.

Поток, который исчерпал свой квант, переводится в состояние «готовность» и ожидает, когда ему будет предоставлен новый квант процессорного времени, а на выполнение в соответствии с определенным правилом выбирается новый поток из очереди готовых. Таким образом, ни один поток не занимает процессор надолго, поэтому квантование широко используется в системах разделения времени. Граф состояний потока для алгоритма диспетчеризации, основанного на квантовании, изображен на рис. 4.5.

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

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

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

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

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

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

Приоритет может выражаться целым или дробным, положительным или отрицательным значением. В некоторых ОС принято, что приоритет потока тем выше, чем больше (в арифметическом смысле) число, обозначающее приоритет. В других системах, наоборот, чем меньше число, тем выше приоритет.

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

Например, в операционной системе Windows NT определено 32 уровня приоритетов и два класса потоков – потоки реального времени и потоки с переменными приоритетами. Диапазон от 1 до 15 отведен для потоков с переменными приоритетами, а от 16 до 31 – для потоков реального времени (приоритет 0 зарезервирован для системных целей).

Существует две разновидности приоритетного обслуживания:

- обслуживание с относительными приоритетами;

- обслуживание с абсолютными приоритетами.

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

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

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

Графы состояний потока для алгоритмов с относительными и абсолютными приоритетами показаны на рис. 4.6.

 а)

б)

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

с относительными (а) и абсолютными (б) приоритетами

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

В системах с абсолютными приоритетами время ожидания потока с самым высоким приоритетом в очередях может сведено к минимуму. Это делает планирование на основе абсолютных приоритетов подходящим для систем управления объектами, в которых важна быстрая реакция на событие.

Смешанные алгоритмы планирования.

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

Например, в Windows NT приоритеты потоков могут динамически меняться системой в определенном диапазоне относительно заданного значения.


 

А также другие работы, которые могут Вас заинтересовать

78180. Разработка программ с использованием методов сортировки 77 KB
  Изучить основные приемы программирования по написанию программ с использованием сортировок включением, выбором и обменных сортировок. Согласно своему варианту разработать программу с применением одного из методов сортировки массивов.
78181. Разработка рекурсивных алгоритмов и программ 115.5 KB
  Задачи для индивидуального решения Вычислить значение выражения используя рекурсивный метод: y= Для данного N вычислить значение выражения используя рекурсию: P= Написать программу с рекурсивной функцией вычисляющей разность элементов одномерного массива. Написать рекурсивную функцию сложения целых чисел двумерного массива. Написать рекурсивную процедуру которая считывает вводимые с клавиатуры числа до тех пор пока не будет обнаружен нуль. Написать рекурсивную процедуру которая считывает вводимые с клавиатуры числа до тех пор...
78182. Разработка алгоритмов и программ с подключением модулей CRT, DOS 83.5 KB
  Изучить основные приемы программирования по написанию программ, обрабатывающих прерывания, проверяющих статус дисков, управляющих программной средой, организующих работу с каталогами и их элементами реализующих процедуры и функции стандартного модуля DOS.
78183. Разработка алгоритмов и программ с подключением модуля GRAPH 81.5 KB
  Получить индивидуальное задание у преподавателя и разобрать программу в соответствии с поставленной задачей. Показать работающую программу преподавателю. Индивидуальные задания: Создайте программу вывода изображений двух туч. Создайте программу вывода на экран текстовой информации в форме бегущей строки...
78184. Разработка алгоритмов и программ с анализом организации данных 89.5 KB
  Индивидуальные задания Постройте с помощью массива стек из 6 строковых элементов. Разместите в стеке шесть элементов: ‘nme ‘fio ‘ves ‘ge ‘rost ‘dlin. Удалите из стека два элемента ‘dlin и ‘fio и добавьте новый элемент ‘size. После этого добавьте в список шесть элементов 1357911 затем найдите указатель на элемент 9 и удалите этот элемент.
78185. Разработка алгоритмов и программ с использованием указателей 75 KB
  Организация динамической памяти и структур данных. Получить индивидуальное задание у преподавателя и разобрать программу с использованием выделения динамической памяти и создания указателей. Использовать динамическое выделение памяти. Использовать динамическое выделение памяти.
78186. Разработка программ обработки одномерных массивов 80.5 KB
  В качестве элементов массива можно использовать и любой другой ранее описанный тип поэтому вполне правомерно существование массивов записей массивов указателей массивов строк массивов и т. Элементами массива могут быть данные любого типа включая структурированные. Тип элементов массива называется базовым. Особенностью языка Паскаль является то что число элементов массива фиксируется при описании и в процессе выполнения программы не меняется.
78187. Разработка программ обработки двумерных массивов 70.5 KB
  Доступ к каждому отдельному элементу осуществляется путем индексирования элементов массива. Индексы представляют собой выражения любого скалярного типа, кроме вещественного. Тип индекса определяет границы изменения значений индекса. Для описания массива предназначено словосочетание: array of (массив из).
78188. Разработка программ с использованием процедур и функций 101 KB
  Dos включает средства позволяющие реализовывать различные функции DOS. Функции в Паскале Функция это независимая именованная часть программы которую можно вызвать по имени для выполнения определенных действий. Структура функции повторяет структуру программы. Особенности использования функции: функция передает в точку вызова скалярное значение; имя функции может входить в выражение как операнд.