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

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

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

β€’ Π Π°Π²Π½ΠΎΠΏΡ€Π°Π²Π½ΠΎΠ΅ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ (peer-to-peer scheduling). ΠžΠ±Π»Π΅Π³Ρ‡Π΅Π½Π½Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ сам опрСдСляСт, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠ±Π»Π΅Π³Ρ‡Π΅Π½Π½Ρ‹Ρ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ. ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠ³ΠΎ ΠΎΠ±Π»Π΅Π³Ρ‡Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π° Ρ‚Π°ΠΊΠΈΡ… стратСгиях, ΠΊΠ°ΠΊ ΠΊΡ€ΡƒΠ³ΠΎΠ²ΠΎΠ΅ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ (round-robin scheduling), ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π½ΠΎΠ΅ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° основании схСмы ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠ² ΠΈ Ρ‚ΠΎΠΌΡƒ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅. По ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ Ρ€Π°Π²Π½ΠΎΠΏΡ€Π°Π²Π½ΠΎΠ³ΠΎ планирования Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ΡΡ сопрограммы. На рис. 7.5 Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° управлСния осущСствляСтся ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠ±Π»Π΅Π³Ρ‡Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ 0 ΠΈ 2.

РСзюмС

Windows ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΠΎΡ‚ΠΎΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΡŽΡ‚ΡΡ нСзависимо Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π°, Π½ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ адрСсноС пространство ΠΈ рСсурсы ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ процСсса. ΠŸΠΎΡ‚ΠΎΠΊΠΈ Π΄Π°ΡŽΡ‚ программисту Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌ выполнСния Π·Π°Π΄Π°Ρ‡ для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ прилоТСния. ΠŸΠΎΡ‚ΠΎΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ Π²Ρ‹ΠΈΠ³Ρ€Ρ‹Ρˆ Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π΄Π°ΠΆΠ΅ Π² однопроцСссорных систСмах.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π³Π»Π°Π²Π°Ρ…

РассмотрСниС Ρ‚Π΅ΠΌΡ‹ синхронизации, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ начинаСтся Π² Π³Π»Π°Π²Π΅ 8 с описания ΠΈ ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² синхронизации Windows, продолТаСтся Π² Π³Π»Π°Π²Π°Ρ… 9 ΠΈ 10 обсуТдСниСм Π±ΠΎΠ»Π΅Π΅ слоТных вопросов синхронизации с ΠΏΡ€ΠΈΠ²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ΠΌ многочислСнных ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ². Π’ Π³Π»Π°Π²Π΅ 11 рСализуСтся сСрвСр с ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ; ΠΎΠ½ ΠΏΠΎΠΊΠ°Π·Π°Π½ Π½Π° рис. 7.1.

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Π°

Windows

Книга [1] ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ посвящСна ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌ Win32. Π’Π°ΠΊΠΆΠ΅ Π·Π°ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‚ внимания ΠΊΠ½ΠΈΠ³ΠΈ [26] ΠΈ [7]. Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΈΠ· этих ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠ½ΠΈΠ³ Π½Π΅ ΡƒΡ‡Ρ‚Π΅Π½Ρ‹ Π½ΠΎΠ²ΡˆΠ΅ΡΡ‚Π²Π°, появившиСся Π² Windows 2000, XP ΠΈ Server 2003. 

UNIX ΠΈ Pthreads

