29-44 Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ Π½Π°ΡΠΈΠ½Π°Π΅ΠΌ Ρ 8-Π±Π°ΠΉΡΠΎΠ²ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΈ ΡΠΌΠΎΡΡΠΈΠΌ, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΡ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡΡ Π² ΠΎΡΠ΅ΡΠ΅Π΄Ρ. ΠΠΎΡΠ»Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΌΡ ΡΠ΄Π°Π»ΡΠ΅ΠΌ ΠΎΡΠ΅ΡΠ΅Π΄Ρ (ΡΠ±ΡΠ°ΡΡΠ²Π°Ρ Π²ΡΠ΅ ΡΡΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ) ΠΈ ΠΏΠΎΠ²ΡΠΎΡΡΠ΅ΠΌ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Ρ 16-Π±Π°ΠΉΡΠΎΠ²ΡΠΌΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ. ΠΡ ΠΏΠΎΠ²ΡΠΎΡΡΠ΅ΠΌ ΡΡΠΎ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΡΡΠΈΠ³Π½ΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΈΠ· ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΏΡΠ½ΠΊΡΠ°. ΠΠΆΠΈΠ΄Π°Π΅ΡΡΡ, ΡΡΠΎ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π±ΡΠ΄ΡΡ ΠΏΡΠ΅Π²ΡΡΠ°ΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π² ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ, Π° Π±ΠΎΠ»ΡΡΠΈΠ΅ β ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Ρ Π±Π°ΠΉΡΠΎΠ².
Π‘ΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΠΊΡΡΡΠΎ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ?45-54 ΠΠ±ΡΡΠ½ΠΎ Π΅ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΡΠΊΡΡΡΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ². ΠΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ΠΌ ΠΎΡΠ΅ΡΠ΅Π΄Π΅ΠΉ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠ° ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ msgget.
ΠΠ°ΠΏΡΡΡΠΈΠΌ ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠ½Π°ΡΠ°Π»Π° Π² Solaris 2.6, Π° Π·Π°ΡΠ΅ΠΌ Π² Digital Unix 4.0B, ΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠ΄ΡΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠ΅ Π² ΡΠ°Π±Π». 6.2 Π²Π΅Π»ΠΈΡΠΈΠ½Ρ:
solaris % limits
maximum amount of data per message = 2048
40 8-byte messages were placed on queue, 320 bytes total
40 16-byte messages were placed on queue, 640 bytes total
40 32-byte messages were placed on queue, 1280 bytes total
40 64-byte messages were placed on queue, 2560 bytes total
32 128-byte messages were placed on queue, 4096 bytes total
16 256-byte messages were placed on queue, 4096 bytes total
8 512-byte messages were placed on queue, 4096 bytes total
4 1024-byte messages were placed on queue, 4096 bytes total
2 2048-byte messages were placed on queue, 4096 bytes total
50 identifiers open at once
alpha % limits
maximum amount of data per message = 8192
40 8-byte messages were placed on queue, 320 bytes total
40 16-byte messages were placed on queue, 640 bytes total
40 32-byte messages were placed on queue, 1280 bytes total
40 64-byte messages were placed on queue, 2560 bytes total
40 128-byte messages were placed on queue, 5120 bytes total
40 256-byte messages were placed on queue, 10240 bytes total
32 512-byte messages were placed on queue, 16384 bytes total
16 1024-byte messages were placed on queue, 16384 bytes total
8 2048-byte messages were placed on queue, 16384 bytes total
4 4096-byte messages were placed on queue, 16384 bytes total
2 8192-byte messages were placed on queue, 16384 bytes total
63 identifiers at once
ΠΡΠΈΡΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ Π² Digital Unix 4.0Π ΠΏΠΎΠ»ΡΡΠΈΠ»ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ 63 ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°, Π° Π½Π΅ 64, ΠΊΠ°ΠΊ Π² ΡΠ°Π±Π». 6.2, Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π²ΡΠ΅Π³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΌ Π΄Π΅ΠΌΠΎΠ½ΠΎΠΌ.
6.11.Π Π΅Π·ΡΠΌΠ΅
ΠΡΠ΅ΡΠ΅Π΄ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ System V Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½Ρ ΠΎΡΠ΅ΡΠ΅Π΄ΡΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Posix. ΠΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π½ΠΎΠ²ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΡΠ΅ΡΠ΅Π΄Π΅ΠΉ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Posix, Π½ΠΎ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ System V. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°ΡΡ ΠΈΡ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΡΠ΅ΡΠ΅Π΄Π΅ΠΉ Posix Π²ΠΌΠ΅ΡΡΠΎ ΠΎΡΠ΅ΡΠ΅Π΄Π΅ΠΉ System V Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΡΠ»ΠΎΠΆΠ½ΠΎ. ΠΠ»Π°Π²Π½ΡΠΉ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ ΠΎΡΠ΅ΡΠ΅Π΄Π΅ΠΉ Posix Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΡΠΈΡΡΠ²Π°Π½ΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΌ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠΌ. ΠΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠΈΠΏΠΎΠ² ΠΎΡΠ΅ΡΠ΅Π΄Π΅ΠΉ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΎΠ±ΡΡΠ½ΡΠ΅ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΡ, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΡΠ»ΠΎΠΆΠ½ΡΠΌ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΉ select ΠΈ poll Π΄Π»Ρ ΠΎΡΠ΅ΡΠ΅Π΄Π΅ΠΉ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ.
Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΡ
1. ΠΠΎΡΠ΅ΠΌΡ Π½Π° ΡΠΈΡ. 6.2 Π΄Π»Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΡ ΡΠ΅ΡΠ²Π΅ΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΈΠΏ 1?
2. Π§ΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ Ρ ΡΠΈΡ. 6.2, Π΅ΡΠ»ΠΈ Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊ ΠΎΡΠΏΡΠ°Π²ΠΈΡ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, Π½ΠΎ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΡΠΈΡΡΠ²Π°ΡΡ ΠΎΡΠ²Π΅ΡΡ? Π§ΡΠΎ Π² ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅ ΡΠΈΡΡΠ°ΡΠΈΠΈ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ Ρ ΡΠΈΡ. 6.3?
3. ΠΠ΅ΡΠ΅Π΄Π΅Π»Π°ΠΉΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΎΡΠ΅ΡΠ΅Π΄Π΅ΠΉ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Posix ΠΈΠ· ΡΠ°Π·Π΄Π΅Π»Π° 5.8 Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΡΠ΅ΡΠ΅Π΄Π΅ΠΉ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ System V Π²ΠΌΠ΅ΡΡΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² ΠΏΠ°ΠΌΡΡΡ.
Π§ΠΠ‘Π’Π¬ 3
Π‘ΠΠΠ₯Π ΠΠΠΠΠΠ¦ΠΠ―
ΠΠΠΠΠ 7
ΠΠ·Π°ΠΈΠΌΠ½ΡΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈ ΡΡΠ»ΠΎΠ²Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅
7.1. ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
ΠΡΠ° Π³Π»Π°Π²Π° Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ β ΠΏΡΠΈΠ½ΡΠΈΠΏΠΎΠ² ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΈΠ»ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ². ΠΠ±ΡΡΠ½ΠΎ ΡΡΠΎ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌ ΠΏΠΎΡΠΎΠΊΠ°ΠΌ ΠΈΠ»ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π΄Π°Π½Π½ΡΠΌ. ΠΠ·Π°ΠΈΠΌΠ½ΡΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ (mutual exclusion β mutex) ΠΈ ΡΡΠ»ΠΎΠ²Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ (conditional variables) ΡΠ²Π»ΡΡΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌΠΈ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ.
ΠΠ·Π°ΠΈΠΌΠ½ΡΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈ ΡΡΠ»ΠΎΠ²Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΏΠΎΡΠ²ΠΈΠ»ΠΈΡΡ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ΅ Posix.1 Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ², ΠΈ Π²ΡΠ΅Π³Π΄Π° ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ Π΄Π»Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°. Π‘ΡΠ°Π½Π΄Π°ΡΡ Posix ΡΠ°ΠΊΠΆΠ΅ ΡΠ°Π·ΡΠ΅ΡΠ°Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²Π·Π°ΠΈΠΌΠ½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΡΡΠ»ΠΎΠ²Π½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈ Π΄Π»Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², Π΅ΡΠ»ΠΈ ΡΡΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Ρ ΡΠ°Π½ΠΈΡΡΡ Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΠ°ΠΌΡΡΠΈ, ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΉ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ.
ΠΠ ΠΠΠΠ§ΠΠΠΠ
ΠΡΠ° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ Posix, Π½ΠΎ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎΠΉ Π² Unix 98 (ΡΠΌ. ΡΠ°Π±Π». 1.3).
Π ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅ ΠΌΡ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΡΡ ΡΡ Π΅ΠΌΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ-ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π²Π·Π°ΠΈΠΌΠ½ΡΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈ ΡΡΠ»ΠΎΠ²Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅. Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π±ΡΠ΄ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ, Π° Π½Π΅ ΠΏΡΠΎΡΠ΅ΡΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΏΠΎΡΠΎΠΊΠ°ΠΌ ΠΎΠ±ΡΠΈΠΉ Π±ΡΡΠ΅Ρ Π΄Π°Π½Π½ΡΡ , ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΡΠΉ Π² ΡΡΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅, Π»Π΅Π³ΠΊΠΎ, Π° Π²ΠΎΡ ΡΠΎΠ·Π΄Π°ΡΡ Π±ΡΡΠ΅Ρ Π΄Π°Π½Π½ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠΎΡΠΌ ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΠΌΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ (ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΠΎΠΏΠΈΡΠ°Π½Π° ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠ΅ΡΠ²Π΅ΡΡΠΎΠΉ ΡΠ°ΡΡΠΈ ΠΊΠ½ΠΈΠ³ΠΈ). ΠΡΠ΅ ΠΎΠ΄Π½ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ, ΡΠΆΠ΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ΅ΠΌΠ°ΡΠΎΡΠΎΠ², ΠΏΠΎΡΠ²ΠΈΡΡΡ Π² Π³Π»Π°Π²Π΅ 10.
7.2. ΠΠ·Π°ΠΈΠΌΠ½ΡΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ: ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΈ ΡΠ½ΡΡΠΈΠ΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ
ΠΠ·Π°ΠΈΠΌΠ½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ (mutex) ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠ΅ΠΉ ΡΠΎΡΠΌΠΎΠΉ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ. ΠΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π·Π°ΡΠΈΡΡ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ (critical region), ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ°Ρ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠ°ΡΡΠΊΠ° ΠΊΠΎΠ΄Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ (Π΅ΡΠ»ΠΈ Π²Π·Π°ΠΈΠΌΠ½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ) ΠΈΠ»ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ (Π΅ΡΠ»ΠΈ Π²Π·Π°ΠΈΠΌΠ½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ). ΠΡΠ³Π»ΡΠ΄ΠΈΡ ΡΡΠΎ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ_mutex(β¦);
ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΎΠ±Π»Π°ΡΡΡ
ΡΠ°Π·Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ_mutex(β¦);
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ Π²Π·Π°ΠΈΠΌΠ½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π² Π»ΡΠ±ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΡΡΠΎ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ, ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡΠΎΠΊ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΊΠΎΠ΄, ΠΎΡΠ½ΠΎΡΡΡΠΈΠΉΡΡ ΠΊ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ.
ΠΠ·Π°ΠΈΠΌΠ½ΡΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΡ Posix ΠΎΠ±ΡΡΠ²Π»Π΅Π½Ρ ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Ρ ΡΠΈΠΏΠΎΠΌ pthread_mutex_t. ΠΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ-ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ, Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠΎΠΉ PTHREAD_MUTEX_INITIALIZER:
static pthread_mutex_t lock=PTHREAD_MUTEX_INITIALIZER;
ΠΡΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΌ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΠΎΠ΄ Π²Π·Π°ΠΈΠΌΠ½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΡΠ·ΠΎΠ²ΠΎΠΌ mallΠΎΡ) ΠΈΠ»ΠΈ ΠΏΡΠΈ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ΠΈΠΈ Π΅Π³ΠΎ Π² ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΠΌΡΡ ΠΏΠ°ΠΌΡΡΡ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, Π²ΡΠ·Π²Π°Π² ΡΡΠ½ΠΊΡΠΈΡ pthread_ mutex_init, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ 7.7.
ΠΠ ΠΠΠΠ§ΠΠΠΠ
ΠΠ°ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΏΠ°ΡΡΡΡΡ ΠΊΠΎΠ΄, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π²Π·Π°ΠΈΠΌΠ½ΡΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π½Π΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΡΡΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π² ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΡΡΠ°Ρ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ° ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 0, Π° ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΡΡΡΡ ΡΡΠΈΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ. ΠΠ΄Π½Π°ΠΊΠΎ ΡΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ΅Π½.
Π‘Π»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΈ ΡΠ½ΡΡΠΈΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ Π²Π·Π°ΠΈΠΌΠ½ΠΎΠ³ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ:
#include <pthread.h>
int pthread_mutex_lock(pthread_mutex_t *mptr);
int pthread_mutex_trylock(pthread_mutex_t *mptr);
int pthread_mutex_unlock(pthread_mutex_t *mptr);
/* ΠΡΠ΅ ΡΡΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ 0 Π² ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ, ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΡ Ρ Ρ β ΡΠ»ΡΡΠ°Π΅ ΠΎΡΠΈΠ±ΠΊΠΈ */
ΠΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ Π²Π·Π°ΠΈΠΌΠ½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΆΠ΅ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½ΠΎ Π΄ΡΡΠ³ΠΈΠΌ ΠΏΠΎΡΠΎΠΊΠΎΠΌ, ΡΡΠ½ΠΊΡΠΈΡ pthread_mutex_lock Π±ΡΠ΄Π΅Ρ ΠΎΠΆΠΈΠ΄Π°ΡΡ Π΅Π³ΠΎ ΡΠ°Π·Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½ΠΈΡ, a pthread_mutex_trylock (Π½Π΅Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΠΌΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ) Π²Π΅ΡΠ½Π΅Ρ ΠΎΡΠΈΠ±ΠΊΡ Ρ ΠΊΠΎΠ΄ΠΎΠΌ EBUSY.
ΠΠ ΠΠΠΠ§ΠΠΠΠ
ΠΡΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΠΎΠΆΠΈΠ΄Π°ΡΡ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΡ Π²Π·Π°ΠΈΠΌΠ½ΠΎΠ³ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ· Π½ΠΈΡ Π½Π°ΡΠ½Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΠ΅ΡΠ²ΡΠΌ? ΠΠ΄Π½Π° ΠΈΠ· Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠΌ 1003.1b-1993, Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ° ΠΏΠΎΡΠΎΠΊΠΎΠ². ΠΡ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ ΡΠ³Π»ΡΠ±Π»ΡΡΡΡΡ Π² ΡΡΡ ΠΎΠ±Π»Π°ΡΡΡ, ΠΎΡΠΌΠ΅ΡΠΈΠΌ Π»ΠΈΡΡ, ΡΡΠΎ ΡΠ°Π·Π½ΡΠΌ ΠΏΠΎΡΠΎΠΊΠ°ΠΌ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½Ρ ΡΠ°Π·Π½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ° ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ (ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠ΅ Ρ Π²Π·Π°ΠΈΠΌΠ½ΡΠΌΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡΠΌΠΈ, Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°ΠΌΠΈ ΡΡΠ΅Π½ΠΈΡ-Π·Π°ΠΏΠΈΡΠΈ ΠΈ ΡΠ΅ΠΌΠ°ΡΠΎΡΠ°ΠΌΠΈ) Π±ΡΠ΄ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌΡ ΠΏΠΎΡΠΎΠΊΡ Ρ Π½Π°ΠΈΠ²ΡΡΡΠΈΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ°. Π Π°Π·Π΄Π΅Π» 5.5 ΠΊΠ½ΠΈΠ³ΠΈ [3] ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π² Posix.1 Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ.
Π₯ΠΎΡΡ ΠΌΡ Π³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ Π·Π°ΡΠΈΡΠ΅ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΊΠΎΠ΄Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΠ΅ΡΡ ΠΈΠ΄Π΅Ρ ΠΎ Π·Π°ΡΠΈΡΠ΅ Π΄Π°Π½Π½ΡΡ , Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΡΠ° ΡΠ°ΡΡΡ ΠΊΠΎΠ΄Π°. Π’ΠΎ Π΅ΡΡΡ Π²Π·Π°ΠΈΠΌΠ½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π·Π°ΡΠΈΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ ΠΈΠ»ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ .
ΠΠ·Π°ΠΈΠΌΠ½ΡΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ Π΅ΡΠ»ΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ²ΡΠ·Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ, ΡΠΎ Π²ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠ΅ Ρ ΡΡΠΈΠΌ ΡΠΏΠΈΡΠΊΠΎΠΌ, Π΄ΠΎΠ»ΠΆΠ½Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ Π²Π·Π°ΠΈΠΌΠ½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅. ΠΠΈΡΡΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡ ΠΏΠΎΡΠΎΠΊΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎ ΡΠΏΠΈΡΠΊΠΎΠΌ, Π½Π΅ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π² Π²Π·Π°ΠΈΠΌΠ½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅. ΠΠ·Π°ΠΈΠΌΠ½ΡΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡΡ Π΄ΠΎΠ±ΡΠΎΠ²ΠΎΠ»ΡΠ½ΠΎΠ΅ ΡΠΎΡΡΡΠ΄Π½ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ².
7.3. Π‘Ρ Π΅ΠΌΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ-ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ
ΠΠ΄Π½Π° ΠΈΠ· ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΡ Π·Π°Π΄Π°Ρ Π½Π° ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Π·Π°Π΄Π°ΡΠ΅ΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ. ΠΠ½Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½Π° ΠΊΠ°ΠΊ Π·Π°Π΄Π°ΡΠ° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΠΎΠ³ΠΎ Π±ΡΡΠ΅ΡΠ°. ΠΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΉ (ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΈΠ»ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ²) ΡΠΎΠ·Π΄Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΌΠΈ. ΠΡΠΈ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠΌΠΈ ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΌΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠΎΡΠΌ IPC.