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

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

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

Π£Ρ‡Π΅Ρ‚ Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° 9.1, привСдСнная Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π³Π»Π°Π²Π΅, позволяСт ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ аспСкты ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π² условиях, ΠΊΠΎΠ³Π΄Π° нСсколько ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² ΡΠΎΡ€Π΅Π²Π½ΡƒΡŽΡ‚ΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ собой Π·Π° ΠΏΡ€Π°Π²ΠΎ обладания раздСляСмыми рСсурсами. АналогичныС эффСкты Π±ΡƒΠ΄ΡƒΡ‚ Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚ΡŒΡΡ ΠΈ Π² случаС, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΡ‚ΠΎΠΊΠΈ ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°ΡŽΡ‚ΡΡ для управлСния ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ с использованиСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ malloc ΠΈ free ΠΈΠ· ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠΉ стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π‘, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ эти Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ CRITICAL_SECTION для синхронизации доступа ΠΊ структурС Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΡƒΡ‡ΠΈ (Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π² этом сами ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, просмотрСв исходный ΠΊΠΎΠ΄ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π‘). НиТС описаны Π΄Π²Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… способа ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

β€’ ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ, ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ, ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ дСскриптор Ρ‚ΠΈΠΏΠ° HANDLE для собствСнной ΠΊΡƒΡ‡ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ HeapCreate (Π³Π»Π°Π²Π° 5). ПослС этого для распрСдСлСния памяти вмСсто Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ malloc ΠΈ free ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ HeapAlloc ΠΈ HeapFree.

β€’ Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ окруТСния Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния __MSVCRT_HEAP_SELECT ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ€Π°Π²Π½Ρ‹ΠΌ __GLOBAL_HEAP_SELECTED. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ malloc ΠΈ free Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для управлСния ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ схСму Windows, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ спин-Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ (spin locks) вмСсто ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² CS ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»Π΅Π΅ эффСктивной. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π±Ρ‹Π» ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ Π“Π΅Ρ€Π±Π΅Ρ€Ρ‚ΠΎΠΌ ΠžΡ€Π°ΡˆΠ΅ΠΌ (Gerbert Orasche) Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ "Configuring VC++ Multithreaded Memory Management", ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΠΎΠΉ Π² майском выпускС ΠΆΡƒΡ€Π½Π°Π»Π° Windows Developer's Journal Π·Π° 2000 Π³ΠΎΠ΄, Π° прСдставлСнныС Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΡƒΡŽΡ‚ ΠΎ прСимущСствах Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π² ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

РСзюмС

Windows ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ синхронизации, способных ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² ΠΈ процСссов. Бинхронизация привносит Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ массу ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΡ… самого Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ рассмотрСния, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠ³Π»ΠΎ Π±Ρ‹ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Π½ΠΎ ΠΈ ΠΈΡ… Π²Ρ‹ΡΠΎΠΊΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ.

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

Π’ Π³Π»Π°Π²Π΅ 9 Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ концСнтрируСтся Π½Π° Ρ‚Π΅Ρ… аспСктах ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ связаны с ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½Ρ‹ΠΌ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ΠΎΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Π² Π½ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² синхронизации. Π‘Π½Π°Ρ‡Π°Π»Π° Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Ρ„Π°ΠΊΡ‚ΠΎΡ€Ρ‹, Π²Π»ΠΈΡΡŽΡ‰ΠΈΠ΅ Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ SMP-систСм; Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π΅Π·ΠΊΠΎ ΡƒΡ…ΡƒΠ΄ΡˆΠ°Ρ‚ΡŒΡΡ ΠΈΠ·-Π·Π° ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² Π·Π° ΠΏΡ€Π°Π²ΠΎ владСния рСсурсами, Π² связи с Ρ‡Π΅ΠΌ прСдлагаСтся нСсколько стратСгий, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ эксплуатационных характСристик SMP-систСм Π½Π° высоком ΡƒΡ€ΠΎΠ²Π½Π΅. Π”Π°Π»Π΅Π΅ слСдуСт ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π°Π½Π°Π»ΠΈΠ· достоинств ΠΈ нСдостатков ΠΌΡŒΡŽΡ‚Π΅ΠΊΡΠΎΠ² ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² CRITICAL_SECTION, Π° Π·Π°Ρ‚Π΅ΠΌ рассматриваСтся тонкая настройка ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² CRITICAL_SECTION с использованиСм спин-счСтчиков. Π—Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ Π³Π»Π°Π²Π° рСкомСндациями, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡΡƒΠΌΠΌΠΈΡ€ΡƒΡŽΡ‚ΡΡ извСстныС ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠΈ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ заостряСтся Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… рисках.

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

