ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows

ПишСм свою ОБ: Выпуск 1

Π”Π°Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» статСй посвящён Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, устройству ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π½Π° языкС ассСмблСра ΠΈ смСТным областям. Пока Ρ‡Ρ‚ΠΎ написаниСм Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ Π΄Π²Π° Ρ…Π°Π±Ρ€Π°ΡŽΠ·Π΅Ρ€Π° β€” iley ΠΈ pehat. Для ΠΌΠ½ΠΎΠ³ΠΈΡ… ΡΡ‚Π°Ρ€ΡˆΠ΅ΠΊΠ»Π°ΡΡΠ½ΠΈΠΊΠΎΠ², студСнтов, Π΄Π° ΠΈ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… программистов эти Ρ‚Π΅ΠΌΡ‹ ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ вСсьма слоТными ΠΏΡ€ΠΈ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ. БущСствуСт ΠΌΠ½ΠΎΠ³ΠΎ Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΈ курсов, посвящённых Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, Π½ΠΎ ΠΏΠΎ Π½ΠΈΠΌ слоТно ΡΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΈ Π²ΡΠ΅ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρƒ. Π‘Π»ΠΎΠΆΠ½ΠΎ, ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π² ΠΎΠ΄Π½Ρƒ-Π΄Π²Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΏΠΎ ассСмблСру ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ систСмам, хотя Π±Ρ‹ Π² ΠΎΠ±Ρ‰ΠΈΡ… Ρ‡Π΅Ρ€Ρ‚Π°Ρ… ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΆΠ΅ Π½Π° самом Π΄Π΅Π»Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ эта слоТная систСма ΠΈΠ· ΠΆΠ΅Π»Π΅Π·Π°, крСмния ΠΈ мноТСства ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ β€” ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ обучСния ΠΏΠΎ-своСму. ΠšΡ‚ΠΎ-Ρ‚ΠΎ Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹, ΠΊΡ‚ΠΎ-Ρ‚ΠΎ стараСтся поскорСС ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ ΠΈ Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒΡΡ ΠΏΠΎ Ρ…ΠΎΠ΄Ρƒ Π΄Π΅Π»Π°, ΠΊΡ‚ΠΎ-Ρ‚ΠΎ пытаСтся ΠΎΠ±ΡŠΡΡΠ½ΡΡ‚ΡŒ Π΄Ρ€ΡƒΠ·ΡŒΡΠΌ всё, Ρ‡Ρ‚ΠΎ сам ΠΈΠ·ΡƒΡ‡Π°Π΅Ρ‚. А ΠΌΡ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ эти ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹. Π˜Ρ‚Π°ΠΊ, Π² этом курсС статСй ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ шаг Π·Π° шагом Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ простая опСрационная систСма. Π‘Ρ‚Π°Ρ‚ΡŒΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Π½ΠΎΡΠΈΡ‚ΡŒ ΠΎΠ±Π·ΠΎΡ€Π½Ρ‹ΠΉ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π² Π½ΠΈΡ… Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΡ‡Π΅Ρ€ΠΏΡ‹Π²Π°ΡŽΡ‰ΠΈΡ… тСорСтичСских свСдСний, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ всСгда ΡΡ‚Π°Ρ€Π°Ρ‚ΡŒΡΡ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ссылки Π½Π° Ρ…ΠΎΡ€ΠΎΡˆΠΈΠ΅ тСорСтичСскиС ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ ΠΈ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ Π½Π° всС Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΠ΅ вопросы. Π§Ρ‘Ρ‚ΠΊΠΎΠ³ΠΎ ΠΏΠ»Π°Π½Π° Ρƒ нас Π½Π΅Ρ‚, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π²Π°ΠΆΠ½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ ΠΏΠΎ Ρ…ΠΎΠ΄Ρƒ Π΄Π΅Π»Π°, с ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ Π²Π°ΡˆΠΈΡ… ΠΎΡ‚Π·Ρ‹Π²ΠΎΠ².

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΌΡ‹ ΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΎ Π±ΡƒΠ΄Π΅ΠΌ Π·Π°Π²ΠΎΠ΄ΠΈΡ‚ΡŒ процСсс Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π² Ρ‚ΡƒΠΏΠΈΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ Π²Π°ΠΌ ΠΈ сСбС ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΡΠΎΠ·Π½Π°Ρ‚ΡŒ всС послСдствия Π½Π΅Π²Π΅Ρ€Π½ΠΎ принятого Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‚Ρ‚ΠΎΡ‡ΠΈΡ‚ΡŒ Π½Π° Π½Π΅ΠΌ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ тСхничСскиС Π½Π°Π²Ρ‹ΠΊΠΈ. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ Π½Π΅ стоит Π²ΠΎΡΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ наши Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΠ°ΠΊ СдинствСнно Π²Π΅Ρ€Π½Ρ‹Π΅ ΠΈ слСпо Π½Π°ΠΌ Π²Π΅Ρ€ΠΈΡ‚ΡŒ. Π•Ρ‰Π΅ Ρ€Π°Π· ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠ½Ρ‘ΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌ ΠΎΡ‚ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»Π΅ΠΉ активности Π² обсуТдСнии статСй, которая Π΄ΠΎΠ»ΠΆΠ½Π° сильно Π²Π»ΠΈΡΡ‚ΡŒ Π½Π° ΠΎΠ±Ρ‰ΠΈΠΉ процСсс Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ написания ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… статСй. Π’ ΠΈΠ΄Π΅Π°Π»Π΅ Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ Π±Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΠ»ΠΈΡΡŒ ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ систСмы.

ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΡŒ ΡƒΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌ с основами языков ассСмблСр ΠΈ Π‘ΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ элСмСнтарными понятиями Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ Π­Π’Πœ. Π’ΠΎ Π΅ΡΡ‚ΡŒ, ΠΌΡ‹ Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ ΠΎΠ±ΡŠΡΡΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгистр ΠΈΠ»ΠΈ, скаТСм, опСративная ΠΏΠ°ΠΌΡΡ‚ΡŒ. Если Π²Π°ΠΌ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ…Π²Π°Ρ‚Π°Ρ‚ΡŒ Π·Π½Π°Π½ΠΈΠΉ, Π²Ρ‹ всСгда ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Π΅. ΠšΡ€Π°Ρ‚ΠΊΠΈΠΉ список Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΈ ссылки Π½Π° сайты с Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌΠΈ ΡΡ‚Π°Ρ‚ΡŒΡΠΌΠΈ Π΅ΡΡ‚ΡŒ Π² ΠΊΠΎΠ½Ρ†Π΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ. Π’Π°ΠΊΠΆΠ΅ ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Linux, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ всС инструкции ΠΏΠΎ компиляции Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ для этой систСмы.

А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ β€” Π±Π»ΠΈΠΆΠ΅ ΠΊ Π΄Π΅Π»Ρƒ. Π’ ΠΎΡΡ‚Π°Π²ΡˆΠ΅ΠΉΡΡ части ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΌΡ‹ с Π²Π°ΠΌΠΈ напишСм ΠΊΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Β«Hello WorldΒ». Наш Ρ…Π΅Π»Π»ΠΎΡƒΠ²ΠΎΡ€Π»Π΄ получится Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ спСцифичСским. Он Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ Π½Π΅ ΠΈΠ· ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы, Π° Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ, Ρ‚Π°ΠΊ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ Β«Π½Π° Π³ΠΎΠ»ΠΎΠΌ ΠΆΠ΅Π»Π΅Π·Π΅Β». ΠŸΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ нСпосрСдствСнно ΠΊ написанию ΠΊΠΎΠ΄Π°, Π΄Π°Π²Π°ΠΉΡ‚Π΅ разбСрёмся, ΠΊΠ°ΠΊ ΠΆΠ΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ ΠΌΡ‹ пытаСмся это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ. А для этого Π½Π°Π΄ΠΎ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ процСсс Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°.

Π˜Ρ‚Π°ΠΊ, Π±Π΅Ρ€Π΅ΠΌ свой Π»ΡŽΠ±ΠΈΠΌΡ‹ΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ ΠΈ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ ΡΠ°ΠΌΡƒΡŽ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΎΡ‡ΠΊΡƒ Π½Π° систСмном Π±Π»ΠΎΠΊΠ΅. Π’ΠΈΠ΄ΠΈΠΌ Π²Π΅ΡΠ΅Π»ΡƒΡŽ заставку, систСмный Π±Π»ΠΎΠΊ радостно ΠΏΠΈΡ‰ΠΈΡ‚ спикСром ΠΈ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ врСмя загруТаСтся опСрационная систСма. Как Π²Ρ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅, опСрационная систСма хранится Π½Π° Тёстком дискС, ΠΈ Π²ΠΎΡ‚ Ρ‚ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ вопрос: Π° ΠΊΠ°ΠΊΠΈΠΌ ΠΆΠ΅ Π²ΠΎΠ»ΡˆΠ΅Π±Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ опСрационная систСма Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠ»Π°ΡΡŒ Π² ΠžΠ—Π£ ΠΈ Π½Π°Ρ‡Π°Π»Π° Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ?

ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows. image loader. ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Π”Π°Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» статСй посвящён Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, устройству ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π½Π° языкС ассСмблСра ΠΈ смСТным областям. Пока Ρ‡Ρ‚ΠΎ написаниСм Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ Π΄Π²Π° Ρ…Π°Π±Ρ€Π°ΡŽΠ·Π΅Ρ€Π° β€” iley ΠΈ pehat. Для ΠΌΠ½ΠΎΠ³ΠΈΡ… ΡΡ‚Π°Ρ€ΡˆΠ΅ΠΊΠ»Π°ΡΡΠ½ΠΈΠΊΠΎΠ², студСнтов, Π΄Π° ΠΈ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… программистов эти Ρ‚Π΅ΠΌΡ‹ ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ вСсьма слоТными ΠΏΡ€ΠΈ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ. БущСствуСт ΠΌΠ½ΠΎΠ³ΠΎ Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΈ курсов, посвящённых Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, Π½ΠΎ ΠΏΠΎ Π½ΠΈΠΌ слоТно ΡΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΈ Π²ΡΠ΅ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρƒ. Π‘Π»ΠΎΠΆΠ½ΠΎ, ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π² ΠΎΠ΄Π½Ρƒ-Π΄Π²Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΏΠΎ ассСмблСру ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ систСмам, хотя Π±Ρ‹ Π² ΠΎΠ±Ρ‰ΠΈΡ… Ρ‡Π΅Ρ€Ρ‚Π°Ρ… ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΆΠ΅ Π½Π° самом Π΄Π΅Π»Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ эта слоТная систСма ΠΈΠ· ΠΆΠ΅Π»Π΅Π·Π°, крСмния ΠΈ мноТСства ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ β€” ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€.

На ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π° ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ дискового накопитСля. Π£ дискСты 2 повСрхности. На ΠΊΠ°ΠΆΠ΄ΠΎΠΉ повСрхности Π΅ΡΡ‚ΡŒ ΠΊΠΎΠ»ΡŒΡ†Π΅ΠΎΠ±Ρ€Π°Π·Π½Ρ‹Π΅ Π΄ΠΎΡ€ΠΎΠΆΠΊΠΈ (Ρ‚Ρ€Π΅ΠΊΠΈ). ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ‚Ρ€Π΅ΠΊ дСлится Π½Π° малСнькиС Π΄ΡƒΠ³ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹Π΅ кусочки, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ сСкторами. Π’Π°ΠΊ Π²ΠΎΡ‚, историчСски слоТилось, Ρ‡Ρ‚ΠΎ сСктор дискСты ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ 512 Π±Π°ΠΉΡ‚. Π‘Π°ΠΌΡ‹ΠΉ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ сСктор Π½Π° дискС, Π·Π°Π³Ρ€ΡƒΠ·ΠΎΡ‡Π½Ρ‹ΠΉ сСктор, читаСтся BIOS’ΠΎΠΌ Π² Π½ΡƒΠ»Π΅Π²ΠΎΠΉ сСгмСнт памяти ΠΏΠΎ ΡΠΌΠ΅Ρ‰Π΅Π½ΠΈΡŽ 0x7Π‘00, ΠΈ дальшС ΠΏΠΎ этому адрСсу пСрСдаСтся ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅. ΠΠ°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ Π½Π΅ саму ОБ, Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ-Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ, Ρ…Ρ€Π°Π½ΡΡ‰ΡƒΡŽΡΡ Π½Π° дискС, Π½ΠΎ ΠΏΠΎ ΠΊΠ°ΠΊΠΈΠΌ-Ρ‚ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ (скорСС всСго, эта ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° β€” Ρ€Π°Π·ΠΌΠ΅Ρ€) Π½Π΅ Π²Π»Π΅Π·Π°ΡŽΡ‰ΡƒΡŽ Π² ΠΎΠ΄ΠΈΠ½ сСктор. А ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΠΎΠΊΠ° Ρ‡Ρ‚ΠΎ Ρ€ΠΎΠ»ΡŒ нашСй ОБ выполняСт Π±Π°Π½Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ…Π΅Π»Π»ΠΎΡƒΠ²ΠΎΡ€Π»Π΄, наша главная Ρ†Π΅Π»ΡŒ β€” Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ ΠΏΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π² сущСствованиС нашСй ОБ, ΠΏΡƒΡΡ‚ΡŒ Π΄Π°ΠΆΠ΅ ΠΈ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ сСкторС, ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΅Ρ‘.

Как устроСн Π·Π°Π³Ρ€ΡƒΠ·ΠΎΡ‡Π½Ρ‹ΠΉ сСктор? На PC СдинствСнноС Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊ Π·Π°Π³Ρ€ΡƒΠ·ΠΎΡ‡Π½ΠΎΠΌΡƒ сСктору β€” это содСрТаниС Π² Π΄Π²ΡƒΡ… Π΅Π³ΠΎ послСдних Π±Π°ΠΉΡ‚Π°Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ 0x55 ΠΈ 0xAA β€” сигнатуры Π·Π°Π³Ρ€ΡƒΠ·ΠΎΡ‡Π½ΠΎΠ³ΠΎ сСктора. Π˜Ρ‚Π°ΠΊ, ΡƒΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅-ΠΌΠ΅Π½Π΅Π΅ понятно, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ. Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΆΠ΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄! ΠŸΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ написан для ассСмблСра yasm.

Π­Ρ‚Π° короткая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ряда Π²Π°ΠΆΠ½Ρ‹Ρ… пояснСний. Π‘Ρ‚Ρ€ΠΎΠΊΠ° org 0x7C00 Π½ΡƒΠΆΠ½Π° для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ассСмблСр (имССтся Π² Π²ΠΈΠ΄Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, Π° Π½Π΅ язык) ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ рассчитал адрСса для ΠΌΠ΅Ρ‚ΠΎΠΊ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ( puts_loop, puts_loop_exit, message ). Π’ΠΎΡ‚ ΠΌΡ‹ Π΅ΠΌΡƒ ΠΈ сообщаСм, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π° Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΏΠΎ адрСсу 0x7C00.
Π’ строках

