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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«QNX/UNIX: Анатомия ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ°Β»

Автор Π¦ΠΈΠ»ΡŽΡ€ΠΈΠΊ ОлСг Π˜Π²Π°Π½ΠΎΠ²ΠΈΡ‡

QNX/UNIX

Анатомия ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ°

ОлСг Π¦ΠΈΠ»ΡŽΡ€ΠΈΠΊ, Π•Π³ΠΎΡ€ Π“ΠΎΡ€ΠΎΡˆΠΊΠΎ

ΠŸΡ€Π΅Π΄ΠΈΡΠ»ΠΎΠ²ΠΈΠ΅

Π—Π°Ρ‡Π΅ΠΌ написана эта ΠΊΠ½ΠΈΠ³Π° ΠΈ ΠΊΠΎΠΌΡƒ ΠΎΠ½Π° ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π°? Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ аспСкты построСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ QNX, родствСнныС Ρ‚Π΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ обсуТдаСм Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΈΠ·Π΄Π°Π½ΠΈΠΈ, вСсьма ΠΎΠ±ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ описаны Π² Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Π΅. Π­Ρ‚ΠΎ ΠΈ ΠΎΡΠ½ΠΎΠ²ΠΎΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‰ΠΈΠ΅ Ρ‚Ρ€ΡƒΠ΄Ρ‹ Π­. ДСйкстры [10] ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π°Π²Ρ‚ΠΎΡ€ΠΎΠ², ΠΈ общая Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Π° ΠΏΠΎ POSIX (Portable Operating System Interface) ΠΈ ОБ UNIX [2, 3, 5–7]. Π”Ρ€ΡƒΠ³ΠΈΠ΅, сугубо спСцифичСскиС аспСкты для ОБ QNX, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΎΠ±ΠΌΠ΅Π½ сообщСниями микроядра, построСниС ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ΠΎΠ² рСсурсов, ΠΏΡƒΠ»Ρ‹ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² ΠΈ Π΅Ρ‰Π΅ ряд Π΄Ρ€ΡƒΠ³ΠΈΡ… приятных Π²Π΅Ρ‰Π΅ΠΉ, прСкрасно описаны Π² ΠΊΠ½ΠΈΠ³Π΅ Π . ΠšΠ΅Ρ€Ρ‚Π΅Π½Π° [1].

Однако всС эти источники ΠΈΠΌΠ΅ΡŽΡ‚ ряд нСдостатков:

‒ ВСхничСская докумСнтация ΠΏΠΎ QNX, Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰Π°Ρ API ΠΈ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, оставляСт Π² сторонС (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΊΠ°ΠΊ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ извСстныС) ΠΎΠ±Ρ‰ΠΈΠ΅ вопросы построСния ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΈΡ… взаимодСйствия.

‒ НСсмотря Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ мноТСства ΠΊΡ€Π°Ρ‚ΠΊΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΊΠΎΠ΄Π° ΠΏΠΎ использованию ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ…Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² API, Π² тСхничСской Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ явно нСдостаточно ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΈΡ… примСнСния Π² логичСской ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΡ… совмСстного взаимодСйствия.

β€’Β Π˜Π·Π΄Π°Π½ΠΈΡ ΠΏΠΎ UNIX, посвящСнныС ΠΎΠ±Ρ‰ΠΈΠΌ вопросам, Π½Π°ΠΏΡ€ΠΎΡ‚ΠΈΠ², ΠΈΠ·ΠΎΠ±ΠΈΠ»ΡƒΡŽΡ‚ ΠΎΠ±Ρ€Π°Π·Ρ†Π°ΠΌΠΈ ΠΊΠΎΠ΄Π°, Π½ΠΎ Π² силу ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΏΡ€ΠΈΡ‡ΠΈΠ½, связанных с Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΈΠ·Π΄Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ процСсса, Π½Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ Π½ΠΎΠ²Ρ‹Π΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹, появившиСся Π² стандартах начиная с ΠΊΠΎΠ½Ρ†Π° 90-Ρ… Π³ΠΎΠ΄ΠΎΠ².

β€’Β Π˜ Π½Π°ΠΊΠΎΠ½Π΅Ρ†, ΠΏΠΎΠ΄Π°Π²Π»ΡΡŽΡ‰Π΅Π΅ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π½Ρ‹Ρ… ΠΊΠ½ΠΈΠ³ ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ для UNIX рассчитано Π½Π° Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ. БчастливоС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ β€” ΠΊΠ½ΠΈΠ³ΠΈ Π£. БтивСнса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ с ΡƒΠ΄ΠΎΠ²ΠΎΠ»ΡŒΡΡ‚Π²ΠΈΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ сами ΠΈ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ читатСлям.

