ΠΠ ΠΠΠΠ§ΠΠΠΠ
ΠΠ»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π² NFS Π±ΡΠ»Π° ΡΠ²ΡΠ·Π°Π½Π° Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΌΠ½ΠΎΠ³ΠΈΡ Π»Π΅Ρ, ΠΈ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π±ΡΠ»ΠΈ ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅ΠΌ ΠΏΠ»ΠΎΡ ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ. ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎΡ ΡΠ°ΠΊΡ, ΡΡΠΎ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΉ Unix Π²ΡΠ΅-ΡΠ°ΠΊΠΈ Π΄ΠΎΠ΄Π΅Π»Π°Π»ΠΈ ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ fcntl ΡΠ΅ΡΠ΅Π· NFS Π²ΡΠ΅ Π΅ΡΠ΅ Π΄Π°Π»Π΅ΠΊΠΎ ΠΎΡ ΡΠΎΠ²Π΅ΡΡΠ΅Π½ΡΡΠ²Π°. ΠΠ΅ Π±ΡΠ΄Π΅ΠΌ Π΄Π΅Π»Π°ΡΡ Π±Π΅Π·ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΡΡ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠΉ: Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° fcntl Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΈ Π² NFS, Π½ΠΎ Π±ΡΠ΄Π΅Ρ Π»ΠΈ β Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π΄Π΅ΠΌΠΎΠ½Π° ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ°.
9.10. Π Π΅Π·ΡΠΌΠ΅
ΠΠ»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ fcntl ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎΠΉ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ Π΄Π»Ρ ΡΠ°ΠΉΠ»Π°, ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΡΠΊΡΡΡΠΎΠ³ΠΎ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠ°. ΠΡΠΈ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ Π΄Π»Ρ ΡΠΎΡΡΡΠ΄Π½ΠΈΡΠ΅ΡΡΠ²Π° ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², Π½ΠΎ Π½Π΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°. Π’Π΅ΡΠΌΠΈΠ½ Β«Π·Π°ΠΏΠΈΡΡΒ» ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π½Π΅ Π²ΠΏΠΎΠ»Π½Π΅ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ΄ΡΠΎ Π½Π΅ ΡΠ°Π·Π»ΠΈΡΠ°Π΅Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ Π² ΡΠ°ΠΉΠ»Π΅. ΠΡΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅ΡΠΌΠΈΠ½ Β«Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°Β», ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΡΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΈΠ»ΠΈ Π΅Π΅ ΡΠ½ΡΡΠΈΠΈ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π±Π°ΠΉΡΠΎΠ² Π² ΡΠ°ΠΉΠ»Π΅. ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΠΎ Π²ΡΠ΅Ρ ΡΠ»ΡΡΠ°ΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΡΠΎΠΉ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΎΠ½Π° ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ ΡΠΎΡΡΡΠ΄Π½ΠΈΡΠ°ΡΡΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π΄Π°ΠΆΠ΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½Π°Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΊΠ»ΡΡΠΈΡΡ ΠΏΠΎΠ²ΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ .
ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ fcntl Π½Π΅ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅ΡΡΡ, ΡΡΠΎ ΡΠΈΡΠ°ΡΡΠΈΠ΅ ΠΈΠ»ΠΈ ΠΏΠΈΡΡΡΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΈΠΌΠ΅ΡΡ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ ΠΏΡΠΈ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠΈ (Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΌΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»ΠΈ Π² Π³Π»Π°Π²Π΅ 8 Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°ΠΌΠΈ ΡΡΠ΅Π½ΠΈΡ-Π·Π°ΠΏΠΈΡΠΈ). ΠΡΠ»ΠΈ ΡΡΠΎ Π²Π°ΠΆΠ½ΠΎ Π΄Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ (ΠΊΠ°ΠΊ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ 8.4) Ρ ΡΠ΅ΠΌ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ.
Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΡ
1. Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ locknone ΠΈΠ· Π»ΠΈΡΡΠΈΠ½Π³ΠΎΠ² 9.2 ΠΈ 9.1 ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ Π΅Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π·. Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π½Π΅ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌ.
2. ΠΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ Π»ΠΈΡΡΠΈΠ½Π³ 9.2 ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΏΠΎΡΠΎΠΊ Π²ΡΠ²ΠΎΠ΄Π° Π½Π΅ Π±ΡΡΠ΅ΡΠΈΠ·ΠΎΠ²Π°Π»ΡΡ. ΠΠ°ΠΊ ΡΡΠΎ ΠΏΠΎΠ²Π»ΠΈΡΠ΅Ρ Π½Π° ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ?
3. ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΠΉΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π²ΡΠ·ΡΠ²Π°Ρ putchar Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π° (Π²ΠΌΠ΅ΡΡΠΎ printf). ΠΠ°ΠΊ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ?
4. ΠΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΡ Π² ΡΡΠ½ΠΊΡΠΈΠΈ my_lock ΠΈΠ· Π»ΠΈΡΡΠΈΠ½Π³Π° 9.3 ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π»Π°ΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° Π½Π° ΡΡΠ΅Π½ΠΈΠ΅, Π° Π½Π΅ Π½Π° Π·Π°ΠΏΠΈΡΡ. Π§ΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ?
5. ΠΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ Π²ΡΠ·ΠΎΠ² open Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ loopmain.c, ΡΠΊΠ°Π·Π°Π² ΡΠ°ΠΊΠΆΠ΅ ΡΠ»Π°Π³ O_NONBLOCK. Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ loopfcntlnonb ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ Π΄Π²Π° ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°. Π§ΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ?
6. ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΠ΅ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π½Π΅Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΠΌΡΡ Π²Π΅ΡΡΠΈΡ loopmain.Ρ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ loopnonenonb (ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ°ΠΉΠ» locknone.c). ΠΠΊΠ»ΡΡΠΈΡΠ΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΡ Π΄Π»Ρ ΡΠ°ΠΉΠ»Π° seqno. ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΡΡΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ ΠΎΠ΄ΠΈΠ½ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ loopfcntlnonb ΠΈΠ· ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ. Π§ΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ?
7. Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ loopfcntl ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ Π΅Π΅ 10 ΡΠ°Π· Π² ΡΠΎΠ½ΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΈΠ· ΡΡΠ΅Π½Π°ΡΠΈΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄. ΠΠ°ΠΆΠ΄ΠΎΠΌΡ ΠΈΠ· 10 ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠΊΠ°Π·Π°ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ 10000. ΠΠ·ΠΌΠ΅ΡΡΡΠ΅ ΡΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ ΡΡΠ΅Π½Π°ΡΠΈΡ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠ΅Π»ΡΠ½ΠΎΠΉ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ. ΠΠ°ΠΊ Π²Π»ΠΈΡΠ΅Ρ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½Π°Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ?
8. ΠΠΎΡΠ΅ΠΌΡ ΠΌΡ Π²ΡΠ·ΡΠ²Π°Π»ΠΈ fork Π² Π»ΠΈΡΡΠΈΠ½Π³Π°Ρ 9.6 ΠΈ 9.7 Π΄Π»Ρ ΠΏΠΎΡΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ pthread_create Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠ²?
9. Π Π»ΠΈΡΡΠΈΠ½Π³Π΅ 9.9 ΠΌΡ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ ftruncate Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΡΠ°ΠΉΠ»Π° Π² 0 Π±Π°ΠΉΡ. ΠΠΎΡΠ΅ΠΌΡ Π±Ρ Π½Π°ΠΌ ΠΏΡΠΎΡΡΠΎ Π½Π΅ ΡΠΊΠ°Π·Π°ΡΡ ΡΠ»Π°Π³ O_TRUNC ΠΏΡΠΈ ΠΎΡΠΊΡΡΡΠΈΠΈ ΡΠ°ΠΉΠ»Π°?
10. ΠΠ°ΠΊΠΎΠΉ ΠΈΠ· ΠΊΠΎΠ½ΡΡΠ°Π½Ρ β SEEK_SET, SEEK_CUR ΠΈΠ»ΠΈ SEEK_END β ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΏΡΠΈ ΡΠΊΠ°Π·Π°Π½ΠΈΠΈ Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° ΠΏΡΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΏΠΎΡΠ΅ΠΌΡ?
ΠΠΠΠΠ 10
Π‘Π΅ΠΌΠ°ΡΠΎΡΡ Posix
10.1.ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
Π‘Π΅ΠΌΠ°ΡΠΎΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠ΅Π΅ ΡΡΠ΅Π΄ΡΡΠ²ΠΎ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ². ΠΡ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌ ΡΡΠΈ ΡΠΈΠΏΠ° ΡΠ΅ΠΌΠ°ΡΠΎΡΠΎΠ²:
β ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ΅ΠΌΠ°ΡΠΎΡΡ Posix, ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΠ΅ΠΌΡΠ΅ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΡ Posix Π΄Π»Ρ IPC (ΡΠΌ. ΡΠ°Π·Π΄Π΅Π» 2.2);
β ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅ΠΌΡΠ΅ Π² ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΠΌΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΡΠ΅ΠΌΠ°ΡΠΎΡΡ Posix;
β ΡΠ΅ΠΌΠ°ΡΠΎΡΡ System V (Π³Π»Π°Π²Π° 11), ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΡΠ΄ΡΠΎΠΌ.
ΠΡΠ΅ ΡΡΠΈ ΡΠΈΠΏΠ° ΡΠ΅ΠΌΠ°ΡΠΎΡΠΎΠ² ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠ°ΠΊ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², ΡΠ°ΠΊ ΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°. ΠΡ Π½Π°ΡΠ½Π΅ΠΌ Ρ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π±ΠΈΠ½Π°ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΌΠ°ΡΠΎΡΠ°, ΡΠΎ Π΅ΡΡΡ ΡΠ°ΠΊΠΎΠ³ΠΎ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ 0 ΠΈ 1. ΠΡΠΈΠΌΠ΅Ρ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ ΡΡ Π΅ΠΌΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ Π½Π° ΡΠΈΡ. 10.1.
Π ΠΈΡ. 10.1. ΠΠ²Π° ΠΏΡΠΎΡΠ΅ΡΡΠ° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π±ΠΈΠ½Π°ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΌΠ°ΡΠΎΡΠ°
ΠΠ° ΡΡΠΎΠΌ ΡΠΈΡΡΠ½ΠΊΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ Π±ΠΈΠ½Π°ΡΠ½ΡΠΉ ΡΠ΅ΠΌΠ°ΡΠΎΡ, Ρ ΡΠ°Π½ΡΡΠΈΠΉΡΡ Π² ΡΠ΄ΡΠ΅ (ΡΠ΅ΠΌΠ°ΡΠΎΡ System V).
Π‘Π΅ΠΌΠ°ΡΠΎΡΡ Posix Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ ΡΠ΄ΡΠΎΠΌ. ΠΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΈΠΌΠ΅Π½, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΈΠΌΠ΅Π½Π°ΠΌ ΡΠ΅Π°Π»ΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π² ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅. ΠΠ° ΡΠΈΡ. 10.2 ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½Π° ΡΡ Π΅ΠΌΠ°, Π»ΡΡΡΠ΅ ΠΈΠ»Π»ΡΡΡΡΠΈΡΡΡΡΠ°Ρ ΠΏΡΠ΅Π΄ΠΌΠ΅Ρ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠΉ Π³Π»Π°Π²Ρ β ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ΅ΠΌΠ°ΡΠΎΡ Posix.
Π ΠΈΡ. 10.2. ΠΠ²Π° ΠΏΡΠΎΡΠ΅ΡΡΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠ΅ Π±ΠΈΠ½Π°ΡΠ½ΡΠΉ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ΅ΠΌΠ°ΡΠΎΡ Posix
ΠΠ ΠΠΠΠ§ΠΠΠΠ
Π ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΈ ΡΠΈΡ. 10.2 Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΎΠ΄Π½ΠΎ ΡΡΠΎΡΠ½Π΅Π½ΠΈΠ΅: Ρ ΠΎΡΡ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ΅ΠΌΠ°ΡΠΎΡΡ Posix ΠΎΠ±Π»Π°Π΄Π°ΡΡ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ Π² ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅, ΠΎΠ½ΠΈ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ Ρ ΡΠ°Π½ΠΈΡΡΡΡ Π² ΡΠ°ΠΉΠ»Π°Ρ . ΠΠΎ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΌΠ°ΡΠΎΡΠ°, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, Π±ΡΠ΄Π΅Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΡΡΡΡ Π² ΡΠ΄ΡΠ΅, Π° ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π° Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π΄Π»Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΡΠ΅ΠΌΠ°ΡΠΎΡΠ°. ΠΡΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π² ΠΏΠ°ΠΌΡΡΡ (ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°ΠΊΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ 10.15) Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΌΠ°ΡΠΎΡΠ° Π±ΡΠ΄Π΅Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Ρ ΡΠ°Π½ΠΈΡΡΡΡ Π² ΡΠ°ΠΉΠ»Π΅, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π² Π°Π΄ΡΠ΅ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π²ΡΠ΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ ΡΠ΅ΠΌΠ°ΡΠΎΡ.
ΠΠ° ΡΠΈΡ. 10.1 ΠΈ 10.2 ΠΌΡ ΡΠΊΠ°Π·Π°Π»ΠΈ ΡΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½Ρ ΠΊ ΡΠ΅ΠΌΠ°ΡΠΎΡΠ°ΠΌ:
1. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ΅ΠΌΠ°ΡΠΎΡΠ°. ΠΡΠΈ ΡΡΠΎΠΌ Π²ΡΠ·Π²Π°Π²ΡΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΊΠ°Π·Π°ΡΡ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ (ΡΠ°ΡΡΠΎ 1, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈ 0).
2. ΠΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ΅ΠΌΠ°ΡΠΎΡΠ° (wait). ΠΡΠΈ ΡΡΠΎΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈ ΠΏΡΠΎΡΠ΅ΡΡ Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΡΡΡ, Π΅ΡΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΌΠ΅Π½ΡΡΠΈΠΌ Π»ΠΈΠ±ΠΎ ΡΠ°Π²Π½ΡΠΌ 0, Π° ΠΏΡΠΈ ΠΏΡΠ΅Π²ΡΡΠ΅Π½ΠΈΠΈ 0 Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΌΠ΅Π½ΡΡΠ°Π΅ΡΡΡ Π½Π° 1. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°ΠΏΠΈΡΠ°Π½ΠΎ Π½Π° ΠΏΡΠ΅Π²Π΄ΠΎΠΊΠΎΠ΄Π΅ ΠΊΠ°ΠΊ
while (semaphore_value <= 0); /* wait: Ρ.Π΅. ΠΏΠΎΡΠΎΠΊ ΠΈΠ»ΠΈ ΠΏΡΠΎΡΠ΅ΡΡ Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΡΡΡ */
semaphore_value--; /* ΡΠ΅ΠΌΠ°ΡΠΎΡ ΡΠ°Π·ΡΠ΅ΡΠ°Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ */
ΠΡΠ½ΠΎΠ²Π½ΡΠΌ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ Π°ΡΠΎΠΌΠ°ΡΠ½ΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΡΠΈΠΊΠ»Π΅ while ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ΅ΠΌΠ°ΡΠΎΡΠ° (ΡΠΎ Π΅ΡΡΡ ΠΊΠ°ΠΊ ΠΎΠ΄Π½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ) ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΊ Π΄ΡΡΠ³ΠΈΠΌ ΠΏΠΎΡΠΎΠΊΠ°ΠΌ (ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· ΠΏΡΠΈΡΠΈΠ½, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ΅ΠΌΠ°ΡΠΎΡΡ System V Π±ΡΠ»ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π² ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Π΅ 80-Ρ ΠΊΠ°ΠΊ ΡΠ°ΡΡΡ ΡΠ΄ΡΠ°. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ Π½ΠΈΠΌΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ»ΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ², Π»Π΅Π³ΠΊΠΎ Π±ΡΠ»ΠΎ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡ Π°ΡΠΎΠΌΠ°ΡΠ½ΠΎΡΡΡ ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΊ Π΄ΡΡΠ³ΠΈΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌ).
Π£ ΡΡΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠ±ΡΠ΅ΡΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠΌΠ΅Π½. ΠΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΠΎΠ½Π° Π½Π°Π·ΡΠ²Π°Π»Π°ΡΡ Π , ΠΎΡ Π³ΠΎΠ»Π»Π°Π½Π΄ΡΠΊΠΎΠ³ΠΎ proben (ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°, ΠΏΠΎΠΏΡΡΠΊΠ°), β ΡΡΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π±ΡΠ»ΠΎ Π²Π²Π΅Π΄Π΅Π½ΠΎ ΠΠ΄ΡΠ³Π΅ΡΠΎΠΌ ΠΠ΅ΠΉΠΊΡΡΡΠΎΠΉ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΈ ΡΠ΅ΡΠΌΠΈΠ½Ρ down (ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΌΠ°ΡΠΎΡΠ° ΡΠΌΠ΅Π½ΡΡΠ°Π΅ΡΡΡ) ΠΈ lock, Π½ΠΎ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΡ Posix ΠΈ Π³ΠΎΠ²ΠΎΡΠΈΡΡ ΠΎΠ± ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠΈ (wait).
3. Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ΅ΠΌΠ°ΡΠΎΡΠ° (post). ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΌΠ°ΡΠΎΡΠ° ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°ΠΏΠΈΡΠ°Π½Π° Π½Π° ΠΏΡΠ΅Π²Π΄ΠΎΠΊΠΎΠ΄Π΅ ΠΊΠ°ΠΊ
semaphore_value++;
ΠΡΠ»ΠΈ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΈΠΌΠ΅ΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΡ, ΠΎΠΆΠΈΠ΄Π°ΡΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ΅ΠΌΠ°ΡΠΎΡΠ° Π΄ΠΎ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ, ΠΏΡΠ΅Π²ΠΎΡΡ ΠΎΠ΄ΡΡΠ΅ΠΉ 0, ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΎΠ±ΡΠΆΠ΄Π΅Π½. ΠΠ°ΠΊ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ΅ΠΌΠ°ΡΠΎΡΠ° ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π°ΡΠΎΠΌΠ°ΡΠ½ΠΎΠΉ ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΊ Π΄ΡΡΠ³ΠΈΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΌ Ρ ΡΡΠΈΠΌ ΡΠ΅ΠΌΠ°ΡΠΎΡΠΎΠΌ.
ΠΠ»Ρ ΡΡΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠ°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠ±ΡΠ΅ΡΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ². ΠΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΠΎΠ½Π° Π½Π°Π·ΡΠ²Π°Π»Π°ΡΡ V, ΠΎΡ Π³ΠΎΠ»Π»Π°Π½Π΄ΡΠΊΠΎΠ³ΠΎ verhogen (ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°ΡΡ). ΠΠ°Π·ΡΠ²Π°ΡΡ Π΅Π΅ up (Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΌΠ°ΡΠΎΡΠ° ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ), unlock ΠΈ signal. ΠΡ, ΡΠ»Π΅Π΄ΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΡ Posix, Π½Π°Π·ΡΠ²Π°Π΅ΠΌ ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ post.
ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΡΠ΅Π°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ΅ΠΌΠ°ΡΠΎΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠΌ, ΡΠ΅ΠΌ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π²ΡΡΠ΅. ΠΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ, ΠΎΠΆΠΈΠ΄Π°ΡΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΡΠ΅ΠΌΠ°ΡΠΎΡΠ°, Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡΡΡ Π² ΠΎΡΠ΅ΡΠ΅Π΄Ρ, ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΡΡΠ΅Π±ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΡΠ»ΠΎΠ²ΠΈΡ. Π ΡΡΠ°ΡΡΡΡ, ΡΡΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ ΠΏΡΠ΅Π²Π΄ΠΎΠΊΠΎΠ΄ Π½Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ Π² ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π±ΠΈΠ½Π°ΡΠ½ΡΠΌΠΈ ΡΠ΅ΠΌΠ°ΡΠΎΡΠ°ΠΌΠΈ. ΠΠΎΠ΄ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΡΠ΅ΠΌΠ°ΡΠΎΡΠΎΠΌ, ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΠΌΡΠΌ Π»ΡΠ±ΡΠΌ Π½Π΅ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ. Π’Π°ΠΊΠΈΠ΅ ΡΠ΅ΠΌΠ°ΡΠΎΡΡ Π½Π°Π·ΡΠ²Π°ΡΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠ΅ΠΌΠ°ΡΠΎΡΠ°ΠΌΠΈ-ΡΡΠ΅ΡΡΠΈΠΊΠ°ΠΌΠΈ. ΠΠ±ΡΡΠ½ΠΎ ΠΎΠ½ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΡΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ N, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΡΠ΅ΡΡΡΡΠΎΠ² (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π±ΡΡΠ΅ΡΠΎΠ²). Π ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅ Π΅ΡΡΡ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ°ΠΊ Π±ΠΈΠ½Π°ΡΠ½ΡΡ ΡΠ΅ΠΌΠ°ΡΠΎΡΠΎΠ², ΡΠ°ΠΊ ΠΈ ΡΠ΅ΠΌΠ°ΡΠΎΡΠΎΠ²-ΡΡΠ΅ΡΡΠΈΠΊΠΎΠ².
ΠΠ ΠΠΠΠ§ΠΠΠΠ
ΠΡ ΡΠ°ΡΡΠΎ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΠΌ ΡΠ°Π·Π»ΠΈΡΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π±ΠΈΠ½Π°ΡΠ½ΡΠΌΠΈ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ·Π½Π°ΡΠ½ΡΠΌΠΈ ΡΠ΅ΠΌΠ°ΡΠΎΡΠ°ΠΌΠΈ, Π½ΠΎ Π΄Π΅Π»Π°Π΅ΠΌ ΡΡΠΎ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π² ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΡ ΡΠ΅Π»ΡΡ . Π ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ΅ΠΌΠ°ΡΠΎΡΠΎΠ² Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΡΠ°Π·Π½ΠΈΡΡ Π½Π΅Ρ.
ΠΠΈΠ½Π°ΡΠ½ΡΠΉ ΡΠ΅ΠΌΠ°ΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΡΠ΅Π΄ΡΡΠ²Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ (ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π²Π·Π°ΠΈΠΌΠ½ΠΎΠΌΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ). Π Π»ΠΈΡΡΠΈΠ½Π³Π΅ 10.1 ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ Π΄Π»Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΡΡΠΈΡ ΡΡΠ΅Π΄ΡΡΠ².
ΠΠΈΡΡΠΈΠ½Π³ 10.1. Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Π±ΠΈΠ½Π°ΡΠ½ΡΡ ΡΠ΅ΠΌΠ°ΡΠΎΡΠΎΠ² ΠΈ Π²Π·Π°ΠΈΠΌΠ½ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π²Π·Π°ΠΈΠΌΠ½ΠΎΠ³ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ; ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ΅ΠΌΠ°ΡΠΎΡΠ° Π΅Π΄ΠΈΠ½ΠΈΡΠ΅ΠΉ;