ΠΡΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΈΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΈ
Π₯Π΅ΠΉ Π₯Π°Π±Ρ! ΠΠΈΡ
ΠΈΡΠΊΠ°Π» Π΄Π° ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ° Π½Π° Π²Π°ΡΠ΅ΡΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΠΎΡΠ΅Π΄ΠΈΡΠ° ΠΎΡ ΡΡΠ°ΡΠΈΠΈ-ΠΏΡΠ΅Π²ΠΎΠ΄ΠΈ Π½Π° Π΅Π΄Π½Π° ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π° ΡΠΏΠΎΡΠ΅Π΄ ΠΌΠ΅Π½ Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΠ° - OSTEP. Π’ΠΎΠ·ΠΈ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» ΠΎΠ±ΡΡΠΆΠ΄Π° Π΄ΠΎΡΡΠ° Π΄ΡΠ»Π±ΠΎΠΊΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° unix-ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΠ° Ρ ΠΏΡΠΎΡΠ΅ΡΠΈ, ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΡΠΈ, ΠΏΠ°ΠΌΠ΅Ρ ΠΈ Π΄ΡΡΠ³ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΡΡΡΠ°Π²Π»ΡΠ²Π°Ρ ΡΡΠ²ΡΠ΅ΠΌΠ΅Π½Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π° Π½Π° Π²ΡΠΈΡΠΊΠΈ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΈ ΡΡΠΊ
ΠΠ°Π±ΠΎΡΠ°ΡΠΎΡΠ½ΠΈΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ ΠΏΠΎ ΡΠ΅ΠΌΠ°ΡΠ° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°ΠΌΠ΅ΡΠΈΡΠ΅ ΡΡΠΊ:
- ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»:
pages.cs.wisc.edu/~remzi/OSTEP/Homework/homework.html - ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»:
github.com/remzi-arpacidusseau/ostep-code - ΠΌΠΎΡΡΠ° Π»ΠΈΡΠ½Π° Π°Π΄Π°ΠΏΡΠ°ΡΠΈΡ:
github.com/bykvaadm/OS/tree/master/ostep
ΠΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠΎ Π΄Π° ΡΠ°Π·Π³Π»Π΅Π΄Π°ΡΠ΅ ΠΊΠ°Π½Π°Π»Π° ΠΌΠΈ Π½Π°
Π Π°Π±ΠΎΡΠ° Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°ΡΠ°
ΠΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΡΠ»ΡΡΠ²Π°, ΠΊΠΎΠ³Π°ΡΠΎ Π΅Π΄Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° ΡΠ°Π±ΠΎΡΠΈ? Π Π°Π±ΠΎΡΠ΅ΡΠ°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° ΠΏΡΠ°Π²ΠΈ Π΅Π΄Π½ΠΎ ΠΏΡΠΎΡΡΠΎ Π½Π΅ΡΠΎ - ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ. ΠΡΡΠΊΠ° ΡΠ΅ΠΊΡΠ½Π΄Π° ΠΌΠΈΠ»ΠΈΠΎΠ½ΠΈ ΠΈ Π΄ΠΎΡΠΈ Π΅Π²Π΅Π½ΡΡΠ°Π»Π½ΠΎ ΠΌΠΈΠ»ΠΈΠ°ΡΠ΄ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΡΠ΅ ΠΈΠ·Π²Π»ΠΈΡΠ°Ρ ΠΎΡ ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ° ΠΎΡ RAM, Π½Π° ΡΠ²ΠΎΠΉ ΡΠ΅Π΄ ΡΠΎΠΉ Π³ΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°Π·ΠΏΠΎΠ·Π½Π°Π²Π° ΠΊΡΠΌ ΠΊΠΎΠΉ ΡΠΈΠΏ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ ΡΠ΅Π·ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ) ΠΈ Π³ΠΈ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°. Π’ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° Π΄Π²Π΅ ΡΠΈΡΠ»Π°, Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΠΏΠ°ΠΌΠ΅ΡΡΠ°, ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΡΠ»ΠΎΠ²ΠΈΠ΅, ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°Π½Π΅ ΠΊΡΠΌ ΡΡΠ½ΠΊΡΠΈΡ ΠΈ Ρ.Π½. Π‘Π»Π΅Π΄ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Π΅Π΄Π½Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ, ΠΏΡΠΎΡΠ΅ΡΠΎΡΡΡ ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π° ΠΊΡΠΌ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Π΄ΡΡΠ³Π°. Π ΡΠ°ΠΊΠ° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ΡΠ»Π΅Π΄ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ, ΡΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ, Π΄ΠΎΠΊΠ°ΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°ΡΠ° ΠΏΡΠΈΠΊΠ»ΡΡΠΈ.
Π’ΠΎΠ·ΠΈ ΠΏΡΠΈΠΌΠ΅Ρ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½ΠΎ ΡΠ΅ ΡΡΠΈΡΠ° Π·Π° ΠΎΠΏΡΠΎΡΡΠ΅Π½ - Π²ΡΡΡΠ½ΠΎΡΡ, Π·Π° Π΄Π° ΡΡΠΊΠΎΡΠΈ ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ°, ΡΡΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΈΡΡ Ρ Π°ΡΠ΄ΡΠ΅Ρ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΈΠ·Π²ΡΠ½ ΡΠ΅Π΄, Π΄Π° ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π°ΡΠ΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΈ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈ, Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΡΡΠΈΠΊΠΎΠ²Π΅.
Π€ΠΎΠ½ ΠΠΎΠΉΠΌΠ°Π½ΠΎΠ² ΠΌΠΎΠ΄Π΅Π» Π½Π° ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΠ΅
ΠΠΏΠΈΡΠ°Π½Π°ΡΠ° ΠΎΡ Π½Π°Ρ ΠΎΠΏΡΠΎΡΡΠ΅Π½Π° ΡΠΎΡΠΌΠ° Π½Π° ΡΠ°Π±ΠΎΡΠ° Π΅ ΠΏΠΎΠ΄ΠΎΠ±Π½Π° Π½Π° ΠΌΠΎΠ΄Π΅Π»Π° Π½Π° ΡΠΎΠ½ ΠΠΎΠΉΠΌΠ°Π½ Π·Π° ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΠ΅. Π€ΠΎΠ½ ΠΠΎΠΉΠΌΠ°Π½ Π΅ Π΅Π΄ΠΈΠ½ ΠΎΡ ΠΏΠΈΠΎΠ½Π΅ΡΠΈΡΠ΅ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΡΠ½ΠΈΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΈ, ΡΠΎΠΉ Π΅ ΠΈ Π΅Π΄ΠΈΠ½ ΠΎΡ Π°Π²ΡΠΎΡΠΈΡΠ΅ Π½Π° ΡΠ΅ΠΎΡΠΈΡΡΠ° Π½Π° ΠΈΠ³ΡΠΈΡΠ΅. ΠΠΎΠΊΠ°ΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°ΡΠ° ΡΠ°Π±ΠΎΡΠΈ, ΡΠ΅ ΡΠ»ΡΡΠ²Π°Ρ ΠΊΡΠΏ Π΄ΡΡΠ³ΠΈ ΡΡΠ±ΠΈΡΠΈΡ, ΡΠ°Π±ΠΎΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ ΠΈ Π»ΠΎΠ³ΠΈΠΊΠ° Π½Π° ΡΡΠ΅ΡΠΈ ΡΡΡΠ°Π½ΠΈ, ΡΠΈΡΡΠΎ ΠΎΡΠ½ΠΎΠ²Π½Π° ΡΠ΅Π» Π΅ Π΄Π° ΠΎΠΏΡΠΎΡΡΠΈ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ΡΠΎ, ΡΠ°Π±ΠΎΡΠ°ΡΠ° ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°.
ΠΠΌΠ° Π½Π°Π±ΠΎΡ ΠΎΡ ΡΠΎΡΡΡΠ΅Ρ, ΠΊΠΎΠΉΡΠΎ Π΅ ΠΎΡΠ³ΠΎΠ²ΠΎΡΠ΅Π½ Π·Π° ΡΠ»Π΅ΡΠ½ΡΠ²Π°Π½Π΅ Π½Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ΅ (ΠΈΠ»ΠΈ Π΄ΠΎΡΠΈ Π·Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Π½Π΅ Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ Π΄Π° ΡΠ°Π±ΠΎΡΡΡ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ), ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ΅ Π΄Π° ΡΠΏΠΎΠ΄Π΅Π»ΡΡ Π΅Π΄Π½Π° ΠΈ ΡΡΡΠ° ΠΏΠ°ΠΌΠ΅Ρ ΠΈ Π΄Π° ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠΈΡΠ°Ρ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. Π’Π°ΠΊΡΠ² Π½Π°Π±ΠΎΡ ΠΎΡ ΡΠΎΡΡΡΠ΅Ρ (ΡΠΎΡΡΡΠ΅Ρ) ΠΏΠΎ ΡΡΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅ Π½Π°ΡΠΈΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ° ΠΈ Π½Π΅Π³ΠΎΠ²ΠΈΡΠ΅ Π·Π°Π΄Π°ΡΠΈ Π²ΠΊΠ»ΡΡΠ²Π°Ρ Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ Π΄Π°Π»ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΡΠ°Π±ΠΎΡΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ ΠΈ Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ, ΠΊΠ°ΠΊΡΠΎ ΠΈ Π³Π°ΡΠ°Π½ΡΠΈΡΠ°Π½Π΅, ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π΅ Π»Π΅ΡΠ½Π° Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅.
ΠΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°
ΠΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°, ΡΡΠΊΡΠ°ΡΠ΅Π½ΠΎ ΠΠ‘, Π΅ Π½Π°Π±ΠΎΡ ΠΎΡ Π²Π·Π°ΠΈΠΌΠΎΡΠ²ΡΡΠ·Π°Π½ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈ Π΄Π° ΡΠΏΡΠ°Π²Π»ΡΠ²Π°Ρ ΠΊΠΎΠΌΠΏΡΡΡΡΠ½ΠΈΡΠ΅ ΡΠ΅ΡΡΡΡΠΈ ΠΈ Π΄Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ Ρ ΠΊΠΎΠΌΠΏΡΡΡΡΠ°..
ΠΠ‘ ΠΏΠΎΡΡΠΈΠ³Π° ΡΠ²ΠΎΡΡΠ° Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡ Π½Π° ΠΏΡΡΠ²ΠΎ ΠΌΡΡΡΠΎ, ΡΡΠ΅Π· Π½Π°ΠΉ-Π²Π°ΠΆΠ½Π°ΡΠ° ΡΠ΅Ρ Π½ΠΈΠΊΠ° β ΡΠ΅Ρ Π½ΠΈΠΊΠ°ΡΠ° Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ. ΠΠ‘ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²Π° Ρ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈ ΡΠ΅ΡΡΡΡ (ΠΏΡΠΎΡΠ΅ΡΠΎΡ, ΠΏΠ°ΠΌΠ΅Ρ, Π΄ΠΈΡΠΊ ΠΈ Ρ.Π½.) ΠΈ Π³ΠΎ ΡΡΠ°Π½ΡΡΠΎΡΠΌΠΈΡΠ° Π² ΠΏΠΎ-ΠΎΠ±ΡΠ°, ΠΏΠΎ-ΠΌΠΎΡΠ½Π° ΠΈ ΠΏΠΎ-Π»Π΅ΡΠ½Π° Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ ΡΠΎΡΠΌΠ°. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ, Π·Π° ΠΎΠ±ΡΠΎ ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅, ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ Π³ΡΡΠ±ΠΎ Π΄Π° ΡΡΠ°Π²Π½ΠΈΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Ρ Π²ΠΈΡΡΡΠ°Π»Π½Π° ΠΌΠ°ΡΠΈΠ½Π°.
ΠΠ° Π΄Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ Π΄Π° Π΄Π°Π²Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ΠΈ ΠΏΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈΡΠ΅ Π½Π° Π²ΠΈΡΡΡΠ°Π»Π½Π°ΡΠ° ΠΌΠ°ΡΠΈΠ½Π° (ΠΊΠ°ΡΠΎ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°, ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ, Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΡΠ°ΠΉΠ» ΠΈ Ρ.Π½.), ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ Π½ΡΠΊΠ°ΠΊΡΠ² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, Π½Π°ΡΠ΅ΡΠ΅Π½ API (ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ) ΠΈ ΠΊΡΠΌ ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΎΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠ΅ ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½ΠΈΡ (ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½Π΅). Π’ΠΈΠΏΠΈΡΠ½Π°ΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΈΠ·Π²ΡΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΡΠΎΡΠΈΡΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½ΠΈΡ.
Π Π½Π°ΠΊΡΠ°Ρ, ΡΡΠΉ ΠΊΠ°ΡΠΎ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ (ΠΊΠ°ΡΠΎ ΠΏΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½ ΡΠΏΠΎΠ΄Π΅Π»ΡΡ ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ°) ΠΈ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π΄Π° ΠΈΠΌΠ°Ρ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΡΠ΅Ρ Π½ΠΈΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΈ Π΄Π°Π½Π½ΠΈ (ΠΊΠ°ΡΠΎ ΠΏΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½ ΡΠΏΠΎΠ΄Π΅Π»ΡΡ ΠΏΠ°ΠΌΠ΅Ρ) ΠΈ Π΄Π° ΠΈΠΌΠ°Ρ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π΄ΠΈΡΠΊΠΎΠ²Π΅ (ΠΊΠ°ΡΠΎ ΠΏΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½ ΡΠΏΠΎΠ΄Π΅Π»ΡΡ I/O ΡΡΡΡΠΎΠΉΡΡΠ²Π°). ), ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠ΅ Π½Π°ΡΠΈΡΠ° ΠΎΡΠ΅ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡ Π½Π° ΡΠ΅ΡΡΡΡΠΈ. ΠΡΠ΅ΠΊΠΈ ΠΏΡΠΎΡΠ΅ΡΠΎΡ, Π΄ΠΈΡΠΊ ΠΈ ΠΏΠ°ΠΌΠ΅Ρ Π΅ ΡΠ΅ΡΡΡΡ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΠΈ ΠΏΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½ Π΅Π΄Π½Π° ΠΎΡ ΡΠΎΠ»ΠΈΡΠ΅ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ΡΡΠ°Π²Π° Π·Π°Π΄Π°ΡΠ°ΡΠ° Π΄Π° ΡΠΏΡΠ°Π²Π»ΡΠ²Π° ΡΠ΅Π·ΠΈ ΡΠ΅ΡΡΡΡΠΈ, Π΄Π° Π³ΠΎ ΠΏΡΠ°Π²ΠΈ Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ, ΡΠ΅ΡΡΠ½ΠΎ ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ ΠΎΡ Π·Π°Π΄Π°ΡΠ°ΡΠ°, Π·Π° ΠΊΠΎΡΡΠΎ ΡΠ°Π·ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ° Π΅ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ°Π½Π°.
ΠΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ°
ΠΠΎΠΌΠΈΡΠ»Π΅ΡΠ΅ Π·Π° ΡΠ»Π΅Π΄Π½Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°:
(https://www.youtube.com/watch?v=zDwT5fUcki4)
Π’ΠΎΠΉ Π½Π΅ ΠΈΠ·Π²ΡΡΡΠ²Π° Π½ΠΈΠΊΠ°ΠΊΠ²ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, Π²ΡΡΡΠ½ΠΎΡΡ Π²ΡΠΈΡΠΊΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΠΏΡΠ°Π²ΠΈ, Π΅ Π΄Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π° ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΡΡΠ΅Π½Π΅(), ΡΠΈΡΡΠΎ Π·Π°Π΄Π°ΡΠ° Π΅ Π΄Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ ΠΏΡΠ΅Π· ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°ΡΠ° Π½Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ ΠΈ Π΄Π° ΡΠ΅ Π²ΡΡΠ½Π΅ ΡΠ»Π΅Π΄ ΠΈΠ·ΡΠΈΡΠ°Π½Π΅ Π½Π° Π΅Π΄Π½Π° ΡΠ΅ΠΊΡΠ½Π΄Π°. ΠΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½ ΡΠΎΠΉ ΠΏΠΎΠ²ΡΠ°ΡΡ Π±Π΅Π·ΠΊΡΠ°ΠΉΠ½ΠΎ Π½ΠΈΠ·Π°, ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΡ Π΅ ΠΏΡΠ΅Π΄Π°Π» ΠΊΠ°ΡΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ.
ΠΠ΅ΠΊΠ° Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅ ΡΠ°Π·ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° ΠΈ Π΄Π° ΠΉ ΠΏΡΠ΅Π΄Π°Π΄Π΅ΠΌ Π·Π½Π°ΠΊΠ° "A" ΠΊΠ°ΡΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ. Π Π΅Π·ΡΠ»ΡΠ°ΡΡΡ Π½Π΅ Π΅ ΠΎΡΠΎΠ±Π΅Π½ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ΅Π½ - ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΠΏΡΠΎΡΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°, ΠΊΠΎΡΡΠΎ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ½ΠΎ ΠΈΠ·Π²Π΅ΠΆΠ΄Π° ΡΠΈΠΌΠ²ΠΎΠ»Π° "Π".
Π‘Π΅Π³Π° Π½Π΅ΠΊΠ° ΠΎΠΏΠΈΡΠ°ΠΌΠ΅ ΠΎΠΏΡΠΈΡΡΠ°, ΠΊΠΎΠ³Π°ΡΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΏΠΈΡ Π½Π° Π΅Π΄Π½Π° ΠΈ ΡΡΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° ΡΠ°Π±ΠΎΡΡΡ, Π½ΠΎ ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π±ΡΠΊΠ²ΠΈ, Π·Π° Π΄Π° ΡΡΠ°Π½Π΅ ΠΏΠΎ-ΡΡΠ½ΠΎ. Π ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΡΡ ΡΠ΅ Π±ΡΠ΄Π΅ ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-ΡΠ°Π·Π»ΠΈΡΠ΅Π½. ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠ°ΠΊΡΠ°, ΡΠ΅ ΠΈΠΌΠ°ΠΌΠ΅ Π΅Π΄ΠΈΠ½ ΠΏΡΠΎΡΠ΅ΡΠΎΡ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°ΡΠ° ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ. ΠΠ°ΠΊ ΡΠ΅ ΡΠ»ΡΡΠ²Π°? ΠΠΎ ΡΠ΅ ΠΎΠΊΠ°Π·Π²Π°, ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°, Π½Π΅ Π±Π΅Π· ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Ρ Π°ΡΠ΄ΡΠ΅ΡΠ½ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, ΡΡΠ·Π΄Π°Π²Π° ΠΈΠ»ΡΠ·ΠΈΡ. ΠΠ»ΡΠ·ΠΈΡΡΠ°, ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΠΈΠΌΠ° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π²ΠΈΡΡΡΠ°Π»Π½ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈ, ΠΏΡΠ΅Π²ΡΡΡΠ°ΠΉΠΊΠΈ Π΅Π΄ΠΈΠ½ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΎΡΠ΅ΡΠΎΡ Π² ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ½ΠΎ Π±Π΅Π·ΠΊΡΠ°Π΅Π½ Π±ΡΠΎΠΉ ΠΈ ΠΏΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΠΉΠΊΠΈ Π½Π° ΠΏΡΠΈΠ²ΠΈΠ΄Π½ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ Π΄Π° ΡΠ°Π±ΠΎΡΡΡ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ. Π’Π°Π·ΠΈ ΠΈΠ»ΡΠ·ΠΈΡ ΡΠ΅ Π½Π°ΡΠΈΡΠ° ΠΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ°.
Π’Π°Π·ΠΈ ΠΊΠ°ΡΡΠΈΠ½Π° ΠΏΠΎΠ²Π΄ΠΈΠ³Π° ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠΏΡΠΎΡΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π°ΠΊΠΎ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ ΠΈΡΠΊΠ°Ρ Π΄Π° ΡΠ°Π±ΠΎΡΡΡ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ, ΠΊΠΎΡ ΡΠ΅ Π±ΡΠ΄Π΅ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π°? βΠΠΎΠ»ΠΈΡΠΈΠΊΠΈΡΠ΅β Π½Π° ΠΠ‘ ΡΠ° ΠΎΡΠ³ΠΎΠ²ΠΎΡΠ½ΠΈ Π·Π° ΡΠΎΠ·ΠΈ Π²ΡΠΏΡΠΎΡ. ΠΠΎΠ»ΠΈΡΠΈΠΊΠΈΡΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠ° Π² ΠΠ‘ ΠΈ ΠΎΡΠ³ΠΎΠ²Π°ΡΡΡ Π½Π° Π²ΡΠΏΡΠΎΡΠΈ ΠΊΠ°ΡΠΎ ΡΠΎΠ·ΠΈ ΠΈ ΡΠ° ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΠ‘ ΠΏΡΠΈΠ»Π°Π³Π°. ΠΡΡΡΠΊ ΠΈ ΡΠΎΠ»ΡΡΠ° Π½Π° ΠΠ‘ ΠΊΠ°ΡΠΎ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡ Π½Π° ΡΠ΅ΡΡΡΡΠΈ.
ΠΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ°
Π‘Π΅Π³Π° Π½Π΅ΠΊΠ° Π΄Π° ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΏΠ°ΠΌΠ΅ΡΡΠ°. Π€ΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΡΡ ΠΌΠΎΠ΄Π΅Π» Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π² ΡΡΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΈΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΈ ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Ρ ΠΊΠ°ΡΠΎ ΠΌΠ°ΡΠΈΠ² ΠΎΡ Π±Π°ΠΉΡΠΎΠ²Π΅.. ΠΠ° Π΄Π° ΡΠ΅ΡΠ΅ΡΠ΅ ΠΎΡ ΠΏΠ°ΠΌΠ΅ΡΡΠ°, ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΠΎΡΠΎΡΠΈΡΠ΅ ΠΊΠ»Π΅ΡΡΡΠ΅Π½ Π°Π΄ΡΠ΅ΡΠ·Π° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π½Π΅Π³ΠΎ. ΠΠ° Π΄Π° Π·Π°ΠΏΠΈΡΠ΅ΡΠ΅ ΠΈΠ»ΠΈ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°ΡΠ΅ Π΄Π°Π½Π½ΠΈ, ΡΡΡΠ±Π²Π° ΡΡΡΠΎ Π΄Π° ΠΏΠΎΡΠΎΡΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈΡΠ΅ ΠΈ Π°Π΄ΡΠ΅ΡΠ° Π½Π° ΠΊΠ»Π΅ΡΠΊΠ°ΡΠ°, ΠΊΡΠ΄Π΅ΡΠΎ Π΄Π° Π³ΠΈ Π·Π°ΠΏΠΈΡΠ΅ΡΠ΅.
ΠΠΎΡΡΡΠΏΡΡ Π΄ΠΎ ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π΅ ΠΏΠΎΡΡΠΎΡΠ½Π΅Π½ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°ΡΠ°. ΠΡΠΎΠ³ΡΠ°ΠΌΠ°ΡΠ° ΡΡΡ ΡΠ°Π½ΡΠ²Π° ΡΡΠ»Π°ΡΠ° ΡΠΈ ΡΡΡΡΠΊΡΡΡΠ° ΠΎΡ Π΄Π°Π½Π½ΠΈ Π² ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΠΈ ΠΎΡΡΡΠ΅ΡΡΠ²ΡΠ²Π° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π½Π΅Ρ ΡΡΠ΅Π· ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ. ΠΠ΅ΠΆΠ΄ΡΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈΡΠ΅ ΡΡΡΠΎ ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π°Ρ Π² ΠΏΠ°ΠΌΠ΅ΡΡΠ°, ΡΠ°ΠΊΠ° ΡΠ΅ ΡΡ ΡΡΡΠΎ Π΅ Π΄ΠΎΡΡΡΠΏΠ½Π° Π·Π° Π²ΡΡΠΊΠ° Π·Π°ΡΠ²ΠΊΠ° Π·Π° ΡΠ»Π΅Π΄Π²Π°ΡΠ° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ.
malloc() ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅
ΠΠΎΠΌΠΈΡΠ»Π΅ΡΠ΅ Π·Π° ΡΠ»Π΅Π΄Π½Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°, ΠΊΠΎΡΡΠΎ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Ρ ΠΎΠ±Π»Π°ΡΡ ΠΎΡ ΠΏΠ°ΠΌΠ΅ΡΡΠ°, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½Π΅ΡΠΎ malloc () (https://youtu.be/jnlKRnoT1m0):
ΠΡΠΎΠ³ΡΠ°ΠΌΠ°ΡΠ° ΠΏΡΠ°Π²ΠΈ Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π½Π΅ΡΠ°. ΠΡΡΠ²ΠΎ, ΡΠΎΠΉ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Ρ ΠΌΠ°Π»ΠΊΠΎ ΠΏΠ°ΠΌΠ΅Ρ (ΡΠ΅Π΄ 7), ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΠΎΡΠΏΠ΅ΡΠ°ΡΠ²Π° Π°Π΄ΡΠ΅ΡΠ° Π½Π° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π°ΡΠ° ΠΊΠ»Π΅ΡΠΊΠ° (ΡΠ΅Π΄ 9), Π·Π°ΠΏΠΈΡΠ²Π° Π½ΡΠ»Π° Π² ΠΏΡΡΠ²ΠΈΡ ΡΠ»ΠΎΡ Π½Π° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π°ΡΠ° ΠΏΠ°ΠΌΠ΅Ρ. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°ΡΠ° Π²Π»ΠΈΠ·Π° Π² ΡΠΈΠΊΡΠ», Π² ΠΊΠΎΠΉΡΠΎ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π° ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ°, ΡΡΡ
ΡΠ°Π½Π΅Π½Π° Π² ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π½Π° Π°Π΄ΡΠ΅ΡΠ° Π² ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ° "p". Π’ΠΎΠΉ ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΎΡΠΏΠ΅ΡΠ°ΡΠ²Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° Π½Π° ΡΠ°ΠΌΠΈΡ ΠΏΡΠΎΡΠ΅Ρ. ID Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ° Π΅ ΡΠ½ΠΈΠΊΠ°Π»Π΅Π½ Π·Π° Π²ΡΠ΅ΠΊΠΈ ΡΠ°Π±ΠΎΡΠ΅Ρ ΠΏΡΠΎΡΠ΅Ρ. Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ ΡΡΠ°ΡΡΠΈΡΠ°Ρ
ΠΌΠ΅ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΊΠΎΠΏΠΈΡ, ΡΠ΅ ΡΠ΅ Π½Π°ΡΡΠΊΠ½Π΅ΠΌ Π½Π° ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ΅Π½ ΡΠ΅Π·ΡΠ»ΡΠ°Ρ: Π ΠΏΡΡΠ²ΠΈΡ ΡΠ»ΡΡΠ°ΠΉ, Π°ΠΊΠΎ Π½Π΅ Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ Π½ΠΈΡΠΎ ΠΈ ΠΏΡΠΎΡΡΠΎ ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΊΠΎΠΏΠΈΡ, ΡΠΎΠ³Π°Π²Π° Π°Π΄ΡΠ΅ΡΠΈΡΠ΅ ΡΠ΅ Π±ΡΠ΄Π°Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ. ΠΠΎ ΡΠΎΠ²Π° Π½Π΅ ΠΏΠΎΠΏΠ°Π΄Π° Π² Π½Π°ΡΠ°ΡΠ° ΡΠ΅ΠΎΡΠΈΡ! ΠΡΠ°Π²ΠΈΠ»Π½ΠΎ, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΠΌΠΎΠ΄Π΅ΡΠ½ΠΈΡΠ΅ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠΈ ΠΈΠΌΠ°Ρ ΡΠ°Π½Π΄ΠΎΠΌΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ°, Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π° ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅. ΠΠΊΠΎ Π΅ Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½, ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ ΠΎΡΠ°ΠΊΠ²Π°Π½ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΠ°Ρ - Π°Π΄ΡΠ΅ΡΠΈΡΠ΅ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π½Π° Π΄Π²Π΅ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠ°Π±ΠΎΡΠ΅ΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ ΡΠ΅ ΡΡΠ²ΠΏΠ°Π΄Π°Ρ.
Π ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΡΠΎΠ²Π° ΡΠ΅ ΠΎΠΊΠ°Π·Π²Π°, ΡΠ΅ Π΄Π²Π΅ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ ΡΠ°Π±ΠΎΡΡΡ ΡΡΡ ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈ ΡΠ°ΡΡΠ½ΠΈ Π°Π΄ΡΠ΅ΡΠ½ΠΈ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π°, ΠΊΠΎΠΈΡΠΎ ΠΎΡ ΡΠ²ΠΎΡ ΡΡΡΠ°Π½Π° ΡΠ΅ ΠΊΠ°ΡΡΠΎΠ³ΡΠ°ΡΠΈΡΠ°Ρ ΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Π²ΡΠ² ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠ° ΠΏΠ°ΠΌΠ΅Ρ. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Π°Π΄ΡΠ΅ΡΠΈ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° Π΅Π΄Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° Π½ΡΠΌΠ° Π΄Π° ΠΏΠΎΠ²Π»ΠΈΡΠ΅ ΠΏΠΎ Π½ΠΈΠΊΠ°ΠΊΡΠ² Π½Π°ΡΠΈΠ½ Π½Π° Π΄ΡΡΠ³ΠΈΡΠ΅ ΠΈ Π·Π° Π²ΡΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°, ΡΠ΅ ΠΈΠΌΠ° ΡΠΎΠ±ΡΡΠ²Π΅Π½Π° ΡΠ°ΡΡ ΠΎΡ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠ°ΡΠ° ΠΏΠ°ΠΌΠ΅Ρ, ΠΈΠ·ΡΡΠ»ΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½Π° Π½Π° Π½Π΅Ρ. Π Π΅Π°Π»Π½ΠΎΡΡΡΠ° ΠΎΠ±Π°ΡΠ΅ Π΅, ΡΠ΅ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠ°ΡΠ° ΠΏΠ°ΠΌΠ΅Ρ Π΅ ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½ ΡΠ΅ΡΡΡΡ, ΡΠΏΡΠ°Π²Π»ΡΠ²Π°Π½ ΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°.
ΠΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎΡΡ
ΠΡΡΠ³Π° ΠΎΡ Π²Π°ΠΆΠ½ΠΈΡΠ΅ ΡΠ΅ΠΌΠΈ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΈΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΈ Π΅ β ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎΡΡ. Π’ΠΎΠ·ΠΈ ΡΠ΅ΡΠΌΠΈΠ½ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°, ΠΊΠΎΠ³Π°ΡΠΎ Π³ΠΎΠ²ΠΎΡΠΈΠΌ Π·Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Π² ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π²ΡΠ·Π½ΠΈΠΊΠ½Π°Ρ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ° Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅ΡΠ° Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π² Π΅Π΄Π½Π° ΠΈ ΡΡΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°. ΠΡΠΎΠ±Π»Π΅ΠΌΠΈ Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π²ΡΠ·Π½ΠΈΠΊΠ²Π°Ρ Π΄ΠΎΡΠΈ Π² ΡΠ°ΠΌΠ°ΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°. Π ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΈΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠΈ Π·Π° Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ° ΡΠ°Π·Π±ΡΠ°Ρ ΠΌΠ΅, ΡΠ΅ ΠΠ‘ ΡΠΏΡΠ°Π²Π»ΡΠ²Π° ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅ΡΠ° Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ β ΡΡΠ°ΡΡΠΈΡΠ° ΠΏΡΡΠ²ΠΈΡ ΠΏΡΠΎΡΠ΅Ρ, ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Π²ΡΠΎΡΠΈΡ ΠΈ Ρ.Π½. ΠΠ°ΠΊΡΠΎ ΡΠ΅ ΠΎΠΊΠ°Π·Π°, ΡΠΎΠ²Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ Π½ΡΠΊΠΎΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ. Π’Π°ΠΊΠ° Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΡΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΈΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΠ½ΠΈΡΠΊΠΎΠ²ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ ΠΈΠ·ΠΏΠΈΡΠ²Π°Ρ ΡΠ°ΠΊΠΈΠ²Π° ΡΡΡΠ΄Π½ΠΎΡΡΠΈ.
ΠΠΎΠΌΠΈΡΠ»Π΅ΡΠ΅ Π·Π° ΡΠ»Π΅Π΄Π½Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°:
ΠΡΠΎΠ³ΡΠ°ΠΌΠ°ΡΠ° Π² ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΡΡΠ·Π΄Π°Π²Π° Π΄Π²Π΅ Π½ΠΈΡΠΊΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½Π΅ΡΠΎ pthread_create(). Π ΡΠΎΠ·ΠΈ ΠΏΡΠΈΠΌΠ΅Ρ Π΅Π΄Π½Π° Π½ΠΈΡΠΊΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΠ°Π·Π³Π»Π΅ΠΆΠ΄Π° ΠΊΠ°ΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ, ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Π½Π° Π² Π΅Π΄Π½ΠΎ ΠΈ ΡΡΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π·Π°Π΅Π΄Π½ΠΎ Ρ Π΄ΡΡΠ³ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠ°ΡΠΎ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ Π΅Π΄Π½Π° ΡΡΠ½ΠΊΡΠΈΡ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ. Π ΡΠΎΠ·ΠΈ ΠΏΡΠΈΠΌΠ΅Ρ Π²ΡΡΠΊΠ° Π½ΠΈΡΠΊΠ° ΡΡΠ°ΡΡΠΈΡΠ° ΠΈ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° ΡΡΠ½ΠΊΡΠΈΡΡΠ° worker(), ΠΊΠΎΠ΅ΡΠΎ Π½Π° ΡΠ²ΠΎΠΉ ΡΠ΅Π΄ ΠΏΡΠΎΡΡΠΎ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ°,.
ΠΠ΅ΠΊΠ° ΡΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅ ΡΠ°Π·ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° Ρ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ 1000. ΠΠ°ΠΊΡΠΎ ΠΌΠΎΠΆΠ΅ Π±ΠΈ ΡΠ΅ Π΄ΠΎΡΠ΅ΡΠ°ΡΠ΅, ΡΠ΅Π·ΡΠ»ΡΠ°ΡΡΡ ΡΡΡΠ±Π²Π° Π΄Π° Π΅ 2000, Π·Π°ΡΠΎΡΠΎ Π²ΡΡΠΊΠ° Π½ΠΈΡΠΊΠ° ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ° 1000 ΠΏΡΡΠΈ. ΠΡΠΈΡΠΊΠΎ ΠΎΠ±Π°ΡΠ΅ Π½Π΅ Π΅ ΡΠΎΠ»ΠΊΠΎΠ²Π° ΠΏΡΠΎΡΡΠΎ. ΠΠ΅ΠΊΠ° ΡΠ΅ ΠΎΠΏΠΈΡΠ°ΠΌΠ΅ Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°ΡΠ° Ρ ΠΏΠΎΡΡΠ΄ΡΠΊ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΡ.
Π§ΡΠ΅Π· Π²ΡΠ²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΡΠΈΡΠ»ΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ 100000 200000, ΠΎΡΠ°ΠΊΠ²Π°ΠΌΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠ° ΠΊΠ°ΡΠΎ ΡΠΈΡΠ»ΠΎΡΠΎ 100000 XNUMX. ΠΠΊΠΎ ΠΎΠ±Π°ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌ ΡΠΈΡΠ»ΠΎΡΠΎ XNUMX XNUMX Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΡΡΠΈ, Π½Π΅ ΡΠ°ΠΌΠΎ Π½ΡΠΌΠ° Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΈΡ ΠΎΡΠ³ΠΎΠ²ΠΎΡ, Π½ΠΎ ΠΈ ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΠΌ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π³ΡΠ΅ΡΠ½ΠΈ ΠΎΡΠ³ΠΎΠ²ΠΎΡΠΈ. ΠΡΠ³ΠΎΠ²ΠΎΡΡΡ ΡΠ΅ ΠΊΡΠΈΠ΅ Π²ΡΠ² ΡΠ°ΠΊΡΠ°, ΡΠ΅ Π·Π° ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΡΠΈΡΠ»ΠΎΡΠΎ ΡΠ° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΈ ΡΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ - ΠΈΠ·Π²Π»ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠΈΡΠ»ΠΎΡΠΎ ΠΎΡ ΠΏΠ°ΠΌΠ΅ΡΡΠ°, ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π°Π½Π΅ ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ Π½Π° ΡΠΈΡΠ»ΠΎΡΠΎ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ. Π’ΡΠΉ ΠΊΠ°ΡΠΎ Π²ΡΠΈΡΠΊΠΈ ΡΠ΅Π·ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π½Π΅ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ Π°ΡΠΎΠΌΠ°ΡΠ½ΠΎ (Π²ΡΠΈΡΠΊΠΈ ΠΏΠΎ Π΅Π΄Π½ΠΎ ΠΈ ΡΡΡΠΎ Π²ΡΠ΅ΠΌΠ΅), ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΡΠ»ΡΡΠ°Ρ ΡΡΡΠ°Π½Π½ΠΈ Π½Π΅ΡΠ° ΠΊΠ°ΡΠΎ ΡΠΎΠ²Π°. Π’ΠΎΠ·ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΡΠ΅ Π½Π°ΡΠΈΡΠ° Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ΡΠΎ ΡΡΡΡΠ΅Π·Π°ΡΠ΅Π»Π½ΠΎ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅. ΠΠΎΠ³Π°ΡΠΎ Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΠΈ ΡΠΈΠ»ΠΈ Π² Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΏΠΎΠ²Π»ΠΈΡΡΡ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π½ΡΠΊΠΎΡ ΠΎΡ Π²Π°ΡΠΈΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com