Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС_лекции.doc
Скачиваний:
2
Добавлен:
15.04.2019
Размер:
370.69 Кб
Скачать
  1. Приоритетное планирование:

При приоритетном планировании всем выполняемым задачам назначаются веса, называемые приоритетами. И время центрального процессора выделяется задачам, соответственно им приоритетам. При реализации приоритетного планирования обычно имеется не одна, а несколько очередей, готовых задать по одной очереди на каждый уровень приоритета. И поиск претендента на следующее выполнение состоит в просмотре очередей готовых задач, начиная с самой приоритетной очереди. Такой порядок просмотра очередей гарантирует, что в первую очередь время центрального процессора будет выделяться самым приоритетным задачам. Если существует несколько готовых задач с одинаковым приоритетом, то они располагаются в очереди в порядке их поступления. В этом случае задача, появившаяся раньше будет пользоваться преимуществом. Такое планирование обладает существенным недостатком: высокоприоритетные задачи могут полностью заблокировать выполнение менее приоритетных задач. Поэтому при приоритетном планировании часто применяют дополнительные правила, позволяющие сделать распределение времени менее жёстким и более справедливым. Одним из таких дополнительных правил является введение динамических приоритетов. Приоритеты, не изменяющиеся за время выполнения задач называют статическими. Приоритеты, которые могут изменяться во время выполнения задачи называют динамическими. При использовании динамических приоритетов, планировщик может временно повышать приоритет задачи, если она долго не получала доступ к процессору ил наоборот – понижать приоритет, если задача слишком долго занимает центральный процессор. Для того, чтобы можно было к различным задачам применять различные правила, уровни приоритетов в современных системах обычно подразделяются на классы. WinNT, 05/2 использует приоритеты :

    1. класс реального времени,

    2. высокоприоритетный класс,

    3. регулярный(нормальный) класс,

    4. фоновый класс.

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

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

Задачи фонового класса выполняются только тогда, когда нет готовых задач из других классов приоритетов. По умолчанию, Windows запускает задачи в регулярном классе приоритетов. В Windows всего существует 32 уровней приоритетов, для прикладных задач используются уровни с 1-31. Явно задать приоритет нельзя, можно только отнести свою задачу к тому или другому приоритету. При этом задачи, отнесённые к классу реального времени запускаются с начальным уровнем приоритета=24, высокоприоритетными = 13, регулярными = 7-8, фоновыми = 4. В процессе выполнения задачи могут менять свой приоритет относительно базового в пределах ±2.

  1. Гарантированное планирование:

При гарантированном планировании время центрального процессора также как и при циклическом планировании периодически выделяется всем задачам квантами, при этом размер кванта изменяется в зависимости от количества одновременно выполняемых задач. 1/n сек(мсек) Таким образом теоретически время ответа сохраняется примерно одинаковым для любого количества задач.