Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ «БистСмноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² срСдС WindowsΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 61

Автор ДТонсон Π₯Π°Ρ€Ρ‚

β€’ THREAD_PRIORITY_HIGHEST 

Для установки ΠΈ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π° ΠΏΠΎΡ‚ΠΎΠΊΠ° слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эти значСния. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° использованиС Ρ†Π΅Π»Ρ‹Ρ… чисСл со Π·Π½Π°ΠΊΠΎΠΌ вмСсто чисСл Ρ‚ΠΈΠΏΠ° DWORD. 

BOOL SetThreadPriority(HANDLE hThread, int nPriority)

int GetThreadPriority(HANDLE hThread) 

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π΄Π²Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… значСния ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π° ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ². Они ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹ΠΌΠΈ, Π° Π½Π΅ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ, ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… случаях.

β€’ THREAD_PRIORITY_IDLE ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 1 (ΠΈΠ»ΠΈ 16 β€” для процСссов, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΡ…ΡΡ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ).

β€’ THREAD_PRIORITY_TIME_CRITICAL ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 15 (ΠΈΠ»ΠΈ 31 β€” для процСссов, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΡ…ΡΡ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ).

ΠŸΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Ρ‹ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² автоматичСски ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π° процСсса. Помимо этого, ОБ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π΅Π³ΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Ρ‹ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² динамичСским ΠΏΡƒΡ‚Π΅ΠΌ Π½Π° основании повСдСния ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ². Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π°ΠΊΡ‚ΠΈΠ²ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ это срСдство с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ SetThreadPriorityBoost.

ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π΅Ρ€Π΅ΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ использования ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠ² ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² ΠΈ процСссов

Высокими ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π°ΠΌΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² ΠΈ высокими классами ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π° процСссов Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ с ΠΎΡΡ‚ΠΎΡ€ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ. Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ Ρ€Π΅ΡˆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ использования ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠ² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ для ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… процСссов; эти ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ лишь Π² Ρ‚Π΅Ρ… случаях, ΠΊΠΎΠ³Π΄Π° прилоТСния Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠ²Π»ΡΡŽΡ‚ΡΡ прилоТСниями Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. ΠΠ°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ этого ΠΏΡ€Π°Π²ΠΈΠ»Π° Ρ‡Ρ€Π΅Π²Π°Ρ‚ΠΎ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ΠΏΠΎΡ‚ΠΎΠΊΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Ρ‚ΠΎΡ€ΠΌΠΎΠ·ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π² ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π³Π»Π°Π²Π°Ρ… высказывания ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ коррСктности ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ справСдливы лишь ΠΏΡ€ΠΈ условии соблюдСния ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ° равноправия (fairness) ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ². Π Π°Π²Π½ΠΎΠΏΡ€Π°Π²ΠΈΠ΅ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ всС ΠΎΠ½ΠΈ, Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ счСтС, Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ. Если Π½Π΅ ΡΠΎΠ±Π»ΡŽΠ΄Π°Ρ‚ΡŒ этот ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ, Ρ‚ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠΈ с Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΈΠΌ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ смогут ΡƒΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ рСсурсы, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌ, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΌ Π±ΠΎΠ»Π΅Π΅ высокий ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚. ΠŸΡ€ΠΈ описании нСдостатков планирования, осущСствляСмого с Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ° равноправия, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Ρ‹ зависаниС ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² (thread starvation) ΠΈ инвСрсия ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠ² (priority inversion). 

Бостояния ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²

На рис. 7.4, взятом ΠΈΠ· [9] (см. Ρ‚Π°ΠΊΠΆΠ΅ [38], Π²Π΅Ρ€ΡΠΈΡŽ, ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΡƒΡŽ Π‘ΠΎΠ»ΠΎΠΌΠΎΠ½ΠΎΠΌ (Solomon) ΠΈ РуссиновичСм (Russinovych)), прСдставлСна схСма планирования ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² ΠΈ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ ΠΈΡ… Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ состояния. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, этот рисунок ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π’Π°ΠΊΠΈΠ΅ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ состояния ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±Ρ‰ΠΈΠΌΠΈ для всСх ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°Ρ‡Π½Ρ‹Ρ… ОБ ΠΈ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ Π²Ρ‹ΡΡΠ½ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ планируСтся Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² ΠΈ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ пСрСходят ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ состояния Π² Π΄Ρ€ΡƒΠ³ΠΎΠ΅. 

 Π ΠΈΡ. 7.4. Бостояния ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ состояниями (Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: Inside Windows NT, Copyright Β© 1993, by Helen Custer. Copyright Microsoft Press. Воспроизводится с Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Microsoft Press. Π’сС ΠΏΡ€Π°Π²Π° сохранСны.)


НиТС приводится краткая сводка основных ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Для получСния Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΏΠΎ этому вопросу ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ Π² [38] ΠΈΠ»ΠΈ ΠΊ руководству ΠΏΠΎ ОБ.

β€’ ΠŸΠΎΡ‚ΠΎΠΊ находится Π² состоянии выполнСния (running state), Ссли ΠΎΠ½Π° фактичСски выполняСтся процСссором. Π’ SMP-систСмах Π² состоянии выполнСния ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ нСсколько ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ².