происходит установка сСгмСнта Π΄Π°Π½Π½Ρ‹Ρ… ( ds ) Ρ€Π°Π²Π½Ρ‹ΠΌ сСгмСнту ΠΊΠΎΠ΄Π° ( cs ), ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² нашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΈ Π΄Π°Π½Π½Ρ‹Π΅, ΠΈ ΠΊΠΎΠ΄ хранятся Π² ΠΎΠ΄Π½ΠΎΠΌ сСгмСнтС.

Π’ строкС Β« times 0x1FE-finish+start db 0 Β» производится Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ остатка ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ послСдних Π΄Π²ΡƒΡ… Π±Π°ΠΉΡ‚) нулями. ДСлаСтся это для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ послС компиляции Π² послСдних Π΄Π²ΡƒΡ… Π±Π°ΠΉΡ‚Π°Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ оказалась сигнатура Π·Π°Π³Ρ€ΡƒΠ·ΠΎΡ‡Π½ΠΎΠ³ΠΎ сСктора.

Π‘ ΠΊΠΎΠ΄ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π²Ρ€ΠΎΠ΄Π΅ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π»ΠΈΡΡŒ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ это ΡΡ‡Π°ΡΡ‚ΡŒΠ΅. Для компиляции Π½Π°ΠΌ понадобится, собствСнно говоря, ассСмблСр β€” Π²Ρ‹ΡˆΠ΅ упомянутый yasm. Он Π΅ΡΡ‚ΡŒ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π² Linux. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» hello.bin Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² Π·Π°Ρ€ΡƒΠ·ΠΎΡ‡Π½Ρ‹ΠΉ сСктор дискСты. ДСлаСтся это ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ (разумССтся, вмСсто fd Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ имя своСго дисковода).

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ Ρƒ всСх ΠΎΡΡ‚Π°Π»ΠΈΡΡŒ дисководы ΠΈ дискСты, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машиной, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, qemu ΠΈΠ»ΠΈ VirtualBox. Для этого придётся ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π· дискСты с нашим Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠΎΠΌ ΠΈ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² Β«Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ дисковод».
Π‘ΠΎΠ·Π΄Π°Ρ‘ΠΌ ΠΎΠ±Ρ€Π°Π· диска ΠΈ заполняСм Π΅Π³ΠΎ нулями:

ЗаписываСм Π² самоС Π½Π°Ρ‡Π°Π»ΠΎ ΠΎΠ±Ρ€Π°Π·Π° Π½Π°ΡˆΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ:

ЗапускаСм ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Π· Π² qemu:

ПослС запуска Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ окошко qemu с радостной строчкой Β«Hello World!Β». На этом пСрвая ΡΡ‚Π°Ρ‚ΡŒΡ заканчиваСтся. Π‘ΡƒΠ΄Π΅ΠΌ Ρ€Π°Π΄Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ваши ΠΎΡ‚Π·Ρ‹Π²Ρ‹ ΠΈ поТСлания.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π½ΠΎΠ²ΡƒΡŽ OS. Π”Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΠΎΠ²ΡƒΡŽ, Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ, ΠΈ ΠΏΡ€Π°Π²Π΄Π° – систСму

ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows. 5288c6537cea4d3b80a7ce43e07aeec0. ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows-5288c6537cea4d3b80a7ce43e07aeec0. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 5288c6537cea4d3b80a7ce43e07aeec0. Π”Π°Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» статСй посвящён Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, устройству ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π½Π° языкС ассСмблСра ΠΈ смСТным областям. Пока Ρ‡Ρ‚ΠΎ написаниСм Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ Π΄Π²Π° Ρ…Π°Π±Ρ€Π°ΡŽΠ·Π΅Ρ€Π° β€” iley ΠΈ pehat. Для ΠΌΠ½ΠΎΠ³ΠΈΡ… ΡΡ‚Π°Ρ€ΡˆΠ΅ΠΊΠ»Π°ΡΡΠ½ΠΈΠΊΠΎΠ², студСнтов, Π΄Π° ΠΈ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… программистов эти Ρ‚Π΅ΠΌΡ‹ ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ вСсьма слоТными ΠΏΡ€ΠΈ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ. БущСствуСт ΠΌΠ½ΠΎΠ³ΠΎ Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΈ курсов, посвящённых Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, Π½ΠΎ ΠΏΠΎ Π½ΠΈΠΌ слоТно ΡΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΈ Π²ΡΠ΅ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρƒ. Π‘Π»ΠΎΠΆΠ½ΠΎ, ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π² ΠΎΠ΄Π½Ρƒ-Π΄Π²Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΏΠΎ ассСмблСру ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ систСмам, хотя Π±Ρ‹ Π² ΠΎΠ±Ρ‰ΠΈΡ… Ρ‡Π΅Ρ€Ρ‚Π°Ρ… ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΆΠ΅ Π½Π° самом Π΄Π΅Π»Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ эта слоТная систСма ΠΈΠ· ΠΆΠ΅Π»Π΅Π·Π°, крСмния ΠΈ мноТСства ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ β€” ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€.

ΠžΠ±Ρ‰ΠΈΠ΅ характСристики систСмы

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹, Π»Π΅ΠΆΠ°Ρ‰ΠΈΠ΅ Π² основС Ρ€Π°Π±ΠΎΡ‚Ρ‹ ОБ

β–Π—Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ, Resource-Owner-Service (ROS) модСль

НазовСм экзСмпляры этих ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Β«ΠΊΠ°Π½Π°Π»Π°ΠΌΠΈΒ». Канал – это раздСляСмый ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, содСрТащий ΠΊΠ°ΠΊ ΠΊΠΎΠ΄, Ρ‚Π°ΠΊ ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ управлСния ΠΌΠ΅ΠΆΠ΄Ρƒ Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ. Π—Π°ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ здСсь Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π½ΠΎ отсутствуСт Ρ€Π°Π·Π³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π° ΠΈ потрСбитСля услуг (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, сСрвСр ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚), Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ каТдая Π·Π°Π΄Π°Ρ‡Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ, ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»ΡΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ сСрвисов. Из ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΊΠ°Π½Π°Π»ΠΎΠ² ΠΊΠ°ΠΊ срСдства взаимодСйствия Π·Π°Π΄Π°Ρ‡ слСдуСт Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΎ свойство ROS-ΠΌΠΎΠ΄Π΅Π»ΠΈ: коммуникационная синхронизация. Π›ΡŽΠ±Π°Ρ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° управлСния ΠΌΠ΅ΠΆΠ΄Ρƒ Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² связкС с ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ΠΌ\прСдоставлСниСм услуги, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, ΠΊΠ°Π½Π°Π»Ρ‹ становятся синхронизационными ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΌΠΈ мСсто ΠΈ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ синхронизации Π·Π°Π΄Π°Ρ‡.

ОБ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΎ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ°Π½Π°Π»Π°. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΊΠ°Π½Π°Π»Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹, ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠ΅ Ρ‚ΠΈΠΏ, Ρ†Π΅Π»ΡŒ ΠΈΠ»ΠΈ ΠΈΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ взаимодСйствия.
Для обСспСчСния исполнСния Π·Π°Π΄Π°Ρ‡ систСма создаСт для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ систСмный ΠΊΠ°Π½Π°Π».

Π”ΠΈΠ·Π°ΠΉΠ½ ОБ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Π΄Π²Π° Π²ΠΈΠ΄Π° ΠΊΠ°Π½Π°Π»ΠΎΠ²: Π΄ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΈ ΠΌΡƒΠ»ΡŒΡ‚ΠΈ. Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· названия, Ρƒ ΠΏΠ΅Ρ€Π²Ρ‹Ρ… число присоСдинСнных Π·Π°Π΄Π°Ρ‡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Ρ‚ΡŒ 2, Π° Ρƒ послСдних ограничСния ΠΏΠΎ количСству ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ (ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ объСмом доступной памяти ΠΈ особСнностями ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ОБ). ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠ°Π½Π°Π» ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π²Π° Β«ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½Ρ‹Ρ…Β» ΠΊΠΎΠ½Ρ†Π°. Π—Π°Π΄Π°Ρ‡ΠΈ, присоСдинСнныС ΠΊ Π½ΠΈΠΌ, Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ экспортСрами ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅Ρ€Π°ΠΌΠΈ ΠΊΠ°Π½Π°Π»Π°, соотвСтствСнно. Π Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ этими двумя Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π·Π°Π΄Π°Ρ‡ нСсущСствСнна – ΠΎΠ±Π° Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ экзСмпляр ΠΊΠ°Π½Π°Π»Π°, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΈ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠ°Π½Π°Π» Π² своС адрСсноС пространство. ЕдинствСнная Ρ†Π΅Π»ΡŒ раздСлСния Π½Π° экспортСров ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅Ρ€ΠΎΠ² – ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π·Π°Π΄Π°Ρ‡ с Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎΠΉ сСмантикой ΠΊΠ»ΠΈΠ΅Π½Ρ‚-сСрвСр, Ρ‚.Π΅. ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΡŒ услуг.

На рисункС Π½ΠΈΠΆΠ΅ прСдставлСна ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½Π°Ρ схСма ROS OS:
ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows. image loader. ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Π”Π°Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» статСй посвящён Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, устройству ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π½Π° языкС ассСмблСра ΠΈ смСТным областям. Пока Ρ‡Ρ‚ΠΎ написаниСм Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ Π΄Π²Π° Ρ…Π°Π±Ρ€Π°ΡŽΠ·Π΅Ρ€Π° β€” iley ΠΈ pehat. Для ΠΌΠ½ΠΎΠ³ΠΈΡ… ΡΡ‚Π°Ρ€ΡˆΠ΅ΠΊΠ»Π°ΡΡΠ½ΠΈΠΊΠΎΠ², студСнтов, Π΄Π° ΠΈ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… программистов эти Ρ‚Π΅ΠΌΡ‹ ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ вСсьма слоТными ΠΏΡ€ΠΈ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ. БущСствуСт ΠΌΠ½ΠΎΠ³ΠΎ Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΈ курсов, посвящённых Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, Π½ΠΎ ΠΏΠΎ Π½ΠΈΠΌ слоТно ΡΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΈ Π²ΡΠ΅ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρƒ. Π‘Π»ΠΎΠΆΠ½ΠΎ, ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π² ΠΎΠ΄Π½Ρƒ-Π΄Π²Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΏΠΎ ассСмблСру ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ систСмам, хотя Π±Ρ‹ Π² ΠΎΠ±Ρ‰ΠΈΡ… Ρ‡Π΅Ρ€Ρ‚Π°Ρ… ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΆΠ΅ Π½Π° самом Π΄Π΅Π»Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ эта слоТная систСма ΠΈΠ· ΠΆΠ΅Π»Π΅Π·Π°, крСмния ΠΈ мноТСства ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ β€” ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€.

ВсС ΠΊΡ€Π°ΠΉΠ½Π΅ просто. Π‘Π΅Ρ€ΠΎ-Π³ΠΎΠ»ΡƒΠ±Ρ‹ΠΌ Ρ†Π²Π΅Ρ‚ΠΎΠΌ ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ физичСскиС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ систСмы – процСссоры (CPU), ΠΏΠ°ΠΌΡΡ‚ΡŒ (memory). Dev (Device) – это физичСскоС устройство хранСния Π΄Π°Π½Π½Ρ‹Ρ….
Π―Π΄Ρ€ΠΎ ОБ Π²Π»Π°Π΄Π΅Π΅Ρ‚ рСсурсами процСссоров ΠΈ памяти. ΠžΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ рСсурсами систСмы ΠΌΠΎΠ³ΡƒΡ‚ Π²Π»Π°Π΄Π΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ (P-task), ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ сСрвисы Π·Π°Π΄Π°Ρ‡Π°ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ уровня (U-task) посрСдством ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… ΠΊΠ°Π½Π°Π»ΠΎΠ² (channel).
ROS OS Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚: ΠœΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ ΠŸΠ°ΠΌΡΡ‚ΠΈ (ME-M), ΠœΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ Каналов (CH-M), ΠœΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ БистСмных Каналов (SC-M), ΠœΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ Π—Π°Π΄Π°Ρ‡ (TA-M), ΠΈ ДиспСтчСр Π—Π°Π΄Π°Ρ‡ (TA-D). Π―Π΄Ρ€ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ запросы Π½Π° сСрвисы посрСдством систСмных ΠΊΠ°Π½Π°Π»ΠΎΠ² (syschan).

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ

▍БкоординированноС вытСснСниС (cooperative preemption)

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Windows ΠΈ Linux, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ контСкст Π·Π°Π΄Π°Ρ‡ ΠΏΡ€ΠΈ ΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ, потрСбляя ΠΏΡ€ΠΈ этом Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ количСство памяти Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ стСка, Π° Ρ‚Π°ΠΊΠΆΠ΅ тСряя ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π½Π° инструкциях сохранСния рСгистров, прСдлагаСмая OS Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅ ΡΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ ядру, Ρ‡Ρ‚ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Π΅Π΅ контСкст Π½Π΅ трСбуСтся.

ВмСсто этого, Π·Π°Π΄Π°Ρ‡ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ исполнСния, состоящСС ΠΈΠ· Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ Π² Ρ„ΠΎΡ€ΠΌΠ΅ , Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ядро ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ стСк Π·Π°Π΄Π°Ρ‡ΠΈ, Π° Π·Π°Ρ‚Π΅ΠΌ, нСпосрСдствСнно ΠΏΠ΅Ρ€Π΅Π΄ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠ΅ΠΉ, Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡Π΅ Π½ΠΎΠ²Ρ‹ΠΉ (ΠΈΠ»ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ пустой) стСк, послС Ρ‡Π΅Π³ΠΎ ΠΏΠΎΠ·Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ func с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ. ΠŸΡ€ΠΈ этом, значСния ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ…, Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ этого окруТСния рСгистров ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΈΠ»ΠΈ ΠΎΠ±Π½ΡƒΠ»ΡΡŽΡ‚ΡΡ, Ρ‡Ρ‚ΠΎ быстрСС сохранСния\восстановлСния ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ значСния.
НСпосрСдствСнно ΠΏΠ΅Ρ€Π΅Π΄ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠ΅ΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ систСма ΠΎΡ‡ΠΈΡ‰Π°Π΅Ρ‚ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ· 4-Π΅Ρ… ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½ΠΎΠ΅ ΠΏΡ€Π΅ΠΆΠ΄Π΅Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ вытСснСниС Π·Π°Π΄Π°Ρ‡ΠΈ.
Π—Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ скоординированноС вытСснСниС (ΠΏΡ€ΠΈ условии, Ρ‡Ρ‚ΠΎ всС Π·Π°Π΄Π°Ρ‡ΠΈ Π² систСмС Π΅ΠΌΡƒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‚) ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… условиях исполнСния для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ядра CPU Π±ΡƒΠ΄Π΅Ρ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ стСк. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ стСки Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π΄Π΅Π»ΡΡ‚ΡŒΡΡ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли Π·Π°Π΄Π°Ρ‡Π° Π±ΡƒΠ΄Π΅Ρ‚ вытСснСна ΠΏΡ€Π΅ΠΆΠ΄Π΅Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ, ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½Π° ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ контСкст ΠΈΠ· 4-Π΅Ρ… ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ.

