ΠΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ²
ΠΠ±ΡΠ΅ΠΊΡΡ-Π²Π·Π°ΠΈΠΌΠΎΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ (ΠΌΡΡΡΠ΅ΠΊΡΡ, mutex — ΠΎΡ MUTual EXclusion) ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½ΠΈΡΠΎΠ²Π°ΡΡ Π²Π·Π°ΠΈΠΌΠ½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΠΌΠΎΠΌΡ ΡΠ΅ΡΡΡΡΡ. Π‘ΠΈΠ³Π½Π°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° (Ρ.Π΅. ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ «ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½») ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΌΠΎΠΌΠ΅Π½ΡΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±ΡΠ΅ΠΊΡ Π½Π΅ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΉ Π½ΠΈΡΠΈ ΠΈ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ «Π·Π°Ρ Π²Π°ΡΠΈΡΡ». Π Π½Π°ΠΎΠ±ΠΎΡΠΎΡ, ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ «ΡΠ±ΡΠΎΡΠ΅Π½» (Π½Π΅ ΡΠΈΠ³Π½Π°Π»ΡΠ½ΠΎΠ΅) ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΌΠΎΠΌΠ΅Π½ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΊΠ°ΠΊΠ°Ρ-Π»ΠΈΠ±ΠΎ Π½ΠΈΡΡ ΡΠΆΠ΅… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
ΠΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ² (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
ΠΠΠ‘ΠΠΠΠ‘ΠΠΠ ΠΠΠΠΠ¦ΠΠΠΠΠ«Π ΠΠΠ‘Π’ΠΠ’Π£Π’
(ΠΠΠ¦ΠΠΠΠΠΠ¬ΠΠ«Π ΠΠ‘Π‘ΠΠΠΠΠΠΠ’ΠΠΠ¬Π‘ΠΠΠ Π£ΠΠΠΠΠ Π‘ΠΠ’ΠΠ’) ΠΠ°ΡΠ΅Π΄ΡΠ° 302
ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ
ΠΠΎΠΊΠ»Π°Π΄ Π½Π° ΡΠ΅ΠΌΡ
«ΠΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ²»
ΠΡΡΡ: «Π‘ΠΈΡΡΠ΅ΠΌΡ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ»
ΠΡΠΏΠΎΠ»Π½ΠΈΠ» ΡΡΡΠ΄Π΅Π½Ρ Π³ΡΡΠΏΠΏΡ 03−423:
ΠΠ΅ΡΡΡΡΠΊΠΎΠ² Π.Π.
ΠΡΠΎΠ²Π΅ΡΠΈΠ»:
Π‘Π΅ΠΊΡΠ΅ΡΠ°ΡΠ΅Π² Π.Π.
ΠΠΎΡΠΊΠ²Π° 2013 Π³.
Π‘ΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² Π² ΡΠΈΡΡΠ΅ΠΌΠ°Ρ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ΄ΠΊΠ° ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ (synchronization). Π‘ΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°ΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π·Π°ΡΠΈΡΡ ΡΠ΅ΡΡΡΡΠΎΠ² — Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠΈΠ²Π°Π΅ΡΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ΅ΡΡΡΡΡ. Π’ΠΎ Π΅ΡΡΡ, ΠΏΡΠΎΡΠ΅ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ΅ΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΠ» Π΅Π³ΠΎ.
ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π΄Π»Ρ Π·Π°ΡΠΈΡΡ ΡΠ΅ΡΡΡΡΠΎΠ² Π½Π΅ Π»ΡΡΡΠΈΠΉ Π²ΡΡ ΠΎΠ΄, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠ°ΠΌΠΈ ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ ΠΎΠ±ΡΠΈΠΌ ΡΠ΅ΡΡΡΡΠΎΠΌ. Π‘ΡΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π·Π°ΡΠΈΡΡ ΡΠ°Π·Π΄Π΅Π»Π΅Π½Ρ Π²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΡΠ΅ΡΠ²Π°Π½Ρ Π² Π»ΡΠ±ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ. ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΡΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΡΡΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΈΠ·Π»ΠΈΡΠ½ΠΈΠ΅ Π·Π°ΡΡΠ°ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΎΠ±ΡΠΈΡΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ ΡΡΠ΅Π΄ΡΡΠ² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅ΡΡΡ Π²Π·Π°ΠΈΠΌΠ½Π°Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ². ΠΠΎΡΡΠ΅Π±Π½ΠΎΡΡΡ Π² ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΌΡΠ»ΡΡΠΈΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΈ ΡΠ²ΡΠ·Π°Π½Π° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΡ ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠ΅ΡΡΡΡΠΎΠ² Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ. Π‘ΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° Π΄Π»Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π³ΠΎΠ½ΠΎΠΊ ΠΈ ΡΡΠΏΠΈΠΊΠΎΠ² ΠΏΡΠΈ ΠΎΠ±ΠΌΠ΅Π½Π΅ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ, ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½ΡΡ , ΠΏΡΠΈ Π΄ΠΎΡΡΡΠΏΠ΅ ΠΊ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°.
Π‘ΠΈΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° Π΄Π²Π° ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΠΌΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠΎΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΡΠΊΠΎΡΠΎΡΡΠ΅ΠΉ ΠΏΠΎΡΠΎΠΊΠΎΠ², Π½Π°Π·ΡΠ²Π°ΡΡΡΡ Π³ΠΎΠ½ΠΊΠ°ΠΌΠΈ. ΠΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ ΡΡΠΈ ΡΡΠ΅Π΄ΡΡΠ²Π° Π½Π°Π·ΡΠ²Π°ΡΡΡΡ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ ΠΌΠ΅ΠΆΠΏΡΠΎΡΠ΅ΡΡΠ½ΠΎΠ³ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ. ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠ° Π² ΠΌΡΠ»ΡΡΠΈΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ ΡΡΠ΅Π΄Π΅ Π²ΡΠ΅Π³Π΄Π° ΠΈΠΌΠ΅Π΅Ρ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΉ Ρ Π°ΡΠ°ΠΊΡΠ΅Ρ. ΠΡΠ΅Π½Ρ ΡΠ»ΠΎΠΆΠ½ΠΎ Ρ ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΡΡΡΡ ΡΠΊΠ°Π·Π°ΡΡ, Π½Π° ΠΊΠ°ΠΊΠΎΠΌ ΡΡΠ°ΠΏΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΠ°ΠΆΠ΅ Π² ΠΎΠ΄Π½ΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡΠ½ΠΎ ΠΎΡΠ΅Π½ΠΈΡΡ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°Π΄Π°ΡΠΈ.
ΠΡΠΎ Π²ΡΠ΅ΠΌΡ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π»ΠΈΡΡΡ Π½Π° ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΈΠΊΠ»ΠΎΠ², Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ°Π·Π²Π΅ΡΠ²Π»Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π° ΠΈ Ρ. ΠΏ. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΈΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π² ΡΠ°Π·Π½ΡΠ΅ ΠΌΠΎΠΌΠ΅Π½ΡΡ Π·Π°ΠΏΡΡΠΊΠ° Π·Π°Π΄Π°ΡΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ°Π·Π½ΡΠΌΠΈ, ΡΠΎ ΠΈ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΡΠ°ΠΏΠΎΠ² ΠΈ Π·Π°Π΄Π°ΡΠΈ Π² ΡΠ΅Π»ΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²Π΅ΡΡΠΌΠ° Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π²Π΅Π»ΠΈΡΠΈΠ½ΠΎΠΉ. ΠΡΠ΅ Π±ΠΎΠ»Π΅Π΅ Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² ΠΌΡΠ»ΡΡΠΈΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅. ΠΠΎΠΌΠ΅Π½ΡΡ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠ², Π²ΡΠ΅ΠΌΡ Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΈΡ Π² ΠΎΡΠ΅ΡΠ΅Π΄ΡΡ ΠΊ ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΠΌΡΠΌ ΡΠ΅ΡΡΡΡΠ°ΠΌ, ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π²ΡΠ±ΠΎΡΠ° ΠΏΠΎΡΠΎΠΊΠΎΠ² Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ — Π²ΡΠ΅ ΡΡΠΈ ΡΠΎΠ±ΡΡΠΈΡ ΡΠ²Π»ΡΡΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ ΡΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΎΠ±ΡΡΠΎΡΡΠ΅Π»ΡΡΡΠ² ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΠΎΠ²Π°Π½Ρ ΠΊΠ°ΠΊ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠ΅.
Π Π»ΡΡΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠ΅Π½ΠΈΡΡ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΠ½ΡΠ΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡ Π΅Π³ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π·Π° Π΄Π°Π½Π½ΡΠΉ ΠΏΠ΅ΡΠΈΠΎΠ΄ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΏΠΎΡΠΎΠΊΠΈ Π² ΠΎΠ±ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ (ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ Π½Π΅ ΠΏΡΠ΅Π΄ΠΏΡΠΈΠ½ΡΠ» ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΌΠ΅Ρ ΠΏΠΎ ΠΈΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ) ΠΏΡΠΎΡΠ΅ΠΊΠ°ΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ, Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎ Π΄ΡΡΠ³ Π΄ΡΡΠ³Ρ, ΠΡΠΎ ΡΠΏΡΠ°Π²Π΅Π΄Π»ΠΈΠ²ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΊ ΠΏΠΎΡΠΎΠΊΠ°ΠΌ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠΈΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΊΠΎΠ΄, ΡΠ°ΠΊ ΠΈ ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΊ ΠΏΠΎΡΠΎΠΊΠ°ΠΌ ΡΠ°Π·Π½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΡΠ±ΠΎΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΠΈΠ»ΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΠΈΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΈΡ ΡΠΊΠΎΡΠΎΡΡΠ΅ΠΉ ΠΏΡΡΠ΅ΠΌ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠΎΡΠΎΠΊΠ° Π΄ΠΎ Π½Π°ΡΡΡΠΏΠ»Π΅Π½ΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠΎΠ±ΡΡΠΈΡ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ Π΅Π³ΠΎ Π°ΠΊΡΠΈΠ²ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΈ Π½Π°ΡΡΡΠΏΠ»Π΅Π½ΠΈΠΈ ΡΡΠΎΠ³ΠΎ ΡΠΎΠ±ΡΡΠΈΡ. Π‘ΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ Π»Π΅ΠΆΠΈΡ Π² ΠΎΡΠ½ΠΎΠ²Π΅ Π»ΡΠ±ΠΎΠ³ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠ², ΡΠ²ΡΠ·Π°Π½ΠΎ Π»ΠΈ ΡΡΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΠ΅ΡΡΡΡΠΎΠ² ΠΈΠ»ΠΈ Ρ ΠΎΠ±ΠΌΠ΅Π½ΠΎΠΌ Π΄Π°Π½Π½ΡΠΌΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΡΠΎΠΊ-ΠΏΠΎΠ»ΡΡΠ°ΡΠ΅Π»Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ Π·Π° Π΄Π°Π½Π½ΡΠΌΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Ρ Π² Π±ΡΡΠ΅Ρ ΠΏΠΎΡΠΎΠΊΠΎΠΌ-ΠΎΡΠΏΡΠ°Π²ΠΈΡΠ΅Π»Π΅ΠΌ. ΠΡΠ»ΠΈ ΠΆΠ΅ ΠΏΠΎΡΠΎΠΊ-ΠΏΠΎΠ»ΡΡΠ°ΡΠ΅Π»Ρ ΠΎΠ±ΡΠ°ΡΠΈΠ»ΡΡ ΠΊ Π΄Π°Π½Π½ΡΠΌ Π΄ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΈΡ ΠΏΠΎΡΡΡΠΏΠ»Π΅Π½ΠΈΡ Π² Π±ΡΡΠ΅Ρ, ΡΠΎ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½. ΠΡΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΡ ΡΠ΅ΡΡΡΡΠΎΠ² ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ°.
ΠΠΎΠ³Π΄Π°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π°ΠΊΡΠΈΠ²Π½ΠΎΠΌΡ ΠΏΠΎΡΠΎΠΊΡ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠΌΡ ΠΏΠΎΡΡΡ, Π° Ρ ΡΡΠΈΠΌ ΠΏΠΎΡΡΠΎΠΌ Π² ΠΌΠΎΠ½ΠΎΠΏΠΎΠ»ΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ, Π½Π°Ρ ΠΎΠ΄ΡΡΠΈΠΉΡΡ Π² Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ, ΡΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° (ΠΠ‘) ΠΏΡΠΈΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π°ΠΊΡΠΈΠ²Π½ΡΠΉ ΠΏΠΎΡΠΎΠΊ ΠΈ Π½Π΅ Π°ΠΊΡΠΈΠ²ΠΈΠ·ΠΈΡΡΠ΅Ρ Π΅Π³ΠΎ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½ΡΠΆΠ½ΡΠΉ Π΅ΠΌΡ ΠΏΠΎΡΡ Π½Π΅ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡΡΡ. Π§Π°ΡΡΠΎ Π½ΡΠΆΠ½Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ Ρ ΡΠΎΠ±ΡΡΠΈΡΠΌΠΈ, Π²Π½Π΅ΡΠ½ΠΈΠΌΠΈ ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΊ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ΅Π°ΠΊΡΠΈΠΈ Π½Π° Π½Π°ΠΆΠ°ΡΠΈΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ ΠΊΠ»Π°Π²ΠΈΡ Π‘tΠ³l+Π‘. ΠΠΆΠ΅ΡΠ΅ΠΊΡΠ½Π΄Π½ΠΎ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡ ΡΠΎΡΠ½ΠΈ ΡΠΎΠ±ΡΡΠΈΠΉ, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ ΡΠ΅ΡΡΡΡΠΎΠ², ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΠΌΠ΅ΡΡ Π½Π°Π΄Π΅ΠΆΠ½ΡΠ΅ ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π°, ΠΊΠΎΡΠΎΡΡΠ΅ Π±Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ»ΠΈ Π΅ΠΉ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΡΠΎΠΊΠΈ Ρ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡΠΈΠΌΠΈ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΠΎΠ±ΡΡΠΈΡΠΌΠΈ.
ΠΠ»Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° ΠΈ ΠΏΡΠΈΠ΅ΠΌΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ, ΡΠ°ΠΊ ΠΈ ΡΡΠ΅Π΄ΡΡΠ²Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π²Π° ΠΏΠΎΡΠΎΠΊΠ° ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΌΠΎΠ³ΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΡ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΉ Π΄Π»Ρ Π½ΠΈΡ ΠΎΠ±ΠΎΠΈΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΉ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ Π² Π΅Π΄ΠΈΠ½ΠΈΡΡ ΠΏΡΠΈ ΠΎΡΡΡΠ΅ΡΡΠ²Π»Π΅Π½ΠΈΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠΎΠ±ΡΡΠΈΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π²ΡΡΠ°Π±ΠΎΡΠΊΠΈ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΠΎΡΠΎΠΊΠΎΠΌ Π΄Π°Π½Π½ΡΡ , Π½ΡΠΆΠ½ΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ Π΄ΡΡΠ³ΠΎΠ³ΠΎ. ΠΠ΄Π½Π°ΠΊΠΎ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ»ΡΡΠ°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΌΠΈ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌΠΈ ΡΠ²Π»ΡΡΡΡΡ ΡΡΠ΅Π΄ΡΡΠ²Π° ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ Π² ΡΠΎΡΠΌΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ².
Π’Π°ΠΊ, ΠΏΠΎΡΠΎΠΊΠΈ, ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΠΈΠ΅ ΡΠ°Π·Π½ΡΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌ, Π½Π΅ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π²ΠΌΠ΅ΡΠΈΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π² ΡΠ°Π±ΠΎΡΡ Π΄ΡΡΠ³ Π΄ΡΡΠ³Π°. ΠΠ΅Π· ΠΏΠΎΡΡΠ΅Π΄Π½ΠΈΡΠ΅ΡΡΠ²Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΎΠ½ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΄ΡΡΠ³ Π΄ΡΡΠ³Π° ΠΈΠ»ΠΈ ΠΎΠΏΠΎΠ²Π΅ΡΡΠΈΡΡ ΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ΅Π΄ΡΠ΅ΠΌ ΡΠΎΠ±ΡΡΠΈΠΈ. Π‘ΡΠ΅Π΄ΡΡΠ²Π° ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², Π½ΠΎ ΠΈ Π΄Π»Ρ Π΅Π΅ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ Π½ΡΠΆΠ΄. ΠΠ±ΡΡΠ½ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ Π² ΡΠ°ΡΠΏΠΎΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΡΡ ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ² ΡΠΈΡΠΎΠΊΠΈΠΉ ΡΠΏΠ΅ΠΊΡΡ ΡΡΠ΅Π΄ΡΡΠ² ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ. ΠΡΠΈ ΡΡΠ΅Π΄ΡΡΠ²Π° ΠΌΠΎΠ³ΡΡ ΠΎΠ±ΡΠ°Π·ΠΎΠ²ΡΠ²Π°ΡΡ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡ, ΠΊΠΎΠ³Π΄Π° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΡΡ ΡΡΠ΅Π΄ΡΡΠ² ΡΡΡΠΎΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠ΅, Π±ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠ΅Π΄ΡΡΠ²Π° Π΄Π»Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°, ΡΡΠ΅Π΄ΡΡΠ²Π° Π΄Π»Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΡΠ°Π·Π½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΠΏΡΠΈ ΠΎΠ±ΠΌΠ΅Π½Π΅ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΈ Ρ. Π΄. Π§Π°ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠ°Π·Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠ΅ΡΠ΅ΠΊΡΡΠ²Π°ΡΡΡΡ, ΡΠ°ΠΊ ΡΡΠΎ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ Π²ΡΠ·ΠΎΠ²Π°ΠΌΠΈ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠ²ΠΎΠΈΡ Π»ΠΈΡΠ½ΡΡ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠ΅Π½ΠΈΠΉ. ΠΡΠ΅Π½Π΅Π±ΡΠ΅ΠΆΠ΅Π½ΠΈΠ΅ Π²ΠΎΠΏΡΠΎΡΠ°ΠΌΠΈ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΌΡ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π°Π΄Π°ΡΠΈ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΠΊ ΠΊΡΠ°Ρ Ρ ΡΠΈΡΡΠ΅ΠΌΡ. 2. ΠΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ΅ΠΊΡΠΈΠΈ ΠΠ°ΠΆΠ½ΡΠΌ ΠΏΠΎΠ½ΡΡΠΈΠ΅ΠΌ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ½ΡΡΠΈΠ΅ «ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ΅ΠΊΡΠΈΠΈ» ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΡΠΈΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ΅ΠΊΡΠΈΡ - ΡΡΠΎ ΡΠ°ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠΎ ΠΌΠ΅Π½ΡΡΡΡΡ, Π΅ΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΠΎΡΠ½ΠΎΡΡΡΠΈΠ΅ΡΡ ΠΊ ΡΡΠΎΠΉ ΡΠ°ΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡΡ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ, ΠΊΠΎΠ³Π΄Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠΎΠΉ ΡΠ°ΡΡΠΈ Π΅ΡΠ΅ Π½Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΎ. ΠΡΠΈΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ΅ΠΊΡΠΈΡ Π²ΡΠ΅Π³Π΄Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΌ Π΄Π°Π½Π½ΡΠΌ, ΠΏΡΠΈ Π½Π΅ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠ³ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ Π½Π΅ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΡΠ΅ΠΊΡΡ. ΠΠΎ Π²ΡΠ΅Ρ ΠΏΠΎΡΠΎΠΊΠ°Ρ , ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΡ Ρ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ, Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ΅ΠΊΡΠΈΡ. Π ΡΠ°Π·Π½ΡΡ ΠΏΠΎΡΠΎΠΊΠ°Ρ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ΅ΠΊΡΠΈΡ ΡΠΎΡΡΠΎΠΈΡ Π² ΠΎΠ±ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΈΠ· ΡΠ°Π·Π½ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄. Π§ΡΠΎΠ±Ρ ΠΈΡΠΊΠ»ΡΡΠΈΡΡ ΡΡΡΠ΅ΠΊΡ Π³ΠΎΠ½ΠΎΠΊ ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΊ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΌ Π΄Π°Π½Π½ΡΠΌ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ, ΡΡΠΎΠ±Ρ Π² ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π² ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ΅ΠΊΡΠΈΠΈ, ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠΉ Ρ ΡΡΠΈΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ, Π½Π°Ρ ΠΎΠ΄ΠΈΠ»ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡΠΎΠΊ. ΠΡΠΈ ΡΡΠΎΠΌ Π½Π΅Π²Π°ΠΆΠ½ΠΎ, Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΡΡΠΎΡ ΠΏΠΎΡΠΎΠΊ Π² Π°ΠΊΡΠΈΠ²Π½ΠΎΠΌ ΠΈΠ»ΠΈ Π² ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ. ΠΡΠΎΡ ΠΏΡΠΈΠ΅ΠΌ Π½Π°Π·ΡΠ²Π°ΡΡ Π²Π·Π°ΠΈΠΌΠ½ΡΠΌ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ. ΠΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠ°Π·Π½ΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π²Π·Π°ΠΈΠΌΠ½ΠΎΠ³ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΏΡΠΈΠ³ΠΎΠ΄Π½Ρ Π΄Π»Ρ Π²Π·Π°ΠΈΠΌΠ½ΠΎΠ³ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΈ Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠΈ Π² ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΡΡ ΡΠ΅ΠΊΡΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ Π΄ΡΡΠ³ΠΈΠ΅ ΠΌΠΎΠ³ΡΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π²Π·Π°ΠΈΠΌΠ½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ Π΄Π»Ρ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΡΠ°Π·Π½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ². Π‘Π°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΠΈ Π² ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ ΡΠ°ΠΌΡΠΉ Π½Π΅ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π²Π·Π°ΠΈΠΌΠ½ΠΎΠ³ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΡΠΎΠΊΡ Π·Π°ΠΏΡΠ΅ΡΠ°ΡΡ Π»ΡΠ±ΡΠ΅ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ Π½Π° Π²ΡΠ΅ΠΌΡ Π΅Π³ΠΎ Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ Π² ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ΅ΠΊΡΠΈΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΠΎΡ ΡΠΏΠΎΡΠΎΠ± ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠΏΠ°ΡΠ½ΠΎ Π΄ΠΎΠ²Π΅ΡΡΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΌΡ ΠΏΠΎΡΠΎΠΊΡ — ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π½Π°Π΄ΠΎΠ»Π³ΠΎ Π·Π°Π½ΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ, Π° ΠΏΡΠΈ ΠΊΡΠ°Ρ Π΅ ΠΏΠΎΡΠΎΠΊΠ° Π² ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ΅ΠΊΡΠΈΠΈ ΠΊΡΠ°Ρ ΠΏΠΎΡΠ΅ΡΠΏΠΈΡ Π²ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±ΡΠ΄ΡΡ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½Ρ.
ΠΠ»ΠΎΠΊΠΈΡΡΡΡΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅. ΠΠ»Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠ΅ Π±Π»ΠΎΠΊΠΈΡΡΡΡΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅. Π‘ ΡΡΠΈΠΌΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ, ΠΊ ΠΊΠΎΡΠΎΡΡΠΌ Π²ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΈΠΌΠ΅ΡΡ ΠΏΡΡΠΌΠΎΠΉ Π΄ΠΎΡΡΡΠΏ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Π½Π΅ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡ ΠΊ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΌ Π²ΡΠ·ΠΎΠ²Π°ΠΌ ΠΠ‘.
ΠΠ°ΠΆΠ΄ΠΎΠΌΡ Π½Π°Π±ΠΎΡΡ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΡ Π΄Π°Π½Π½ΡΡ ΡΡΠ°Π²ΠΈΡΡΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ Π΄Π²ΠΎΠΈΡΠ½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ, ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΠΎΡΠΎΠΊ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 0, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ Π²Ρ ΠΎΠ΄ΠΈΡ Π² ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΡΡ ΡΠ΅ΠΊΡΠΈΡ, ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 1, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ Π΅Π΅ ΠΏΠΎΠΊΠΈΠ΄Π°Π΅Ρ. ΠΠ»ΠΎΠΊΠΈΡΡΡΡΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ Π΄ΠΎΡΡΡΠΏΠ΅ ΠΊ ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΠΌΡΠΌ Π΄Π°Π½Π½ΡΠΌ, Π½ΠΎ ΠΈ ΠΏΡΠΈ Π΄ΠΎΡΡΡΠΏΠ΅ ΠΊ ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΠΌΡΠΌ ΡΠ΅ΡΡΡΡΠ°ΠΌ Π»ΡΠ±ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π°. ΠΡΠ»ΠΈ Π²ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ Π½Π°ΠΏΠΈΡΠ°Π½Ρ Ρ ΡΡΠ΅ΡΠΎΠΌ Π²ΡΡΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠΉ, ΡΠΎ Π²Π·Π°ΠΈΠΌΠ½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅ΡΡΡ. ΠΡΠΈ ΡΡΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΡΠ΅ΡΠ²Π°Π½Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ Π² Π»ΡΠ±ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΈ Π² Π»ΡΠ±ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ Π² ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ΅ΠΊΡΠΈΠΈ.
ΠΠ΄Π½Π°ΠΊΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΎΠ΄Π½ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ Π²ΡΠ΅ ΠΆΠ΅ ΠΈΠΌΠ΅Π΅ΡΡΡ. ΠΠ΅Π»ΡΠ·Ρ ΠΏΡΠ΅ΡΡΠ²Π°ΡΡ ΠΏΠΎΡΠΎΠΊ ΠΌΠ΅ΠΆΠ΄Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π±Π»ΠΎΠΊΠΈΡΡΡΡΠ΅ΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ. ΠΠΎΡΡΠ½ΠΈΠΌ ΡΡΠΎ. ΠΡΡΡΡ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ», ΡΡΠΎ ΡΠ΅ΡΡΡΡ ΡΠ²ΠΎΠ±ΠΎΠ΄Π΅Π½, Π½ΠΎ ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ, Π½Π΅ ΡΡΠΏΠ΅Π² ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π² 0, Π±ΡΠ» ΠΏΡΠ΅ΡΠ²Π°Π½. ΠΠ° Π²ΡΠ΅ΠΌΡ Π΅Π³ΠΎ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ Π·Π°Π½ΡΠ» ΡΠ΅ΡΡΡΡ, Π²ΠΎΡΠ΅Π» Π² ΡΠ²ΠΎΡ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΡΡ ΡΠ΅ΠΊΡΠΈΡ, Π½ΠΎ ΡΠ°ΠΊΠΆΠ΅ Π±ΡΠ» ΠΏΡΠ΅ΡΠ²Π°Π½, Π½Π΅ Π·Π°Π²Π΅ΡΡΠΈΠ² ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΠΌΡΠΌ ΡΠ΅ΡΡΡΡΠΎΠΌ. ΠΠΎΠ³Π΄Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π±ΡΠ»ΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΎ ΠΏΠ΅ΡΠ²ΠΎΠΌΡ ΠΏΠΎΡΠΎΠΊΡ, ΠΎΠ½, ΡΡΠΈΡΠ°Ρ ΡΠ΅ΡΡΡΡ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΠΌ, ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ» ΠΏΡΠΈΠ·Π½Π°ΠΊ Π·Π°Π½ΡΡΠΎΡΡΠΈ ΠΈ Π½Π°ΡΠ°Π» Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠ²ΠΎΡ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΡΡ ΡΠ΅ΠΊΡΠΈΡ.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π±ΡΠ» Π½Π°ΡΡΡΠ΅Π½ ΠΏΡΠΈΠ½ΡΠΈΠΏ Π²Π·Π°ΠΈΠΌΠ½ΠΎΠ³ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, ΡΡΠΎ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π½Π΅ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΡΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΡΠΌ. ΠΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Π½ΠΈΠ΅ ΡΠ°ΠΊΠΈΡ ΡΠΈΡΡΠ°ΡΠΈΠΉ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ² ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Π° Π΅Π΄ΠΈΠ½Π°Ρ, Π½Π΅Π΄Π΅Π»ΠΈΠΌΠ°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π°Π½Π°Π»ΠΈΠ·Π° ΠΈ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΠ’Π‘, ΠΠ’Π ΠΈ ΠΠ’5 ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° Π Π΅ntium). ΠΡΠΈ ΠΎΡΡΡΡΡΡΠ²ΠΈΠΈ ΡΠ°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΌΠΈ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π°ΠΌΠΈ (ΠΏΡΠΈΠΌΠΈΡΠΈΠ² — Π±Π°Π·ΠΎΠ²Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΠ‘), ΠΊΠΎΡΠΎΡΡΠ΅ Π±Ρ Π·Π°ΠΏΡΠ΅ΡΠ°Π»ΠΈ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ Π½Π° ΠΏΡΠΎΡΡΠΆΠ΅Π½ΠΈΠΈ Π²ΡΠ΅ΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ. Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π²Π·Π°ΠΈΠΌΠ½ΠΎΠ³ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΌ Π²ΡΡΠ΅ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ ΠΈΠΌΠ΅Π΅Ρ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΉ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ: Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡΠΎΠΊ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ΅ΠΊΡΠΈΠΈ, Π΄ΡΡΠ³ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ, ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΎΡ ΠΆΠ΅ ΡΠ΅ΡΡΡΡ, ΠΏΠΎΠ»ΡΡΠΈΠ² Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ, Π±ΡΠ΄Π΅Ρ Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΠΎ ΠΎΠΏΡΠ°ΡΠΈΠ²Π°ΡΡ Π±Π»ΠΎΠΊΠΈΡΡΡΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ, Π±Π΅ΡΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΡΡΠ°ΡΡ Π²ΡΠ΄Π΅Π»ΡΠ΅ΠΌΠΎΠ΅ Π΅ΠΌΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠ³Π»ΠΎ Π±Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΎ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°. ΠΠ»Ρ ΡΡΡΡΠ°Π½Π΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠ° Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΠ‘ ΠΏΡΠ΅Π΄ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΡΠ΅ΠΊΡΠΈΡΠΌΠΈ.
Π‘Π΅ΠΌΠ°ΡΠΎΡΡ (semaphore) — ΡΡΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ. ΠΠ½, Π² ΡΡΡΠ½ΠΎΡΡΠΈ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΎΠ±ΡΠΈΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ². Π ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΡΠ΅ΠΌΠ°ΡΠΎΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠ΅Π»ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠΉ Π±ΠΎΠ»ΡΡΠ΅ Π½ΡΠ»Ρ, ΡΠΎ Π΅ΡΡΡ ΠΏΡΠΎΡΡΠΎ ΡΡΠ΅ΡΡΠΈΠΊ. ΠΠ±ΡΡΠ½ΠΎ ΡΠ΅ΠΌΠ°ΡΠΎΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ Π² Π½Π°ΡΠ°Π»Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ 0 ΠΈΠ»ΠΈ 1. Π‘Π΅ΠΌΠ°ΡΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π»ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ 0 ΠΈ 1, Π½Π°Π·ΡΠ²Π°ΡΡΡΡ Π΄Π²ΠΎΠΈΡΠ½ΡΠΌΠΈ. ΠΠ°Π΄ ΡΠ΅ΠΌΠ°ΡΠΎΡΠ°ΠΌΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ Π΄Π²Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ — signal ΠΈ wait. ΠΠΏΠ΅ΡΠ°ΡΠΈΡ signal ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΌΠ°ΡΠΎΡΠ° Π½Π° 1, Π° Π²ΡΠ·Π²Π°Π²ΡΠΈΠΉ Π΅Π΅ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ ΡΠ²ΠΎΡ ΡΠ°Π±ΠΎΡΡ. ΠΠΏΠ΅ΡΠ°ΡΠΈΡ wait ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌ, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ΅ΠΌΠ°ΡΠΎΡΠ°. ΠΡΠ»ΠΈ Π΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π±ΠΎΠ»ΡΡΠ΅ 0, ΠΎΠ½ΠΎ ΡΠΌΠ΅Π½ΡΡΠ°Π΅ΡΡΡ Π½Π° 1, ΠΈ ΠΏΡΠΎΡΠ΅ΡΡ, Π²ΡΠ·Π²Π°Π²ΡΠΈΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ wait, ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡΡΡ. ΠΡΠ»ΠΈ ΡΠ΅ΠΌΠ°ΡΠΎΡ ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 0, ΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡ, Π²ΡΠ·Π²Π°Π²ΡΠΈΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ wait, ΠΏΡΠΈΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ (ΡΡΠ°Π²ΠΈΡΡΡ Π² ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΊ ΡΠ΅ΠΌΠ°ΡΠΎΡΡ) Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΡΠ΅ΠΌΠ°ΡΠΎΡΠ° Π½Π΅ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡΡ Π΄ΡΡΠ³ΠΈΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ signal. Π’ΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ wait ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ (Ρ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΠ΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ΅ΠΌΠ°ΡΠΎΡΠ°), Π° ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΡΡΡ. ΠΠ°ΠΆΠ½ΠΎ, ΡΡΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΠΈ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ΅ΠΌΠ°ΡΠΎΡΠ° Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈwait Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π·Π° ΠΎΠ΄ΠΈΠ½ ΡΠ°Π³. ΠΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅ΡΠ²Π°ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ wait ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΎΠΉ ΠΈ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΠ΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
ΠΠΏΠ΅ΡΠ°ΡΠΈΡ wait Π΄Π»Ρ ΡΠ΅ΠΌΠ°ΡΠΎΡΠ° ΠΈΠΌΠ΅Π΅Ρ ΡΠ°ΠΊΠΎΠ΅ ΠΆΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΡΡΠΎ ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ test_and_set. ΠΡΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΠΆΠ΄ΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΠ΅ΠΌΠ°ΡΠΎΡΠ°, ΡΠΎ ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ signal ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ ΡΠ²ΠΎΠ΅ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅. Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΌΠΎΠ³ΡΡ ΠΆΠ΄Π°ΡΡ Π² ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ, ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½ΠΎΠΉ Π»ΠΈΠ±ΠΎ ΠΏΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ FIFO (Firstln, FirstOut — ΠΏΠ΅ΡΠ²ΡΠΌ Π²ΠΎΡΠ΅Π», ΠΏΠ΅ΡΠ²ΡΠΌ Π²ΡΡΠ΅Π»), Π»ΠΈΠ±ΠΎ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ°ΠΌΠΈ, ΠΈΠ»ΠΈ Π²ΡΠ±ΠΈΡΠ°ΡΡΡΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ. ΠΠ°Π·Π²Π°Π½ΠΈΡ ΡΠΏΡΠ°Π²Π»ΡΡΡΠ΅ΠΉ ΡΡΡΡΠΊΡΡΡΡ «ΡΠ΅ΠΌΠ°ΡΠΎΡ» ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ signal ΠΈ wait ΠΈΠΌΠ΅ΡΡ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎΠ΅ ΠΌΠ½Π΅ΠΌΠΎΠ½ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. Π Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΠ΅ Π²ΠΌΠ΅ΡΡΠΎ signal ΠΈ wait ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΡ Ρ ΡΠ΅ΠΌ ΠΆΠ΅ ΡΠ°ΠΌΡΠΌ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌ ΡΠΌΡΡΠ»ΠΎΠΌ. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΅ΠΌΠ°ΡΠΎΡΠΎΠ² ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π·Π°ΡΠΈΡΡ ΡΠ΅ΡΡΡΡΠΎΠ² ΡΠ΅ΡΠ°Π΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
program sem_example (* Π·Π°ΡΠΈΡΠ° ΡΠ΅ΡΡΡΡΠ° *) var P1: semaphore begin P1 := 1; cobegin while true do (* Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ ΡΠΈΠΊΠ» *) begin (* ΠΏΡΠΎΡΠ΅ΡΡ, Π *) wait(P1); (* Π·Π°ΡΠΈΡΠ΅Π½Π½ΡΠΉ ΡΠ΅ΡΡΡΡ *) signal(P1); … end; (* ΠΏΡΠΎΡΠ΅ΡΡ, Π *) while true do (* Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ ΡΠΈΠΊΠ» *) begin (* ΠΏΡΠΎΡΠ΅ΡΡ Π *) wait(Pl); (* Π·Π°ΡΠΈΡΠ΅Π½Π½ΡΠΉ ΡΠ΅ΡΡΡΡ *) signal (Pl); … end; (* ΠΏΡΠΎΡΠ΅ΡΡ Π *) coend; end. (* sem_example *) Π‘Π΅ΠΌΠ°ΡΠΎΡ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ, ΡΡΠΎ Π΄Π²Π° ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π·Π°ΡΠΈΡΠ΅Π½Π½ΠΎΠΌΡ ΡΠ΅ΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ.
ΠΡΠΈ ΡΡΠΎΠΌ Π½Π΅ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Π½ΠΈΠΊΠ°ΠΊΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ²ΡΠ·Π΅ΠΉ — Π΅ΡΠ»ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΎΡΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π±ΡΡΡΡΠ΅Π΅ Π΄ΡΡΠ³ΠΎΠ³ΠΎ, ΡΠΎ Π·Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΠΊ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΠ΅ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ΅ΡΡΡΡΡ. ΠΡΠΎΡΠ΅ΡΡ Π²ΡΠ½ΡΠΆΠ΄Π΅Π½ ΠΆΠ΄Π°ΡΡ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ΅ΠΊΡΠΈΠΈ. ΠΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅ΡΡΡ ΠΈ ΠΆΠΈΠ²ΡΡΠ΅ΡΡΡ. ΠΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΏΠΎ ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ°Π΅ΡΡΡ, ΡΠΎ, ΠΏΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠΈ, ΡΡΠΎ ΠΎΠ½ Π½Π°Ρ ΠΎΠ΄ΠΈΠ»ΡΡ Π²Π½Π΅ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ΅ΠΊΡΠΈΠΈ, ΡΡΠΎ Π½Π΅ ΠΌΠ΅ΡΠ°Π΅Ρ ΡΠ°Π·Π²ΠΈΡΠΈΡ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°.
Π‘Π°ΠΌΠΎ ΠΏΠΎ ΡΠ΅Π±Π΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ΅ΠΌΠ°ΡΠΎΡΠΎΠ² Π½Π΅ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ΅Π½ΠΈΡ ΡΡΠΏΠΈΠΊΠΎΠ²ΡΡ ΡΠΈΡΡΠ°ΡΠΈΠΉ. ΠΡΠ»ΠΈ Π΄Π²Π° ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠ΅ΠΌΠ°ΡΠΎΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ wait(Pl) wait(P2) wait(P2) wait(Pl) … … (* Π·Π°ΡΠΈΡΠ΅Π½Π½ΡΠΉ ΡΠ΅ΡΡΡΡ *) (* Π·Π°ΡΠΈΡΠ΅Π½Π½ΡΠΉ ΡΠ΅ΡΡΡΡ *) … … signal(Pl) signal (P2) signal(P2) signal(Pl) ΡΠΎ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠΈΡΠΊ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΡΡΠΏΠΈΠΊΠ°. ΠΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΡΠΌΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°ΠΌΠΈ wait ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π° Π²ΡΠΎΡΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π²ΡΠΏΠΎΠ»Π½ΠΈΡ ΡΠ²ΠΎΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ wait, ΡΠΎ ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΡΠΏΠΈΠΊΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΎΠΆΠΈΠ΄Π°Π΅Ρ ΠΎΡ Π΄ΡΡΠ³ΠΎΠΉ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΠ΅ΠΌΠ°ΡΠΎΡΠ°.
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ, Ρ ΠΎΡΡ ΡΠ΅ΠΌΠ°ΡΠΎΡ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ Π½Π΅ΡΠ°Π·ΡΡΠ²Π½ΠΎΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΎΠ½ ΡΠ°ΠΌ ΠΎΡΡΠ°Π΅ΡΡΡ Π·Π°ΡΠΈΡΠ΅Π½Π½ΡΠΌ ΡΠ΅ΡΡΡΡΠΎΠΌ. Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠ²Π½ΠΎ Π½Π°ΡΡΡΠ΅Π½ Π·Π°ΠΏΡΠ΅Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΡ, ΠΈ ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΡΠΏΠΈΠΊΠΎΠ²ΡΡ ΡΠΈΡΡΠ°ΡΠΈΠΉ. Π‘Π΅ΠΌΠ°ΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠΎΡΡ ΠΏΡΠΈ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ Π²Π·Π°ΠΈΠΌΠΎΡΠ²ΡΠ·Π°Π½Π½ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΠΏΡΠΎΡΠ΅ΡΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΡΡΠΈΡΠ°Π½Ρ Ρ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΠΏΠΎΡΡΠ°, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π²ΠΈΠ΄: Process «Π§ΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ » Process «ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π΄Π°Π½Π½ΡΡ » while true do while true do begin begin (* ΡΡΠ΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΡΡ Π΄Π°Π½Π½ΡΡ *) wait(data_available); signal(data_available); (*ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π΄Π°Π½Π½ΡΡ *) end; end; ΠΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠ΄Π΅Π»ΡΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π²Π²ΠΎΠ΄Π° Π΄Π°Π½Π½ΡΡ ΠΎΡ ΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΠ° ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΡΡ Π΄Π°Π½Π½ΡΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΌΠ°ΡΠΎΡΠ°, ΠΎΡΠ»ΠΈΡΠ½ΠΎΠ΅ ΠΎΡ 0. ΠΡΠ»ΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Π±ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΠΈ (ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ³ΠΎ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ) Π½ΠΎΠ²ΡΡ Π΄Π°Π½Π½ΡΡ , ΡΠΎ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ ΠΏΠΎΡΡΡΠΏΠ°ΡΡ Π±ΡΡΡΡΠ΅Π΅, ΡΠ΅ΠΌ ΠΎΠ½Π° Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ ΠΈΡ ΠΏΡΠΈΠ½ΡΡΡ. Π ΡΠΈΡΡΠ΅ΠΌΠ°Ρ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΏΡΠΈΠ½ΡΡΠΎ ΠΎΡΠ΄Π΅Π»ΡΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ, ΡΡΠ΅Π±ΡΡΡΠΈΠ΅ Π±ΡΡΡΡΠΎΠΉ ΡΠ΅Π°ΠΊΡΠΈΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΈΠ΅ΠΌ Π΄Π°Π½Π½ΡΡ Ρ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΠΏΠΎΡΡΠ°, ΠΎΡ Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ².
ΠΠ»Ρ Π·Π°ΡΠΈΡΡ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ΅ΠΊΡΠΈΠΉ, Π² ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π² Π»ΡΠ±ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π²Ρ ΠΎΠ΄ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΎΡΠ΅ΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π²ΠΎΠΈΡΠ½ΡΠ΅ ΡΠ΅ΠΌΠ°ΡΠΎΡΡ, ΡΠ°ΠΊΠΆΠ΅ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠ΅ mutex (ΠΎΡ mutual exclusion — Π²Π·Π°ΠΈΠΌΠ½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅).
Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π΅Π»ΡΠ·Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΡΠ½ΡΠ΅ ΡΠ΅ΠΌΠ°ΡΠΎΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅Π²ΡΡΠ°ΡΡ 1 ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ΅ΡΡΡΡΡ, ΡΠΌΠ΅Π½ΡΡΠ°Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ΅ΠΌΠ°ΡΠΎΡΠ°. ΠΠΏΠ΅ΡΠ°ΡΠΈΡ signal Π½Π°Π΄ Π΄Π²ΠΎΠΈΡΠ½ΡΠΌ ΡΠ΅ΠΌΠ°ΡΠΎΡΠΎΠΌ Π²ΡΠ΅Π³Π΄Π° ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² 1. ΠΠΏΠ΅ΡΠ°ΡΠΈΡ wait ΡΠΌΠ΅Π½ΡΡΠ°Π΅Ρ ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Ρ 1 Π΄ΠΎ 0 ΠΈ ΡΠ°Π·ΡΠ΅ΡΠ°Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡΡΡ Π΄Π°Π»ΡΡΠ΅. ΠΡΠ»ΠΈ ΡΠ΅ΠΌΠ°ΡΠΎΡ ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 0, ΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡ, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠΉ wait, Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΆΠ΄Π°ΡΡ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΌΠ°ΡΠΎΡΠ° Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡ.
ΠΡΠΈΠ±ΠΊΠΈ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ΅ΠΌΠ°ΡΠΎΡΠΎΠ², ΡΡΡΠ΄Π½ΠΎ Π²ΡΡΠ²Π»ΡΡΡΡΡ. ΠΡΠΎΡΠ΅ΡΡ, Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡwait, ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠΉΡΠΈ Π² ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΡΡ ΡΠ΅ΠΊΡΠΈΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Ρ Π΄ΡΡΠ³ΠΈΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ, ΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ Π½Π΅ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΡΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌ. ΠΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, Π½Π΅Π»ΡΠ·Ρ Π³ΠΎΠ²ΠΎΡΠΈΡΡ, ΡΡΠΎ ΡΠ°ΠΊΠ°Ρ ΠΎΡΠΈΠ±ΠΊΠ° Π²ΡΡΠ²ΠΈΡΡΡ ΠΏΡΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ; ΠΎΠ½Π° Π΄Π°ΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΡΠΈ Π·Π° Π²ΡΠ΅ Π²ΡΠ΅ΠΌΡ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΠ΅Π³ΡΠ΅ Π½Π°ΠΉΡΠΈ ΠΏΡΠΎΡΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΡΡ ΠΎΡΠΈΠ±ΠΊΡ — ΠΎΡΡΡΡΡΡΠ²ΡΡΡΠ°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ signal ΠΌΠΎΠΆΠ΅Ρ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅, ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅, ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², ΡΡΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΡ. ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ΅ΠΌΠ°ΡΠΎΡΡ, ΡΠΎ Π΅ΡΡΡ, ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Ρ Π»ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ wait Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠΌΠΈsignal Π² Π΄ΡΡΠ³ΠΈΡ ΠΌΠΎΠ΄ΡΠ»ΡΡ ΠΈ ΡΠ²ΡΠ·Π°Π½Ρ Π»ΠΈ ΡΠ΅ΠΌΠ°ΡΠΎΡΡ Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌΠΈ ΡΠ΅ΡΡΡΡΠ°ΠΌΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π»ΠΎΠ³ΠΈΠΊΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°. ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΌΠ°ΡΠΎΡΠΎΠ² Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅, ΠΊΠ°ΠΊ ΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎ. ΠΠ°Π±ΠΎΡΠ° ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π»Π΅ΠΆΠΈΡ Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ΅. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΠΎΠ±Π»Π΅Π³ΡΠ°Π΅Ρ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ.
Π‘Π΅ΠΌΠ°ΡΠΎΡΡ ΡΠ²Π»ΡΡΡΡΡ ΡΠ΄ΠΎΠ±Π½ΡΠΌ ΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ Π΄Π»Ρ Π·Π°ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ test_and_set ΠΈ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΡΠΈΠΊΠ»ΠΎΠ² Π·Π°Π½ΡΡΠΎΠ³ΠΎ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ. ΠΠ΄Π½Π°ΠΊΠΎ ΠΈΡ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΡΠΈΡΡΠ°ΡΠΈΠΈ Π³ΠΎΠ½ΠΎΠΊ ΠΈ ΠΊ ΡΡΠΏΠΈΠΊΠ°ΠΌ. 4. Π‘ΠΎΠ±ΡΡΠΈΡ Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², ΠΈΠΌΠ΅ΡΡΠΈΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΎΠ±ΡΠΈΠΌ Π΄Π°Π½Π½ΡΠΌ, Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π½ΠΈΠΌΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΡΠ»ΠΎΠ²ΠΈΠΉ, Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΈ ΡΠ°Π·Π½ΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°. Π£ΡΠ»ΠΎΠ²ΠΈΠ΅ΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΡΡΡΠΏΠ»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΡΡ Π΄Π°Π½Π½ΡΡ Π½Π° Π²Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠΎΡΡ. ΠΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΈΠΌΠ΅ΡΡ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΡΡΡΠΊΡΡΡΡ
begin wait until condition; modify data; end ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄Π΅Π»ΠΈΡΡΡ Π½Π° Π΄Π²Π΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠ°ΡΡΠΈ. Π‘Π½Π°ΡΠ°Π»Π° ΠΏΡΠΎΠ²Π΅ΡΡΡΡΡΡ ΡΡΠ»ΠΎΠ²ΠΈΡ, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π°Π΄ Π΄Π°Π½Π½ΡΠΌΠΈ. ΠΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΡΠ»ΠΎΠ²ΠΈΡ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ Π΄Π°Π½Π½ΡΡ ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ Π·Π°ΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏΠ°.
ΠΠ΄Π½Π°ΠΊΠΎ Π΄ΠΎΡΡΡΠΏ ΠΊ Π΄Π°Π½Π½ΡΠΌ Π΄Π»Ρ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½ΠΈΡΠΎΠ²Π°Π½ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ. ΠΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅ΠΌΠ°ΡΠΎΡΡ, ΡΠΎ ΠΈΡ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π΄Π²Π°: ΠΎΠ΄ΠΈΠ½ — Π΄Π»Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π΄ΠΎΡΡΡΠΏΠ° Π² Π·Π°ΡΠΈΡΠ΅Π½Π½ΡΡ ΠΎΠ±Π»Π°ΡΡΡ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ, Π° Π΄ΡΡΠ³ΠΎΠΉ — Π΄Π»Ρ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΈΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΎΠ±ΡΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΈ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠΉ. ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠ΅ΠΌΠ°ΡΠΎΡΠ° ΠΏΡΠΎΡΡΠΎ, Π° Π΄Π»Ρ Π²ΡΠΎΡΠΎΠ³ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ»Π΅Π΄ΠΈΡΡ Π·Π° ΡΠΈΡΠ»ΠΎΠΌ ΠΎΠΆΠΈΠ΄Π°ΡΡΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΡΠ»ΠΎΠ²ΠΈΡ ΠΎΠΆΠΈΠ΄Π°ΡΡΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ Π±ΡΠ΄ΡΡ Π°ΠΊΡΠΈΠ²ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Ρ Ρ ΡΠ΅Π»ΡΡ Π΅Π³ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ, ΡΠΎ Π΅ΡΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΡΠΈΠ³Π½Π°Π»ΠΎΠ² ΡΠ΅ΠΌΠ°ΡΠΎΡΠ°, ΡΠΈΡΠ»ΠΎ ΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π²Π½ΠΎ ΡΠΈΡΠ»Ρ ΠΎΠΆΠΈΠ΄Π°ΡΡΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ². ΠΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΈΠ·-Π·Π° Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΡΠ°ΡΡ ΠΎΠ΄Π° ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ, ΠΏΡΠΈ ΡΡΠΎΠΌ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΎΡΠΈΠ±ΠΈΡΡΡΡ.
ΠΠ»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π±ΡΠ»Π° Π²Π²Π΅Π΄Π΅Π½Π° Π½ΠΎΠ²Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ event (ΡΠΎΠ±ΡΡΠΈΠ΅), Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ²ΡΠ·Π°Π½Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ await (ΠΆΠ΄Π°ΡΡ) ΠΈ cause(Π²ΡΠ·Π²Π°ΡΡ). ΠΡΠΎΡΠ΅ΡΡ, Π²ΡΠΏΠΎΠ»Π½ΠΈΠ²ΡΠΈΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ await (event), ΠΎΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ, ΠΏΠΎΠΊΠ° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ event Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡ. ΠΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ cause. ΠΡΠΈ Π½Π°ΡΡΡΠΏΠ»Π΅Π½ΠΈΠΈ ΡΠΎΠ±ΡΡΠΈΡ, ΡΠΎ Π΅ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ cause (event), ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°ΡΡΡΡ Π²ΡΠ΅ ΠΎΠΆΠΈΠ΄Π°ΡΡΠΈΠ΅ Π΅Π³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΡ, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ Π² ΡΠ»ΡΡΠ°Π΅ ΡΠ΅ΠΌΠ°ΡΠΎΡΠ° ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅ΡΡΡ Π»ΠΈΡΡ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΎΡΠ΅ΡΡ.
ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ ΡΠΎΠ±ΡΡΠΈΡΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π»ΠΈΠ±ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π΄Π²ΠΎΠΈΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π»ΠΈΠ±ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ΅ΡΡΠΈΠΊΠ°, ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΠΎΡΡΠ°ΡΡΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌΠΈ. ΠΠ»Π°Π³ΠΎΠ» to await ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ «ΠΆΠ΄Π°ΡΡ», Π½ΠΎ ΠΈ «ΠΏΡΠ΅Π΄ΡΡΠΎΡΡΡ», ΡΠΎ Π΅ΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ await (Π) ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ°ΠΊΡΠΎΠ²Π°ΡΡ, ΠΊΠ°ΠΊ «ΠΏΡΠ΅Π΄ΡΡΠΎΠΈΡ ΡΠΎΠ±ΡΡΠΈΠ΅ Π». ΠΠ»Π°Π³ΠΎΠ» to cause ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ «Π±ΡΡΡ ΠΏΡΠΈΡΠΈΠ½ΠΎΠΉ», ΠΏΠΎΠ±ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΠΌΠΎΡΠΈΠ²ΠΎΠΌ, «Π²ΡΠ·Π²Π°ΡΡ ΡΡΠΎ-Π»ΠΈΠ±ΠΎ». ΠΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ cause (Π) ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ «Π²ΡΠ·Π²Π°ΡΡ ΡΠΎΠ±ΡΡΠΈΠ΅ Π» (Π² Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΠ΅ ΠΈ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΡ).
Π ΠΏΡΠΎΡΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ΅ΠΌΠ°ΡΠΎΡΡ, ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠΎΠ±ΡΡΠΈΡ Π½Π΅Π»ΡΠ·Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ Π·Π°ΡΠΈΡΡ ΡΠ΅ΡΡΡΡΠ° ΠΎΡ ΠΊΠΎΠ½ΠΊΡΡΠΈΡΡΡΡΠ΅Π³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΎΠ½Π° ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅Ρ Π²ΡΠ΅ ΠΎΠΆΠΈΠ΄Π°ΡΡΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ. ΠΡΡΠ΅ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠ΅ΡΠ°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠΎΠ±ΡΡΠΈΡ ΠΈ ΡΠ΅ΠΌΠ°ΡΠΎΡΠ°, Π΅ΡΠ»ΠΈ Π²ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈΠΌΠ΅ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π²ΠΈΠ΄ var mutex: semaphore; change: event; begin while not condition do await(change); wait(mutex); (* ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΎΠ±ΡΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ *) signal(mutex); cause(change); end; ΠΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ event Π²ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ condition, ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ ΠΈΠ· Π½ΠΈΡ , Π΄Π»Ρ ΠΊΠΎΡΠΎΡΡΡ condition Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΎ, ΠΌΠΎΠ³ΡΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡΡΡ.
ΠΠΎΡΡΡΠΏ ΠΊ ΠΎΠ±ΡΠ΅ΠΌΡ ΡΠ΅ΡΡΡΡΡ Π·Π°ΡΠΈΡΠ΅Π½ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΅ΠΌΠ°ΡΠΎΡΠ° mutex, ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΎΡΠ΅ΡΡ. ΠΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅, ΡΠ΅ΠΌ ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΡΠ΅ΠΌΠ°ΡΠΎΡΠ°Ρ . ΠΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΡΡΠ»ΠΎΠ²ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΡΡΠΎ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ», Ρ. Π΅. ΠΏΠΎΡΠ»Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ . ΠΠ°ΠΆΠ½ΡΠΉ ΡΠΈΠΏ ΡΠΎΠ±ΡΡΠΈΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ°Ρ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΠ²ΡΠ·Π°Π½ Ρ Π²Π½Π΅ΡΠ½ΠΈΠΌΠΈ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡΠΌΠΈ. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ — ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ — ΠΆΠ΄Π΅Ρ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ. ΠΠΎΠ³Π΄Π° ΠΎΠ½ΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ, ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ.
ΠΠ·Π°ΠΈΠΌΠΎΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ
ΠΠ±ΡΠ΅ΠΊΡΡ-Π²Π·Π°ΠΈΠΌΠΎΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ (ΠΌΡΡΡΠ΅ΠΊΡΡ, mutex — ΠΎΡ MUTual EXclusion) ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½ΠΈΡΠΎΠ²Π°ΡΡ Π²Π·Π°ΠΈΠΌΠ½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΠΌΠΎΠΌΡ ΡΠ΅ΡΡΡΡΡ. Π‘ΠΈΠ³Π½Π°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° (Ρ.Π΅. ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ «ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½») ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΌΠΎΠΌΠ΅Π½ΡΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±ΡΠ΅ΠΊΡ Π½Π΅ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΉ Π½ΠΈΡΠΈ ΠΈ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ «Π·Π°Ρ Π²Π°ΡΠΈΡΡ». Π Π½Π°ΠΎΠ±ΠΎΡΠΎΡ, ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ «ΡΠ±ΡΠΎΡΠ΅Π½» (Π½Π΅ ΡΠΈΠ³Π½Π°Π»ΡΠ½ΠΎΠ΅) ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΌΠΎΠΌΠ΅Π½ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΊΠ°ΠΊΠ°Ρ-Π»ΠΈΠ±ΠΎ Π½ΠΈΡΡ ΡΠΆΠ΅ Π²Π»Π°Π΄Π΅Π΅Ρ ΡΡΠΈΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ. ΠΠΎΡΡΡΠΏ ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΡΠ°Π·ΡΠ΅ΡΠ°Π΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° Π½ΠΈΡΡ, Π²Π»Π°Π΄Π΅ΡΡΠ°Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ, ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ Π΅Π³ΠΎ. ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΡΠΎΠΊ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ΅ΠΌΠ°ΡΠΎΡ ΠΠ²Π΅ (ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅) Π½ΠΈΡΠΈ ΠΌΠΎΠ³ΡΡ ΡΠΎΠ·Π΄Π°ΡΡ ΠΌΡΡΡΠ΅ΠΊΡ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΈ ΡΠ΅ΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ, Π²ΡΠ·Π²Π°Π² ΡΡΠ½ΠΊΡΠΈΡ CreateMutex. ΠΠ΅ΡΠ²Π°Ρ Π½ΠΈΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΌΡΡΡΠ΅ΠΊΡ, Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ — ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. ΠΡΠΎ Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌ Π½ΠΈΡΡΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΌΡΡΡΠ΅ΠΊΡΠ°, ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ° ΠΎΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π·Π°Π±ΠΎΡΠΈΡΡΡΡ ΠΎ ΡΠΎΠΌ, ΠΊΡΠΎ Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΌΡΡΡΠ΅ΠΊΡ. ΠΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄, ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ»Π°Π³ bInitialOwner Π² FALSE, ΠΈΠ½Π°ΡΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΡΡΡΠ΄Π½ΠΎΡΡΠΈ ΠΏΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΠ·Π΄Π°ΡΠ΅Π»Ρ ΠΌΡΡΡΠ΅ΠΊΡΠ°. ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½ΠΈΡΠ΅ΠΉ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΌΡΡΡΠ΅ΠΊΡΠ°, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ. ΠΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π°:
Β· ΠΠΎΡΠ΅ΡΠ½ΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ CreateProcess ΠΌΠΎΠΆΠ΅Ρ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΌΡΡΡΠ΅ΠΊΡΠ° Π² ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΌΡΡΡΠ΅ΠΊΡΠ° ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ CreateMutex Π±ΡΠ» ΡΠΊΠ°Π·Π°Π½ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ lpMutexAttributes.
Β· ΠΠΈΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΡΠ±Π»ΠΈΠΊΠ°Ρ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΠΌΡΡΡΠ΅ΠΊΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ DuplicateHandle.
Β· ΠΠΈΡΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠΊΠ°Π·Π°ΡΡ ΠΈΠΌΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΠΌΡΡΡΠ΅ΠΊΡΠ° ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΠΉ OpenMutex ΠΈΠ»ΠΈ CreateMutex.
ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΎΠ±ΡΡΠ²ΠΈΡΡ Π²Π·Π°ΠΈΠΌΠΎΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΠΈΠΌ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π½ΠΈΡΠΈ, Π½Π°Π΄ΠΎ Π²ΡΠ·Π²Π°ΡΡ ΠΎΠ΄Π½Ρ ΠΈΠ· ΠΎΠΆΠΈΠ΄Π°ΡΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΠΈΡΡ, ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΌΠΎΠΆΠ΅Ρ Π΅Π³ΠΎ «Π·Π°Ρ Π²Π°ΡΡΠ²Π°ΡΡ» ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ³ΠΎΠ΄Π½ΠΎ ΡΠ°Π· (ΡΡΠΎ Π½Π΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΡΠ°ΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ΅), Π½ΠΎ ΡΡΠΎΠ»ΡΠΊΠΎ ΠΆΠ΅ ΡΠ°Π· ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΠ΄Π΅Ρ Π΅Π³ΠΎ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ ReleaseMutex.
ΠΠ»Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ Π½ΠΈΡΠ΅ΠΉ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ΅ΠΊΡΠΈΠΉ.
ΠΡΠΈΠΌΠ΅Ρ. Π‘ΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ Π½ΠΈΡΠ΅ΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΡΡΡΠ΅ΠΊΡΠΎΠ².
#include
#include
HANDLE hMutex;
int a[5];
HANDLE hThr;
unsigned long uThrID;
void Thread (void* pParams)
{
int i, num = 0;
while (1)
{
WaitForSingleObject (hMutex, INFINITE);
for (i=0; i<5; i++) a[i] = num;
num++;
ReleaseMutex (hMutex);
}
}
int main (void)
{
hMutex=CreateMutex (NULL, FALSE, NULL);
hThr=CreateThread (NULL, 0,(LPTHREAD_START_ROUTINE)Thread, NULL, 0,&uThrID);
while (1)
{
WaitForSingleObject (hMutex, INFINITE);
printf («%d %d %d %d %dn», a[0], a[1], a[2], a[3], a[4]);
ReleaseMutex (hMutex);
}
return 0;
}