Π’ ΠΊΠ½ΠΈΠ³Π΅ [40] ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π² UNIX Π½Π΅ рассматриваСтся, ΠΎΠ΄Π½Π°ΠΊΠΎ для изучСния этой Ρ‚Π΅ΠΌΡ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ½ΠΈΠ³Ρƒ [6]. Π’ этой ΠΊΠ½ΠΈΠ³Π΅ Π΄Π°ΡŽΡ‚ΡΡ многочислСнныС Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ, ΠΊΠ°ΡΠ°ΡŽΡ‰ΠΈΠ΅ΡΡ проСктирования ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Π°Ρ Π² Π½Π΅ΠΉ информация ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠ° Π² Ρ€Π°Π²Π½ΠΎΠΉ стСпСни ΠΊΠ°ΠΊ ΠΊ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌ Pthreads, Ρ‚Π°ΠΊ ΠΈ ΠΊ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌ Windows, ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π±Π΅Π· Ρ‚Ρ€ΡƒΠ΄Π° пСрСносятся Π² Windows. Π’ Π½Π΅ΠΉ Ρ‚Π°ΠΊΠΆΠ΅ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Ρ‹ ΠΌΠΎΠ΄Π΅Π»ΠΈ "хозяин/Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ", "ΠΊΠ»ΠΈΠ΅Π½Ρ‚/сСрвСр" ΠΈ конвСйСрная модСль, ΠΈ прСдставлСниС Π‘ΡƒΡ‚Π΅Π½Ρ…ΠΎΡ„Π° (Butenhof) Π±Ρ‹Π»ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΎ Π² основу описания ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Π² Π΄Π°Π½Π½ΠΎΠΉ Π³Π»Π°Π²Π΅.

УпраТнСния

7.1. Π Π΅Π°Π»ΠΈΠ·ΡƒΠΉΡ‚Π΅ Π½Π°Π±ΠΎΡ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΈ Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², ΠΈ, ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ счСтчика приостановок ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ².

7.2. Π‘Ρ€Π°Π²Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ поиска, ΠΎΠ΄Π½Π° ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΠΎΡ‚ΠΎΠΊΠΈ (ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° 7.1, GrepMT), Π° другая β€” процСссы (ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° 6.1, GrepMP). Π‘Ρ€Π°Π²Π½ΠΈΡ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ с Ρ‚Π΅ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π’.

7.3. ΠŸΡ€ΠΎΠ²Π΅Π΄ΠΈΡ‚Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ исслСдованиС ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ GrepMT для случаСв, ΠΊΠΎΠ³Π΄Π° Ρ„Π°ΠΉΠ»Ρ‹ находятся Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… дисках ΠΈΠ»ΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ сСтСвыми Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅ Π²Ρ‹ΠΈΠ³Ρ€Ρ‹Ρˆ Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Ссли Ρ‚Π°ΠΊΠΎΠ²ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚ΡŒΡΡ, Π² случаС SMP-систСм.

7.4. Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ 7.1, GrepMT, Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½Π° Π²Ρ‹Π²ΠΎΠ΄ΠΈΠ»Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π² Ρ‚ΠΎΠΉ очСрСдности, Π² ΠΊΠ°ΠΊΠΎΠΉ Ρ„Π°ΠΉΠ»Ρ‹ ΡƒΠΊΠ°Π·Π°Π½Ρ‹ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС. Π‘ΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π»ΠΈ эти измСнСния ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π½Π° показатСлях ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ?

7.5. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΡƒΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ 7.1, GrepMT, Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½Π° Π²Ρ‹Π²ΠΎΠ΄ΠΈΠ»Π° врСмя, ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π²ΡˆΠ΅Π΅ΡΡ для выполнСния ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ². Для этого Π²Π°ΠΌ понадобится функция GetThreadTimes, аналогичная Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ GetProcessTimes, которая Π±Ρ‹Π»Π° использована Π² Π³Π»Π°Π²Π΅ 6. Π£ΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΠ΅ смоТСт Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ лишь Π² Windows NT4 ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΡ… вСрсиях.