β€’ ΠŸΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ ΠΏΠΎΡ‚ΠΎΠΊ Π² состояниС оТидания (wait state), Ссли ΠΎΠ½ выполняСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ оТидания Π½Π΅ΡΠΈΠ³Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² ΠΈΠ»ΠΈ процСссов, ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π² сигнальноС состояниС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² синхронизации, ΠΎ Ρ‡Π΅ΠΌ говорится Π² Π³Π»Π°Π²Π΅ 8. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ дисковых ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, Π½ΠΎ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½ΠΎ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ многочислСнными функциями. О ΠΏΠΎΡ‚ΠΎΠΊΠ°Ρ…, находящихся Π² состоянии оТидания, Π½Π΅Ρ€Π΅Π΄ΠΊΠΎ говорят ΠΊΠ°ΠΊ ΠΎ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… (blocked) ΠΈΠ»ΠΈ спящих (sleeping).

β€’ ΠŸΠΎΡ‚ΠΎΠΊ находится Π² состоянии готовности (ready state), Ссли ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ. ΠŸΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ Π² любой ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ пСрСвСсти Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΡ‚ΠΎΠΊ Π² состояниС выполнСния. Когда процСссор станСт доступным, ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ запустит Ρ‚ΠΎΡ‚ ΠΈΠ· ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², находящихся Π² состоянии готовности, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ Π½Π°ΠΈΠ²Ρ‹ΡΡˆΠΈΠΌ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ, Π° ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌ Π²Ρ‹ΡΡˆΠΈΠΌ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ Π·Π°ΠΏΡƒΡ‰Π΅Π½ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€Π΅Π±Ρ‹Π²Π°Π» Π² состоянии готовности дольшС всСх. ΠŸΡ€ΠΈ этом ΠΏΠΎΡ‚ΠΎΠΊ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Ρ‡Π΅Ρ€Π΅Π· состояниС простоя (standby state), ΠΈΠ»ΠΈ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ состояниС.

β€’ ΠžΠ±Ρ‹Ρ‡Π½ΠΎ, Π² соотвСтствии с ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΌ описаниСм, ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ ΠΏΠΎΡ‚ΠΎΠΊ, находящийся Π² состоянии готовности, Π½Π° любой доступный процСссор. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ маску родства процСссоров (processor affinity mask) для ΠΏΠΎΡ‚ΠΎΠΊΠ° (см. Π³Π»Π°Π²Ρƒ 9), прСдоставляя ΠΏΠΎΡ‚ΠΎΠΊΡƒ процСссоры, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ этот способ, программист ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ процСссоры ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ. Π‘ΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ функциями ΡΠ²Π»ΡΡŽΡ‚ΡΡ SetProcessorAffinityMask ΠΈ GetProcessorAffinityMask. Ѐункция SetThreadIdealProcessor позволяСт ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ процСссор, ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΠΉ использованию ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠΎΠΌ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΆΠ΅ возмоТности.

β€’ ΠŸΠΎΡΠ»Π΅ истСчСния ΠΊΠ²Π°Π½Ρ‚Π° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΎΡ‚Π²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰Π΅ΠΌΡƒΡΡ ΠΏΠΎΡ‚ΠΎΠΊΡƒ, ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ Π±Π΅Π· оТидания ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ Π΅Π³ΠΎ Π² состояниС готовности. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ выполнСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Sleep(0) ΠΏΠΎΡ‚ΠΎΠΊ Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Π΅Π½ ΠΈΠ· состояния выполнСния Π² состояниС готовности.

β€’ ΠŸΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‰ΠΈΠΉ ΠΏΠΎΡ‚ΠΎΠΊ Π² состояниС готовности сразу ΠΆΠ΅, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ дСскрипторы ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² сигнальном состоянии, хотя ΠΏΡ€ΠΈ этом ΠΏΠΎΡ‚ΠΎΠΊ фактичСски ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Ρ‡Π΅Ρ€Π΅Π· ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π½ΠΎΠ΅ состояниС (transition state). Π’ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… случаях принято Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ‚ΠΎΠΊ пробуТдаСтся (wakes).

β€’ ΠΠ΅ сущСствуСт способа, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ состояниС Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ° (разумССтся, Ссли ΠΏΠΎΡ‚ΠΎΠΊ выполняСтся, Ρ‚ΠΎ ΠΎΠ½ находится Π² состоянии выполнСния, ΠΈ поэтому Π΅ΠΌΡƒ Π½Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ смысла ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ своС состояниС). Π”Π°ΠΆΠ΅ Ссли Π±Ρ‹ Ρ‚Π°ΠΊΠΎΠΉ способ ΠΈ сущСствовал, Ρ‚ΠΎ состояниС ΠΏΠΎΡ‚ΠΎΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒΡΡ Π΅Ρ‰Π΅ Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠΏΡ€Π°ΡˆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ ΠΏΠΎΡ‚ΠΎΠΊ успССт ΠΏΡ€Π΅Π΄ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ дСйствия Π² ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ.