β–ΠœΠΎΠ΄Π΅Π»ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ управлСния для ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² (Yield-To)

Π”ΠΈΠ·Π°ΠΉΠ½ ОБ Π½Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ явных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ оТидания (wait) ΠΈΠ»ΠΈ Π²Π·Π°ΠΈΠΌΠ½ΠΎΠ³ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ для ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ². ВмСсто этого мСТпотоковая синхронизация достигаСтся явной ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ΠΉ управлСния Π΄Ρ€ΡƒΠ³ΠΈΠΌ Π·Π°Π΄Π°Ρ‡Π°ΠΌ, ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ указатСля Π½Π° ΠΊΠ°Π½Π°Π» ΠΈ Π½ΠΎΠΌΠ΅Ρ€Π° Π·Π°Π΄Π°Ρ‡ΠΈ Π² ΠΊΠ°Π½Π°Π»Π΅. Π’ΠΎ Π΅ΡΡ‚ΡŒ, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ пСрСдаСтся Π½Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅, Π° Π»ΡŽΠ±ΠΎΠΌΡƒ Π°Π³Π΅Π½Ρ‚Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдоставляСт ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ сСрвис ΠΈ проиндСксирован Π² своСм сСрвисном ΠΊΠ°Π½Π°Π»Π΅. ΠŸΡ€ΠΈ этом, Π·Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΡŽΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° для синхронизации ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‚ сами ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Π°Π³Π΅Π½Ρ‚Ρ‹.
ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ систСма ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ мноТСствСнныС стратСгии ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ управлСния Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Β«ΡƒΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ любой», Β«ΡƒΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ Π·Π°Π΄Π°Π½Π½ΠΎΠΉΒ» ΠΈ Β«Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ исполнСниС Π·Π°Π΄Π°Π½Π½ΠΎΠΉΒ». ПослСдняя стратСгия ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΡƒΡΡ‚ΡƒΠΏΠ°ΡŽΡ‰Π°Ρ Π·Π°Π΄Π°Ρ‡Π° Π½Π΅ намСрСваСтся ΠΎΡ‚Π΄Π°Π²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π° «своСм» CPU, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ новая Π·Π°Π΄Π°Ρ‡Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½Π° Π² ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒ с Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΌ CPU.

▍ДСтСрминированноС ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡

КаТдая Π·Π°Π΄Π°Ρ‡Π° активируСтся систСмным Ρ‚Π°ΠΉΠΌΠ΅Ρ€ΠΎΠΌ (ΠΊΠ°ΠΊ ΠΈ Π² ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ОБ), Π½ΠΎ, с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ примСнимости ROS OS ΠΊ систСмам Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, каТдая Π·Π°Π΄Π°Ρ‡Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π·Π°Π΄Π°Ρ‚ΡŒ трСбования ΠΊ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΡƒ Π·Π°Π΄Π°Ρ‡ Π² Π²ΠΈΠ΄Π΅ Π΄Π²ΡƒΡ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²: частоты ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ. Помимо своСго основного назначСния, эти ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для ΠΎΡ†Π΅Π½ΠΊΠΈ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ систСмы, количСства ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡ‹Ρ… ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² Π·Π°Π΄Π°Ρ‡ ΠΈ выдСлСния Π² соотвСтствии с этим Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… рСсурсов (Ρ‚Π΅Ρ… ΠΆΠ΅ стСков)
Π’ ΠΈΠ΄Π΅Π°Π»Π΅, суммарная ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΉ всСх Π·Π°Π΄Π°Ρ‡ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ мСньшС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½Π° ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡƒ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Ρƒ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ, Π° ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΊΡ€Π°Ρ‚Π½Ρ‹ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ. Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ этих условий Π±ΡƒΠ΄Π΅Ρ‚ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ отсутствиС ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²ΠΊΠΈ.
Но Π² нашСм Π½Π΅ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎΠΌ ΠΌΠΈΡ€Π΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€Π΅Π²Ρ‹ΡΠΈΡ‚ΡŒ свою Π·Π°ΡΠ²Π»Π΅Π½Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Π² Ρ‚Π°ΠΊΠΎΠΌ случаС ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ вытСснСны Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ, Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΌΠΈ ΠΊ исполнСнию Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ ΠΈ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½Ρ‹ Π² список Β«Π½Π° Π±ΡƒΠ΄ΡƒΡ‰Π΅Π΅ исполнСниС» Π² блиТайшиС свободныС слоты.

β–ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ

Π’Π°ΠΊ ΠΊΠ°ΠΊ Π² ROS ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ нСсколько ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ΠΎΠ² ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ сСрвиса (ΠΏΠΎ сСти ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ локально), СдинствСнным ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠ΅ΠΌ Π²Ρ‹Π±ΠΎΡ€Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π°ΠΌΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡ… ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π² Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… условиях.
Для управлСния ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ систСмный ΠΊΠ°Π½Π°Π» ΠΈΠΌΠ΅Π΅Ρ‚ счСтчики-Ρ‚Π°ΠΉΠΌΠ΅Ρ€Ρ‹ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ оТидания, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ состоянии Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ извСстно, ΠΊΠ°ΠΊΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅ (ΠΊΠ°Π½Π°Π»Ρƒ) Π±Ρ‹Π»ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ΠΎ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ†Π΅Π½Π΅Π½Π° просто ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° ΠΏΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ Π² Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ.
Π‘Ρ€Π°Π²Π½ΠΈΠ² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΊΠ°Π½Π°Π»ΠΎΠ², Π·Π°Π΄Π°Ρ‡Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° использованиС Π±ΠΎΠ»Π΅Π΅ быстрых ΠΈΠ· Π½ΠΈΡ…, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ особСнно ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ Π² условиях динамичСской Π°Π΄Π°ΠΏΡ‚Π°Ρ†ΠΈΠΈ ΠΊ ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠΌΡΡ условиям (ΠΎΠ±ΡˆΠΈΡ€Π½Ρ‹Π΅ сСти, физичСски Π½Π΅ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹Π΅ окруТСния ΠΈ Ρ‚.Π΄.).

▍УпрощСниС структуры ΠΊΠΎΠ΄Π°

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΊΠ°Π½Π°Π»Ρ‹ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой динамичСскиС структуры Π΄Π°Π½Π½Ρ‹Ρ…, раздСляСмыС ΠΌΠ΅ΠΆΠ΄Ρƒ адрСсными пространствами Π·Π°Π΄Π°Ρ‡ ΠΈ ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½Π½Ρ‹Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ пСрСмСщСниям Π² памяти ядром ОБ, ΠΊΠΎΠ΄ ΠΊΠ°Π½Π°Π»ΠΎΠ², Π΄Π° ΠΈ Π·Π°Π΄Π°Ρ‡ Π² ΠΎΠ±Ρ‰Π΅ΠΌ случаС Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ написан Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π·Π°Π²ΠΈΡΠ΅Ρ‚ΡŒ ΠΎΡ‚ статичного полоТСния Π΄Π°Π½Π½Ρ‹Ρ… Π² памяти (ΠΈΠ»ΠΈ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒ ΠΈΡ… ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠ΄Π°) ΠΈ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ самого ΠΊΠΎΠ΄Π°. ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ статичных структур, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΡ‚ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΠΈ контСкст ΠΈΠ· 4-Π΅Ρ… ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ Π±Π΅Π· слоТных Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ опрСдСляСт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΡƒΡŽ структуру ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:
КаТдая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° прСдставляСтся Π² памяти Π² Π²ΠΈΠ΄Π΅ Π΄Π²ΡƒΡ… частСй: ΠΊΠΎΠ΄Π° ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… (с ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ Ρ€Π°Π·Π³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ для обСспСчСния Π·Π°Ρ‰ΠΈΡ‚Ρ‹ доступа). Начало куска ΠΊΠΎΠ΄Π° – это стартовая функция Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π°Ρ Π½Π° Π²Ρ…ΠΎΠ΄ Ρ‚Ρ€ΠΈ указатСля, ΠΊΠ°ΠΊ описано Π²Ρ‹ΡˆΠ΅.

▍БозданиС ΠΈ структура Π·Π°Π΄Π°Ρ‡

Π—Π°Π΄Π°Ρ‡Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ создана ΠΈΠ· любого Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° ΠΊΠΎΠ΄Π°. АдрСс Π½Π°Ρ‡Π°Π»Π° ΠΊΠΎΠ΄Π° Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ²Π»ΡΡ‚ΡŒΡΡ адрСсом стартовой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ – Ρ‚ΠΎΠΉ самой, с ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠΎΠΌ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ – func(chan, sys, loc), Π³Π΄Π΅ chan ΠΈ loc – ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ (Ρ‚Π°ΠΊ, loc – ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅), Π° sys – ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° созданный для Π·Π°Π΄Π°Ρ‡ΠΈ систСмный ΠΊΠ°Π½Π°Π». Π—Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄ Π·Π°Π΄Π°Ρ‡ΠΈ копируСтся Π½Π° Π½ΠΎΠ²ΠΎΠ΅ мСсто Π² памяти для упрощСния Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ с ΠΊΠ°Π½Π°Π»Π°ΠΌΠΈ – Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ссли Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° Π±ΡƒΠ΄Π΅Ρ‚ экспортирована Π² качСствС ΠΊΠ°Π½Π°Π»Π°.
ВнутрСнняя структура Π·Π°Π΄Π°Ρ‡ выглядит Ρ‚Π°ΠΊ:
ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows. image loader. ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Π”Π°Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» статСй посвящён Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, устройству ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π½Π° языкС ассСмблСра ΠΈ смСТным областям. Пока Ρ‡Ρ‚ΠΎ написаниСм Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ Π΄Π²Π° Ρ…Π°Π±Ρ€Π°ΡŽΠ·Π΅Ρ€Π° β€” iley ΠΈ pehat. Для ΠΌΠ½ΠΎΠ³ΠΈΡ… ΡΡ‚Π°Ρ€ΡˆΠ΅ΠΊΠ»Π°ΡΡΠ½ΠΈΠΊΠΎΠ², студСнтов, Π΄Π° ΠΈ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… программистов эти Ρ‚Π΅ΠΌΡ‹ ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ вСсьма слоТными ΠΏΡ€ΠΈ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ. БущСствуСт ΠΌΠ½ΠΎΠ³ΠΎ Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΈ курсов, посвящённых Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, Π½ΠΎ ΠΏΠΎ Π½ΠΈΠΌ слоТно ΡΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΈ Π²ΡΠ΅ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρƒ. Π‘Π»ΠΎΠΆΠ½ΠΎ, ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π² ΠΎΠ΄Π½Ρƒ-Π΄Π²Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΏΠΎ ассСмблСру ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ систСмам, хотя Π±Ρ‹ Π² ΠΎΠ±Ρ‰ΠΈΡ… Ρ‡Π΅Ρ€Ρ‚Π°Ρ… ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΆΠ΅ Π½Π° самом Π΄Π΅Π»Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ эта слоТная систСма ΠΈΠ· ΠΆΠ΅Π»Π΅Π·Π°, крСмния ΠΈ мноТСства ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ β€” ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€.

КаТдая Π·Π°Π΄Π°Ρ‡Π° содСрТит дСскриптор, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Π΅Π΅ Ρ‚ΠΈΠΏ (type) – ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Π½Π°: Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ страниц адрСсного пространства (address space), Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ (heap), стСк (stack) ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ (exception handler).
Помимо этого, дСскриптор Π·Π°Π΄Π°Ρ‡ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ список ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π½Ρ‹Ρ… ΠΊΠ°Π½Π°Π»ΠΎΠ² – (task2chan), Ρ‚.Π΅. список ΠΏΠ°Ρ€: «индСкс-дСскриптор ΠΊΠ°Π½Π°Π»Π°, ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΊΠΎΠ΄ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ°Π½Π°Π»Π°Β».
Π’ случаС, ΠΊΠΎΠ³Π΄Π° Π·Π°Π΄Π°Ρ‡ΠΈ Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ ΠΎΠ±Ρ‰Π΅Π΅ адрСсноС пространство, ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ ΠΊΠ°Π½Π°Π»ΠΎΠ² ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ с Ρ†Π΅Π»ΡŒΡŽ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ использования памяти.
ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт списка ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π½Ρ‹Ρ… ΠΊΠ°Π½Π°Π»ΠΎΠ² – это всСгда систСмный ΠΊΠ°Π½Π°Π» Π·Π°Π΄Π°Ρ‡ΠΈ. Он Ρ…Ρ€Π°Π½ΠΈΡ‚ контСкст исполнСния ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ свойства, ΠΊΠ°ΠΊ описано дальшС.

▍ДиспСтчСризация Π·Π°Π΄Π°Ρ‡

