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

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

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

Π§Ρ‚ΠΎ называСтся Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ состояниСм? ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° здСсь состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… состояний сущСствуСт нСсколько. РСально Π² QNX/Neutrino имССтся Π±ΠΎΠ»Π΅Π΅ Π΄ΡŽΠΆΠΈΠ½Ρ‹ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… состояний.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Ρ‚Π°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ? ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ядро отслСТиваСт ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρƒ, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΡ‚ΠΎΠΊ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½.

ΠœΡ‹ ΡƒΠΆΠ΅ ознакомились с двумя Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… состояний: ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΡ‚ΠΎΠΊ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½ Π² ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠΈ мутСкса, этот ΠΏΠΎΡ‚ΠΎΠΊ находится Π² состоянии Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΏΠΎ мутСксу (MUTEX). Когда ΠΏΠΎΡ‚ΠΎΠΊ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½, оТидая сСмафор, ΠΎΠ½ находится Π² состоянии Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΏΠΎ сСмафору (SEM). Π­Ρ‚ΠΈ состояния просто ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚, Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ Π½Π° ΠΊΠ°ΠΊΠΎΠΉ рСсурс ΠΏΠΎΡ‚ΠΎΠΊ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½.

Если ΠΏΠΎ мутСксу Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½ΠΎ нСсколько ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², ядро Π½Π΅ ΡƒΠ΄Π΅Π»ΠΈΡ‚ ΠΈΠΌ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ внимания Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ΠΏΠΎΡ‚ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Π»Π°Π΄Π΅Π΅Ρ‚ мутСксом, Π½Π΅ освободит Π΅Π³ΠΎ. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ это ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Π΅Π½ Π² состояниС готовности (READY), ΠΈ ядро ΠΏΡ€ΠΈ нСобходимости ΠΏΡ€ΠΈΠΌΠ΅Ρ‚ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΎ ΠΏΠ΅Ρ€Π΅ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ.

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

ΠŸΠΎΠ»Π½Ρ‹ΠΉ список состояний ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²

НиТС прСдставлСн ΠΏΠΎΠ»Π½Ρ‹ΠΉ список Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… состояний с ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΌΠΈ пояснСниями. Π­Ρ‚ΠΎΡ‚ список, кстати, Π΅ΡΡ‚ΡŒ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ <sys/QNX/Neutrino.h>, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π°ΠΌ эти состояния снабТСны прСфиксом Β«STATE_Β» (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, состояниС READY Π΄Π°Π½Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Ρ‚Π°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π²ΡƒΡ‡Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ STATE_READY).

Если состояниС ΠΏΠΎΡ‚ΠΎΠΊΠ°: To это Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ: DEAD ΠŸΠΎΡ‚ΠΎΠΊ Β«ΠΌΠ΅Ρ€Ρ‚Π²Β», ядро ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ освобоТдСния занятых ΠΈΠΌ рСсурсов. (Π’ классичСских UNIX систСмах это состояниС Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Β«zombieΒ» β€” Β«Π·ΠΎΠΌΠ±ΠΈΒ» β€” ΠΏΡ€ΠΈΠΌ. Ρ€Π΅Π΄.) RUNNING ΠŸΠΎΡ‚ΠΎΠΊ выполняСтся. READY ΠŸΠΎΡ‚ΠΎΠΊ Π½Π΅ выполняСтся, Π½ΠΎ Π³ΠΎΡ‚ΠΎΠ² ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅ (Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² с Π±ΠΎΠ»Π΅Π΅ высокими ΠΈΠ»ΠΈ Ρ€Π°Π²Π½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π°ΠΌΠΈ). STOPPED ΠŸΠΎΡ‚ΠΎΠΊ приостановлСн (ΠΏΠΎ сигналу SIGSTOP SEND ΠŸΠΎΡ‚ΠΎΠΊ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ ΠΏΡ€ΠΈΠ΅ΠΌΠ° своСго сообщСния сСрвСром. RECEIVE ΠŸΠΎΡ‚ΠΎΠΊ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ сообщСниС ΠΎΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°. REPLY ΠŸΠΎΡ‚ΠΎΠΊ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ ΠΎΡ‚ сСрвСра ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° своС сообщСниС. STACK ΠŸΠΎΡ‚ΠΎΠΊ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ распрСдСлСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ стСкового пространства. WAITPAGE ΠŸΠΎΡ‚ΠΎΠΊ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ устранСния администратором процСссов поврСТдСния Π½Π° страницС. SIGSUSPEND ΠŸΠΎΡ‚ΠΎΠΊ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ сигнал. SIGWAITINFO ΠŸΠΎΡ‚ΠΎΠΊ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ сигнал. NANOSLEEP ΠŸΠΎΡ‚ΠΎΠΊ «спит» (приостановлСн Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ). MUTEX ΠŸΠΎΡ‚ΠΎΠΊ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ Π·Π°Ρ…Π²Π°Ρ‚ мутСкса. CONDVAR ΠŸΠΎΡ‚ΠΎΠΊ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ соблюдСния условия условной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. JOIN ΠŸΠΎΡ‚ΠΎΠΊ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ°. INTR ΠŸΠΎΡ‚ΠΎΠΊ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅. SEM ΠŸΠΎΡ‚ΠΎΠΊ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ Π·Π°Ρ…Π²Π°Ρ‚ сСмафора.

Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΡ‚ΠΎΠΊ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½, нСзависимо ΠΎΡ‚ состояния Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ, ΠΎΠ½ Π½Π΅ потрСбляСт рСсурсы процСссора. Наоборот, СдинствСнным состояниСм, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΠΎΡ‚ΠΎΠΊ потрСбляСт рСсурсы процСссора, являСтся состояниС выполнСния (RUNNING).

ΠœΡ‹ рассмотрим Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ состояния SEND (Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΏΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅), RECEIVE (Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΏΠΎ ΠΏΡ€ΠΈΠ΅ΠΌΡƒ) ΠΈ REPLY (Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΏΠΎ ΠΎΡ‚Π²Π΅Ρ‚Ρƒ) Π² Π³Π»Π°Π²Π΅ «ОбмСн сообщСниями». БостояниС NANOSLEEP связано с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Ρ‚ΠΈΠΏΠ° sleep(), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ рассмотрим Π² Π³Π»Π°Π²Π΅ «Часы, Ρ‚Π°ΠΉΠΌΠ΅Ρ€Ρ‹ ΠΈ пСриодичСскиС увСдомлСния». БостояниС INTR связано с использованиСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ InterruptWait(), ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ ΠΈΠ·ΡƒΡ‡ΠΈΠΌ Π² Π³Π»Π°Π²Π΅ Β«ΠŸΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΡΒ». Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ всСх ΠΏΡ€ΠΎΡ‡ΠΈΡ… состояний обсуТдаСтся Π² Π΄Π°Π½Π½ΠΎΠΉ Π³Π»Π°Π²Π΅.

ΠŸΡ€ΠΎΡ†Π΅ΡΡΡ‹ ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΈ

ВСрнСмся ΠΊ нашим рассуТдСниям ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ°Ρ… ΠΈ процСссах, Π½ΠΎ Π½Π° сСй Ρ€Π°Π· с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния пСрспСктивы ΠΈΡ… примСнСния Π² систСмах Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ рассмотрим Π²Ρ‹Π·ΠΎΠ²Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ ΠΈ процСссами.

ΠœΡ‹ Π·Π½Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ процСсс ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ большС ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ². (ΠŸΡ€ΠΎΡ†Π΅ΡΡ с Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌ числом ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π½Π΅ Π±Ρ‹Π» Π±Ρ‹ способСн Ρ‡Ρ‚ΠΎ-Π»ΠΈΠ±ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ: Ссли Π² Π΄ΠΎΠΌΠ΅ Π½ΠΈΠΊΠΎΠ³ΠΎ Π½Π΅Ρ‚, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΊΠ°ΠΊΡƒΡŽ-Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ просто Π½Π΅ΠΊΠΎΠΌΡƒ.) Π’ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС QNX/Neutrino допускаСтся ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ процСссов. (Аналогично β€” QNX/Neutrino с Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌ количСством процСссов просто Π½Π΅ смоТСт Π½ΠΈΡ‡Π΅Π³ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ.)

Π§Ρ‚ΠΎ ΠΆΠ΅ Π΄Π΅Π»Π°ΡŽΡ‚ всС эти процСссы ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΈ? Π’ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ счСтС, ΠΎΠ½ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‚ систСму β€” собраниС ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² ΠΈ процСссов, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΡ… ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ Ρ†Π΅Π»ΡŒ.

На самом высоком ΡƒΡ€ΠΎΠ²Π½Π΅ абстракции систСма состоит ΠΈΠ· мноТСства процСссов. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ процСсс отвСтствСнСн Π·Π° обСспСчСниС слуТСбных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π°, нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, являСтся Π»ΠΈ ΠΎΠ½ элСмСнтом Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы, Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠΌ дисплСя, ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ сбора Π΄Π°Π½Π½Ρ‹Ρ…, ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ управлСния ΠΈΠ»ΠΈ Ρ‡Π΅ΠΌ-Π»ΠΈΠ±ΠΎ Π΅Ρ‰Π΅.

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

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ПО с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² ΠΌΠΎΠ³Π»ΠΈ Π»Π΅Π³ΠΊΠΎ ΡΡ‚Π°Ρ‚ΡŒ Ρ‚Π΅ΠΌΠΎΠΉ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ. Π—Π΄Π΅ΡΡŒ ΠΆΠ΅ ΠΌΡ‹ ΠΈΠ·Π»ΠΎΠΆΠΈΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ основы этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ процСссы?

ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΆΠ΅ Π½Π΅ Π²Π·ΡΡ‚ΡŒ просто ΠΎΠ΄ΠΈΠ½ процСсс с мноТСством ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²? Π’ Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ систСмы Π²Ρ‹Π½ΡƒΠΆΠ΄Π°ΡŽΡ‚ вас ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚Π°ΠΊΠΎΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅, Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ряд прСимущСств ΠΏΡ€ΠΈ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° мноТСство процСссов.

К Ρ‚Π°ΠΊΠΈΠΌ прСимущСствам относятся:

β€’ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π΄Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠΉ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ;

β€’ ΡƒΠ΄ΠΎΠ±ΡΡ‚Π²ΠΎ сопровоТдСния;

β€’ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ.

ΠšΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡ раздСлСния Π·Π°Π΄Π°Ρ‡ΠΈ Π½Π° части, Ρ‚.Π΅., Π½Π° нСсколько нСзависимых Π·Π°Π΄Π°Ρ‡, являСтся ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠΎΡ‰Π½ΠΎΠΉ. И ΠΈΠΌΠ΅Π½Π½ΠΎ такая концСпция Π»Π΅ΠΆΠΈΡ‚ Π² основС QNX/Neutrino. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ систСма QNX/Neutrino состоит ΠΈΠ· мноТСства нСзависимых ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π°Π΄Π΅Π»Π΅Π½ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π·ΠΎΠ½ΠΎΠΉ отвСтствСнности. Π­Ρ‚ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ нСзависимы ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… процСссах. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈΠ· QSSL использовали эту ΡƒΠ΄ΠΎΠ±Π½ΡƒΡŽ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ для ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, нСзависимых Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π°. ЕдинствСнная возмоТная ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ этих ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π° β€” Π½Π°Π»Π°Π΄ΠΈΡ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ связь с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ нСбольшого количСства строго ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… интСрфСйсов.

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

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

Π—Π°Ρ‰ΠΈΡ‚Π° памяти.

АдрСсныС пространства процСссов ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ администратора процСссов QNX/ Neutrino. ΠŸΡ€ΠΈ запускС процСсса администратор процСссов распрСдСляСт Π΅ΠΌΡƒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ объСм памяти ΠΈ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΡƒΠ΅Ρ‚ Π΅Π³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠΈ. ΠžΡ‚Π²Π΅Π΄Π΅Π½Π½Π°Ρ Π΄Π°Π½Π½ΠΎΠΌΡƒ процСссу ΠΏΠ°ΠΌΡΡ‚ΡŒ помСчаСтся ΠΊΠ°ΠΊ принадлСТащая Π΅ΠΌΡƒ.

Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ссли Π² Π΄Π°Π½Π½ΠΎΠΌ процСссС ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ Π΅ΡΡ‚ΡŒ нСсколько ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², ΠΈ ядру Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ контСкст ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ, это ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ эффСктивно, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ адрСсноС пространство, достаточно просто ΡΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΏΠΎΡ‚ΠΎΠΊ. Если, ΠΎΠ΄Π½Π°ΠΊΠΎ, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠΎΡ‚ΠΎΠΊ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ процСссС, Ρ‚ΡƒΡ‚ ΡƒΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ€Π°Π±ΠΎΡ‚Ρƒ администратор процСссов ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ адрСсноС пространство. ΠŸΡƒΡΡ‚ΡŒ вас Π½Π΅ бСспокоят Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΈ этом Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΈΠ·Π΄Π΅Ρ€ΠΆΠΊΠΈ β€” ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ QNX/Neutrino всС это осущСствляСтся ΠΎΡ‡Π΅Π½ΡŒ быстро.