2. ΠΠ°Π»Π΅Π΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π° ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ
readint read_resp_from_server(message_db_t *rec_ptr) {Β int read_bytes;Β int return_code = 0;#if DEBUG_TRACEΒ printf("%d :- reader_resp_from_server()\n", getpid());Β #endifΒ if (!rec_ptr) return(0);Β if (client_fd = -1) return(0);Β read_bytes = read(client_fd, rec_ptr, sizeof(*rec_ptr));Β if (read_bytes = sizeof(*rec_ptr)) return_code = 1;Β return(return_code);}3.Β Π Π² Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ, ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡΠ°Ρ ΠΊΠΎΠ½Π΅Ρ ΠΎΡΠ²Π΅ΡΠ° ΡΠ΅ΡΠ²Π΅ΡΠ°.
void end_resp_from_server(void) {#if DEBUG_TRACEΒ printf("%d :- end_resp_from_server()\n", getpid());#endifΒ /* Π ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠ°Π½Π°Π»Π° ΡΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΡΡΠ°Ρ */}ΠΡΠΎΡΠΎΠΉ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ²
openstart_resp_from_serverclient_write_fd = open(client_pipe_name, O_WRONLY);ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π΄Π»Ρ Π·Π°ΡΠΈΡΡ ΠΎΡ ΡΠΈΡΡΠ°ΡΠΈΠΈ Π³ΠΎΠ½ΠΎΠΊ, ΠΊΠΎΠ³Π΄Π° ΡΠ΅ΡΠ²Π΅ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π±ΡΡΡΡΠΎ ΠΎΡΠΊΠ»ΠΈΠΊΠ°ΡΡΡΡ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΊΠ»ΠΈΠ΅Π½ΡΠ°,
ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΡΡΠ°Π»ΠΎ ΠΏΠΎΠ½ΡΡΠ½Π΅Π΅, ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ°ΠΊΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠΎΠ±ΡΡΠΈΠΉ:
1.Β ΠΠ»ΠΈΠ΅Π½Ρ ΠΏΠΈΡΠ΅Ρ Π·Π°ΠΏΡΠΎΡ ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ.
2.Β Π‘Π΅ΡΠ²Π΅Ρ ΡΠΈΡΠ°Π΅Ρ Π·Π°ΠΏΡΠΎΡ, ΠΎΡΠΊΡΡΠ²Π°Π΅Ρ ΠΊΠ°Π½Π°Π» ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ ΠΎΡΠ²Π΅Ρ, Π½ΠΎ ΠΏΡΠΈΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΡΠΏΠ΅Π΅Ρ Π·Π°ΠΊΡΡΡΡ ΠΊΠ°Π½Π°Π» ΠΊΠ»ΠΈΠ΅Π½ΡΠ°.
3.Β ΠΠ»ΠΈΠ΅Π½Ρ ΠΎΡΠΊΡΡΠ²Π°Π΅Ρ ΠΊΠ°Π½Π°Π» Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ, ΡΠΈΡΠ°Π΅Ρ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΎΡΠ²Π΅Ρ ΠΈ Π·Π°ΠΊΡΡΠ²Π°Π΅Ρ ΡΠ²ΠΎΠΉ ΠΊΠ°Π½Π°Π».
4.Β ΠΠ°Π»Π΅Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΏΠΎΡΡΠ»Π°Π΅Ρ Π½ΠΎΠ²ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈ ΠΎΡΠΊΡΡΠ²Π°Π΅Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΠΉ ΠΊΠ°Π½Π°Π» Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ.
5.Β Π‘Π΅ΡΠ²Π΅Ρ Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ ΡΠ°Π±ΠΎΡΡ, Π·Π°ΠΊΡΡΠ²Π°Ρ ΡΠ²ΠΎΠΉ ΠΊΠΎΠ½Π΅Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠ³ΠΎ ΠΊΠ°Π½Π°Π»Π°.
Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, Π² ΡΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΏΡΡΠ°Π΅ΡΡΡ ΡΡΠΈΡΠ°ΡΡ ΠΈΠ· ΠΊΠ°Π½Π°Π»Π° ΠΎΡΠ²Π΅Ρ Π½Π° ΡΠ²ΠΎΠΉ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π·Π°ΠΏΡΠΎΡ, Π½ΠΎ
readΠ Π°Π·ΡΠ΅ΡΠΈΠ² ΠΊΠ»ΠΈΠ΅Π½ΡΡ ΠΎΡΠΊΡΡΡΡ ΠΊΠ°Π½Π°Π» ΠΊΠ°ΠΊ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ, ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ, ΠΈ ΡΡΡΡΠ°Π½ΠΈΠ² ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΎΡΠΊΡΡΡΠΈΡ ΠΊΠ°Π½Π°Π»Π°, Π²Ρ ΠΈΠ·Π±Π΅ΠΆΠΈΡΠ΅ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ Π³ΠΎΠ½ΠΎΠΊ. Π£ΡΡΠΈΡΠ΅, ΡΡΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΏΠΈΡΠ΅Ρ Π² ΠΊΠ°Π½Π°Π», ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅Ρ ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΡΡΠΈΡΡΠ²Π°Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΎΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ .
Π Π΅Π·ΡΠΌΠ΅, ΠΊΠ°ΡΠ°ΡΡΠ΅Π΅ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
ΠΡ ΡΠ°Π·Π΄Π΅Π»ΠΈΠ»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΠΏΡΠ°Π²Π»ΡΡΡΠ΅Π΅ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ-Π΄ΠΈΡΠΊΠΎΠ², Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΡΡ ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ ΡΠ°ΡΡΠΈ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈ Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ ΡΠ°Π±ΠΎΡΡ Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ . ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, ΡΠ΅ΡΠΊΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ Π²Π°ΠΆΠ½ΠΎΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π°ΠΈΠ»ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ°ΡΠΈΠ½Π½ΡΠ΅ ΡΠ΅ΡΡΡΡΡ. ΠΡΠ»ΠΈ ΠΏΠΎΠΉΡΠΈ ΡΡΡΡ Π΄Π°Π»ΡΡΠ΅, ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ°Π½Π°Π»ΠΎΠ² Π½Π° ΡΠ΅ΡΠ΅Π²ΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ Π΄Π»Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . Π Π³Π»Π°Π²Π΅ 15 Π²Ρ ΡΠ·Π½Π°Π΅ΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅ ΠΎΠ± ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ΅ΡΠΈ.
Π Π΅Π·ΡΠΌΠ΅Β
Π ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅ Π²Ρ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π΄Π°Π½Π½ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ°Π½Π°Π»ΠΎΠ². Π‘Π½Π°ΡΠ°Π»Π° Π²Ρ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠ»ΠΈΡΡ Ρ Π½Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠΌΠΈ ΠΊΠ°Π½Π°Π»Π°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ
popenpipedupΠΠ»Π°Π²Π° 14
Π‘Π΅ΠΌΠ°ΡΠΎΡΡ, ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠ°Ρ ΠΏΠ°ΠΌΡΡΡ ΠΈ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ
Π ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅ ΠΌΡ ΠΎΠ±ΡΡΠ΄ΠΈΠΌ Π½Π°Π±ΠΎΡ ΡΡΠ΅Π΄ΡΡΠ², ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠΈΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΠΈ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎ Π²Π²Π΅Π΄Π΅Π½Π½ΡΡ Π² Π²Π΅ΡΡΠΈΠΈ ΠΠ‘ UNIX AT&T System V.2. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²ΡΠ΅ ΡΡΠΈ ΡΡΠ΅Π΄ΡΡΠ²Π° ΠΏΠΎΡΠ²ΠΈΠ»ΠΈΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ Π²ΡΠΏΡΡΠΊΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ ΠΎΠ±Π»Π°Π΄Π°ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ, ΠΈΡ ΡΠ°ΡΡΠΎ Π½Π°Π·ΡΠ²Π°ΡΡ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ IPC (Inter-Process Communication, Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ) ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½ΠΎ System V IPC. ΠΠ°ΠΊ Π²Ρ ΡΠΆΠ΅ Π²ΠΈΠ΄Π΅Π»ΠΈ, ΡΡΠΎ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠ²ΡΠ·ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ, Π½ΠΎ ΡΠ΅ΡΠΌΠΈΠ½ "System V IPC" ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠΈΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ².
Π Π΄Π°Π½Π½ΠΎΠΉ Π³Π»Π°Π²Π΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ΅ΠΌΡ:
β‘Β ΡΠ΅ΠΌΠ°ΡΠΎΡΡ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠΎΠΌ ΠΊ ΡΠ΅ΡΡΡΡΠ°ΠΌ;
β‘Β ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠ°Ρ ΠΏΠ°ΠΌΡΡΡ Π΄Π»Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ±ΡΠΈΡ Π΄Π°Π½Π½ΡΡ ΡΠ°Π·Π½ΡΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌΠΈ;
β‘Β ΠΎΠ±ΠΌΠ΅Π½ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΊΠ°ΠΊ Π»Π΅Π³ΠΊΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌΠΈ.
Π‘Π΅ΠΌΠ°ΡΠΎΡΡ
ΠΠΎΠ³Π΄Π° ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄Π»Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΈΠ»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°ΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌ ΠΈΠ»ΠΈ ΠΈΡ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ, Π·Π°ΡΠ°ΡΡΡΡ Π²ΡΡΡΠ½ΡΠ΅ΡΡΡ, ΡΡΠΎ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π΅ΡΡΡ Π²Π°ΠΆΠ½ΡΠ΅ ΡΠ°Π·Π΄Π΅Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Π² ΠΊΠΎΡΠΎΡΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠΌΡ ΠΏΡΠΎΡΠ΅ΡΡΡ (ΠΈΠ»ΠΈ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΏΠΎΡΠΎΠΊΡ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ) ΠΌΠΎΠ½ΠΎΠΏΠΎΠ»ΡΠ½ΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ΅ΡΡΡΡΡ.
Π£ ΡΠ΅ΠΌΠ°ΡΠΎΡΠΎΠ² ΡΠ»ΠΎΠΆΠ½ΡΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ. ΠΠΎ, ΠΊ ΡΡΠ°ΡΡΡΡ, Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, ΡΠΏΡΠΎΡΠ΅Π½Π½ΡΠΉ Π΅Π³ΠΎ Π²Π°ΡΠΈΠ°Π½Ρ, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΡΠΉ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΡΡΠ΅Π±ΡΡΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΠΌΠ°ΡΠΎΡΠΎΠ².Β
Π ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ-ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π² Π³Π»Π°Π²Π΅ 7, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠ΅ΠΌ ΡΡΠ΅Π΄ΡΡΠ²ΠΎ dbm Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ , Π΄Π°Π½Π½ΡΠ΅ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π±ΡΡΡ ΠΏΠΎΠ²ΡΠ΅ΠΆΠ΄Π΅Π½Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌΠΈ, ΠΏΡΡΠ°Π²ΡΠΈΠΌΠΈΡΡ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π² ΠΎΠ΄Π½ΠΎ ΠΈ ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ. ΠΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΡΠ±ΠΎΡ Π½Π΅ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ, Π΅ΡΠ»ΠΈ Π΄Π²Π΅ ΡΠ°Π·Π½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°ΡΡ Ρ Π΄Π²ΡΡ ΡΠ°Π·Π½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π²Π²ΠΎΠ΄ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½Π°Ρ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΊΡΠΎΠ΅ΡΡΡ Π² ΡΠ°ΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΠΈΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . ΠΡΠΈ ΡΠ΅ΠΊΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΈ Π½ΡΠΆΠ΄Π°ΡΡΠΈΠ΅ΡΡ Π² ΠΌΠΎΠ½ΠΎΠΏΠΎΠ»ΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, Π½Π°Π·ΡΠ²Π°ΡΡΡΡ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΡΠ΅ΠΊΡΠΈΡΠΌΠΈ. Π§Π°ΡΡΠΎ ΠΎΠ½ΠΈ Π·Π°Π½ΠΈΠΌΠ°ΡΡ Π²ΡΠ΅Π³ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ ΠΊΠΎΠ΄Π° Π² Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»ΡΡΠΈΡ ΠΏΠΎ ΠΎΠ±ΡΠ΅ΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ .
ΠΠ»Ρ ΡΡΡΡΠ°Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, Π²ΡΠ·Π²Π°Π½Π½ΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΊ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΌΡ ΡΠ΅ΡΡΡΡΡ, Π²Π°ΠΌ Π½ΡΠΆΠ΅Π½ ΡΠΏΠΎΡΠΎΠ± Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΌΠ°ΡΠΊΠ΅ΡΠ°, Π³Π°ΡΠ°Π½ΡΠΈΡΡΡΡΠ΅Π³ΠΎ Π² Π»ΡΠ±ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ, Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π΄ΠΎΡΡΡΠΏ Π² ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΡΡ ΡΠ΅ΠΊΡΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΏΠΎΡΠΎΠΊΡ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. Π Π³Π»Π°Π²Π΅ 12 Π²Ρ Π²ΠΊΡΠ°ΡΡΠ΅ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠ»ΠΈΡΡ Ρ ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ Π½Π° ΠΏΠΎΡΠΎΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΌΡΡΡΠ΅ΠΊΡΠΎΠ² ΠΈΠ»ΠΈ ΡΠ΅ΠΌΠ°ΡΠΎΡΠΎΠ² Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠΎΠΌ Π² ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ΅ΠΊΡΠΈΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Π ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅ ΠΌΡ Π²Π΅ΡΠ½Π΅ΠΌΡΡ ΠΊ ΡΠ΅ΠΌΠ΅ ΡΠ΅ΠΌΠ°ΡΠΎΡΠΎΠ², Π½ΠΎ Π°ΠΊΡΠ΅Π½ΡΠΈΡΡΠ΅ΠΌ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π΄Π»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠ°Π·Π½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ².
Π€ΡΠ½ΠΊΡΠΈΠΈ ΡΠ΅ΠΌΠ°ΡΠΎΡΠΎΠ², ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΠ΅ Π² ΠΏΠΎΡΠΎΠΊΠ°Ρ ΠΈ ΠΎΠ±ΡΡΠΆΠ΄Π°Π²ΡΠΈΠ΅ΡΡ Π² Π³Π»Π°Π²Π΅ 12, Π½Π΅ ΠΎΡΠ½ΠΎΡΡΡΡΡ ΠΊ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΎΠ±ΡΠΈΠΌ ΡΡΠ½ΠΊΡΠΈΡΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌ Π² ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅, ΠΏΠΎΡΡΠΎΠΌΡ Π±ΡΠ΄ΡΡΠ΅ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½Ρ ΠΈ Π½Π΅ ΠΏΡΡΠ°ΠΉΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΡΠΈΡ Π΄Π²ΡΡ ΡΠΈΠΏΠΎΠ².
ΠΠ°ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΊΠΎΠ΄ ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΌΠΎΠ½ΠΎΠΏΠΎΠ»ΡΠ½ΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌΡ ΡΠ΅ΡΡΡΡΡ, Π½Π° ΡΠ΄ΠΈΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠ»ΠΎΠΆΠ½ΠΎ, Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠ΅ ΠΊΠ°ΠΊ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΠ΅ΠΊΠΊΠ΅ΡΠ° (Dekker's Algorithm). Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, ΡΡΠΎΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ Π½Π° ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π°ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ ΠΈΠ»ΠΈ ΡΠΏΠΈΠ½-Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΠΎ, ΠΎΠΆΠΈΠ΄Π°Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π°Π΄ΡΠ΅ΡΠ° ΠΏΠ°ΠΌΡΡΠΈ. Π ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°ΡΠ½ΠΎΠΉ ΡΡΠ΅Π΄Π΅, ΠΊΠ°ΠΊΠΎΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΠ‘ Linux, ΡΡΠΎ Π½Π΅ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ°ΡΡ ΠΎΠ΄Ρ ΡΠ΅ΡΡΡΡΠΎΠ² Π¦ΠΠ£. Π‘ΠΈΡΡΠ°ΡΠΈΡ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΠΎΠ±Π»Π΅Π³ΡΠ°Π΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΠΌΠΎΠ½ΠΎΠΏΠΎΠ»ΡΠ½ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° Π΅ΡΡΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ°, ΠΎΠ±ΡΡΠ½ΠΎ Π² Π²ΠΈΠ΄Π΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ Π¦ΠΠ£. ΠΡΠΈΠΌΠ΅ΡΠΎΠΌ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΠΌΠΎΠ³Π»Π° Π±Ρ Π±ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ ΡΠ΅ΡΡΡΡΡ ΠΈ ΠΏΡΠΈΡΠ°ΡΠ΅Π½ΠΈΡ ΡΠ΅Π³ΠΈΡΡΡΠ° Π°ΡΠΎΠΌΠ°ΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΠ°ΠΊ ΡΡΠΎΠ±Ρ Π½ΠΈΠΊΠ°ΠΊΠ°Ρ Π΄ΡΡΠ³Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° (Π΄Π°ΠΆΠ΅ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠ΅) Π½Π΅ ΠΌΠΎΠ³Π»Π° ΠΏΠΎΡΠ²ΠΈΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠΌΠΈ ΡΡΠ΅Π½ΠΈΡ/ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ°/Π·Π°ΠΏΠΈΡΠΈ.