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

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

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

НиТС приводятся Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΈ мнСмоничСскиС ΠΏΡ€Π°Π²ΠΈΠ»Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π°ΠΌ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠ³ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ.

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

β€’ Π‘Ρ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ Π²Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ Π² смысл ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² ΠΈ ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚ΠΎΠ² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… условий, Π΄Π°ΠΆΠ΅ Ссли ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ Π½Π΅Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ условиС, Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½Π½ΠΎΠ΅ ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚ΠΎΠΌ, всСгда выполняСтся Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ критичСского участка ΠΊΠΎΠ΄Π°.

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

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

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

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

Π—Π° Ρ€Π°ΠΌΠΊΠ°ΠΌΠΈ Windows API

Π’ своСм рассмотрСнии ΠΌΡ‹ Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π½ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ»ΠΈΡΡŒ случаСм Windows API. ВмСстС с Ρ‚Π΅ΠΌ, Microsoft прСдоставляСт Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ срСдства доступа ΠΊ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ ядра, ΠΊΠ°ΠΊ ΠΏΠΎΡ‚ΠΎΠΊΠΈ. Π’Π°ΠΊ, класс ThreadPool, доступный Π² C++, Π‘# ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… языках программирования, позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡƒΠ»Ρ‹ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² ΠΈ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ Π·Π°Π΄Π°Ρ‡ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² (для этого слуТит ΠΌΠ΅Ρ‚ΠΎΠ΄ QueueUserWorkItem класса ThreadPool).

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Microsoft Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ слуТбу Microsoft Message Queuing (MSMQ), которая прСдоставляСт услуги ΠΏΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ сообщСний ΠΌΠ΅ΠΆΠ΄Ρƒ сСтСвыми систСмами. ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π² Π΄Π°Π½Π½ΠΎΠΉ Π³Π»Π°Π²Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Π» ΠΏΡ€ΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Π°ΠΌ, насколько ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Π΅ систСмы ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈΠ·Π°Ρ†ΠΈΠΈ сообщСний. MSMQ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π° Π½Π° Web-сайтС ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Microsoft.

РСзюмС

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

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

Π’Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ΄ΡƒΠΌΡ‹Π²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ ΠΏΡƒΡ‚Π΅ΠΉ Π΅Π³ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ являСтся ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ способом ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ качСства ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π’ΠΎΠ·Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ‡Ρ€Π΅Π·ΠΌΠ΅Ρ€Π½Ρ‹Ρ… Π½Π°Π΄Π΅ΠΆΠ΄ Π½Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ тСстирования ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ Π±Π΅Π· Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π΅Π»ΠΈΡ‚ΡŒ Π΄ΠΎΠ»ΠΆΠ½ΠΎΠ΅ внимания дСталям, ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ возникновСнию ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ ΠΈ ΡƒΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ.

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

