Студопедия

Главная страница Случайная лекция


Мы поможем в написании ваших работ!

Порталы:

БиологияВойнаГеографияИнформатикаИскусствоИсторияКультураЛингвистикаМатематикаМедицинаОхрана трудаПолитикаПравоПсихологияРелигияТехникаФизикаФилософияЭкономика



Мы поможем в написании ваших работ!




Дисциплины планирования

Читайте также:
  1. III. Учебная программа дисциплины
  2. IX. Учебная карта дисциплины «Уголовное право. Часть Общая»
  3. PR и другие дисциплины
  4. PR и другие дисциплины.
  5. VI. Учебно-методическое и информационное обеспечение дисциплины
  6. VI. Учебно-методическое и информационное обеспечение дисциплины (модуля)
  7. Алгоритмы планирования
  8. Бюджетирование в системе финансового планирования
  9. В результате освоения дисциплины обучающийся должен
  10. В результате освоения дисциплины обучающийся должен

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

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

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


 

Уровни приоритета

Чтобы хорошо понять алгоритмы планирования потоков, надо еще ра­зобраться в уровнях приоритета, используемых Windows.

Как показано на рис. 6-11, в Windows предусмотрено 32 уровня приорите­та — от 0 до 31. Эти значения группируются так:

· шестнадцать уровней реального времени (16-31);

· пятнадцать варьируемых (динамических) уровней (1-15);

· один системный уровень (0), зарезервированный для потока обнуления страниц (zero page thread).

Уровни приоритета потока назначаются с учетом двух разных точек зре­ния — Windows API и ядра Windows. Windows API сначала упорядочивает процессы по классам приоритета, назначенным при их создании [Real-time (реального времени), High (высокий), Above Normal (выше обычного), Nor­mal (обычный), Below Normal (ниже обычного) и Idle (простаивающий)], а затем — по относительному приоритету индивидуальных потоков в рамках этих процессов [Time-critical (критичный по времени), Highest (наивысший), Above-normal (выше обычного), Normal (обычный), Below-normal (ниже обычного), Lowest (наименьший) и Idle (простаивающий)].

Базовый приоритет каждого потока в Windows API устанавливается, исходя из класса приоритета его процесса и относительного приоритета са­мого потока. Связь между приоритетами Windows API и внутренними при­оритетами ядра Windows (в числовой форме) показана на рис. 6-12.

Если у процесса только одно значение приоритета (базовое), то у каждого потока их два: текущее и базовое. Решения, связанные с планированием, при­нимаются на основе текущего приоритета. В определенных обстоятельствах система может на короткое время повышать приоритеты потоков в динамическом диапазоне (1-15). Windows никогда не изменяет приоритеты потоков в диапазоне реального времени (16-31), поэтому у таких потоков базовый приоритет идентичен текущему.

 

Начальный базовый приоритет потока наследуется от базового приоритета процесса, а тот наследует его от родительского процесса. Это поведе­ние можно изменить при вызове Windows-функции CreateProcess или коман­ды START. Приоритет процесса можно изменить и после его создания, ис­пользуя функцию SetPriorityClass или различные утилиты, предоставляющие доступ к этой функции через UI, например диспетчер задач и Process Explo­rer. В частности, вы можете понизить приоритет процесса, интенсивно ис­пользующего процессорное время, чтобы он не мешал обычным операци­ям в системе. Смена приоритета процесса влечет за собой смену приорите­тов всех его потоков, но их относительные приоритеты остаются прежни­ми. Но изменение приоритетов индивидуальных потоков внутри процесса обычно не имеет смысла, потому что вы не знаете, чем именно занимается каждый из них (если только сами не пишете программу или не располагае­те исходным кодом); так что изменение относительных приоритетов пото­ков может привести к неадекватному поведению этого приложения.

Обычно базовый приоритет процесса (а значит, и базовый приоритет пер­вичного потока) по умолчанию равен значению из середины диапазонов приоритетов процессов (24, 13, 10, 8, 6 или 4). Однако базовый приоритет неко­торых системных процессов (например, диспетчера сеансов, контроллера сервисов и сервера локальной аутентификации) несколько превышает значе­ние по умолчанию для класса Normal (8). Более высокий базовый приоритет по умолчанию обеспечивает запуск потоков этих процессов с приоритетом выше 8. Чтобы изменить свой начальный базовый приоритет, такие систем­ные процессы используют внутреннюю функцию NtSetlnformationProcess.

 


<== предыдущая страница | следующая страница ==>
Диспетчеризация потоков | Динамическое повышение приоритета после завершения ввода-вывода

Дата добавления: 2014-03-11; просмотров: 505; Нарушение авторских прав




Мы поможем в написании ваших работ!
lektsiopedia.org - Лекциопедия - 2013 год. | Страница сгенерирована за: 0.002 сек.