Net framework 5, а также среды Visual Studio 2012 и C#


Глава.26 .Потоки.исполнения ПриМеЧание



Download 6,27 Mb.
Pdf ko'rish
bet549/658
Sana12.06.2023
Hajmi6,27 Mb.
#950840
1   ...   545   546   547   548   549   550   551   552   ...   658
Bog'liq
CLR via C Programmirovanie na platforme Microsoft NET Framework 4 5 na yazyke C

740
Глава.26 .Потоки.исполнения
ПриМеЧание
Разработчики.часто.задают.вопрос:.каким.образом.можно.гарантированно.запустить.
поток.через.определенное.время.после.какого-то.события?.Например,.как.запустить.
определенный.поток.через.1.мс.после.прохождения.данных.через.последовательный.
порт?.Я.отвечаю.просто:.это.невозможно 
Такие.вещи.возможны.в.операционных.системах.реального.времени,.но.Windows.
к.ним.не.относится .Операционные.системы.реального.времени.требуют.доско-
нального.знания.оборудования,.на.базе.которого.они.работают .То.есть.вам.должны.
быть.известны.задержки.контроллеров.жесткого.диска,.клавиатуры.и.других.ком-
понентов .Платформа.Windows.создавалась.в.Microsoft.для.работы.с.самым.разным.
аппаратным.обеспечением:.различными.процессорами,.драйверами,.сетями.и.т .п .
Именно.поэтому.она.не.является.операционной.системой.реального.времени .
Следует.добавить,.что.из-за.CLR.управляемый.код.еще.хуже.приспособлен.для.ра-
боты.в.реальном.времени .Причин.этому.много,.в.том.числе.динамическая.загрузка.
библиотек,.JIT-компиляция.кода.и.уборка.мусора,.начало.выполнения.которой.не-
возможно.спрогнозировать 
Каждому потоку назначается уровень приоритета с нулевого (самого низкого) 
до 31 (самого высокого). При выборе потока, который будет передан процессору, 
сначала рассматриваются потоки с самым высоким приоритетом и ставятся в оче-
редь в цикле. При обнаружении потока с приоритетом 31 он передается процессору. 
После завершения такта ищется следующий поток с аналогичным приоритетом, 
чтобы переключить на него контекст.
При наличии в очереди потоков с приоритетом 31 система никогда не передаст 
процессору поток с меньшим приоритетом. Это условие называется 
зависанием
(starvation), а возникает оно в случае, когда потоки с высоким приоритетом по-
требляют практически все время процессора и не дают исполняться потокам более 
низкого приоритета. Зависание намного реже возникает на машинах с многопро-
цессорной конфигурацией, на которых потоки с приоритетами 31 и 30 могут ис-
полняться одновременно. Система всегда старается загрузить процессор, поэтому 
он простаивает только при отсутствии готовых к исполнению потоков.
Потоки с высоким приоритетом всегда исполняются перед потоками с низким 
приоритетом вне зависимости от того, какие задания выполняют последние. Если 
в системе работает поток с приоритетом 5 и система определяет, что поток с более 
высоким приоритетом готов к работе, исполнение немедленно приостанавли-
вается (даже если поток находится в середине такта) и процессору передается 
новый поток.
В процессе загрузки система создает 
поток обнуления страниц
(zero page thread), 
которому назначается нулевой приоритет. Это единственный поток в системе с та-
ким приоритетом. Его задача состоит в обнулении свободных страниц и исполняется 
он только при отсутствии других потоков.
Ясное дело, что с точки зрения разработчика сложно придумать рациональное 
объяснение назначению потокам приоритетов. Почему одному потоку присвоен 


741
Планирование.и.приоритеты.потоков
приоритет 10, а другому — 23? Для решения этого вопроса Windows вводит аб-
страктную «прослойку» над уровнем приоритетов.
При разработке приложения следует решить, должно ли оно реагировать быстрее 
или медленнее, чем другие запущенные на этой же машине приложения. В соот-
ветствии с этим решением выбирается класс приоритета для процесса. В Windows 
поддерживаются шесть классов приоритетов: 
Idle
(холостого хода), 
Below
Normal
(ниже обычного), 
Normal
(обычный), 
Above
Normal
(выше обычного), 
High
(высо-
кий) и 
Realtime
(реального времени). По умолчанию выбирается приоритет 
Normal

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

Download 6,27 Mb.

Do'stlaringiz bilan baham:
1   ...   545   546   547   548   549   550   551   552   ...   658




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish