Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² QNX/Neutrino 2. Руководство ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π² QNX Realtime PlatformΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 5

Автор Π ΠΎΠ± ΠšΡ‘Ρ€Ρ‚Π΅Π½

Π‘ΠΊΠ°ΠΆΠ΅ΠΌ, Π²Ρ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π° ΠΊΡƒΡ…Π½Π΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π±ΠΎΠ»Π΅Π΅ Π΄Π²ΡƒΡ… Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ. Π‘ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ Π²Ρ‹ это Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ мутСкса? Π’ ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… принятого опрСдСлСния β€” Π½Π΅Ρ‚. ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π½Π΅Ρ‚? Π­Ρ‚ΠΎ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‡Π΅Π½ΡŒ интСрСсная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² нашСй Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ с Π΄ΠΎΠΌΠΎΠΌ. Π”Π°Π²Π°ΠΉΡ‚Π΅ Ρ€Π°Π·ΠΎΠ±ΡŒΠ΅ΠΌ Π²ΠΎΠ·Π½ΠΈΠΊΡˆΡƒΡŽ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ Π½Π° части ΠΈ ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ поэтапно.

Π‘Π΅ΠΌΠ°Ρ„ΠΎΡ€ с Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½Ρ‹ΠΌ счСтчиком

Π’ Π²Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ½Π°Ρ‚Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° ΠΎΠ΄Π½Π° ΠΈΠ· Π΄Π²ΡƒΡ… ситуаций, каТдая ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… характСризуСтся двумя ТСстко взаимосвязанными состояниями:

β€’ Π΄Π²Π΅Ρ€ΡŒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Π°, ΠΈ Π² Π²Π°Π½Π½ΠΎΠΉ Π½ΠΈΠΊΠΎΠ³ΠΎ Π½Π΅Ρ‚;

β€’ Π΄Π²Π΅Ρ€ΡŒ Π·Π°ΠΊΡ€Ρ‹Ρ‚Π°, ΠΈ Π² ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ находится ΠΎΠ΄ΠΈΠ½ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ.

Π—Π΄Π΅ΡΡŒ никакая другая комбинация состояний Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° β€” Π² пустом ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ Π΄Π²Π΅Ρ€ΡŒ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½ΠΈΠΊΠ΅ΠΌ Π·Π°ΠΏΠ΅Ρ€Ρ‚Π° ΠΈΠ·Π½ΡƒΡ‚Ρ€ΠΈ (ΠΈΠ½Π°Ρ‡Π΅ ΠΊΠ°ΠΊ ΠΌΡ‹ Π±Ρ‹ Π΅Π΅ Ρ‚ΠΎΠ³Π΄Π° ΠΎΡ‚ΠΊΡ€Ρ‹Π»ΠΈ?), ΠΈ Π΄Π²Π΅Ρ€ΡŒ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Π° ΠΊΠ΅ΠΌ-Π»ΠΈΠ±ΠΎ Π²Π½Π΅ Π²Π°Π½Π½ΠΎΠΉ (ΠΈΠ½Π°Ρ‡Π΅ ΠΊΠ°ΠΊ Π±Ρ‹ ΠΌΡ‹ Ρ‚ΠΎΠ³Π΄Π° обСспСчили ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½ΠΎΡΡ‚ΡŒ использования?). Π­Ρ‚ΠΎ ΠΈ Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ сСмафора с Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ счСтчика β€” Π² ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°, ΠΈΠ»ΠΈ, ΠΈΠ½Ρ‹ΠΌΠΈ словами, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡ‚ΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ сСмафор.

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

Π§Ρ‚ΠΎ Π½Π°ΠΌ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ потрСбуСтся Π½Π° ΠΊΡƒΡ…Π½Π΅, Ρ‚Π°ΠΊ это Π·Π°ΠΌΠΎΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°.

Π‘Π΅ΠΌΠ°Ρ„ΠΎΡ€ с Π½Π΅-Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½Ρ‹ΠΌ счСтчиком

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ установили Π² Π΄Π²Π΅Ρ€ΠΈ Π½Π° ΠΊΡƒΡ…Π½Π΅ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ, ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ Π·Π°ΠΌΠΎΠΊ. ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π°Π±ΠΎΡ‚Ρ‹ этого Π·Π°ΠΌΠΊΠ° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ссли Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΊΠ»ΡŽΡ‡, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΏΠ΅Ρ€Π΅Ρ‚ΡŒ Π΄Π²Π΅Ρ€ΡŒ ΠΈ Π²ΠΎΠΉΡ‚ΠΈ. Π›ΡŽΠ±ΠΎΠΉ, ΠΊΡ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ этот Π·Π°ΠΌΠΎΠΊ, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ согласСн с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ, войдя, ΠΎΠ½ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Π·Π°ΠΏΡ€Π΅Ρ‚ Π΄Π²Π΅Ρ€ΡŒ ΠΈΠ·Π½ΡƒΡ‚Ρ€ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π»ΡŽΠ±ΠΎΠΌΡƒ, ΠΊΡ‚ΠΎ находится Π²Π½Π΅ ΠΊΡƒΡ…Π½ΠΈ, для Π²Ρ…ΠΎΠ΄Π° всСгда трСбовался Π±Ρ‹ ΠΊΠ»ΡŽΡ‡.

Ну Π²ΠΎΡ‚, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ количСством людСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΡ‹ ΠΏΠΎΠΆΠ΅Π»Π°Π»ΠΈ Π±Ρ‹ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Π½Π° ΠΊΡƒΡ…Π½Π΅, становится вСсьма Π»Π΅Π³ΠΊΠΈΠΌ Π΄Π΅Π»ΠΎΠΌ β€” достаточно просто ΠΏΠΎΠ²Π΅ΡΠΈΡ‚ΡŒ Π½Π° Π΄Π²Π΅Ρ€ΡŒ снаруТи нСсколько ΠΊΠ»ΡŽΡ‡Π΅ΠΉ. НапоминаСм, Ρ‡Ρ‚ΠΎ кухня Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ всСгда Π·Π°ΠΊΡ€Ρ‹Ρ‚Π°! Когда ΠΊΡ‚ΠΎ-Π»ΠΈΠ±ΠΎ ΠΏΠΎΠΆΠ΅Π»Π°Π΅Ρ‚ ΠΏΠΎΠΏΠ°ΡΡ‚ΡŒ Π½Π° ΠΊΡƒΡ…Π½ΡŽ, ΠΎΠ½ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Π½Π° Π΄Π²Π΅Ρ€ΠΈ ΠΊΡƒΡ…Π½ΠΈ висит ΠΊΠ»ΡŽΡ‡. Если это Ρ‚Π°ΠΊ, ΠΎΠ½ Π²ΠΎΠ·ΡŒΠΌΠ΅Ρ‚ этот ΠΊΠ»ΡŽΡ‡, ΠΎΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚ ΠΈΠΌ Π΄Π²Π΅Ρ€ΡŒ, Π²ΠΎΠΉΠ΄Π΅Ρ‚ Π²Π½ΡƒΡ‚Ρ€ΡŒ ΠΈ этим ΠΆΠ΅ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ Π·Π°ΠΊΡ€ΠΎΠ΅Ρ‚ Π΄Π²Π΅Ρ€ΡŒ ΠΈΠ·Π½ΡƒΡ‚Ρ€ΠΈ.

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

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

Π‘Π΅ΠΌΠ°Ρ„ΠΎΡ€ Π² Ρ€ΠΎΠ»ΠΈ мутСкса

ΠœΡ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ Π·Π°Π΄Π°Π»ΠΈ сСбС вопрос: Β«Π‘ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΠΌΡ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ со счСтом с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ мутСкса?Β» ΠžΡ‚Π²Π΅Ρ‚ Π±Ρ‹Π» ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ. А Ссли Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚? Π‘ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ сСмафор Π² качСствС мутСкса?

