ВУЗ:
Составители:
Рубрика:
10
Приоритеты и составление расписания
Как упоминалось ранее, операционная система отвечает за выделение
каждому потоку нескольких циклов процессора, в течение которых они могут
работать . Количество времени , выделяемое отдельному потоку, зависит от
назначаемого ему приоритета . Общий приоритет отдельного потока
определяется путем объединения приоритета процесса, породившего поток (он
называется классом приоритета), и приоритета самого потока, который
называется относительным приоритетом.
Win32 поддерживает четыре класса: Idle, Normal, High и Realtime, которые
описывают приоритет отдельного процесса, запущенного в системе. По умол-
чанию любому процессу присваивается класс Normal. Каждый из перечислен-
ных классов имеет соответствующий признак , определенный в модуле
Windows. Для порождения процесса с определенным приоритетом можно логи-
чески сложить (с помощью операции OR) любой из этих признаков с парамет-
ром dwCreationFlags функции CreateProcess. Все классы можно предста -
вить уровнями приоритета , которые выражаются числовыми значениями, ле -
жащими в диапазоне от 4 до 24 включительно . В табл. 1 приведены все приори -
тетные классы , соответствующие им признаки и числовые значения.
Таблица 1. Классы приоритетов процессов
Класс Признак Значение
Idle IDLE_PRIORITY_CLASS 4
Normal NORMAL_PRIORITY_CLASS 7-9
High HIGH_PRIORITY_CLASS 13
Realtime REALTIME_PRIORITY_CLASS 24
В большинстве случаев следует избегать установки приоритетного класса
любого процесса равным Realtime. Поскольку большинство потоков операци-
онных систем работает в приоритетном классе, который ниже, чем Realtime, то
ваш поток может получить больше процессорного времени , чем сама операци-
онная система, а это может вызвать некоторые неожиданные проблемы .
Даже неоправданная установка приоритетного класса равным High может
вызвать проблемы , если потоки процесса не тратят большую часть времени на
простои или на ожидание внешних событий (например, ввода- вывода). Один
высокоприоритетный поток будет отбирать все процессорное время у низко -
приоритетных потоков и процессов до тех пор, пока он или не заблокирует ка-
кое-нибудь событие, или не перейдет в состояние ожидания, или не займется
обработкой сообщений. Преимущества многозадачности могут быть легко пе-
речеркнуты неправильным назначением приоритетов.
Второй составляющей , которая входит в определение общего приоритета по -
тока, является относительный приоритет отдельного потока. Следует под-
черкнуть , что приоритетный класс связан с процессом, а относительный при -
оритет – с отдельными потоками внутри процесса. Потоку можно назначить
один из семи возможных относительных приоритетов: Idle (ожидания), Lowest
10 П ри ори т ет ы и с ос т авлен и е рас п и с ан и я К ак упо минало сь ранее, о перацио нная система о твечает за вы деление каж до му по току неско льких цикло в про ц ессо ра, в течение ко торы х о ни мо гут рабо тать. Ко личество времени, вы деляемо е о тдельно му по току, зависит о т назначаемо го ему прио ритета. О бщ ий прио ритет о тдельно го по тока о пределяется путем о бъ единения прио ритетапро цесса, по ро дивш его по ток (о н назы вается клас с ом пр иор ит ет а), и прио ритета само го по тока, ко торы й назы вается от нос ит ельны м пр иор ит ет ом . Win32 по ддерж иваетчеты рекласса: Idle, Normal, High и Realtime, ко торы е о писы ваю тприо ритето тдельно го про цесса, запущ енно го всистеме. П о умо л- чанию лю бо мупро цессуприсваивается классNormal. Каж ды й из перечислен- ны х классо вимеетсо о тветствую щ ий признак, о пределенны й вмо дуле Windows. Д ля по ро ж дения про цессасо пределенны м прио ритетом мо ж но ло ги- чески сло ж ить(спо мо щ ью о перации OR) лю бо й из этих признако вспарамет- ро м dwCreationFlags функции CreateProcess. В се классы мо ж но предста- витьуро внями прио ритета, ко торы евы раж аю тся число вы ми значениями, ле- ж ащ ими вдиапазо нео т4 до 24 вклю чительно . В табл. 1 приведены всеприо ри- тетны е классы , со о тветствую щ ие им признаки и число вы е значения. Таб ли ца1. Клас с ы п ри ори т ет ов п роцес с ов Клас с П ри зн ак Зн ачен и е Idle IDLE_PRIORITY_CLASS 4 Normal NORMAL_PRIORITY_CLASS 7-9 High HIGH_PRIORITY_CLASS 13 Realtime REALTIME_PRIORITY_CLASS 24 В бо льш инстве случаев следуетизбегать устано вки прио ритетно го класса лю бо го про ц есса равны м Realtime. П о ско льку бо льш инство по токо в о пераци- о нны х систем рабо таетв прио ритетно м классе, ко торы й ниж е, чем Realtime, то ваш по ток мо ж етпо лучить бо льш е про цессо рно го времени, чем сама о пераци- о нная система, аэто мо ж етвы зватьнеко торы енео ж иданны епро блемы . Д аж е нео правданная устано вка прио ритетно го класса равны м High мо ж ет вы звать про блемы , если по токи про цесса не тратятбо льш ую часть времени на про стои или на о ж идание внеш них со бы тий (например, вво да-вы во да). О дин вы со ко прио ритетны й по ток будето тбирать все про цессо рно е время у низко - прио ритетны х по токо в и про цессо в до тех по р, по ка о н или не забло кируетка- ко е-нибудь со бы тие, или не перейдетв со стояние о ж идания, или не займется о брабо тко й со о бщ ений. П реимущ ества мно го задачно сти мо гутбы ть легко пе- речеркнуты неправильны м назначением прио ритетов. В торо й со ставляю щ ей, ко торая вх о дитв о пределение о бщ его прио ритетапо - тока, является от нос ит ельны й пр иор ит ет о тдельно го по тока. С ледуетпо д- черкнуть, что прио ритетны й класс связан с про цессо м, а о тно сительны й при- о ритет– с о тдельны ми по токами внутри про цесса. П о току мо ж но назначить о дин из семи во змо ж ны х о тно сительны х прио ритетов: Idle (о ж идания), Lowest
Страницы
- « первая
- ‹ предыдущая
- …
- 8
- 9
- 10
- 11
- 12
- …
- следующая ›
- последняя »