Π”ΠΈΠ·Π°ΠΉΠ½ ОБ прСдусматриваСт Π΄Π²Π° Ρ‚ΠΈΠΏΠ° Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ Π·Π°Π΄Π°Ρ‡: (Π°) ΠΏΠΎ систСмному Ρ‚Π°ΠΉΠΌΠ΅Ρ€Ρƒ согласно Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅ΠΌΠΎΠΌΡƒ Ρ€Π°ΡΠΏΠΈΡΠ°Π½ΠΈΡŽ ΠΈ (Π±) ΠΏΠΎ явной ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ управлСния ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ.
РасписаниС Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΏΡ€ΠΎΡˆΠ΅Π½ΠΎ Π² Π²ΠΈΠ΄Π΅ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π° ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ. Π­Ρ‚ΠΈ Π΄Π²Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡƒ состояния Π·Π°Π΄Π°Ρ‡ΠΈ

ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows. image loader. ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Π”Π°Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» статСй посвящён Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, устройству ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π½Π° языкС ассСмблСра ΠΈ смСТным областям. Пока Ρ‡Ρ‚ΠΎ написаниСм Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ Π΄Π²Π° Ρ…Π°Π±Ρ€Π°ΡŽΠ·Π΅Ρ€Π° β€” iley ΠΈ pehat. Для ΠΌΠ½ΠΎΠ³ΠΈΡ… ΡΡ‚Π°Ρ€ΡˆΠ΅ΠΊΠ»Π°ΡΡΠ½ΠΈΠΊΠΎΠ², студСнтов, Π΄Π° ΠΈ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… программистов эти Ρ‚Π΅ΠΌΡ‹ ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ вСсьма слоТными ΠΏΡ€ΠΈ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ. БущСствуСт ΠΌΠ½ΠΎΠ³ΠΎ Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΈ курсов, посвящённых Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, Π½ΠΎ ΠΏΠΎ Π½ΠΈΠΌ слоТно ΡΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΈ Π²ΡΠ΅ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρƒ. Π‘Π»ΠΎΠΆΠ½ΠΎ, ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π² ΠΎΠ΄Π½Ρƒ-Π΄Π²Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΏΠΎ ассСмблСру ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ систСмам, хотя Π±Ρ‹ Π² ΠΎΠ±Ρ‰ΠΈΡ… Ρ‡Π΅Ρ€Ρ‚Π°Ρ… ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΆΠ΅ Π½Π° самом Π΄Π΅Π»Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ эта слоТная систСма ΠΈΠ· ΠΆΠ΅Π»Π΅Π·Π°, крСмния ΠΈ мноТСства ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ β€” ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€.
Π“Ρ€Π°Ρ„ измСнСния состояния Π·Π°Π΄Π°Ρ‡.

Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ, ΠΏΡ€ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΎΠ½Π° Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½ΠΎΠ΅ (active-protected) состояниС, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, ΠΎΠ½Π° Π½Π΅ ΠΏΠΎΠ΄Π»Π΅ΠΆΠΈΡ‚ Π²Ρ‹Ρ‚Π΅ΡΠ½Π΅Π½ΠΈΡŽ. ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π·Π°Π΄Π°Ρ‡Π° ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ Π·Π°ΡΠ²Π»Π΅Π½Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ вытСснСния снимаСтся. Π’ случаС, ΠΊΠΎΠ³Π΄Π° Π² листС Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… ΠΊ исполнСнию Π·Π°Π΄Π°Ρ‡ (ready list) Π΅ΡΡ‚ΡŒ другая Π·Π°Π΄Π°Ρ‡Π°, систСма ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Ρ‚Π΅ΡΠ½ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π²ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ, ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π΅Π΅ дСскриптор Π² ready list ΠΈ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ. Π’Π½ΠΎΠ²ΡŒ активированная Π·Π°Π΄Π°Ρ‡Π° возобновляСт исполнСниС Π»ΠΈΠ±ΠΎ Π² Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ состоянии (Ссли ΠΎΠ½Π° Π±Ρ‹Π»Π° вытСснСна Ρ€Π°Π½Π΅Π΅), Π»ΠΈΠ±ΠΎ Π² Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½ΠΎΠΌ состоянии (Π² случаС Π·Π°ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ исполнСния ΠΈΠ»ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ для всСх Π·Π°Π΄Π°Ρ‡, Π² зависимости ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ)

Π’Π°ΠΆΠ½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚: Π·Π°Π΄Π°Π½ΠΈΠ΅ расписания исполнСния Π½Π° основС ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π° позволяСт ядру систСмы Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π·Π°Π΄Π°Ρ‡Π°ΠΌ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ частоту Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ, Π° Π½Π΅ ΠΏΡ€Π΅Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ срок Π΅Π΅ Π½Π°Ρ‡Π°Π»Π°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, систСма ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ΄Π²ΠΈΠ³Π°Ρ‚ΡŒ Π·Π°Π΄Π°Ρ‡ΠΈ Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ссли это Π½Π΅ Π½Π°Ρ€ΡƒΡˆΠ°Π΅Ρ‚ частоту Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ. Π—Π°Π΄Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ позволяСт ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, связанных с ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ Π·Π°Π΄Π°Ρ‡, посрСдством опрСдСлСния для Π½ΠΈΡ… ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ (Π·Π°ΠΏΡ€ΠΎΡˆΠ΅Π½Π½ΠΎΠ³ΠΎ) ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ активности/оТидания. ΠšΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ОБ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ максимальной Π΄Π»ΠΈΠ½ΠΎΠΉ ΠΊΠ²Π°Π½Ρ‚Π° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Β«ΠΆΠ°Π΄Π½Ρ‹Π΅Β» Π·Π°Π΄Π°Ρ‡ΠΈ Π½Π΅ Π·Π°Π½ΠΈΠΌΠ°Π»ΠΈ процСссор бСсконСчно. ВсС Π²Ρ‹ΡˆΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ схСму ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ° ΠΈ обСспСчиваСт Π΅Π³ΠΎ быстроС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅.
ΠŸΠ»Π°Π½ΠΈΡ€ΠΎΠ²ΠΊΠ° Π½Π° основС Π·Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π° ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ позволяСт ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΡƒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½Ρ‹Π΅ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ (см. рисунок Π½ΠΈΠΆΠ΅) ΠΈ Π»ΠΈΠ±ΠΎ ΠΎΡ‚ΠΊΠ»ΠΎΠ½ΡΡ‚ΡŒ запрос Π½Π° Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΡŽ, Π»ΠΈΠ±ΠΎ ΡΠΌΡΠ³Ρ‡Π°Ρ‚ΡŒ трСбования ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²ΠΊΠΈ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.
ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows. image loader. ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Π”Π°Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» статСй посвящён Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, устройству ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π½Π° языкС ассСмблСра ΠΈ смСТным областям. Пока Ρ‡Ρ‚ΠΎ написаниСм Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ Π΄Π²Π° Ρ…Π°Π±Ρ€Π°ΡŽΠ·Π΅Ρ€Π° β€” iley ΠΈ pehat. Для ΠΌΠ½ΠΎΠ³ΠΈΡ… ΡΡ‚Π°Ρ€ΡˆΠ΅ΠΊΠ»Π°ΡΡΠ½ΠΈΠΊΠΎΠ², студСнтов, Π΄Π° ΠΈ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… программистов эти Ρ‚Π΅ΠΌΡ‹ ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ вСсьма слоТными ΠΏΡ€ΠΈ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ. БущСствуСт ΠΌΠ½ΠΎΠ³ΠΎ Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΈ курсов, посвящённых Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, Π½ΠΎ ΠΏΠΎ Π½ΠΈΠΌ слоТно ΡΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΈ Π²ΡΠ΅ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρƒ. Π‘Π»ΠΎΠΆΠ½ΠΎ, ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π² ΠΎΠ΄Π½Ρƒ-Π΄Π²Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΏΠΎ ассСмблСру ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ систСмам, хотя Π±Ρ‹ Π² ΠΎΠ±Ρ‰ΠΈΡ… Ρ‡Π΅Ρ€Ρ‚Π°Ρ… ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΆΠ΅ Π½Π° самом Π΄Π΅Π»Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ эта слоТная систСма ΠΈΠ· ΠΆΠ΅Π»Π΅Π·Π°, крСмния ΠΈ мноТСства ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ β€” ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€.

Помимо Π²Ρ‹Ρ‚Π΅ΡΠ½ΡΡŽΡ‰Π΅ΠΉ многозадачности, систСма ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΈ ΠΊΠΎΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΡƒΡŽ. Явная ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° управлСния ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ систСмного ΠΌΠ΅Ρ‚ΠΎΠ΄Π° yield(). Π’Ρ‹Π·ΠΎΠ² этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ управлСния Π·Π°Π΄Π°Ρ‡Π΅, ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ указатСля Π½Π° ΠΊΠ°Π½Π°Π» ΠΈ Π½ΠΎΠΌΠ΅Ρ€Π° Π·Π°Π΄Π°Ρ‡ΠΈ Π² Π½Π΅ΠΌ, ΠΈ исполнСнию Π΄Π°Π½Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ Π½Π° Π·Π°Π΄Π°Π½Π½ΠΎΠΌ процСссорС. Π’Π°ΠΊΠΆΠ΅, ΠΊΠ°ΠΊ Π±Ρ‹Π»ΠΎ сказано Π²Ρ‹ΡˆΠ΅, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅, Π° Π»ΡŽΠ±ΠΎΠΌΡƒ Π°Π³Π΅Π½Ρ‚Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдоставляСт ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ сСрвис ΠΈ проиндСксирован Π² своСм сСрвисном ΠΊΠ°Π½Π°Π»Π΅.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²ΠΊΠΈ (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ динамичСский, ΠΊΠΎΠ³Π΄Π° Π·Π°Π΄Π°Ρ‡Ρƒ Π²Ρ‹Ρ‚Π΅ΡΠ½ΡΡŽΡ‚ ΠΏΠΎ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ΅Π½ΠΈΡŽ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ исполнСния) Π² ΠΎΠ±Ρ‰Π΅ΠΌ случаС ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΡŽ ядром ОБ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… рСсурсов – Π½ΠΎΠ²ΠΎΠ³ΠΎ стСка для Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ для ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ использования систСмных рСсурсов каТдая Π·Π°Π΄Π°Ρ‡Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ ядру ОБ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° Π½Π΅ нуТдаСтся Π² сохранСнии рСгистров ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… стСка. Π’ этом случаС ОБ ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ yield() ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ стСк Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ ΡΠ±Ρ€ΠΎΡΠΈΡ‚ΡŒ содСрТимоС рСгистров. ΠŸΡ€ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ Ρ‚Π°ΠΊΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ систСма Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ Π½Π° пустом стСкС ΠΈ Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ содСрТании рСгистров.
Для обСспСчСния Π·Π°ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΈΠ»ΠΈ Π²Ρ‹Ρ‚Π΅ΡΠ½ΡΡŽΡ‰Π΅ΠΉ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ диспСтчСр Π·Π°Π΄Π°Ρ‡ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ список Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ Π·Π°Π΄Π°Ρ‡. Π­Ρ‚ΠΎ – ΠΊΠΎΠ»ΡŒΡ†Π΅Π²ΠΎΠΉ Π±ΡƒΡ„Π΅Ρ€, содСрТащий индСксы-дСскрипторы (ΠΈΠ»ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ) Π·Π°Π΄Π°Ρ‡ ΠΈ Π·Π°ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ врСмя Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° рисункС Π½ΠΈΠΆΠ΅. Для вытСснСнных Π·Π°Π΄Π°Ρ‡ это врСмя Π±ΡƒΠ΄Π΅Ρ‚, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌ.
ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows. image loader. ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Π”Π°Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» статСй посвящён Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, устройству ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π½Π° языкС ассСмблСра ΠΈ смСТным областям. Пока Ρ‡Ρ‚ΠΎ написаниСм Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ Π΄Π²Π° Ρ…Π°Π±Ρ€Π°ΡŽΠ·Π΅Ρ€Π° β€” iley ΠΈ pehat. Для ΠΌΠ½ΠΎΠ³ΠΈΡ… ΡΡ‚Π°Ρ€ΡˆΠ΅ΠΊΠ»Π°ΡΡΠ½ΠΈΠΊΠΎΠ², студСнтов, Π΄Π° ΠΈ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… программистов эти Ρ‚Π΅ΠΌΡ‹ ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ вСсьма слоТными ΠΏΡ€ΠΈ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ. БущСствуСт ΠΌΠ½ΠΎΠ³ΠΎ Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΈ курсов, посвящённых Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, Π½ΠΎ ΠΏΠΎ Π½ΠΈΠΌ слоТно ΡΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΈ Π²ΡΠ΅ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρƒ. Π‘Π»ΠΎΠΆΠ½ΠΎ, ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π² ΠΎΠ΄Π½Ρƒ-Π΄Π²Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΏΠΎ ассСмблСру ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ систСмам, хотя Π±Ρ‹ Π² ΠΎΠ±Ρ‰ΠΈΡ… Ρ‡Π΅Ρ€Ρ‚Π°Ρ… ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΆΠ΅ Π½Π° самом Π΄Π΅Π»Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ эта слоТная систСма ΠΈΠ· ΠΆΠ΅Π»Π΅Π·Π°, крСмния ΠΈ мноТСства ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ β€” ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€.

ВрСмя ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Π² Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹Ρ… ΠΈΠ»ΠΈ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π΅Π΄ΠΈΠ½ΠΈΡ†Π°Ρ… (ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Ρƒ), ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒΡΡ Π² соотвСтствии с Π·Π°ΠΏΡ€ΠΎΡˆΠ΅Π½Π½Ρ‹ΠΌΠΈ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π°ΠΌΠΈ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ. Когда Π·Π°Π΄Π°Ρ‡Π° вытСсняСтся ΠΈΠ»ΠΈ уступаСт ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ, Π΅Π΅ дСскриптор помСщаСтся Π² ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ свободный слот ΠΊΠΎΠ»ΡŒΡ†Π΅Π²ΠΎΠ³ΠΎ Π±ΡƒΡ„Π΅Ρ€Π°. ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ список упорядочСн ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π·Π°Π΄Π°Ρ‡Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ вставлСна Π² список ΠΏΠ΅Ρ€Π΅Π΄ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ, Ссли ΠΊΡ€Π°ΠΉΠ½ΠΈΠΉ срок Π΅Π΅ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ наступаСт Ρ€Π°Π½ΡŒΡˆΠ΅.
Π“ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ ΠΊ исполнСнию Π·Π°Π΄Π°Ρ‡ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒΡΡ ΠΈΠ· листа, начиная с ΠΊΠΎΠ½Ρ†Π° (хвоста) ΠΈΠ»ΠΈ с ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π° листы Π·Π°Π΄Π°Ρ‡ (task list pointers), содСрТащихся Π² Π‘Π»ΠΎΠΊΠ°Ρ… управлСния процСссорами, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ описаны Π½ΠΈΠΆΠ΅.