Windows

Вопросы синхронизации Π²Π°ΠΆΠ½Ρ‹ для любой ОБ, ΠΈ поэтому ΠΌΠ½ΠΎΠ³ΠΈΠ΅ руководства ΠΏΠΎ ОБ содСрТат ΠΈΡ… ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ обсуТдСниС Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±Ρ‰Π΅Π³ΠΎ контСкста.

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

Для ΡƒΠ³Π»ΡƒΠ±Π»Π΅Π½Π½ΠΎΠ³ΠΎ изучСния Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² ΠΈ синхронизации ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ½ΠΈΠ³Ρƒ [6], которая Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π½Π° Π΄Π°ΠΆΠ΅ Ρ‚Π΅ΠΌ, ΠΊΡ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π² срСдС Windows. ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π² этой ΠΊΠ½ΠΈΠ³Π΅ обсуТдСния ΠΈ описания Π² Ρ€Π°Π²Π½ΠΎΠΉ стСпСни ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΈ ΠΊ Windows, Π° пСрСнос ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ послуТит Π²Π°ΠΌ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ ΡƒΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅ΠΌ.

УпраТнСния

8.1.  На Web-сайтС ΠΊΠ½ΠΈΠ³ΠΈ находится вСрсия ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ simplePC.c (ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° 8.1), содСрТащая Π΄Π΅Ρ„Π΅ΠΊΡ‚Ρ‹, которая называСтся simplePCx.c. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Ρƒ этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ ΠΎΠΏΠΈΡˆΠΈΡ‚Π΅ симптомы Π΄Π΅Ρ„Π΅ΠΊΡ‚ΠΎΠ², Ссли ΠΎΠ½ΠΈ ΠΏΡ€ΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ. ВнСситС Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ исправлСния, Π½Π΅ ΡΠ²Π΅Ρ€ΡΡΡΡŒ с ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ.

8.2. Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ simplePC.c Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΠΊ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ Π½ΠΎΠ²Ρ‹Ρ… сообщСний увСличился. (Подсказка. Π£Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ дСлСния Π² Ρ‚ΠΎΠΌ мСстС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π³Π΄Π΅ вызываСтся функция sleep.) Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ Π² ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π»ΠΎΠ³ΠΈΠΊΠΈ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π΅ΠΉ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Ρ… сообщСний. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ поэкспСримСнтируйтС с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ simplePCx.с, содСрТащСй Π΄Π΅Ρ„Π΅ΠΊΡ‚Ρ‹.

8.3. ΠŸΠ΅Ρ€Π΅Π΄Π΅Π»Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ simplePC. с, задСйствовав Π² Π½Π΅ΠΉ ΠΌΡŒΡŽΡ‚Π΅ΠΊΡΡ‹.

8.4. ΠŸΠ΅Ρ€Π΅Π΄Π΅Π»Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ sortMT.c (ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° 7.2), использовав для синхронизации запуска Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π½Π΅ приостановку ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², Π° сСмафор.

8.5. ΠŸΠ΅Ρ€Π΅Π΄Π΅Π»Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ sortMT.c (ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° 7.2), использовав для синхронизации запуска Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π½Π΅ приостановку ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², Π° события. Π’ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΠΎΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ функция SetEvent ΠΈ сбрасываСмоС Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ событиС. Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ Π½Π΅ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π”Π°ΠΉΡ‚Π΅ этому свои объяснСния.

8.6. ΠŸΠΎΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ 8.2, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ автоматичСски ΠΈ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ сбрасываСмых событий, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ SetEvent ΠΈ PulseEvent (Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ функция SetEvent ΠΈ автоматичСски сбрасываСмоС событиС). ΠœΠΎΠ³ΡƒΡ‚ Π»ΠΈ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒΡΡ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΌΠΈ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΈ исходный Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ объявлСнного Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ назначСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹? (Π‘ΠΌ. ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ послС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ 8.2.) ΠžΠ±ΡŠΡΡΠ½ΠΈΡ‚Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΈ пояснитС, Π² Ρ‡Π΅ΠΌ с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния состоит ΠΏΠΎΠ»Π΅Π·Π½ΠΎΡΡ‚ΡŒ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π»ΠΈ Π²Ρ‹ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ² Π»ΠΎΠ³ΠΈΠΊΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹? 

8.7. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΏΡƒΠ» Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², Π½ΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΡƒΠΉΡ‚Π΅ Ρ‚Π°ΠΊΠΎΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ частотой выполнСния Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π° протяТСнии любого односСкундного ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΌΠΎΠ³ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡ‚ΠΎΠΊ. Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π° протяТСнии ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° ΠΌΠΎΠ³Π»ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π΄Π²Π° ΠΏΠΎΡ‚ΠΎΠΊΠ°, Π½ΠΎ суммарная частота выполнСния ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² соотвСтствовала ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΏΠΎΡ‚ΠΎΠΊΡƒ Π² сСкунду. Подсказка. Π Π°Π±ΠΎΡ‡ΠΈΠ΅ ΠΏΠΎΡ‚ΠΎΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ наступлСния события (события ΠΊΠ°ΠΊΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°?) ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ ΠΏΠΎΡ‚ΠΎΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ΡŒ событиС Π² сигнальноС состояниС (с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ SetEvent ΠΈΠ»ΠΈ PulseEvent?) ΠΊΠ°ΠΆΠ΄ΡƒΡŽ сСкунду.

8.8. Π£ΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½Π½ΠΎΠΉ слоТности. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ CRITICAL_SECTION ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для использования ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ процСсса. Π§Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, Ссли ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ CS Π±ΡƒΠ΄Π΅Ρ‚ создан Π² раздСляСмой ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠΉ области памяти? Π‘ΠΌΠΎΠ³ΡƒΡ‚ Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ CS ΠΎΠ±Π° процСсса? Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ провСсти ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ экспСримСнт, ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ»ΠΈΡΡŒ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… процСссах.  

ГЛАВА 9

ВлияниС синхронизации Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎ Π΅Π΅ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡŽ

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

НСсмотря Π½Π° всю Π²Π°ΠΆΠ½ΠΎΡΡ‚ΡŒ синхронизации ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ этого срСдства сопряТСно со Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ рисками сниТСния ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΠΈΠΆΠ΅ частично ΠΎΠ±ΡΡƒΠΆΠ΄Π°ΡŽΡ‚ΡΡ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΊΠ°ΠΊ однопроцСссорных, Ρ‚Π°ΠΊ ΠΈ многопроцСссорных (SMP) систСм. Π£ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ собствСнныС достоинства ΠΈ нСдостатки. НапримСр, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ CRITICAL_SECTION (CS) ΠΈ ΠΌΡŒΡŽΡ‚Π΅ΠΊΡΡ‹ ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‚ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ свойствами ΠΈ Ρ€Π΅ΡˆΠ°ΡŽΡ‚ ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚Ρƒ ΠΆΠ΅ Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ. Π’ΠΎΠΎΠ±Ρ‰Π΅ говоря, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ эффСктивным ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠΌ блокирования ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ CS, хотя это справСдливо Π½Π΅ Π²ΠΎ всСх ситуациях. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² Π³Π»Π°Π²Π΅ 10, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ CS ΠΌΠ΅Π½Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ Π² Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΌΡŒΡŽΡ‚Π΅ΠΊΡΠ°ΠΌΠΈ. Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях достаточно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², Π° ΠΏΡ€ΠΈ Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ прилоТСния ΠΈΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ Π±Π΅Π· использования ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² синхронизации.