β€’ ΠŸΠΎΡ‚ΠΎΠΊ, нСзависимо ΠΎΡ‚ Π΅Π³ΠΎ состояния, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ приостановлСн (suspended), ΠΈ приостановлСнный ΠΏΠΎΡ‚ΠΎΠΊ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡ‰Π΅Π½, Π΄Π°ΠΆΠ΅ Ссли ΠΎΠ½ находится Π² состоянии готовности. Π’ случаС приостановки Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰Π΅Π³ΠΎΡΡ ΠΏΠΎΡ‚ΠΎΠΊΠ°, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΏΠΎ собствСнной Π»ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ‚ΠΈΠ²Π΅ ΠΈΠ»ΠΈ ΠΏΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ‚ΠΈΠ²Π΅ ΠΏΠΎΡ‚ΠΎΠΊΠ°, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰Π΅Π³ΠΎΡΡ Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΌ процСссорС, ΠΎΠ½ пСрСводится Π² состояниС готовности.

β€’ ΠŸΠΎΡ‚ΠΎΠΊ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ Π² состояниС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ (terminated state) Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Π΅Π³ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ, ΠΈ остаСтся Π² этом состоянии Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° остаСтся ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ хотя Π±Ρ‹ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π΅Π΅ дСскрипторов. Π­Ρ‚ΠΎ позволяСт Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒ состояниС Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ° ΠΈ Π΅Π³ΠΎ ΠΊΠΎΠ΄ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ.

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ Π»ΠΎΠ²ΡƒΡˆΠΊΠΈ ΠΈ распространСнныС ошибки

БущСствуСт ряд Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ², ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… слСдуСт всСгда ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. ΠŸΡ€Π΅Π½Π΅Π±Ρ€Π΅ΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π±Π°Π·ΠΎΠ²Ρ‹ΠΌΠΈ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°ΠΌΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ появлСнию ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Ρ… Π΄Π΅Ρ„Π΅ΠΊΡ‚ΠΎΠ² Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, ΠΈ Π»ΡƒΡ‡ΡˆΠ΅ Π·Π°Ρ€Π°Π½Π΅Π΅ ΡΡ‚Ρ€Π΅ΠΌΠΈΡ‚ΡŒΡΡ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π΄ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ошибок, Ρ‡Π΅ΠΌ впослСдствии Π·Π°Ρ‚Ρ€Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ врСмя Π½Π° тСстированиС ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

БущСствСнно Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π² асинхронном Ρ€Π΅ΠΆΠΈΠΌΠ΅. По ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ Π½ΠΈΠΌ Π½Π΅ дСйствуСт никакая систСма упорядочСния, Ссли Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ Π½Π΅ создали Π΅Π΅ явно. ИмСнно асинхронноС ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π΄Π΅Π»Π°Π΅Ρ‚ ΠΈΡ… ΡΡ‚ΠΎΠ»ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌΠΈ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΏΡ€ΠΈ отсутствии Π΄ΠΎΠ»ΠΆΠ½ΠΎΠ³ΠΎ внимания ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ΡŒΡΡ с ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹ΠΌΠΈ трудностями.

Π§Π°ΡΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΉ прСдставлСна Π½ΠΈΠΆΠ΅, Π° ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π΄Π°Π²Π°Ρ‚ΡŒΡΡ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ излоТСния ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π° Π² ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π³Π»Π°Π²Π°Ρ….

β€’ ΠΠ΅ Π΄Π΅Π»Π°ΠΉΡ‚Π΅ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ очСрСдности выполнСния Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΠΈ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ². Π’ΠΏΠΎΠ»Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΉ ΠΏΠΎΡ‚ΠΎΠΊ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π²ΠΏΠ»ΠΎΡ‚ΡŒ Π΄ΠΎ своСго Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΏΠΎΡ‚ΠΎΠΊ вСрнСтся ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ CreateThread, ΠΈΠ»ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΉ ΠΏΠΎΡ‚ΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Π’ случаС ΠΆΠ΅ SMP-систСм Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ².

β€’ Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π΄ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ CreateThread Π±Ρ‹Π»ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Ρ‹ всС дСйствия ΠΏΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅Π³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ°, Π»ΠΈΠ±ΠΎ приостановитС ΠΏΠΎΡ‚ΠΎΠΊ ΠΈΠ»ΠΈ ΠΆΠ΅ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ подходящСй ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠΎΠΉ. НСсвоСврСмСнная инициализация Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Ρ… Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ, ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ "условия состязаний" ("race conditions"), ΡΡƒΡ‚ΡŒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΏΠΎΡ‚ΠΎΠΊ "состязаСтся" с Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π½Π°Ρ‡Π½ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ.

β€’ ΠŸΡ€ΠΎΡΠ»Π΅Π΄ΠΈΡ‚Π΅ Π·Π° Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ ΠΈΠΌΠ΅Π» ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ структуру Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΡƒΡŽ Π΅ΠΌΡƒ Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠ°. НС Π΄Π΅Π»Π°ΠΉΡ‚Π΅ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ очСрСдности Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² (ΠΈΠ½Π°Ρ‡Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ΡŒΡΡ с Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ€Π°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒΡŽ "ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ состязаний").