НакладныС расходы ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²ΠΊΠΈ Π·Π°Π΄Π°Ρ‡ Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Π½Π° статичСскиС ΠΈ динамичСскиС. ΠŸΠ΅Ρ€Π²Ρ‹Π΅ – это постоянноС врСмя ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ процСссорного контСкста Π·Π°Π΄Π°Ρ‡ΠΈ (Π½Π°ΠΏΠΎΠΌΠ½ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ это врСмя ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ коопСративная ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ), Π° Π²Ρ‚ΠΎΡ€Ρ‹Π΅ – Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Π΅ расходы самого диспСтчСра Π·Π°Π΄Π°Ρ‡, ΠΏΡ€ΠΎΠΏΠΎΡ€Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ количСству ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ поиска Π² листС готовности Π·Π°Π΄Π°Ρ‡ (ΠΊΠ°ΠΊ для поиска Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π³ΠΎΡ‚ΠΎΠ²ΠΎΠΉ ΠΊ исполнСнию Π·Π°Π΄Π°Ρ‡ΠΈ, Ρ‚Π°ΠΊ ΠΈ для вставки Π½ΠΎΠ²ΠΎΠΉ). ΠŸΡ€ΠΈ этом, Π½Π΅Ρ‚ нСобходимости поиска Π·Π°Π΄Π°Ρ‡ΠΈ для Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½Π° всСгда Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² «хвостС» списка.
НакладныС расходы Π½Π° вставку Π·Π°Π΄Π°Ρ‡ Π±ΡƒΠ΄ΡƒΡ‚ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ, Ссли всС Π·Π°Π΄Π°Ρ‡ΠΈ запросили ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Ρ‹ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠΉ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Если ΠΆΠ΅ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Ρ‹ Ρ€Π°Π·Π½Ρ‹Π΅, Ρ‚ΠΎ поиск Π·Π°ΠΉΠΌΠ΅Ρ‚ логарифмичСскоС число ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ лист готовности Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π½Π°Π±ΠΎΡ€ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π΄Ρ€ΡƒΠ³ Π·Π° Π΄Ρ€ΡƒΠ³ΠΎΠΌ, ΠΏΠΎ большСй ΠΌΠ΅Ρ€Π΅, сортированных Π΄Π°Π½Π½Ρ‹Ρ…, Π° нСсортированныС элСмСнты ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π°ΠΉΠ΄Π΅Π½Ρ‹ ΠΏΠΎ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅ ссылок.

▍УправлСниС ΠΊΠ°Π½Π°Π»Π°ΠΌΠΈ

ΠšΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΊΠ°Π½Π°Π»Ρƒ Π² систСмС присваиваСтся дСскриптор, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ…Ρ€Π°Π½ΠΈΡ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚ΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΊΠ°Π½Π°Π»Π° (type), Π΅Π³ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ (guid), Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ: Π½Π° Ρ‚Π΅Π»ΠΎ ΠΊΠ°Π½Π°Π»Π° (body pointer) Π² ΠΎΠ±Ρ‰Π΅ΠΌ адрСсном пространствС, Π³Π΄Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Ρ‹ всС ΠΊΠ°Π½Π°Π»Ρ‹; ΠΈ Π½Π° дСскрипторы Π·Π°Π΄Π°Ρ‡ (chan2task), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ присоСдинСны ΠΊ Π΄Π°Π½Π½ΠΎΠΌΡƒ ΠΊΠ°Π½Π°Π»Ρƒ. Π’ΠΎ Π΅ΡΡ‚ΡŒ, систСма Ρ…Ρ€Π°Π½ΠΈΡ‚ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ дСскрипторов ΠΊΠ°Π½Π°Π»ΠΎΠ², ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ Π½Π° рисункС Π½ΠΈΠΆΠ΅:
ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows. image loader. ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Π”Π°Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» статСй посвящён Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, устройству ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π½Π° языкС ассСмблСра ΠΈ смСТным областям. Пока Ρ‡Ρ‚ΠΎ написаниСм Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ Π΄Π²Π° Ρ…Π°Π±Ρ€Π°ΡŽΠ·Π΅Ρ€Π° β€” iley ΠΈ pehat. Для ΠΌΠ½ΠΎΠ³ΠΈΡ… ΡΡ‚Π°Ρ€ΡˆΠ΅ΠΊΠ»Π°ΡΡΠ½ΠΈΠΊΠΎΠ², студСнтов, Π΄Π° ΠΈ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… программистов эти Ρ‚Π΅ΠΌΡ‹ ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ вСсьма слоТными ΠΏΡ€ΠΈ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ. БущСствуСт ΠΌΠ½ΠΎΠ³ΠΎ Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΈ курсов, посвящённых Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, Π½ΠΎ ΠΏΠΎ Π½ΠΈΠΌ слоТно ΡΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΈ Π²ΡΠ΅ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρƒ. Π‘Π»ΠΎΠΆΠ½ΠΎ, ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π² ΠΎΠ΄Π½Ρƒ-Π΄Π²Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΏΠΎ ассСмблСру ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ систСмам, хотя Π±Ρ‹ Π² ΠΎΠ±Ρ‰ΠΈΡ… Ρ‡Π΅Ρ€Ρ‚Π°Ρ… ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΆΠ΅ Π½Π° самом Π΄Π΅Π»Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ эта слоТная систСма ΠΈΠ· ΠΆΠ΅Π»Π΅Π·Π°, крСмния ΠΈ мноТСства ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ β€” ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€.

ΠžΠ±Ρ€Π°Ρ‚Π½Ρ‹Π΅ ссылки ΠΊΠ°Π½Π°Π»ΠΎΠ² Π½Π° Π·Π°Π΄Π°Ρ‡ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ для ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π·Π°Π΄Π°Ρ‡ посрСдством указатСля Π½Π° ΠΊΠ°Π½Π°Π» ΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈΠΊΠ°Π½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ индСкса (для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ управлСния ΠΌΠ΅ΠΆΠ΄Ρƒ Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ). Π’ этой схСмС Π²Π½ΡƒΡ‚Ρ€ΠΈΠΊΠ°Π½Π°Π»ΡŒΠ½Ρ‹ΠΉ индСкс – это позиция дСскриптора Π·Π°Π΄Π°Ρ‡ΠΈ (task descidx) Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌ листС chan2task.

▍БистСмныС Π²Ρ‹Π·ΠΎΠ²Ρ‹ ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ контСкстом

БистСмныС ΠΊΠ°Π½Π°Π»Ρ‹ – это комплСкс срСдств для ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π·Π°Π΄Π°Ρ‡, сохранСния ΠΈΡ… контСкста, получСния систСмной ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ систСмных Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ управлСния Π΄Ρ€ΡƒΠ³ΠΈΠΌ Π·Π°Π΄Π°Ρ‡Π°ΠΌ.
На рисункС Π½ΠΈΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Π° структура систСмного ΠΊΠ°Π½Π°Π»Π°.
ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows. image loader. ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Π”Π°Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» статСй посвящён Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, устройству ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π½Π° языкС ассСмблСра ΠΈ смСТным областям. Пока Ρ‡Ρ‚ΠΎ написаниСм Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ Π΄Π²Π° Ρ…Π°Π±Ρ€Π°ΡŽΠ·Π΅Ρ€Π° β€” iley ΠΈ pehat. Для ΠΌΠ½ΠΎΠ³ΠΈΡ… ΡΡ‚Π°Ρ€ΡˆΠ΅ΠΊΠ»Π°ΡΡΠ½ΠΈΠΊΠΎΠ², студСнтов, Π΄Π° ΠΈ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… программистов эти Ρ‚Π΅ΠΌΡ‹ ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ вСсьма слоТными ΠΏΡ€ΠΈ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ. БущСствуСт ΠΌΠ½ΠΎΠ³ΠΎ Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΈ курсов, посвящённых Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, Π½ΠΎ ΠΏΠΎ Π½ΠΈΠΌ слоТно ΡΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΈ Π²ΡΠ΅ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρƒ. Π‘Π»ΠΎΠΆΠ½ΠΎ, ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π² ΠΎΠ΄Π½Ρƒ-Π΄Π²Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΏΠΎ ассСмблСру ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ систСмам, хотя Π±Ρ‹ Π² ΠΎΠ±Ρ‰ΠΈΡ… Ρ‡Π΅Ρ€Ρ‚Π°Ρ… ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΆΠ΅ Π½Π° самом Π΄Π΅Π»Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ эта слоТная систСма ΠΈΠ· ΠΆΠ΅Π»Π΅Π·Π°, крСмния ΠΈ мноТСства ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ β€” ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€.

Как Π²ΠΈΠ΄Π½ΠΎ, Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ систСмных Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² Π½Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ Ρ‡Π΅Ρ€Π΅Π· стСк ΠΈΠ»ΠΈ рСгистры, Π° ΠΊΠΎΠΏΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ структуры систСмного ΠΊΠ°Π½Π°Π»Π°.
Π’ систСмном ΠΊΠ°Π½Π°Π»Π΅ размСщаСтся информация ΠΎ свойствах ΠΈ возмоТностях ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, позволяя Π΅Π΅ использованиС Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Ρ… расходов Π½Π° систСмный Π²Ρ‹Π·ΠΎΠ².

ΠšΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ°Π½Π°Π»Π΅ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ…-ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ окруТСния исполнСния ΠΈ контСкста исполнСния ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΉ для Ρ†Π΅Π»Π΅ΠΉ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ\ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°.
Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎ Ρ…Ρ€ΠΎΠ½ΠΎΠΌΠ΅Ρ‚Ρ€Π°ΠΆΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ обновляСтся ядром ОБ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. НаличиС ΠΏΠΎΠ»Π΅ΠΉ, относящихся ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ процСссору систСмы, позволяСт ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΡƒΡŽ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΡŽ Π·Π°Π΄Π°Ρ‡ (идСнтификация Π·Π°Π΄Π°Ρ‡ происходит Π½Π° основС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ дСскриптора ΠΊΠ°Π½Π°Π»Π°).
ΠšΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ систСмы ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ рСгистр (доступный для чтСния Π½Π΅ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ Π·Π°Π΄Π°Ρ‡Π°ΠΌ – Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Π² ΠΆΠ΅Π»Π΅Π·Π΅, сСгмСнтный рСгистр) для хранСния постоянного указатСля Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ систСмный ΠΊΠ°Π½Π°Π» Π·Π°Π΄Π°Ρ‡ΠΈ. Π’ этом случаС Π·Π°Π΄Π°Ρ‡Π°ΠΌ Π½Π΅ трСбуСтся ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° систСмный ΠΊΠ°Π½Π°Π», вмСсто этого ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π½Π° Π½Π΅Π³ΠΎ Ρ‡Π΅Ρ€Π΅Π· ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ макрос.

БистСмный ΠΊΠ°Π½Π°Π» Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅, фактичСски, Π±ΡƒΠ΄ΡƒΡ‚ ΡΠ²Π»ΡΡ‚ΡŒΡΡ систСмным API:

Π’ΠΎ Π΅ΡΡ‚ΡŒ, вСсь систСмный API состоит ΠΌΠ΅Π½Π΅Π΅, Ρ‡Π΅ΠΌ ΠΈΠ· 10 Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ!!

▍УправлСниС процСссорами

ΠšΠ°ΠΆΠ΄ΠΎΠΌΡƒ процСссору Π² систСмС присваиваСтся Π‘Π»ΠΎΠΊ УправлСния ΠŸΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ свойства Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ выполняСмой Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° рисункС Π½ΠΈΠΆΠ΅.
ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows. image loader. ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Π”Π°Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» статСй посвящён Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, устройству ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π½Π° языкС ассСмблСра ΠΈ смСТным областям. Пока Ρ‡Ρ‚ΠΎ написаниСм Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ Π΄Π²Π° Ρ…Π°Π±Ρ€Π°ΡŽΠ·Π΅Ρ€Π° β€” iley ΠΈ pehat. Для ΠΌΠ½ΠΎΠ³ΠΈΡ… ΡΡ‚Π°Ρ€ΡˆΠ΅ΠΊΠ»Π°ΡΡΠ½ΠΈΠΊΠΎΠ², студСнтов, Π΄Π° ΠΈ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… программистов эти Ρ‚Π΅ΠΌΡ‹ ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ вСсьма слоТными ΠΏΡ€ΠΈ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ. БущСствуСт ΠΌΠ½ΠΎΠ³ΠΎ Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΈ курсов, посвящённых Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, Π½ΠΎ ΠΏΠΎ Π½ΠΈΠΌ слоТно ΡΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΈ Π²ΡΠ΅ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρƒ. Π‘Π»ΠΎΠΆΠ½ΠΎ, ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π² ΠΎΠ΄Π½Ρƒ-Π΄Π²Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΏΠΎ ассСмблСру ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ систСмам, хотя Π±Ρ‹ Π² ΠΎΠ±Ρ‰ΠΈΡ… Ρ‡Π΅Ρ€Ρ‚Π°Ρ… ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΆΠ΅ Π½Π° самом Π΄Π΅Π»Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ эта слоТная систСма ΠΈΠ· ΠΆΠ΅Π»Π΅Π·Π°, крСмния ΠΈ мноТСства ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ β€” ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€.

Π’Π°ΠΊΠΆΠ΅ Π² соотвСтствиС процСссору ставятся Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ – ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ мСТпроцСссорныС) ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Π° систСмных дСскрипторов.

Π£Ρ€ΠΎΠ²Π½ΠΈ слоТности систСмы

Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ систСмы ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π²ΠΈΡΠ΅Ρ‚ΡŒ ΠΎΡ‚ доступного объСма памяти, процСссорных возмоТностСй ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. НиТС описаны возмоТности Ρ€Π΅Π³ΡƒΠ»ΠΈΡ€ΠΎΠ²ΠΊΠΈ слоТности ядра ОБ.

▍РСализация управлСния ΠΊΠ°Π½Π°Π»Π°ΠΌΠΈ

ΠšΠ°Π½Π°Π»Ρ‹, являясь основой Π΄ΠΈΠ·Π°ΠΉΠ½Π° ОБ, Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Π²Π°Ρ€ΠΈΠ°Ρ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ. НапримСр, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ОБ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠ°Π½Π°Π»ΠΎΠ², ΠΈΡΠΊΠ»ΡŽΡ‡Π°Ρ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ динамичСского выдСлСния списков Ρ‡Π»Π΅Π½ΠΎΠ² ΠΊΠ°Π½Π°Π»ΠΎΠ². ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, систСма ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°Π½Π°Π»Ρ‹ с ΠΊΠΎΠ΄ΠΎΠΌ (ΠΈΠ»ΠΈ, ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹Π΅ ΠΊΠ°Π½Π°Π»Ρ‹ для ΠΊΠΎΠ΄Π° ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…), вслСдствиС Ρ‡Π΅Π³ΠΎ упрощаСтся использованиС Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ… компиляторов ΠΈ срСд Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠΏΠ°Π΄Π°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ агрСгирования ΠΊΠΎΠ΄Π° ΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

ΠšΠ°Π½Π°Π»Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ 128-Π±ΠΈΡ‚Π½Ρ‹ΠΌΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌΠΈ Π»ΠΈΠ±ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ индСксами, Π²Π°Π»ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ локальной (ΠΌΠ°ΡΡˆΡ‚Π°Π±Π° систСмы ΠΈΠ»ΠΈ сСти) ΠΈΠ»ΠΈ глобальной слуТбой.
Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ – присвоСниС ΠΊΠ°Π½Π°Π»Π°ΠΌ ΠΈΠΌΠ΅Π½, ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π² Π²ΠΈΠ΄Π΅ иСрархичСских ΠΏΡƒΡ‚Π΅ΠΉ, ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… систСмным Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΌ путям ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ОБ.

▍РСализация управлСния Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ

Π’Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π² соврСмСнных ОБ, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΡ‹ΠΉ Π΄ΠΈΠ·Π°ΠΉΠ½ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π·Π°Π΄Π°Ρ‡ ΠΊΠ°ΠΊ Π² Ρ„ΠΎΡ€ΠΌΠ΅ процСссов, Ρ‚Π°ΠΊ ΠΈ Π² Ρ„ΠΎΡ€ΠΌΠ΅ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, Π·Π°Π΄Π°Ρ‡ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ (логичСски ΠΈ физичСски, Ссли это ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ возмоТности процСссорной систСмы), Ρ‚Π°ΠΊ ΠΈ Ρ€Π°Π·Π΄Π΅Π»ΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΎ адрСсноС пространство, Π° Π·Π½Π°Ρ‡ΠΈΡ‚, ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Ρ‡Π΅Ρ€Π΅Π· раздСляСмыС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅.
Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° возмоТная, Π½ΠΎ ΠΎΡ‡Π΅Π½ΡŒ ваТная ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ – это ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ Π·Π°Π΄Π°Ρ‡, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡Π°ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… систСмных ΠΈ процСссорных рСсурсов (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, мСТпроцСссорных ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ, Ρ‚Π°Π±Π»ΠΈΡ† дСскрипторов процСссоров, Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ…-Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ… ΠΏΠΎΡ€Ρ‚ΠΎΠ²).
Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ – это ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ экономии усилий ΠΏΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ изоляции Π·Π°Π΄Π°Ρ‡, Π·Π°Ρ‰ΠΈΡ‚Π΅ памяти ΠΈ процСссорных рСсурсов.

Если ΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅, Ρ‚Π°ΠΊ ΠΈ Π½Π΅ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ, Π΄ΠΈΠ·Π°ΠΉΠ½ ОБ прСдусматриваСт Π΄Π²Π΅ возмоТности для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.

Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ случаС, всС ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ядром, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, всС ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ становятся Ρ‡Π°ΡΡ‚ΡŒΡŽ ядра ОБ ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π² Π΅Π³ΠΎ контСкстС (ΠΈΠ»ΠΈ контСкстС Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°ΡŽΡ‰Π΅ΠΉ стороны). НазовСм это Β«ΠΎΠ±Ρ‰Π΅ΠΉ схСмой». Достоинства этого ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° – обслуТиваниС ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ контСкста Π·Π°Π΄Π°Ρ‡ (ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π² контСкстС Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°ΡŽΡ‰Π΅ΠΉ стороны) Π² случаС, ΠΊΠΎΠ³Π΄Π° адрСсноС пространство ядра ОБ отобраТаСтся Π½Π° адрСсноС пространство ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ систСмноС ядро всСгда распараллСлСно ΠΏΠΎ числу процСссоров систСмы, ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ, Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΎΡΡ‚Π°ΠΈΠ²Π°Ρ‚ΡŒ Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΈ отсутствии возмоТности исполнСния ΠΈΡ… контСкста. НСдостаток – Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°ΡŽΡ‰Π°Ρ Π·Π°Π΄Π°Ρ‡Π° Π½Π΅ смоТСт ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ исполнСниС Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° запрос Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½.

Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ случаС всС ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»Π΅Π½Ρ‹ ΠΎΡ‚ ядра (Β«Ρ€Π°Π·Π΄Π΅Π»ΡŒΠ½Π°Ρ схСма»).
Π­Ρ‚ΠΎ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ исполнСния Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΡ… запросы Π·Π°Π΄Π°Ρ‡, Π½ΠΎ вносит Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ контСкста ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ запросу ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΡŽ прСрывания (Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ прСрывания, ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΠ΅ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ Π·Π°Π΄Π°Ρ‡Π°ΠΌ, ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΡ‚ΠΈ Π²ΠΎ врСмя исполнСния любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ).

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ объСдинСниС ΠΎΠ±Ρ‰Π΅ΠΉ ΠΈ Ρ€Π°Π·Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ схСм. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, всС ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ ΠΎΡ‚ Π»ΠΈΡ†Π° Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… ΠΈΡ… Π·Π°Π΄Π°Ρ‡ (ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ ядра), Π½ΠΎ, ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ нСобходимости, ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ, исполняСмыС ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ, ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΈΠΌ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ°Π½Π°Π»ΠΎΠ².

Для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΊ Π²Ρ‹ΡˆΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ядра – систСмный Π²Ρ‹Π·ΠΎΠ², ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡŽΡ‰ΠΈΠΉ Π²Π΅ΠΊΡ‚ΠΎΡ€ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ ΠΈ Π΅Π³ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ – ΡΠ΅Ρ€Π²ΠΈΡΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡƒΡŽ ядром систСмы ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ управлСния ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌΡƒ ΠΊΠ°Π½Π°Π»Ρƒ, Π²Π»Π°Π΄Π΅Π»Π΅Ρ† ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ – Ρ‡Π°ΡΡ‚ΡŒ ядра, Π° Π½Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ Π·Π°Π΄Π°Ρ‡Π°.

ΠŸΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ систСма провСряСт ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ‚ΠΎΡ€Π° запроса ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ индСкс Π·Π°Π΄Π°Ρ‡ΠΈ. Π―Π΄Ρ€ΠΎ ОБ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ прСрывания ΠΈΠ· ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π²Π΅ΠΊΡ‚ΠΎΡ€Π° ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ контСкста Π½Π° ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ – ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ‚ΠΎΡ€Π° запроса. НулСвой ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ handler удаляСт ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ установлСнный ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ.
ДСскриптор ΠΊΠ°Π½Π°Π»Π° Π² этом случаС Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ- ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ.
ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows. image loader. ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Π”Π°Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» статСй посвящён Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, устройству ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π½Π° языкС ассСмблСра ΠΈ смСТным областям. Пока Ρ‡Ρ‚ΠΎ написаниСм Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ Π΄Π²Π° Ρ…Π°Π±Ρ€Π°ΡŽΠ·Π΅Ρ€Π° β€” iley ΠΈ pehat. Для ΠΌΠ½ΠΎΠ³ΠΈΡ… ΡΡ‚Π°Ρ€ΡˆΠ΅ΠΊΠ»Π°ΡΡΠ½ΠΈΠΊΠΎΠ², студСнтов, Π΄Π° ΠΈ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… программистов эти Ρ‚Π΅ΠΌΡ‹ ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ вСсьма слоТными ΠΏΡ€ΠΈ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ. БущСствуСт ΠΌΠ½ΠΎΠ³ΠΎ Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΈ курсов, посвящённых Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, Π½ΠΎ ΠΏΠΎ Π½ΠΈΠΌ слоТно ΡΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΈ Π²ΡΠ΅ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρƒ. Π‘Π»ΠΎΠΆΠ½ΠΎ, ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π² ΠΎΠ΄Π½Ρƒ-Π΄Π²Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΏΠΎ ассСмблСру ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ систСмам, хотя Π±Ρ‹ Π² ΠΎΠ±Ρ‰ΠΈΡ… Ρ‡Π΅Ρ€Ρ‚Π°Ρ… ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΆΠ΅ Π½Π° самом Π΄Π΅Π»Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ эта слоТная систСма ΠΈΠ· ΠΆΠ΅Π»Π΅Π·Π°, крСмния ΠΈ мноТСства ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ β€” ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΉ посрСдством ΠΊΠ°Π½Π°Π»ΠΎΠ²

β–Π”ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠ°Π½Π°Π»Ρ‹

ΠŸΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ°Ρ модСль ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π·Π°Π΄Π°Ρ‡ – это Π΄ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠ°Π½Π°Π»Ρ‹. Они Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ обслуТиваниС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²ΡƒΡ… ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… Π°Π³Π΅Π½Ρ‚ΠΎΠ², хотя ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒΡΡ с Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ ΠΎΠ΄Π½ΠΈΠΌ ΠΊΠ°Π½Π°Π»ΠΎΠΌ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ ID. Π’ΠΎ Π΅ΡΡ‚ΡŒ, ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ сСрвиса ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π΅Π³ΠΎ нСскольким ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌ (ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ – Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ ΠΊΠ°Π½Π°Π»Π΅), ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚Ρƒ ΠΆΠ΅ услугу ΠΎΡ‚ Ρ€Π°Π·Π½Ρ‹Ρ… поставщиков.

Π”ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠ°Π½Π°Π»Ρ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ эффСктивным срСдством ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π² случаС, ΠΊΠΎΠ³Π΄Π° присоСдинСнныС ΠΊ Π½ΠΈΠΌ Π°Π³Π΅Π½Ρ‚Ρ‹ ΠΊΠΎΠΏΠΈΡ€ΡƒΡŽΡ‚ свои Π΄Π°Π½Π½Ρ‹Π΅ Π² раздСляСмоС Π²Π½ΡƒΡ‚Ρ€ΠΈΠΊΠ°Π½Π°Π»ΡŒΠ½ΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΈ ΠΈΠ·Π²Π΅Ρ‰Π°ΡŽΡ‚ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π° ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ копирования\ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… (Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‰ΠΈΠ΅ Π°Π³Π΅Π½Ρ‚Ρ‹ Π½Π΅ тратят попусту Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ рСсурсы).

Π”ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠ°Π½Π°Π»Ρ‹ ΠΊΠΎΠ΄Π° практичСски эквивалСнтны ΠΊΠ°Π½Π°Π»Π°ΠΌ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, СдинствСнноС ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ – ΠΎΠ½ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ раздСляСмый интСрфСйс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ инкапсулируСт ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π΄ΠΈΠ·Π°ΠΉΠ½Π°. Π’ этом случаС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ управлСния ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒΡΡ Π²Π½ΡƒΡ‚Ρ€ΠΈΠΊΠ°Π½Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ΠΏΠΎ ΠΏΠΎΡ€ΡƒΡ‡Π΅Π½ΠΈΡŽ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ.
ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows. image loader. ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Π”Π°Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» статСй посвящён Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, устройству ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π½Π° языкС ассСмблСра ΠΈ смСТным областям. Пока Ρ‡Ρ‚ΠΎ написаниСм Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ Π΄Π²Π° Ρ…Π°Π±Ρ€Π°ΡŽΠ·Π΅Ρ€Π° β€” iley ΠΈ pehat. Для ΠΌΠ½ΠΎΠ³ΠΈΡ… ΡΡ‚Π°Ρ€ΡˆΠ΅ΠΊΠ»Π°ΡΡΠ½ΠΈΠΊΠΎΠ², студСнтов, Π΄Π° ΠΈ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… программистов эти Ρ‚Π΅ΠΌΡ‹ ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ вСсьма слоТными ΠΏΡ€ΠΈ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ. БущСствуСт ΠΌΠ½ΠΎΠ³ΠΎ Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΈ курсов, посвящённых Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, Π½ΠΎ ΠΏΠΎ Π½ΠΈΠΌ слоТно ΡΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΈ Π²ΡΠ΅ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρƒ. Π‘Π»ΠΎΠΆΠ½ΠΎ, ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π² ΠΎΠ΄Π½Ρƒ-Π΄Π²Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΏΠΎ ассСмблСру ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ систСмам, хотя Π±Ρ‹ Π² ΠΎΠ±Ρ‰ΠΈΡ… Ρ‡Π΅Ρ€Ρ‚Π°Ρ… ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΆΠ΅ Π½Π° самом Π΄Π΅Π»Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ эта слоТная систСма ΠΈΠ· ΠΆΠ΅Π»Π΅Π·Π°, крСмния ΠΈ мноТСства ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ β€” ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€.
Π—Π΄Π΅ΡΡŒ ΠΈ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… рисунках U-Task ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Ρ‚Π΅Π»ΡŒΡΠΊΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ.

β–ΠœΡƒΠ»ΡŒΡ‚ΠΈ-ΠΊΠ°Π½Π°Π»Ρ‹

ΠœΡƒΠ»ΡŒΡ‚ΠΈ-ΠΊΠ°Π½Π°Π»Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для обСспСчСния Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ сСрвиса – Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, для раздСлСния ΠΊΠΎΠ΄Π° ΠΌΠ΅ΠΆΠ΄Ρƒ нСсколькими Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ (ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ динамичСским Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ… ОБ).
РаздСляСмый ΠΊΠΎΠ΄ ΠΏΡ€ΠΈ этом Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ своСй Π·Π°Π΄Π°Ρ‡Π΅ΠΉ-экспортСром.
Π—Π°Π΄Π°Ρ‡Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΡΠΊΡΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°Π½Π°Π» ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒΡΡ, Π° Π²Π½ΡƒΡ‚Ρ€ΠΈΠΊΠ°Π½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΏΡ€ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅ размСстит Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π² адрСсном пространствС ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ, Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ²Π»ΡΡ‚ΡŒΡΡ ΠΊΠ°ΠΊ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ с ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅Ρ€ΠΎΠΌ, Ρ‚Π°ΠΊ ΠΈ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅Ρ€ΠΎΠ² (для случаСв, ΠΊΠΎΠ³Π΄Π° конкрСтная рСализация ОБ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΈΠ·ΠΎΠ»ΡΡ†ΠΈΡŽ адрСсных пространств).
ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows. image loader. ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Π”Π°Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» статСй посвящён Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, устройству ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π½Π° языкС ассСмблСра ΠΈ смСТным областям. Пока Ρ‡Ρ‚ΠΎ написаниСм Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ Π΄Π²Π° Ρ…Π°Π±Ρ€Π°ΡŽΠ·Π΅Ρ€Π° β€” iley ΠΈ pehat. Для ΠΌΠ½ΠΎΠ³ΠΈΡ… ΡΡ‚Π°Ρ€ΡˆΠ΅ΠΊΠ»Π°ΡΡΠ½ΠΈΠΊΠΎΠ², студСнтов, Π΄Π° ΠΈ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… программистов эти Ρ‚Π΅ΠΌΡ‹ ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ вСсьма слоТными ΠΏΡ€ΠΈ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ. БущСствуСт ΠΌΠ½ΠΎΠ³ΠΎ Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΈ курсов, посвящённых Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, Π½ΠΎ ΠΏΠΎ Π½ΠΈΠΌ слоТно ΡΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΈ Π²ΡΠ΅ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρƒ. Π‘Π»ΠΎΠΆΠ½ΠΎ, ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π² ΠΎΠ΄Π½Ρƒ-Π΄Π²Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΏΠΎ ассСмблСру ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ систСмам, хотя Π±Ρ‹ Π² ΠΎΠ±Ρ‰ΠΈΡ… Ρ‡Π΅Ρ€Ρ‚Π°Ρ… ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΆΠ΅ Π½Π° самом Π΄Π΅Π»Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ эта слоТная систСма ΠΈΠ· ΠΆΠ΅Π»Π΅Π·Π°, крСмния ΠΈ мноТСства ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ β€” ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€.

НиТС ΠΎΠ±ΡΡƒΠΆΠ΄Π°ΡŽΡ‚ΡΡ Π±ΠΎΠ»Π΅Π΅ слоТныС случаи ΠΌΡƒΠ»ΡŒΡ‚ΠΈ-ΠΊΠ°Π½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ.

β–ΠŸΡƒΠ»Ρ‹ Π·Π°Π΄Π°Ρ‡

ΠŸΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΡƒΠ»ΠΎΠ² Π·Π°Π΄Π°Ρ‡ – ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° синхронизационных ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² симмСтричной многопроцСссорности (SMP). ΠšΠ°Π½Π°Π»Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ присоСдинСны нСсколько Π·Π°Π΄Π°Ρ‡, ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠΌ для раздСляСмых (ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ) Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊ ΠΈ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ срСдством синхронизации, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² сСбя счСтчик числа Π·Π°Π΄Π°Ρ‡-ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΊΠ°Π½Π°Π»Π° ΠΈ, ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ, ΠΈΡ… индСксов Π² ΠΊΠ°Π½Π°Π»Π΅.
ΠŸΡƒΠ»Ρ‹ Π·Π°Π΄Π°Ρ‡ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ возмоТности ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²ΠΊΠΈ Π·Π°Π΄Π°Ρ‡ ОБ ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ – Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΌ схСмам опроса ΠΊΠ°Π½Π°Π»ΠΎΠ² для синхронизации.

ЭкспортСр ΠΊΠ°Π½Π°Π»Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π·ΡΡ‚ΡŒ Π½Π° сСбя обязанности распрСдСлСния Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ количСство процСссоров ΠΈ распрСдСляСмых Π·Π°Π΄Π°Ρ‡ извСстно, экспортСр ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ Π·Π°Π΄Π°Ρ‡Π°ΠΌ Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ЦПУ. Когда Π·Π°Π΄Π°Ρ‡ΠΈ-исполнитСли Π·Π°Π²Π΅Ρ€ΡˆΠ°Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π·Π°Π΄Π°Ρ‡Π΅.
ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows. image loader. ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Π”Π°Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» статСй посвящён Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, устройству ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π½Π° языкС ассСмблСра ΠΈ смСТным областям. Пока Ρ‡Ρ‚ΠΎ написаниСм Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ Π΄Π²Π° Ρ…Π°Π±Ρ€Π°ΡŽΠ·Π΅Ρ€Π° β€” iley ΠΈ pehat. Для ΠΌΠ½ΠΎΠ³ΠΈΡ… ΡΡ‚Π°Ρ€ΡˆΠ΅ΠΊΠ»Π°ΡΡΠ½ΠΈΠΊΠΎΠ², студСнтов, Π΄Π° ΠΈ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… программистов эти Ρ‚Π΅ΠΌΡ‹ ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ вСсьма слоТными ΠΏΡ€ΠΈ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ. БущСствуСт ΠΌΠ½ΠΎΠ³ΠΎ Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΈ курсов, посвящённых Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, Π½ΠΎ ΠΏΠΎ Π½ΠΈΠΌ слоТно ΡΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΈ Π²ΡΠ΅ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρƒ. Π‘Π»ΠΎΠΆΠ½ΠΎ, ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π² ΠΎΠ΄Π½Ρƒ-Π΄Π²Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΏΠΎ ассСмблСру ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ систСмам, хотя Π±Ρ‹ Π² ΠΎΠ±Ρ‰ΠΈΡ… Ρ‡Π΅Ρ€Ρ‚Π°Ρ… ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΆΠ΅ Π½Π° самом Π΄Π΅Π»Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ эта слоТная систСма ΠΈΠ· ΠΆΠ΅Π»Π΅Π·Π°, крСмния ΠΈ мноТСства ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ β€” ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€.

β–ΠŸΡƒΠ»Ρ‹ запросов

ΠŸΡƒΠ»Ρ‹ запросов ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ эффСктивными Π² условиях, ΠΊΠΎΠ³Π΄Π° созданиС ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠ°Π½Π°Π»Π° для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎ Π±Ρ‹ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π·Π°Ρ‚Ρ€Π°Ρ‚ памяти – ΠΏΡ€ΠΈ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π±ΡƒΡ„Π΅Ρ€ΠΎΠ² памяти ΠΈ\ΠΈΠ»ΠΈ обслуТивании большого числа ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ².
Π­Ρ‚ΠΈ ΠΏΡƒΠ»Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ интСрфСйсы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π²Π°Ρ‚ΡŒ Π°Ρ€Π±ΠΈΡ‚Ρ€Π°ΠΆΠ½Ρ‹ΠΌΠΈ. ΠŸΠΎΠ±Π΅Π΄ΠΈΡ‚Π΅Π»ΡŒ Π°Ρ€Π±ΠΈΡ‚Ρ€Π°ΠΆΠ° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ запрос (ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅), Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ‚ΠΎΡ€Ρ‹ запросов ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π² Π½Π΅Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ состояниС (ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ – с использованиСм Π²Π½ΡƒΡ‚Ρ€ΠΈΠΊΠ°Π½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°). Когда обслуТиваниС побСдитСля Π°Ρ€Π±ΠΈΡ‚Ρ€Π°ΠΆΠ° Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ, ΠΏΠΎΠ±Π΅Π΄ΠΈΡ‚Π΅Π»ΡŒ извСщаСтся ΠΎΠ± этом, ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ свои Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, ΠΈ Π°Ρ€Π±ΠΈΡ‚Ρ€Π°ΠΆΠ½Ρ‹ΠΉ процСсс возобновляСтся – ΠΈΠ· ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… участников Π°Ρ€Π±ΠΈΡ‚Ρ€Π°ΠΆΠ° выбираСтся ΠΏΠΎΠ±Π΅Π΄ΠΈΡ‚Π΅Π»ΡŒ, пробуТдаСтся ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ yield, ΠΈ процСсс ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ повторяСтся.
ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows. image loader. ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Π”Π°Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» статСй посвящён Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, устройству ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π½Π° языкС ассСмблСра ΠΈ смСТным областям. Пока Ρ‡Ρ‚ΠΎ написаниСм Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ Π΄Π²Π° Ρ…Π°Π±Ρ€Π°ΡŽΠ·Π΅Ρ€Π° β€” iley ΠΈ pehat. Для ΠΌΠ½ΠΎΠ³ΠΈΡ… ΡΡ‚Π°Ρ€ΡˆΠ΅ΠΊΠ»Π°ΡΡΠ½ΠΈΠΊΠΎΠ², студСнтов, Π΄Π° ΠΈ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… программистов эти Ρ‚Π΅ΠΌΡ‹ ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ вСсьма слоТными ΠΏΡ€ΠΈ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ. БущСствуСт ΠΌΠ½ΠΎΠ³ΠΎ Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΈ курсов, посвящённых Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, Π½ΠΎ ΠΏΠΎ Π½ΠΈΠΌ слоТно ΡΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΈ Π²ΡΠ΅ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρƒ. Π‘Π»ΠΎΠΆΠ½ΠΎ, ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π² ΠΎΠ΄Π½Ρƒ-Π΄Π²Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΏΠΎ ассСмблСру ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ систСмам, хотя Π±Ρ‹ Π² ΠΎΠ±Ρ‰ΠΈΡ… Ρ‡Π΅Ρ€Ρ‚Π°Ρ… ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΆΠ΅ Π½Π° самом Π΄Π΅Π»Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ эта слоТная систСма ΠΈΠ· ΠΆΠ΅Π»Π΅Π·Π°, крСмния ΠΈ мноТСства ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ β€” ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€.

β–ΠœΠ°Ρ€ΠΊΠ΅Ρ€Ρ‹ доступа

ΠœΠ°Ρ€ΠΊΠ΅Ρ€Ρ‹ доступа (Access tokens) ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ модСль раздСлСния Π΄Π°Π½Π½Ρ‹Ρ… (ΠΈ\ΠΈΠ»ΠΈ получСния ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ³ΠΎ обслуТивания ) ΠΌΠ΅ΠΆΠ΄Ρƒ нСсколькими Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ Π±Π΅Π· установки ΠΊΠ°Π½Π°Π»ΠΎΠ² ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. ВмСсто этого, СдинствСнный ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ сСрвисов управляСт всСми рСсурсами ΠΈΠ»ΠΈ обСспСчиваСт сСрвисы всСм Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ Π°Π³Π΅Π½Ρ‚Π°ΠΌ Π² систСмС. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π°Π³Π΅Π½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ Ρƒ Π½Π΅Π³ΠΎ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ доступа, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ²Π»ΡΡ‚ΡŒΡΡ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ ΠΊ раздСляСмым Π΄Π°Π½Π½Ρ‹ΠΌ. Π—Π°Ρ‚Π΅ΠΌ Π°Π³Π΅Π½Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Β«ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡΒ» ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ΠΎΠΌ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Π΄ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΌΠΈ Π°Π³Π΅Π½Ρ‚Π°ΠΌΠΈ (посрСдством ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠ°Π½Π°Π»Π° ΠΎΠ±ΠΌΠ΅Π½Π°), Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ‡Π΅Π³ΠΎ Π΄ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹Π΅ Π°Π³Π΅Π½Ρ‚Ρ‹ смогут ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‚ ΠΆΠ΅ самый Ρ‚ΠΈΠΏ обслуТивания ΠΈΠ»ΠΈ доступа ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ.
ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows. image loader. ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Π”Π°Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» статСй посвящён Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, устройству ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π½Π° языкС ассСмблСра ΠΈ смСТным областям. Пока Ρ‡Ρ‚ΠΎ написаниСм Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ Π΄Π²Π° Ρ…Π°Π±Ρ€Π°ΡŽΠ·Π΅Ρ€Π° β€” iley ΠΈ pehat. Для ΠΌΠ½ΠΎΠ³ΠΈΡ… ΡΡ‚Π°Ρ€ΡˆΠ΅ΠΊΠ»Π°ΡΡΠ½ΠΈΠΊΠΎΠ², студСнтов, Π΄Π° ΠΈ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… программистов эти Ρ‚Π΅ΠΌΡ‹ ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ вСсьма слоТными ΠΏΡ€ΠΈ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ. БущСствуСт ΠΌΠ½ΠΎΠ³ΠΎ Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΈ курсов, посвящённых Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, Π½ΠΎ ΠΏΠΎ Π½ΠΈΠΌ слоТно ΡΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΈ Π²ΡΠ΅ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρƒ. Π‘Π»ΠΎΠΆΠ½ΠΎ, ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π² ΠΎΠ΄Π½Ρƒ-Π΄Π²Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΏΠΎ ассСмблСру ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ систСмам, хотя Π±Ρ‹ Π² ΠΎΠ±Ρ‰ΠΈΡ… Ρ‡Π΅Ρ€Ρ‚Π°Ρ… ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΆΠ΅ Π½Π° самом Π΄Π΅Π»Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ эта слоТная систСма ΠΈΠ· ΠΆΠ΅Π»Π΅Π·Π°, крСмния ΠΈ мноТСства ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ β€” ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€.

β–ΠŸΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹ΠΉ доступ ΠΊ устройствам

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ с физичСскими устройствами, Π·Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° Π² ROS OS – это Π½Π΅ особыС Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ сущности, Π° ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ свои сСрвисы посрСдством ΠΊΠ°Π½Π°Π»ΠΎΠ².
Π’ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… случаях Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ нСскольким Π·Π°Π΄Π°Ρ‡Π°ΠΌ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ доступ ΠΊ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΡ‹ΠΌ ΠΈΠ»ΠΈ потрСбляСмым физичСским устройством. На рисункС Π½ΠΈΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ 2 Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΈ с устройством.
ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows. image loader. ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Π”Π°Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» статСй посвящён Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, устройству ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π½Π° языкС ассСмблСра ΠΈ смСТным областям. Пока Ρ‡Ρ‚ΠΎ написаниСм Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ Π΄Π²Π° Ρ…Π°Π±Ρ€Π°ΡŽΠ·Π΅Ρ€Π° β€” iley ΠΈ pehat. Для ΠΌΠ½ΠΎΠ³ΠΈΡ… ΡΡ‚Π°Ρ€ΡˆΠ΅ΠΊΠ»Π°ΡΡΠ½ΠΈΠΊΠΎΠ², студСнтов, Π΄Π° ΠΈ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… программистов эти Ρ‚Π΅ΠΌΡ‹ ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ вСсьма слоТными ΠΏΡ€ΠΈ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ. БущСствуСт ΠΌΠ½ΠΎΠ³ΠΎ Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΈ курсов, посвящённых Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, Π½ΠΎ ΠΏΠΎ Π½ΠΈΠΌ слоТно ΡΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΈ Π²ΡΠ΅ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρƒ. Π‘Π»ΠΎΠΆΠ½ΠΎ, ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π² ΠΎΠ΄Π½Ρƒ-Π΄Π²Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΏΠΎ ассСмблСру ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ систСмам, хотя Π±Ρ‹ Π² ΠΎΠ±Ρ‰ΠΈΡ… Ρ‡Π΅Ρ€Ρ‚Π°Ρ… ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΆΠ΅ Π½Π° самом Π΄Π΅Π»Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ эта слоТная систСма ΠΈΠ· ΠΆΠ΅Π»Π΅Π·Π°, крСмния ΠΈ мноТСства ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ β€” ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ эффСктивным, Ссли ядро ОБ Ρ€Π°Π·Π»ΠΈΡ‡Π°Π΅Ρ‚ процСссы ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΈ. Π’ этом случаС ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ Π·Π°Π΄Π°Ρ‡Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ всС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с устройством ΠΈ Π±ΡƒΡ„Π΅Ρ€ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ входящиС\исходящиС ΠΏΠΎΡ‚ΠΎΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ фактичСскоС обслуТиваниС Π·Π°Π΄Π°Ρ‡-ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»Π΅ΠΉ Π΄Π°Π½Π½Ρ‹Ρ… Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΌΠΈ ΠΏΠΎΠ»Π½Ρ‹ΠΉ доступ ΠΊΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌ Π±ΡƒΡ„Π΅Ρ€Π°ΠΌ ΠΈ, соотвСтствСнно, возмоТности ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Ρ… Π·Π°Π΄Π΅Ρ€ΠΆΠ΅ΠΊ. На рисункС данная схСма ΠΏΠΎΠΊΠ°Π·Π°Π½Π° слСва.

Π’Ρ‚ΠΎΡ€ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использован Π² случаС ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. Π’ этом случаС ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‰Π°Ρ Π·Π°Π΄Π°Ρ‡Π°, нСпосрСдствСнно Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ с устройством, ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π±ΡƒΡ„Π΅Ρ€Π° Π² экспортируСмых Π΅ΠΉ ΠΊΠ°Π½Π°Π»Π°Ρ… (Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΏΠ°ΠΊΠ΅Ρ‚Π° извСстСн ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ – Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π±ΡƒΡ„Π΅Ρ€ΠΎΠ²). ОбС стороны, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΊ ΠΊΠ°Π½Π°Π»Π°ΠΌ, Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΎΠΎΠ±Ρ‰Π°Ρ‚ΡŒ ΠΎ готовности Π΄Π°Π½Π½Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ для Π΄Ρ€ΡƒΠ³Π° – Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‰Π°Ρ Π·Π°Π΄Π°Ρ‡Π° смоТСт ΠΏΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ запроса Π±Π΅Π·ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΎΡ‚ΠΊΡƒΠ΄Π° ΠΎΠ½ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½, ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ всС ΠΊΠ°Π½Π°Π»Ρ‹, Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ облСгчая Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ° Π² систСмС. Π­Ρ‚Ρƒ схСму ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ правая сторона рисунка.

▍УдалСнноС использованиС ΠΊΠ°Π½Π°Π»ΠΎΠ²

Π’ соотвСтствии с Π΄ΠΈΠ·Π°ΠΉΠ½ΠΎΠΌ ОC – Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ ΠΎΡ‚ ΠΈΡ… располоТСния, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π°Π³Π΅Π½Ρ‚ Π² локальной систСмС ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒΡΡ с ΠΊΠ°Π½Π°Π»ΠΎΠΌ, экспортируСмым ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎ. Для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ этого ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Π² систСму вводятся Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ ΠΊΠ°Π½Π°Π»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΈΠΌΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ экспорта\ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° ΠΊΠ°Π½Π°Π»ΠΎΠ² ΠΎΠΏΡ€Π°ΡˆΠΈΠ²Π°ΡŽΡ‚ свои Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ систСмы Π½Π° ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ…ΡΡ ΠΊΠ°Π½Π°Π»ΠΎΠ², ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ сСтСвых запросов Π½Π° эти ΠΊΠ°Π½Π°Π»Ρ‹, ΠΈ, ΠΏΡ€ΠΈ ΠΈΡ… Π½Π°Π»ΠΈΡ‡ΠΈΠΈ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ ΠΏΠ°Ρ€Ρ‹ (Π½Π°Π±ΠΎΡ€Ρ‹) ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎ синхронизированных ΠΊΠ°Π½Π°Π»ΠΎΠ² максимально ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ для ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² этих ΠΊΠ°Π½Π°Π»ΠΎΠ². Π˜Π»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΡ описанному ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡƒ – Π½ΠΈΠΆΠ΅.
ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows. image loader. ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму самому Π½Π° ядрС windows. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Π”Π°Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» статСй посвящён Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, устройству ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π½Π° языкС ассСмблСра ΠΈ смСТным областям. Пока Ρ‡Ρ‚ΠΎ написаниСм Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ Π΄Π²Π° Ρ…Π°Π±Ρ€Π°ΡŽΠ·Π΅Ρ€Π° β€” iley ΠΈ pehat. Для ΠΌΠ½ΠΎΠ³ΠΈΡ… ΡΡ‚Π°Ρ€ΡˆΠ΅ΠΊΠ»Π°ΡΡΠ½ΠΈΠΊΠΎΠ², студСнтов, Π΄Π° ΠΈ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… программистов эти Ρ‚Π΅ΠΌΡ‹ ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ вСсьма слоТными ΠΏΡ€ΠΈ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ. БущСствуСт ΠΌΠ½ΠΎΠ³ΠΎ Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΈ курсов, посвящённых Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, Π½ΠΎ ΠΏΠΎ Π½ΠΈΠΌ слоТно ΡΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΈ Π²ΡΠ΅ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρƒ. Π‘Π»ΠΎΠΆΠ½ΠΎ, ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π² ΠΎΠ΄Π½Ρƒ-Π΄Π²Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΏΠΎ ассСмблСру ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ систСмам, хотя Π±Ρ‹ Π² ΠΎΠ±Ρ‰ΠΈΡ… Ρ‡Π΅Ρ€Ρ‚Π°Ρ… ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΆΠ΅ Π½Π° самом Π΄Π΅Π»Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ эта слоТная систСма ΠΈΠ· ΠΆΠ΅Π»Π΅Π·Π°, крСмния ΠΈ мноТСства ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ β€” ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€.
Π—Π΄Π΅ΡΡŒ ΠΈ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… рисунках P-Task ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Ρ‚Π΅Π»ΡŒΡΠΊΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ.

ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ для эффСктивной ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² ΠΊΠ°Π½Π°Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ систСмный Π²Ρ‹Π·ΠΎΠ²

Π—Π΄Π΅ΡΡŒ guid[] – массив индСксов ΠΊΠ°Π½Π°Π»ΠΎΠ², size[]прСдоставляСт Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΊΠ°Π½Π°Π»ΠΎΠ², Π° type[] содСрТит Ρ‚ΠΈΠΏΡ‹\Ρ‚ΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΡŽ запроса ΠΊΠ°Π½Π°Π»Π° (ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ, экспортированный ΠΈΠ»ΠΈ ΠΌΡƒΠ»ΡŒΡ‚ΠΈ).

β–ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° со стороны языков программирования

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ языки программирования ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ нСбольшого Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ROS ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈ облСгчСния Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ для ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΠΎΠΉ ОБ. Π’ случаС C++, Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅, Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°ΡŽΡ‰Π΅Π΅ сСмантику языка, это ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Ρ‚ΠΈΠΏΠ° – β€œchannel”, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Ρ‚ΠΈΠΏ содСрТимого, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ объСдинСно Π² Ρ„ΠΎΡ€ΠΌΡƒ, ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½ΡƒΡŽ для мСТпроцСссной ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΈ. ΠžΡΡ‚Π°Π²ΡˆΠΈΠ΅ΡΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, связанныС с канальной ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠ΅ΠΉ, Ρ€Π΅ΡˆΠ°ΡŽΡ‚ΡΡ с использованиСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ROS OS API, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.

Π’ΠΎ Π΅ΡΡ‚ΡŒ, сначала трСбуСтся ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ вашСго ΠΊΠ°Π½Π°Π»Π° (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Ρ‚ΠΈΠΏΠ° channel), Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ стандартным способом области памяти для экспортСра ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅Ρ€Π° ΠΊΠ°Π½Π°Π»Π°. ПослС Ρ‡Π΅Π³ΠΎ ΠΊΠ°Π½Π°Π», ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ присоСдинСн посрСдством экспорта с ΠΎΠ΄Π½ΠΎΠΉ стороны ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° с Π΄Ρ€ΡƒΠ³ΠΎΠΉ. Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ export() ΠΈ import(), Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Π½Π° ваш ΠΊΠ°Π½Π°Π», систСмный ΠΊΠ°Π½Π°Π» ΠΈ указываСтся Π²ΠΈΠ΄ ΠΊΠ°Π½Π°Π»Π° (ΠΌΡƒΠ»ΡŒΡ‚ΠΈ ΠΈΠ»ΠΈ Π΄ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ).
ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ послС Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² этих Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ здСсь для срСд с раздСляСмым адрСсным пространством, Π³Π΄Π΅ сущСствуСт Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ядро ОБ ΠΏΠ΅Ρ€Π΅Π΄Π²ΠΈΠ½Π΅Ρ‚ Ρ‚Π΅Π»ΠΎ ΠΊΠ°Π½Π°Π»Π° Π² памяти с Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ€Π°Π½Π΅Π΅ мСста.
ΠšΠ°ΠΆΠ΄Ρ‹Π΅ Π°Π³Π΅Π½Ρ‚, подсоСдинСнный ΠΊ ΠΊΠ°Π½Π°Π»Ρƒ, ΠΈΠΌΠ΅Π΅Ρ‚ свой Π²Π½ΡƒΡ‚Ρ€ΠΈΠΊΠ°Π½Π°Π»ΡŒΠ½Ρ‹ΠΉ индСкс, ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌΡ‹ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ self(), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ остаСтся Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½Ρ‹ΠΌ Π΄Π΅ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π°Π³Π΅Π½Ρ‚ Π½Π΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡΡ ΠΎΡ‚ ΠΊΠ°Π½Π°Π»Π° (Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ disconnect()) ΠΈ Π½Π΅ присоСдинится ΠΊ Π½Π΅ΠΌΡƒ снова (посрСдством import() ΠΈ export()). ΠžΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ связанныС с ΠΊΠ°Π½Π°Π»Π°ΠΌΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² соотвСтствии с Π΄ΠΈΠ·Π°ΠΉΠ½ΠΎΠΌ ОБ рСкомСндуСтся ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π»ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ваш ΠΊΠ°Π½Π°Π», Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ систСмный ΠΊΠ°Π½Π°Π», Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° локальноС Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€.
НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ chanfunc, которая ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ²Π»ΡΡ‚ΡŒΡΡ ΠΊΠ°ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ запуска Π·Π°Π΄Π°Ρ‡ΠΈ с сСмантикой (arg0, sys, arg1), Ρ‚Π°ΠΊ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠ°Π½Π°Π»Π° (которая Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ локальноС Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π²Π΅Ρ€Π½Π΅Ρ‚ Π΅Π³ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ loc), Π»ΠΈΠ±ΠΎ Π²ΠΎΠΎΠ±Ρ‰Π΅ любой слуТСбной Π²Π½ΡƒΡ‚Ρ€ΠΈΠΊΠ°Π½Π°Π»ΡŒΠ½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ

▍ГСнСрация ΠΊΠΎΠ΄Π°

ΠŸΡ€ΠΈ написании ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ для ROS ОБ с использованиСм ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… компиляторов, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Ρ… для Π΄Ρ€ΡƒΠ³ΠΈΡ… ОБ, Π½Π°Π΄ΠΎ ΡΠΎΠ±Π»ΡŽΠ΄Π°Ρ‚ΡŒ ΠΎΡΡ‚ΠΎΡ€ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ. Π’Π°ΠΊ, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ·Π°Π±ΠΎΡ‚ΠΈΡ‚ΡŒΡΡ ΠΎ нСиспользовании статичСских ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с автоматичСски (стСк) ΠΈ динамичСски выдСляСмыми Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈ/ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ возмоТностями Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… компиляторов ΠΏΠΎ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π°, Π½Π΅ зависящСго ΠΎΡ‚ адрСса Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ. Π’ ΠΈΠ΄Π΅Π°Π»Π΅ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ компилятор для Π΄Π°Π½Π½ΠΎΠΉ ОБ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ способСн ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ ссылки Π½Π° статичСскиС Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ вычислСниС ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ адрСса Π² памяти ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊ адрСсу ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π΅ΠΉ эти Π΄Π°Π½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.
Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, которая Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½Π° Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΌΠΈ компиляторами (ΠΊΡ€ΠΎΠΌΠ΅ ассСмблСра) – это ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΊΠ°Π½Π°Π»ΠΎΠ² ΠΊΠΎΠ΄Π° ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ компилятор Π΄Π°Π½Π½ΠΎΠΉ ОБ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ Ρ‚Π΅Π»Π° ΠΊΠ°Π½Π°Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ Π² Π΅Π΄ΠΈΠ½Ρ‹ΠΉ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½, ΠΏΠ΅Ρ€Π΅Π΄Π²ΠΈΠ½ΡƒΡ‚ ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½ ОБ.
Для процСссорных Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… Π·Π°Ρ‰ΠΈΡ‚Ρƒ исполнСния Π΄Π°Π½Π½Ρ‹Ρ…, агрСгация ΠΊΠΎΠ΄Π° ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π° базисС Ρ€Π°Π·Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… страниц, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΊΠΎΠΌΠΏΡ€ΠΎΠΌΠ΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ систСмы.

Π’Ρ‹Π²ΠΎΠ΄Ρ‹

Основа ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ОБ – сСрвисно-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠΌΡƒ исполнСнию ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ Π½ΠΎΠ²Ρ‹Π΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ управлСния, ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²ΠΊΠΈ Π·Π°Π΄Π°Ρ‡ ΠΈ управлСния рСсурсами, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½ΠΎΠ²Ρ‹Π΅ логичСскиС Ρ‚ΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈ синхронизации, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‚ потрСбности соврСмСнных ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΈ распрСдСлСнных ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Ρ… систСм, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΊΠ°ΠΊ ΠΌΠΎΡ‰Π½Ρ‹Π΅ сСрвСра, Ρ‚Π°ΠΊ ΠΈ сСти бСспроводных сСнсоров.
ΠŸΡ€ΠΈ этом, систСма ΠΏΡ€ΠΎΠ΄ΡƒΠΌΠ°Π½Π° с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния связывания вмСстС ΠΆΠ΅Π»Π΅Π·Π½Ρ‹Ρ… ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠΉ систСмы, ΠΈ максимально проста Π² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

МногиС ΠΈΠ· описанных ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² Π΄ΠΈΠ·Π°ΠΉΠ½Π° ОБ Π±Ρ‹Π»ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π²ΠΎΠΏΠ»ΠΎΡ‰Π΅Π½Ρ‹ Π΅Π΅ Π°Π²Ρ‚ΠΎΡ€ΠΎΠΌ Π΅Ρ‰Π΅ Π² ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΌ Π²Π΅ΠΊΠ΅ (1999 Π³ΠΎΠ΄Ρƒ) ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ лСгковСсной ОБ, ΡΠ»ΡƒΠΆΠΈΠ²ΡˆΠ΅ΠΉ прСдсказуСмой ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ срСдой тСстирования для исполняСмых Ρ„Π°ΠΉΠ»ΠΎΠ² Windows NT. И, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅, с Ρ‚Π΅Ρ… ΠΏΠΎΡ€ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π±Ρ‹Π»ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΎ.
Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ свою ОБ Π½Π° Π±Π°Π·Π΅ описанных ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. Π‘Ρ‹Π»ΠΎ Π±Ρ‹ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅. Если ΠΎΠ½ΠΎ Ρƒ вас Π΅ΡΡ‚ΡŒ, Ρ‚ΠΎ Π°Π²Ρ‚ΠΎΡ€ ΠΈΠ΄Π΅ΠΈ, нСсомнСнно заинтСрСсованный Π² Π΅Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, с ΡƒΠ΄ΠΎΠ²ΠΎΠ»ΡŒΡΡ‚Π²ΠΈΠ΅ΠΌ Π²Π°ΠΌ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ – ΠΏΡ€ΠΎΠΊΠΎΠ½ΡΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΡ‚.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *