2. Π‘ΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ (Π²Π·Π°ΠΈΠΌΠ½ΡΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, ΡΡΠ»ΠΎΠ²Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΡΡΠ΅Π½ΠΈΡ-Π·Π°ΠΏΠΈΡΠΈ, ΡΠ΅ΠΌΠ°ΡΠΎΡΡ).
3. Π Π°Π·Π΄Π΅Π»ΡΠ΅ΠΌΠ°Ρ ΠΏΠ°ΠΌΡΡΡ (Π½Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Π°Ρ ΠΈ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Π°Ρ).
4. ΠΡΠ·ΠΎΠ² ΠΏΡΠΎΡΠ΅Π΄ΡΡ (Π΄Π²Π΅ΡΠΈ Π² Solaris, RPC Sun).
ΠΡ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΊΠ°ΠΊ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°, ΡΠ°ΠΊ ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ².
ΠΠΈΠ²ΡΡΠ΅ΡΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° IPC ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Π»ΠΈΠ±ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ, Π»ΠΈΠ±ΠΎ ΡΠ΄ΡΠΎΠΌ, Π»ΠΈΠ±ΠΎ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π΅Π³ΠΎ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠΈ Π²ΡΠ±ΠΎΡΠ΅ ΡΠΈΠΏΠ° IPC Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½ΡΠΆΠ½ΠΎ ΡΡΠΈΡΡΠ²Π°ΡΡ Π΅Π³ΠΎ ΠΆΠΈΠ²ΡΡΠ΅ΡΡΡ.
ΠΡΡΠ³ΠΈΠΌ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎΠΌ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° IPC ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈΠΌΠ΅Π½, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠ΅Π΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² IPC ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ ΠΈ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠΌΠΈ Π΅Π³ΠΎ. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π½Π΅ ΠΈΠΌΠ΅ΡΡ ΠΈΠΌΠ΅Π½ (ΠΊΠ°Π½Π°Π»Ρ, Π²Π·Π°ΠΈΠΌΠ½ΡΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, ΡΡΠ»ΠΎΠ²Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΡΡΠ΅Π½ΠΈΡ-Π·Π°ΠΏΠΈΡΠΈ), Π΄ΡΡΠ³ΠΈΠ΅ ΠΎΠ±Π»Π°Π΄Π°ΡΡ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ (ΠΊΠ°Π½Π°Π»Ρ FIFO), ΡΡΠ΅ΡΡΠΈ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΠ·ΡΡΡΡΡ ΡΠ΅ΠΌ, ΡΡΠΎ Π² Π³Π»Π°Π²Π΅ 2 Π½Π°Π·Π²Π°Π½ΠΎ Β«ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ IPC ΡΡΠ°Π½Π΄Π°ΡΡΠ° PosixΒ», Π° ΡΠ΅ΡΠ²Π΅ΡΡΡΠ΅ β Π΅ΡΠ΅ ΠΎΠ΄Π½ΠΈΠΌ ΡΠΈΠΏΠΎΠΌ ΠΈΠΌΠ΅Π½, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠΏΠΈΡΠ°Π½ Π² Π³Π»Π°Π²Π΅ 3 (ΠΊΠ»ΡΡΠΈ ΠΈΠ»ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ IPC ΡΡΠ°Π½Π΄Π°ΡΡΠ° System V). ΠΠ±ΡΡΠ½ΠΎ ΡΠ΅ΡΠ²Π΅Ρ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ IPC Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ, Π° ΠΊΠ»ΠΈΠ΅Π½ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΡΠΎ ΠΈΠΌΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΡ.
Π ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΠΊΠΎΠ΄Π°Ρ , ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΡ Π² ΠΊΠ½ΠΈΠ³Π΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ-ΠΎΠ±Π΅ΡΡΠΊΠΈ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ 1.6, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠ΅ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΠΎΠ±ΡΠ΅ΠΌ ΠΊΠΎΠ΄Π°, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Ρ, ΡΠ΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΏΡΠΎΠ²Π΅ΡΠΊΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΠΎΡΠΈΠ±ΠΊΠΈ Π΄Π»Ρ Π»ΡΠ±ΠΎΠΉ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠΌΠ΅Π½Π° Π²ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΉ-ΠΎΠ±Π΅ΡΡΠΎΠΊ Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ Ρ Π·Π°Π³Π»Π°Π²Π½ΠΎΠΉ Π±ΡΠΊΠ²Ρ.
Π‘ΡΠ°Π½Π΄Π°ΡΡΡ IEEE Posix β Posix.1, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠΈΠΉ ΠΎΡΠ½ΠΎΠ²Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π‘ Π² Unix, ΠΈ Posix.2, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠΈΠΉ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, β ΡΡΠΎ ΡΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΡ, ΠΊ ΠΊΠΎΡΠΎΡΡΠΌ Π΄Π²ΠΈΠΆΡΡΡΡ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΉ. ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΡ Posix Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π±ΡΡΡΡΠΎ ΠΏΠΎΠ³Π»ΠΎΡΠ°ΡΡΡΡ (Π²ΠΊΠ»ΡΡΠ°ΡΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ°ΡΡΠΈ) ΠΈ ΡΠ°ΡΡΠΈΡΡΡΡΡΡ ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠΈΠΌΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ°ΠΌΠΈ, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ The Open Group (Unix 98).
Π’Π°Π±Π»ΠΈΡΠ° 1.5. ΠΠ΅ΡΡΠΈΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ-ΡΠ΅ΡΠ²Π΅Ρ
ΠΠΈΡΡΠΈΠ½Π³ ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ 4.1 ΠΠ²Π° ΠΊΠ°Π½Π°Π»Π° ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΌ ΠΈ ΠΏΠΎΡΠΎΠΆΠ΄Π΅Π½Π½ΡΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ 4.5 ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ popen ΠΈ cat 4.6 ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π΄Π²Π° ΠΊΠ°Π½Π°Π»Π° FIFO ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΌ ΠΈ ΠΏΠΎΡΠΎΠΆΠ΄Π΅Π½Π½ΡΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ 4.7 ΠΠ²Π° ΠΊΠ°Π½Π°Π»Π° FIFO ΠΌΠ΅ΠΆΠ΄Ρ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠΌ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ ΠΈ Π½Π΅ΡΠΎΠ΄ΡΡΠ²Π΅Π½Π½ΡΠΌ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ 4.10 ΠΠ°Π½Π°Π»Ρ FIFO ΠΌΠ΅ΠΆΠ΄Ρ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠΌ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌΠΈ 4.12 ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΊΠ°Π½Π°Π» ΠΈΠ»ΠΈ FIFO: ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π² ΠΏΠΎΡΠΎΠΊΠ΅ Π±Π°ΠΉΡΠΎΠ² 6.7 ΠΠ²Π΅ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ System V 6.12 ΠΠ΄Π½Π° ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ System V Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌΠΈ 6.16 ΠΠ΄Π½Π° ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ System V Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°; ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ 15.15 ΠΠ΅ΡΠ΅Π΄Π°ΡΠ° Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠ° ΡΠ΅ΡΠ΅Π· Π΄Π²Π΅ΡΡΠ’Π°Π±Π»ΠΈΡΠ° 1.6. ΠΠ΅ΡΡΠΈΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ-ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ
ΠΠΈΡΡΠΈΠ½Π³ ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ 7.1 ΠΠ·Π°ΠΈΠΌΠ½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΉ, ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ 7.5 ΠΠ·Π°ΠΈΠΌΠ½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ ΡΡΠ»ΠΎΠ²Π½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ, Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΉ, ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ 10.8 ΠΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ΅ΠΌΠ°ΡΠΎΡΡ Posix, ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ, ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ 10.11 Π‘Π΅ΠΌΠ°ΡΠΎΡΡ Posix Π² ΠΏΠ°ΠΌΡΡΠΈ, ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ, ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ 10.12 Π‘Π΅ΠΌΠ°ΡΠΎΡΡ Posix Π² ΠΏΠ°ΠΌΡΡΠΈ, Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΉ, ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ 10.15 Π‘Π΅ΠΌΠ°ΡΠΎΡΡ Posix Π² ΠΏΠ°ΠΌΡΡΠΈ, Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΉ, Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Π΅ΠΉ 10.18 Π‘Π΅ΠΌΠ°ΡΠΎΡΡ Posix Π² ΠΏΠ°ΠΌΡΡΠΈ, ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ, ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ: Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π±ΡΡΠ΅ΡΠΎΠ²Π’Π°Π±Π»ΠΈΡΠ° 1.7. ΠΠ΅ΡΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Ρ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π½ΠΎΠΌΠ΅ΡΠ°
ΠΠΈΡΡΠΈΠ½Π³ ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ 9.1 ΠΠ½Π΄Π΅ΠΊΡ Π² ΡΠ°ΠΉΠ»Π΅, Π±Π΅Π· Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ 9.3 ΠΠ½Π΄Π΅ΠΊΡ Π² ΡΠ°ΠΉΠ»Π΅, Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ fcntl 9.9 ΠΠ½Π΄Π΅ΠΊΡ Π² ΡΠ°ΠΉΠ»Π΅, Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ open 10.10 ΠΠ½Π΄Π΅ΠΊΡ Π² ΡΠ°ΠΉΠ»Π΅, Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΌΠ°ΡΠΎΡΠ° Posix 12.2 ΠΠ½Π΄Π΅ΠΊΡ Π² ΠΎΠ±ΡΠ΅ΠΉ ΠΏΠ°ΠΌΡΡΠΈ mmap, Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΌΠ°ΡΠΎΡΠ° Posix 12.3 ΠΠ½Π΄Π΅ΠΊΡ Π² ΠΎΠ±ΡΠ΅ΠΉ ΠΏΠ°ΠΌΡΡΠΈ mmap, Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΅ΠΌΠ°ΡΠΎΡΠ° Posix Π² ΠΏΠ°ΠΌΡΡΠΈ 12.4 ΠΠ½Π΄Π΅ΠΊΡ Π² Π½Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΉ ΠΏΠ°ΠΌΡΡΠΈ 4.4BSD, Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΌΠ°ΡΠΎΡΠ° Posix 12.5 ΠΠ½Π΄Π΅ΠΊΡ Π² ΠΎΠ±ΡΠ΅ΠΉ ΠΏΠ°ΠΌΡΡΠΈ SVR4 /dev/zero, Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΌΠ°ΡΠΎΡΠ° Posix 13.6 ΠΠ½Π΄Π΅ΠΊΡ Π² ΠΎΠ±ΡΠ΅ΠΉ ΠΏΠ°ΠΌΡΡΠΈ Posix, Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΅ΠΌΠ°ΡΠΎΡΠ° Posix Π² ΠΏΠ°ΠΌΡΡΠΈ Π.19 ΠΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ: Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° Π²Π·Π°ΠΈΠΌΠ½ΡΠΌ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ Π.22 ΠΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ: Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° ΡΡΠ΅Π½ΠΈΡ-Π·Π°ΠΏΠΈΡΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ Π.23 ΠΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ: Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΅ΠΌΠ°ΡΠΎΡΠΎΠ² Posix Π² ΠΏΠ°ΠΌΡΡΠΈ Π.25 ΠΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ: Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΡ ΡΠ΅ΠΌΠ°ΡΠΎΡΠΎΠ² Posix Π.28 ΠΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ: Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΅ΠΌΠ°ΡΠΎΡΠΎΠ² System V Π.29 ΠΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ: Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ fcntl Π.33 ΠΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ: Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²Π·Π°ΠΈΠΌΠ½ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉΠ£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΡ
1. ΠΠ° ΡΠΈΡ 1.1 ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½Ρ Π΄Π²Π° ΠΏΡΠΎΡΠ΅ΡΡΠ°, ΠΎΠ±ΡΠ°ΡΠ°ΡΡΠΈΠ΅ΡΡ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡ ΡΠ°ΠΉΠ»Ρ. ΠΡΠ»ΠΈ ΠΎΠ±Π° ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΠΎΠ»ΡΠΊΠΎ Π΄ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΊ ΠΊΠΎΠ½ΡΡ ΡΠ°ΠΉΠ»Π° (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΄Π»ΠΈΠ½Π½ΠΎΠ³ΠΎ), ΠΊΠ°ΠΊΠΎΠΉ Π½ΡΠΆΠ΅Π½ Π±ΡΠ΄Π΅Ρ ΡΠΈΠΏ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ?
2. ΠΠ·ΡΡΠΈΡΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» <errno.h> Π² Π²Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΈ Π²ΡΡΡΠ½ΠΈΡΠ΅, ΠΊΠ°ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° errno.
3. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ°Π±Π». 1.3 ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΌΠΈ Π²Π°ΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠΌΠΈ Unix-ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ.
ΠΠΠΠΠ 2
Posix IPC
2.1. ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
ΠΠ· ΠΈΠΌΠ΅ΡΡΠΈΡ ΡΡ ΡΠΈΠΏΠΎΠ² IPC ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΡΠ½Π΅ΡΠ΅Π½Ρ ΠΊ Posix IPC, ΡΠΎ Π΅ΡΡΡ ΠΊ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΡ Posix:
β ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Posix (Π³Π»Π°Π²Π° 5);
β ΡΠ΅ΠΌΠ°ΡΠΎΡΡ Posix (Π³Π»Π°Π²Π° 10);
β ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΠΌΠ°Ρ ΠΏΠ°ΠΌΡΡΡ Posix (Π³Π»Π°Π²Π° 13).
ΠΡΠΈ ΡΡΠΈ Π²ΠΈΠ΄Π° IPC ΠΎΠ±Π»Π°Π΄Π°ΡΡ ΠΎΠ±ΡΠΈΠΌΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ, ΠΈ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π½ΠΈΠΌΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΏΠΎΡ ΠΎΠΆΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ. Π ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅ ΡΠ΅ΡΡ ΠΏΠΎΠΉΠ΄Π΅Ρ ΠΎΠ± ΠΎΠ±ΡΠΈΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΡ ΠΊ ΠΏΠΎΠ»Π½ΡΠΌ ΠΈΠΌΠ΅Π½Π°ΠΌ ΡΠ°ΠΉΠ»ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ², ΠΎ ΡΠ»Π°Π³Π°Ρ , ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌΡΡ ΠΏΡΠΈ ΠΎΡΠΊΡΡΡΠΈΠΈ ΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² IPC, ΠΈ ΠΎ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡΡ Π½Π° Π΄ΠΎΡΡΡΠΏ ΠΊ Π½ΠΈΠΌ.
ΠΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ IPC, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ Π² ΡΠ°Π±Π». 2.1.
Π’Π°Π±Π»ΠΈΡΠ° 2.1. Π€ΡΠ½ΠΊΡΠΈΠΈ Posix IPC
ΠΡΠ΅ΡΠ΅Π΄ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π‘Π΅ΠΌΠ°ΡΠΎΡΡ ΠΠ±ΡΠ°Ρ ΠΏΠ°ΠΌΡΡΡ ΠΠ°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» <mqueue.h> <semaphore.h> <sys/mman.h> Π€ΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ, ΠΎΡΠΊΡΡΡΠΈΡ ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ mq_open mq_close mq_unlink sem_open sem_close sem_unlink sem_init sem_destroy shm_open shm_unlink ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ mq_getattr mq_setattr ftruncate fstat ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ IPC mq_send mq_receive mq_notify sem_wait sem_trywait sem_post sem_getvalue mmap munmap2.2. ΠΠΌΠ΅Π½Π° IPC