Π”Π°, смогли Π±Ρ‹. Π’ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСмах Ρ‚Π°ΠΊ всС ΠΈ дСлаСтся β€” Π½ΠΈΠΊΠ°ΠΊΠΈΡ… мутСксов, ΠΎΠ΄Π½ΠΈ сСмафоры! Π—Π°Ρ‡Π΅ΠΌ Ρ‚ΠΎΠ³Π΄Π° Π²ΠΎΠΎΠ±Ρ‰Π΅ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡ‚ΡŒΡΡ ΠΎ мутСксах?

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ Π½Π° этот вопрос, рассмотрим ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ Π² нашСй Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ с Π²Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ½Π°Ρ‚ΠΎΠΉ. Как ΡΡ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒ вашСго Π΄ΠΎΠΌΠ° Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π» мутСкс? Π― ΠΏΠΎΠ΄ΠΎΠ·Ρ€Π΅Π²Π°ΡŽ, Ρ‡Ρ‚ΠΎ Π² вашСм Π΄ΠΎΠΌΠ΅ Π½Π΅Ρ‚ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ вСшались Π±Ρ‹ Π½Π° Π΄Π²Π΅Ρ€ΠΈ снаруТи.

ΠœΡƒΡ‚Π΅ΠΊΡΡ‹ β€” это сСмафоры Β«ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ назначСния». Если Π²Ρ‹ ΠΏΠΎΠΆΠ΅Π»Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ мСстС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ выполнялся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡ‚ΠΎΠΊ, эффСктивнСС всСго Π±Ρ‹Π»ΠΎ Π±Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ это ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ мутСкса.

ПозТС ΠΌΡ‹ рассмотрим ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ способы синхронизации ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² β€” ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ условными ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ (condvar), Π±Π°Ρ€ΡŒΠ΅Ρ€Π°ΠΌΠΈ (barrier) ΠΈ ΠΆΠ΄ΡƒΡ‰ΠΈΠΌΠΈ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°ΠΌΠΈ (sleepon).

Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΎ ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Ρ‹, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Ρ‚ΡŒ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ мутСкс ΠΈΠΌΠ΅Π΅Ρ‚ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ свойства (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ наслСдованиС ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠ²), ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‰ΠΈΠ΅ Π΅Π³ΠΎ ΠΎΡ‚ сСмафора.

Роль ядра

Наша аналогия с процСссами Π² ΠΆΠΈΠ»ΠΎΠΌ Π΄ΠΎΠΌΠ΅ прСкрасна для объяснСния ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΉ синхронизации, Π½ΠΎ бСсполСзна ΠΏΡ€ΠΈ Π°Π½Π°Π»ΠΈΠ·Π΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. Π’ Π΄ΠΎΠΌΠ΅ Ρƒ нас Π±Ρ‹Π»ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. Однако Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠΉ ситуации ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ имССтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ процСссор, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅ врСмя.

ΠžΠ΄ΠΈΠ½ΠΎΡ‡Π½Ρ‹ΠΉ процСссор

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

НСсколько процСссоров β€” симмСтричная ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Π½Π°Ρ систСма (SMP)

Если Π²Ρ‹ ΠΏΠΎΠΊΡƒΠΏΠ°Π΅Ρ‚Π΅ систСму, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ имССтся мноТСство ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹Ρ… процСссоров, совмСстно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚Ρƒ ΠΆΠ΅ ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΈ устройства, это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρƒ вас Π΅ΡΡ‚ΡŒ Π±Π»ΠΎΠΊ SMP. (SMP Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚ΡΡ ΠΊΠ°ΠΊ Β«Symmetrical Multi-ProcessorΒ» β€” «симмСтричный ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Β»; с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ слова «симмСтричный» подчСркиваСтся, Ρ‡Ρ‚ΠΎ всС Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹Π΅ процСссоры, примСняСмыС Π² систСмС, ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΌΠΈ.) Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС число ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΎ количСством процСссоров. (ΠšΡΡ‚Π°Ρ‚ΠΈ, Π² случаС с ΠΎΠ΄Π½ΠΈΠΌ процСссором Π±Ρ‹Π»Π° Ρ‚Π° ΠΆΠ΅ самая ситуация!) ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ процСссор ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡ‚ΠΎΠΊ, Π² ситуации с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ мноТСства процСссоров нСсколько ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠΊΠ° абстрагируСмся ΠΎΡ‚ числа процСссоров Π² систСмС β€” ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ систСмы Π±Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ нСсколько ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ, Π΄Π°ΠΆΠ΅ Ссли это ΠΈ Π½Π΅ происходит Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ ситуации. НСсколько ΠΏΠΎΠ·ΠΆΠ΅ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ «На Ρ‡Ρ‚ΠΎ слСдуСт ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΡ€ΠΈ использовании SMPΒ» ΠΌΡ‹ рассмотрим ΠΊΠΎΠ΅-ΠΊΠ°ΠΊΠΈΠ΅ Π½Π΅ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹Π΅ особСнности симмСтричного ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΡ€ΠΎΡ†Π΅ΡΡΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ.

Π―Π΄Ρ€ΠΎ Π² Ρ€ΠΎΠ»ΠΈ Π°Ρ€Π±ΠΈΡ‚Ρ€Π°

Π’Π°ΠΊ ΠΊΡ‚ΠΎ ΠΆΠ΅ опрСдСляСт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠ· ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ? Π­Ρ‚ΠΈΠΌ занимаСтся ядро.

Π―Π΄Ρ€ΠΎ опрСдСляСт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠ· ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ процСссор Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ контСкст Π½Π° этот ΠΏΠΎΡ‚ΠΎΠΊ. Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, Ρ‡Ρ‚ΠΎ ядро ΠΏΡ€ΠΈ этом Π΄Π΅Π»Π°Π΅Ρ‚ с процСссором.

ΠŸΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€ ΠΈΠΌΠ΅Π΅Ρ‚ нСсколько рСгистров (Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ ΠΈΡ… число зависит ΠΎΡ‚ принадлСТности процСссора ΠΊ сСрии, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, сравнитС процСссор x86 с процСссором MIPS, Π° Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Ρ‹ΠΉ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚Π΅Π»ΡŒ сСрии, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, процСссор 80486 β€” с процСссором Pentium). Π’ Ρ‚ΠΎΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΡ‚ΠΎΠΊ выполняСтся, информация ΠΎ Π½Π΅ΠΌ хранится Π² ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… рСгистрах (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² памяти).

Когда ΠΆΠ΅ ядро ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠΎΡ‚ΠΎΠΊ, ΠΎΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

1. Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ состояниС рСгистров Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ° ΠΈ Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΊΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ.

2. Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² рСгистры ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ для Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ°, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ контСкст.

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

ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, это Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ-Ρ‚ΠΎ интСрСсная ситуация. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ сразу нСсколько ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ². Вспомним, Π½Π΅ ΠΌΡ‹ Π»ΠΈ Π΄Π΅Π»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ доступ ΠΊ мутСксу Π½Π° основС ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π° ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ оТидания? Π―Π΄Ρ€ΠΎ Ρ‚ΠΎΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡƒΡŽ схСму для опрСдСлСния Ρ‚ΠΎΠ³ΠΎ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠ· ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ. ΠŸΡ€ΠΈ этом ΠΈΠ³Ρ€Π°ΡŽΡ‚ Ρ€ΠΎΠ»ΡŒ Π΄Π²Π° Ρ„Π°ΠΊΡ‚ΠΎΡ€Π°: ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ ΠΈ дисциплина диспСтчСризации. Рассмотрим ΠΈΡ… ΠΏΠΎ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ.