КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Механизм приоритетов в операционной системе Windows. Класс приоритета процесса. Относительный приоритет потока. Базовый и динамический приоритеты потока.
В Windows предусмотрено 32 уровня приоритета — от 0 до 31. Эти значения группируются так: шестнадцать уровней реального времени (16–31); пятнадцать варьируемых (динамических) уровней (1–15); один системный уровень (0), зарезервированный для потока обнуления страниц (zero page thread). Уровни приоритета потока назначаются с учетом двух разных точек зрения — Windows API и ядра Windows. Windows API сначала упорядочивает процессы по классам приоритета, назначенным при их создании [Real&time(реального времени), High (высокий), Above Normal (выше обычного), Normal (обычный), Below Normal (ниже обычного) и Idle (простаивающий)], а затем — по относительному приоритету индивидуальных потоков в рамках этих процессов [Time&critical (критичный по времени), Highest (наивысший), Above&normal (выше обычного), Normal (обычный), Below&normal (ниже обычного), Lowest (наименьший) и Idle (простаивающий)]. Базовый приоритет каждого потока в Windows API устанавливается, исходя из класса приоритета его процесса и относительного приоритета самого потока. Если у процесса только одно значение приоритета (базовое), то у каждого потока их два: текущее и базовое. Решения, связанные с планированием, принимаются на основе текущего приоритета. Как поясняется в следующем разделе, в определенных обстоятельствах система может на короткое время повышать приоритеты потоков в динамическом диапазоне (1–15). Windows никогда не изменяет приоритеты потоков в диапазоне реального времени(16–31), поэтому у таких потоков базовый приоритет идентичен текущему. Динамические приоритеты имеют значения в диапазоне 1-15. Они названы динамическими, потому что ОС может динамически изменять приоритет потока в этом диапазоне. Поскольку потоки, работающие в рамках одного процесса, могут быть неоднородны, существует также относительный приоритет потоков в рамках данного процесса. Стоит помнить, что относительный приоритет потока на то и относительный, что влияет только на работу потока в рамках данного отдельно взятого многопоточного приложения. И если вам нужно, чтобы приоритет потока был более высоким в рамках всех запущенных в системе потоков, придётся поколдовать и над классом приоритета всего приложения.
|