Π’ Π³Π»Π°Π²Π΅ 11 ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ взаимодСйствиС ΠΌΠ΅ΠΆΠ΄Ρƒ процСссами ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΌΠΈΡΡ Π²Π½ΡƒΡ‚Ρ€ΠΈ этих процСссов, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΊΠ°Π½Π°Π»Ρ‹ (named pipes) ΠΈ ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹Π΅ ящики (mailslots) Windows. Π’ качСствС основного ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π²Ρ‹Π±Ρ€Π°Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚-сСрвСрная систСма, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ для обслуТивания запросов ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡƒΠ» Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ². Π’ Π³Π»Π°Π²Π΅ 12 эта ΠΆΠ΅ систСма рСализуСтся с ΠΏΡ€ΠΈΠ²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π³Π½Π΅Π·Π΄ Windows Sockets, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π΅ ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½ΠΎΠΉ для использования стандартных ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ². Π’ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚-сСрвСрной систСмС ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ бСзопасныС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ DLL с ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ, Π° сСрвСр ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ внутрипроцСссный сСрвСр (in-process server) Π½Π° основС DLL.

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

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠΎΠΌ большСй части ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈ совСтов ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π² ΠΊΠΎΠ½Ρ†Π΅ настоящСй Π³Π»Π°Π²Ρ‹, послуТила ΠΊΠ½ΠΈΠ³Π° [6]. Из Π½Π΅Π΅ ΠΆΠ΅ Π±Ρ‹Π»ΠΎ взято Π² ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π½Π° Π±Π°Π·Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π±Π°Ρ€ΡŒΠ΅Ρ€Π°, использованноС Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… 10.1 ΠΈ 10.2.

Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ Дугласа Π¨ΠΌΠΈΠ΄Ρ‚Π° (Douglas Schmidt) ΠΈ Π˜Ρ€Ρ„Π°Π½Π° ΠŸΡŒΡΡ€Π°Π»ΠΈ (Irfan Pyarali) "Strategies for Implementing POSIX Condition Variables in Win32" ("Π‘Ρ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… условий POSIX Π² Win32") (доступна ΠΏΠΎ адрСсу http:// www.es.wustl.edu/~schmidt/win32-cv-1.html), обсуТдаСтся ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΡΡ‚ΡŒ ΡΠΎΠ±Ρ‹Ρ‚ΠΈΠΉ Win32 (Windows) ΠΈ эмуляция ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… условий, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΄Π°Π½ Π³Π»ΡƒΠ±ΠΎΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ· ΠΈ ΠΎΡ†Π΅Π½ΠΊΠ° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ². ВмСстС с Ρ‚Π΅ΠΌ, этот ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» Π±Ρ‹Π» написан Π΅Ρ‰Π΅ Π΄ΠΎ появлСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ SignalObjectAndWait, ΠΈ поэтому большоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ удСляСтся Ρ‚ΠΎΠΌΡƒ, ΠΊΠ°ΠΊ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ сигналов. Π§Ρ‚Π΅Π½ΠΈΠ΅ этой ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ ΠΏΠΎ достоинству ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ возмоТности Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Π’ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ Ρ‚Π΅Ρ… ΠΆΠ΅ Π°Π²Ρ‚ΠΎΡ€ΠΎΠ² (http://www.cs.wustl.edu/~schmidt/win32-cv-2.html) рассматриваСтся созданиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΎΠ±ΠΎΠ»ΠΎΡ‡Π΅ΠΊ Π²ΠΎΠΊΡ€ΡƒΠ³ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² синхронизации Windows, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ нСзависимости интСрфСйса синхронизации ΠΎΡ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Основанная Π½Π° Ρ€Π°Π±ΠΎΡ‚Π΅ Π¨ΠΌΠΈΠ΄Ρ‚Π° ΠΈ ΠŸΡŒΡΡ€Π°Π»ΠΈ рСализация, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΠΎΡ‚ΠΎΠΊΠΈ Pthreads, доступна ΠΏΠΎ адрСсу http://sources.redhat.com/pthreads-win32/.

УпраТнСния

10.1. ΠŸΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ 10.1, ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΠ² ΠΈΠ· Π½Π΅Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ SignalObjectAndWait; для тСстирования ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ Windows 9Ρ….

10.2. ΠœΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ evenpc (ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° 8.2), использовав модСль ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… условий ΠΈ обСспСчив Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ сущСствования Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»Π΅ΠΉ. Бобытия ΠΊΠ°ΠΊΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС?

10.3. Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π»ΠΎΠ³ΠΈΠΊΡƒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ 10.2 Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ события ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠ» Π² сигнальноС состояниС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·.

10.4. Π—Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΌΡŒΡŽΡ‚Π΅ΠΊΡ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ 10.2, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ CS. КакоС влияниС это ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ½ΡƒΡŽ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹? РСшСниС находится Π½Π° Web-сайтС ΠΊΠ½ΠΈΠ³ΠΈ, Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π’.

10.5. Π”ля ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ†ΠΈΠΈ состояний ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ½Π° Π½Π΅ пуста ΠΈΠ»ΠΈ Π½Π΅ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π°, Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ 10.4 примСняСтся ΡˆΠΈΡ€ΠΎΠΊΠΎΠ²Π΅Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ модСль CV. Π‘ΡƒΠ΄Π΅Ρ‚ Π»ΠΈ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ сигнальная модСль CV? НС являСтся Π»ΠΈ ΠΎΠ½Π° Π΄Π°ΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡΡ…? Π‘ΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π’.

10.6. ΠŸΠΎΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ с Ρ€Π°Π·ΠΌΠ΅Ρ€Π°ΠΌΠΈ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ ΠΈ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½ΠΎΠΉ коэффициСнта блокирования "ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚Ρ‡ΠΈΠΊ/ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊ" Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ 10.5 для выяснСния Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠ΅ влияниС ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ эти Ρ„Π°ΠΊΡ‚ΠΎΡ€Ρ‹ Π½Π° Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ ЦП, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ½ΡƒΡŽ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

10.7. Π’ΠΈΠ΄ΠΎΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ 10.3–10.5, обСспСчив ΠΈΡ… соотвСтствиС принятым Π² Windows соглашСниям ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π°Ρ… образования ΠΈΠΌΠ΅Π½, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΡ‹ придСрТиваСмся Π½Π° протяТСнии всСй ΠΊΠ½ΠΈΠ³ΠΈ.

10.8. Π”ля программистов Π½Π° C++. ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… 10.3 ΠΈ 10.4 ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для создания Π² C++ класса синхронизированной ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ; ΡΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ этот класс ΠΈ протСстируйтС Π΅Π³ΠΎ, ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ 10.5. КакиС ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ общСдоступными, Π° ΠΊΠ°ΠΊΠΈΠ΅ β€” Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌΠΈ?

10.9. Π˜ΡΡΠ»Π΅Π΄ΡƒΠΉΡ‚Π΅, ΠΊΠ°ΠΊ измСнятся ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ 10.5 послС Π·Π°ΠΌΠ΅Π½Ρ‹ ΠΌΡŒΡŽΡ‚Π΅ΠΊΡΠΎΠ² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ CRITICAL_SECTIONS.

10.10. Π£Π»ΡƒΡ‡ΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ 10.5, ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ прСкращСния выполнСния ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° ΠΈ ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊΠ°. ΠŸΠΎΡ‚ΠΎΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ°Ρ‚ΡŒ своС Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅.

10.11. ΠΠ° web-сайтС находится Ρ„Π°ΠΉΠ» multisem.c, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ слоТный сСмафор, ΠΈΠΌΠΈΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Windows (ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΈΠΌΠ΅Π½Π° ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ бСзопасности, ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π·Π΄Π΅Π»ΡΡ‚ΡŒΡΡ процСссами, ΠΈ для Π½ΠΈΡ… прСдусмотрСны Π΄Π²Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ оТидания), Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ„Π°ΠΉΠ» тСстовой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ TestMultiSem.c. Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ сборку ΠΈ тСстированиС этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Как Π² Π½Π΅ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ модСль ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… условий? ΠŸΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ΡΡ Π»ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ использования ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° CRITICAL_SECTION? Π§Ρ‚ΠΎ здСсь выступаСт Π² Ρ€ΠΎΠ»ΠΈ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² ΠΈ ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚ΠΎΠ² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… условий?