Π’ ΠΈΡ‚ΠΎΠ³Π΅ Π²ΠΎΠ·Π½ΠΈΠΊ замысСл Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ½ΠΈΠ³Ρƒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ΄Π²Π΅Π΄Π΅Π½ ΠΈΡ‚ΠΎΠ³ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π° нашСго собствСнного использования ОБ QNX ΠΈ которая Π±ΡƒΠ΄Π΅Ρ‚ насыщСна ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ Π² Π²ΠΈΠ΄Π΅ Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ΠΈΠ»ΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΊΠΎΠ΄Π°. Для удобства Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»Π΅ΠΉ

*.tgz
-Π°Ρ€Ρ…ΠΈΠ² описываСмых Π² ΠΊΠ½ΠΈΠ³Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ ΠΏΠΎ адрСсу http://www.symbol.ru/library/qnx-unix/pthread.tgz, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с тСкстом.

По большСй части ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ Ρ‚Ρ€Π°Π½ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π»ΠΈΡΡŒ ΠΈΠ· Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π»Π°ΡΡŒ вся спСцифика ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ Π·Π°ΠΊΠ°Π·Π°, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π°Ρ‚ΡƒΠΌΠ°Π½ΠΈΠ²Π°ΡŽΡ‰Π°Ρ смысл ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°. МногиС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈ прилоТСния ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Ρ‹ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ нСсут Π΄Π²ΠΎΠΉΠ½ΡƒΡŽ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ: ΠΎΠ½ΠΈ построСны ΠΊΠ°ΠΊ тСсты Ρ‚Π΅Ρ… ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹Ρ… ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² ОБ ΠΈ, ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΡ рассматриваСмыС аспСкты, ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ числСнныС характСристики тСстируСмых ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². Π­Ρ‚ΠΈΠΌ ΠΊΠ½ΠΈΠ³Π° сущСствСнно отличаСтся ΠΎΡ‚ тСхничСской Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΈ ΠΎΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… статСй ΠΏΠΎ QNX, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ слишком Π±ΠΎΠ³Π°Ρ‚Ρ‹ числСнными показатСлями, ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π°ΡŽΡ‰ΠΈΠΌΠΈ Ρ‚ΠΎ, ΠΎ Ρ‡Π΅ΠΌ Π² Π½ΠΈΡ… говорится.

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

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ…ΠΎΡ‚ΡŒ ΠΊΠ°ΠΊ-Ρ‚ΠΎ Π±ΠΎΡ€ΠΎΡ‚ΡŒΡΡ с Π»Π°Π²ΠΈΠ½Π½Ρ‹ΠΌ нарастаниСм объСма, Π±Ρ‹Π»ΠΎ принято Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚Π΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ ΠΈ элСмСнты API, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ слабо Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚Ρ‹ Π² Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Π½Ρ‹Ρ… источниках, ΠΈ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΡ… с максимально Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ ΠΎΠ±ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ (это относится, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊ Π±Π°Π·ΠΎΠ²ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅ Π²Ρ‹Π·ΠΎΠ²Π°

spawn()
). Напротив, Ρ‚Π΅ элСмСнты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ достаточно Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ описаны ΠΈ обсуТдСны ΠΈΠ»ΠΈ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятны (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, всС сСмСйство Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² [1], ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Ρ… ΠΎΡ‚ spawn()), лишь повСрхностно ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ΡΡ (Π΄Π°ΠΆΠ΅ Ссли ΠΏΠΎΠ·ΠΆΠ΅ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… ΠΊΠΎΠ΄Π° ΠΌΡ‹ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΈΠΌΠ΅Π½Π½ΠΎ эти Ρ„ΠΎΡ€ΠΌΡ‹). Π’ ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠ½Ρ†ΠΎΠ², ΠΌΡ‹ Π½Π΅ ΡΠΎΠ±ΠΈΡ€Π°Π»ΠΈΡΡŒ ΠΏΠ΅Ρ€Π΅ΡΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚Π΅Ρ…Π½ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ QNX, Π° Ρ…ΠΎΡ‚Π΅Π»ΠΈ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ‚ΠΎΠ½ΠΊΠΈΠ΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ ΠΈ ΠΈΡ… нСсоотвСтствия (ΠΌΠ΅ΠΆΠ΄Ρƒ собой ΠΈΠ»ΠΈ с ΠΈΠ·Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ) Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… ΠΎΠ±Ρ€Π°Π·Ρ†Π°Ρ… ΠΊΠΎΠ΄Π°.

ΠŸΡ€ΠΈ написании этого ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π° Π½Π°ΠΌ Π½Π΅ Π±Ρ‹Π»ΠΈ доступны Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ ΠΈΠ»ΠΈ спСцифичСскиС ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΊΡ€ΠΎΠΌΠ΅ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ тСхничСской Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ОБ QNX, общСдоступной Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹, ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, Ρ†ΠΈΡ€ΠΊΡƒΠ»ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉ Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ Π² обсуТдСниях QNX-сообщСств (Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ http://qnx.org.ruΠΈ http://qnxclub.net), ΠΈ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² с ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈ-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ. МногиС Ρ‚ΠΎΠ½ΠΊΠΈΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ Π²ΠΎΡΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΡƒΡ‚Π΅ΠΌ тСстирования ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ толкования Π½Π°Π±Π»ΡŽΠ΄Π°Π΅ΠΌΡ‹Ρ… Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ².

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

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

Но Π² этой Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ формирования ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π° ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ Β«Ρ‡Π΅Ρ€Π½ΠΎΠ³ΠΎ ящика» [1]Π΅ΡΡ‚ΡŒ ΠΈ своя ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ оборотная сторона: описанныС ΠΈ тСстированныС Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΠΎΠ΄Π° ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ состояниС ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² ОБ Β«ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π΅ΡΡ‚ΡŒΒ», Π° Π½Π΅ Β«ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒΒ». Π­Ρ‚ΠΎ Π²Π΄Π²ΠΎΠΉΠ½Π΅ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ, учитывая, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ QNX, Ρ„ΠΈΡ€ΠΌΠ° QSSL, Π½Π΅ Ρ€Π°Π· Π² своСй тСхничСской Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ описывала ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΊΠ°ΠΊ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ ΠΈΡ… Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π»ΠΎΡΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… вСрсиях (ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΡ QNET Β«Π½Π°Π΄Β» IP, ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ shared memory ΠΈ Π΄Ρ€.), ΠΈΠ»ΠΈ описывала ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ Π² Ρ‚Π°ΠΊΠΎΠΌ Ρ‚ΡƒΠΌΠ°Π½Π½ΠΎΠΌ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ (дисциплины балансировки Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ QoS, НАМ), Ρ‡Ρ‚ΠΎ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Π² ΠΊΠ°ΠΊΠΎΠΉ стСпСни ΠΎΠ½ΠΈ ΡƒΠΆΠ΅ ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½Ρ‹ ΠΊ практичСскому ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡŽ, Π° Π² ΠΊΠ°ΠΊΠΎΠΉ β€” ΡΠ²Π»ΡΡŽΡ‚ΡΡ лишь ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π½Π°Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°ΠΌΠΈ Π½Π° Π±ΡƒΠ΄ΡƒΡ‰Π΅Π΅.

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

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΡŒ ΡƒΠΆΠ΅ достаточно ΠΎΠ±ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π½Π°ΠΊΠΎΠΌ с ΠΎΠ±Ρ‰Π΅ΠΉ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΎΠΉ программирования Π² Π‘/Π‘++ [2]ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠΏΡ‹Ρ‚ Π² описываСмой области ΠΏΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ОБ (Linux, MS-DOS, MS Windows ΠΈ Π΄Ρ€.). На основах ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ ΠΌΡ‹ ΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΎΠ±Ρ€Π°Π·Ρ†Ρ‹ ΠΊΠΎΠ΄Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ общСизвСстныС ΠΈ часто употрСбляСмыС ΠΏΡ€ΠΈΠ΅ΠΌΡ‹, Π±ΡƒΠ΄ΡƒΡ‚ Π΄Π°Π²Π°Ρ‚ΡŒΡΡ Π±Π΅Π· ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π². Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, тСкст Π½Π° протяТСнии ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΡ‡Π΅Π½ΡŒ Β«Π½Π΅Ρ€ΠΎΠ²Π½Ρ‹ΠΉΒ» ΠΏΠΎ Π³Π»ΡƒΠ±ΠΈΠ½Π΅ излоТСния. НапримСр, тСкст прилоТСния, ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ Π’. Π—Π°ΠΉΡ†Π΅Π²Ρ‹ΠΌ, Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ сущСствСнных ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Π½ΠΈΠΉ, Π° Π΅Ρ‰Π΅ Π»ΡƒΡ‡ΡˆΠ΅ β€” ΠΎΠΏΡ‹Ρ‚Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π² QNX. Однако ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ Ρ‚Π°ΠΊΠΈΠ΅ «услоТнСнныС» Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡƒΡ‰Π΅Π½Ρ‹ Π±Π΅Π· ΡƒΡ‰Π΅Ρ€Π±Π° для понимания основного ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°.

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