7.6. ΠΠ° Web-сайтС ΠΊΠ½ΠΈΠ³ΠΈ находится многопоточная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° подсчСта слов, wcMT.c, структура ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Π° структурС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ grepMT.c. Π’Π°ΠΌ ΠΆΠ΅ находится вСрсия этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, wcMTx, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π±Ρ‹Π»ΠΈ Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π½ΠΎ Π²Π²Π΅Π΄Π΅Π½Ρ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π΅Ρ„Π΅ΠΊΡ‚Ρ‹. ΠŸΠΎΠΏΡ‹Ρ‚Π°ΠΉΡ‚Π΅ΡΡŒ Π½Π°ΠΉΡ‚ΠΈ ΠΈ ΡƒΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Π΄Π΅Ρ„Π΅ΠΊΡ‚Ρ‹, Π² Ρ‚ΠΎΠΌ числС ΠΈ синтаксичСскиС ошибки, Π½Π΅ ΡΠ²Π΅Ρ€ΡΡΡΡŒ с ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, создайтС тСстовыС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹, ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ эти Π΄Π΅Ρ„Π΅ΠΊΡ‚Ρ‹, ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ экспСримСнты ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ сти, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Π΅ Ρ‚Π΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π»ΠΈΡΡŒ для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ grepMT. На Web-сайтС находится Ρ‚Π°ΠΊΠΆΠ΅ однопоточная вСрсия упомянутой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, wcST.c, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ Π»ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΈ Π²Ρ‹ΠΈΠ³Ρ€Ρ‹Ρˆ Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ.

7.7. ΠΠ° Web-сайтС находится ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° grepMTx.c, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ Π΄Π΅Ρ„Π΅ΠΊΡ‚Ρ‹, связанныС с Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ΠΌ Π±Π°Π·ΠΎΠ²Ρ‹Ρ… ΠΏΡ€Π°Π²ΠΈΠ», соблюдСниС ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ для бСзопасного выполнСния Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ². ΠžΠΏΠΈΡˆΠΈΡ‚Π΅, ΠΊ Ρ‡Π΅ΠΌΡƒ это ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°ΠΉΠ΄ΠΈΡ‚Π΅ ΠΈ устранитС ошибки.

7.8. Π”ля ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ sortMT трСбуСтся, Ρ‡Ρ‚ΠΎΠ±Ρ‹ количСство записСй Π² массивС Π½Π°Ρ†Π΅Π»ΠΎ дСлилось Π½Π° количСство ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², Π° количСство ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Ρ€Π°Π²Π½ΡΠ»ΠΎΡΡŒ стСпСни 2. УстранитС эти ограничСния.

7.9. Π£ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΡƒΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ sortMT Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π² случаях, ΠΊΠΎΠ³Π΄Π° количСство ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС, Ρ€Π°Π²Π½ΠΎ 0, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° опрСдСляла количСство процСссоров, установлСнных Π² локальной систСмС, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ GetSystemInfo. Задавая количСство ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Ρ€Π°Π²Π½Ρ‹ΠΌ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ ΠΊΡ€Π°Ρ‚Π½Ρ‹ΠΌ количСства процСссоров (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ коэффициСнты кратности 1, 2, 4 ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅), ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅, измСняСтся Π»ΠΈ ΠΏΡ€ΠΈ этом ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. 

7.10. Π’ΠΈΠ΄ΠΎΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ sortMT Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ ΠΏΠΎΡ‚ΠΎΠΊΠΈ Π½Π΅ ΠΏΡ€ΠΈΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Π»ΠΈΡΡŒ ΠΏΡ€ΠΈ ΠΈΡ… создании. Π‘ΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π»ΠΈ, ΠΈ Ссли Π΄Π°, Ρ‚ΠΎ ΠΊΠ°ΠΊΠΈΠΌ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΈ этом Π½Π΅ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ условия состязаний Π½Π° Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹?

7.11. Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ sortMT, Π΅Ρ‰Π΅ Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ ΠΏΠΎΡ‚ΠΎΠΊΠΈ, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠ΅ сортировку, осущСствляСтся считываниС всСго Ρ„Π°ΠΉΠ»Π° основным ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ. Π’ΠΈΠ΄ΠΎΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ считывал Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ»Π°.

7.12. Π’ΠΈΠ΄ΠΎΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΎΠ΄Π½Ρƒ ΠΈΠ· ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π² Π΄Π°Π½Π½ΠΎΠΉ Π³Π»Π°Π²Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ (grepMT ΠΈΠ»ΠΈ sortMT) Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ спСцифичСская для ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² информация частично ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π»Π°ΡΡŒ Ρ‡Π΅Ρ€Π΅Π· TLS, Π° Π½Π΅ Ρ‡Π΅Ρ€Π΅Π· структуры Π΄Π°Π½Π½Ρ‹Ρ….

7.13. ΠΠ°Π±Π»ΡŽΠ΄Π°Π΅Ρ‚ся Π»ΠΈ Π²Ρ‹ΠΈΠ³Ρ€Ρ‹Ρˆ Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π² случаС прСдоставлСния Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ sortMT Π±ΠΎΠ»Π΅Π΅ высокого ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π° ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ со всСми ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ? НапримСр, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π²Ρ‹Π³ΠΎΠ΄Π½Ρ‹ΠΌ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌ, ΠΊΠ°ΠΊ ΠΏΠΎΡ‚ΠΎΠΊ 3 Π½Π° рис. 7.2, которая занята лишь сортировкой Π±Π΅Π· слияния, Π±ΠΎΠ»Π΅Π΅ высокий ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚, Ρ‡Π΅ΠΌ всСм ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ. ΠžΠ±ΡŠΡΡΠ½ΠΈΡ‚Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹.

7.14. Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ sortMT всС ΠΏΠΎΡ‚ΠΎΠΊΠΈ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Π² приостановлСнном состоянии с Ρ‚ΠΎΠΉ Ρ†Π΅Π»ΡŒΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ создания условий состязаний. Π’ΠΈΠ΄ΠΎΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ эту ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡ‚ΠΎΠΊΠΈ создавались Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ порядкС ΠΈ Π² состоянии выполнСния. ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡŽΡ‚ Π»ΠΈ послС этого ΠΎΡΡ‚Π°Π²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ прСдпосылки для сущСствования условий состязаний? Π‘Ρ€Π°Π²Π½ΠΈΡ‚Π΅ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠΉ ΠΈ исходной вСрсий ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. 

7.15. Алгоритм быстрой сортировки (Quicksort), ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ qsort Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π‘, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, характСризуСтся высоким быстродСйствиСм, Π½ΠΎ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΌΠ΅Π΄Π»ΡΡ‚ΡŒΡΡ. Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ ΡƒΡ‡Π΅Π±Π½ΠΈΠΊΠΎΠ² ΠΏΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°ΠΌ рассматриваСтся Π΅Π³ΠΎ вСрсия, которая Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ быстрСС всСго Π² Ρ‚Π΅Ρ… случаях, ΠΊΠΎΠ³Π΄Π° массив отсортирован Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ порядкС, ΠΈ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ всСго, ΠΊΠΎΠ³Π΄Π° массив являСтся ΡƒΠΆΠ΅ отсортированным. Однако рСализация этого Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ Microsoft Π‘ Π²Π΅Π΄Π΅Ρ‚ сСбя ΠΈΠ½Π°Ρ‡Π΅. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ ΠΈΠ· ΠΊΠΎΠ΄Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠ°ΠΊΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ элСмСнтов массива Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ Π½Π°ΠΈΠ»ΡƒΡ‡ΡˆΠΈΠΌ ΠΈ Π½Π°ΠΈΡ…ΡƒΠ΄ΡˆΠΈΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌ, ΠΈ исслСдуйтС ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ sortMT для этих Π΄Π²ΡƒΡ… ΠΊΡ€Π°ΠΉΠ½ΠΈΡ… случаСв. Как влияСт Π½Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΠ΅ количСства ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²? ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π‘ ΠΌΠΎΠ³ Π±Ρ‹Ρ‚ΡŒ установлСн Π² ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ CRT основного ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Visual Studio Π½Π° вашСй машинС. Π˜Ρ‰ΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ qsort.с. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΠΎΡ‚Ρ‹ΡΠΊΠ°Ρ‚ΡŒ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π½Π° установочном ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚-дискС.

7.16. На Web-сайтС содСрТится ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° sortMTx, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π±Ρ‹Π»ΠΈ Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π½ΠΎ внСсСны Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π΅Ρ„Π΅ΠΊΡ‚Ρ‹. ΠŸΡ€ΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π΄Π΅Ρ„Π΅ΠΊΡ‚ΠΎΠ² Π½Π° тСстовых ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚Π΅ ΠΈ устранитС ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Π΄Π΅Ρ„Π΅ΠΊΡ‚Ρ‹, Π½Π΅ ΡΠ²Π΅Ρ€ΡΡΡΡŒ с ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΌΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠΌΠΈ. ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π΅Ρ€Π΅ΠΆΠ΅Π½ΠΈΠ΅. ВСрсии ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π΄Π΅Ρ„Π΅ΠΊΡ‚Ρ‹, ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΊΠ°ΠΊ синтаксичСскиС ошибки, Ρ‚Π°ΠΊ ΠΈ ошибки Π² Π»ΠΎΠ³ΠΈΠΊΠ΅ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ выполнСния ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ².

7.17. ΠŸΡ€ΠΎΡ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΡΡ‚Π°Ρ‚ΡŒΡŽ ДТСйсона ΠšΠ»Π°Ρ€ΠΊΠ° (Jason Clark) "Waiting for More than 64 Objects" ("ОТиданиС Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ 64 ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²"), ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΡƒΡŽ Π² ΠΎΠΊΡ‚ΡΠ±Ρ€ΡŒΡΠΊΠΎΠΌ Π½ΠΎΠΌΠ΅Ρ€Π΅ ΠΆΡƒΡ€Π½Π°Π»Π° Windows Developer's Journal Π·Π° 1997 Π³ΠΎΠ΄. ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅ описанноС Π² Π½Π΅ΠΉ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ grepMT. Найти старыС выпуски ΠΆΡƒΡ€Π½Π°Π»ΠΎΠ² ΠΈΠ½ΠΎΠ³Π΄Π° Π±Ρ‹Π²Π°Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ, поэтому Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ ΠΊΠ°ΠΊΠΈΠΌ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ поисковым ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠΌ для поиска сразу ΠΏΠΎ нСскольким ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словам. Мною для этого поиска Π±Ρ‹Π»Π° использована Ρ„Ρ€Π°Π·Π° "wait for multiple objects more than 64", хотя Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π±ΠΎΠ»Π΅Π΅ эффСктивными. 

ГЛАВА 8

Бинхронизация ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²

ΠŸΠΎΡ‚ΠΎΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΠΏΡ€ΠΎΡ‰Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ ΠΏΠΎΠ²Ρ‹ΡˆΠ°Ρ‚ΡŒ ΠΈΡ… ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Π½ΠΎ ΠΈΡ… использованиС Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ принятия ΠΌΠ΅Ρ€ ΠΏΠΎ Π·Π°Ρ‰ΠΈΡ‚Π΅ раздСляСмых рСсурсов ΠΎΡ‚ ΠΏΠΎΠΏΡ‹Ρ‚ΠΎΠΊ ΠΈΡ… измСнСния ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ нСсколькими ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ создания Ρ‚Π°ΠΊΠΈΡ… условий, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠΎΡ‚ΠΎΠΊΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ лишь Π² ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° запрос ΠΈΠ»ΠΈ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° это являСтся Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌ. Π’ настоящСй Π³Π»Π°Π²Π΅ прСдставлСны способы Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ этих Π·Π°Π΄Π°Ρ‡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² синхронизации Windows β€” критичСских участков ΠΊΠΎΠ΄Π°, ΠΌΡŒΡŽΡ‚Π΅ΠΊΡΠΎΠ², сСмафоров ΠΈ событий, Π° Ρ‚Π°ΠΊΠΆΠ΅ описаны Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ состязаний ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚ΡŒΡΡ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ использования ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ². ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ синхронизации ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ для синхронизации ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΡ… ΠΊΠ°ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅, Ρ‚Π°ΠΊ ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ процСссам.