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

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

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

TimerTimeout(CLOCK_REALTIME, _NTO_TIMEOUT_RECEIVE,

 NULL, NULL, NULL);

rcvid = MsgReceive(...

Π˜ΠΌΠΏΡƒΠ»ΡŒΡΡ‹ ΠΈ события

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

(На самом Π΄Π΅Π»Π΅, докумСнтация ΠΏΠΎ QNX4 вносит Π² понятиС «прокси» ΡΡ‚Ρ€Π°ΡˆΠ½ΡƒΡŽ ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Ρƒ, которая Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ пояснСния. Если Π±Ρ‹ прокси являлась ΠΈΠΌΠ΅Π½Π½ΠΎ сообщСниСм, ΠΊΠ°ΠΊ это записано Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ прокси, ΠΎΠ±ΠΎΡ€ΠΎΡ‚Ρ‹ Ρ‚ΠΈΠΏΠ° Β«ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ сообщСниС ΠΎΡ‚ прокси» Π±Ρ‹Π»ΠΈ Π±Ρ‹ Π»ΠΈΡˆΠ΅Π½Ρ‹ смысла. Π‘Π°ΠΌΠΎ ΠΏΠΎ сСбС слово Β«proxyΒ» пСрСводится ΠΊΠ°ΠΊ Β«ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹ΠΉ Π°Π³Π΅Π½Ρ‚Β». Если Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π³Π»Π°Π²Ρƒ Β«IPC via proxiesΒ» ΠΊΠ½ΠΈΠ³ΠΈ Β«QNX4 System ArchitectureΒ», становится ясно, Ρ‡Ρ‚ΠΎ прокси β€” это Π½Π΅ само сообщСниС, Π° спСциализированный «квазипроцСсс», Π½Π΅ ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‰ΠΈΠΉ рСсурсами, Π½ΠΎ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ, разумССтся, ΠΏΠΎ понятным ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ Π½Π΅ пСрСкрываСтся с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌΠΈ процСссов) ΠΈ способный ΠΊ ΠΎΠ±ΠΌΠ΅Π½Ρƒ спСциализированными сообщСниями. ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΡ ΠΊ прокси с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Trigger(), процСсс Π² QNX4 фактичСски Π΄Π΅Π»Π°Π΅Ρ‚ этому квазипроцСссу спСциализированный Send(), Π² ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ слСдуСт Reply(), поэтому ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚Π΅Π»ΡŒ (Π²Ρ‹Π·Π²Π°Π²ΡˆΠΈΠΉ Trigger()) ΠΈ Π½Π΅ блокируСтся. Π—Π°Ρ‚Π΅ΠΌ прокси отправляСт своСму процСссу-Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Ρƒ своС ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ сообщСниС; Ссли Π²Π»Π°Π΄Π΅Π»Π΅Ρ† прокси Π² этот ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π΅ являСтся RECEIVE-Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ, сообщСниС становится Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π΅Π΅ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ Β«ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ прокси» вмСсто Β«ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ прокси» (ΠΎ Π²Ρ‹Π·ΠΎΠ²Π΅ Trigger()) ΠΈ Β«ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ сообщСниС прокси» вмСсто Β«ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ прокси» β€” ΠΏΡ€ΠΈΠΌ. Ρ€Π΅Π΄.).

QNX/Neutrino Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡŽ прокси Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ Β«ΠΈΠΌΠΏΡƒΠ»ΡŒΡΠΎΠ²Β». Π˜ΠΌΠΏΡƒΠ»ΡŒΡΡ‹ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π΅Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΌΠΈ сообщСниями, ΠΈ ΠΈΡ… ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΡΠ»Π°Ρ‚ΡŒ Π»ΠΈΠ±ΠΎ ΠΎΡ‚ ΠΏΠΎΡ‚ΠΎΠΊΠ° ΠΊ ΠΏΠΎΡ‚ΠΎΠΊΡƒ, Π»ΠΈΠ±ΠΎ ΠΎΡ‚ слуТСбной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ядра (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° ΠΈΠ»ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° прСрывания) ΠΊ ΠΏΠΎΡ‚ΠΎΠΊΡƒ. Π Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ прокси ΠΈΠΌΠ΅Π»ΠΈ фиксированноС содСрТимоС, ΠΈΠΌΠΏΡƒΠ»ΡŒΡΡ‹ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π΄Π»ΠΈΠ½Ρƒ, Π½ΠΎ содСрТимоС ΠΈΡ… ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚Π΅Π»Π΅ΠΌ Π² любой ΠΌΠΎΠΌΠ΅Π½Ρ‚. НапримСр, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ (ISR) ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² ΠΈΠΌΠΏΡƒΠ»ΡŒΡΠ΅ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ Π·Π°Ρ‚Π΅ΠΌ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ этот ΠΈΠΌΠΏΡƒΠ»ΡŒΡ ΠΏΠΎΡ‚ΠΎΠΊΡƒ.

Π’ QNX4 Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ сСрвисы Π±Ρ‹Π»ΠΈ Π½Π°Π΄Π΅Π»Π΅Π½Ρ‹ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠΎΡΠ»Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ сигнал, Ρ‚Π°ΠΊ ΠΈ прокси, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ сСрвисы Π±Ρ‹Π»ΠΈ Π½Π°Π΄Π΅Π»Π΅Π½Ρ‹ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠΎΡΠ»Π°Ρ‚ΡŒ Π»ΠΈΠ±ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎ, Π»ΠΈΠ±ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. Мало Ρ‚ΠΎΠ³ΠΎ, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ это Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ»ΠΎΡΡŒ нСсколькими Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ способами. НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ сигнал, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Π»ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ kill(). Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ прокси ΠΈΠ»ΠΈ сигнал ΠΏΠΎ ΡΡ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π½ΠΈΡŽ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π½ΠΎΠΌΠ΅Ρ€ сигнала (для указания Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ это прокси) ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π½ΠΎΠΌΠ΅Ρ€ сигнала (для указания Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ это сигнал). И, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ ΠΌΠΎΠ³ Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ прокси.

Π’ QNX/Neutrino всС это Π±Ρ‹Π»ΠΎ абстрагировано Π² Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ POSIX-структуры struct sigevent. ВсС, Ρ‡Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ struct sigevent, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ сигнал, Ρ‚Π°ΠΊ ΠΈ ΠΈΠΌΠΏΡƒΠ»ΡŒΡ.

На самом Π΄Π΅Π»Π΅, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ struct sigevent Π±Ρ‹Π»Π° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π° Π²ΠΏΠ»ΠΎΡ‚ΡŒ Π΄ΠΎ возмоТности создания ΠΏΠΎΡ‚ΠΎΠΊΠ°! ΠœΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ ΠΎΠ± этом Π² Π“Π»Π°Π²Π΅ «Часы, Ρ‚Π°ΠΉΠΌΠ΅Ρ€Ρ‹ ΠΈ пСриодичСскиС увСдомлСния» Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Β«Π£Π²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ созданиСм ΠΏΠΎΡ‚ΠΎΠΊΠ°Β».

МодСль Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° устройства

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

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° MIPS ΠΈ PPC

Одно ΠΈΠ· самых сущСствСнных ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΉ QNX/Neutrino ΠΎΡ‚ QNX4 Π² ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ встраиваСмости состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ QNX/Neutrino ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ процСссоры MIPS ΠΈ PPC (Power PC). QNX4 ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π±Ρ‹Π»Π° Β«Π΄ΠΎΠΌΠ°Β» Π½Π° IBM PC с ΠΈΡ… BIOS ΠΈ Β«ΠΎΡ‡Π΅Π½ΡŒΒ» стандартным Π½Π°Π±ΠΎΡ€ΠΎΠΌ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Ρ… срСдств, QNX/Neutrino ΠΆΠ΅ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ ΠΏΠΎ-Π΄ΠΎΠΌΠ°ΡˆΠ½Π΅ΠΌΡƒ чувствуСт сСбя Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ… с BIOS (ΠΈΠ»ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΎΠΌ ΠŸΠ—Π£) ΠΈΠ»ΠΈ Π±Π΅Π· Π½Π΅Π΅, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π° нСстандартной Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚ΡƒΡ€Π΅, комплСктация ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ выбираСтся ΠΈΠ·Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚Π΅Π»Π΅ΠΌ (ΠΈ часто Π±Π΅Π· ΡƒΡ‡Π΅Ρ‚Π° Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ОБ). Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ядро QNX/Neutrino Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ исходящих Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² (callouts), Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π°Π΄Π°Ρ‚ΡŒ свой Ρ‚ΠΈΠΏ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° этих Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Ρ… срСдствах Π±Π΅Π· нСобходимости приобрСтСния Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ Π½Π° исходный тСкст ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы.

Другая Π³Ρ€ΡƒΠΏΠΏΠ° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΈ пСрСносС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈΠ· QNX4 Π² QNX/Neutrino, особСнно Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, касаСтся Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ процСссоры MIPS ΠΈ PPC ΡƒΠΆ больно Π²Ρ‹Ρ‡ΡƒΡ€Π½Ρ‹ ΠΏΠΎ части выравнивания. Π’Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ N-Π±Π°ΠΉΡ‚ΠΎΠ²ΠΎΠΌΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ ΠΈΠ½Π°Ρ‡Π΅ Ρ‡Π΅ΠΌ ΠΏΠΎ адрСсу, ΠΊΡ€Π°Ρ‚Π½ΠΎΠΌΡƒ N. ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Π½Π° x86 (с Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΌ Ρ„Π»Π°Π³ΠΎΠΌ выравнивания) Π²Ρ‹ Π±Ρ‹ Π²ΠΎΠ»Π΅ΠΉ-Π½Π΅Π²ΠΎΠ»Π΅ΠΉ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠ»ΠΈΡΡŒ ΠΊ памяти. ИзмСнив Π²Π°ΡˆΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ всС структуры Π±Ρ‹Π»ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π²Ρ‹Ρ€ΠΎΠ²Π½Π΅Π½Ρ‹ (для Π½Π΅-x86 процСссоров), Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ваша ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° послС этого Π½Π° x86 станСт Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ быстрСС, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ x86 быстрСС обращаСтся ΠΊ Π²Ρ‹Ρ€ΠΎΠ²Π½Π΅Π½Π½Ρ‹ΠΌ Π΄Π°Π½Π½Ρ‹ΠΌ.

Π”Ρ€ΡƒΠ³ΠΎΠ΅, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊ часто Π½Π΅ Π΄Π°Π΅Ρ‚ людям ΠΆΠΈΡ‚ΡŒ β€” это порядок слСдования Π±Π°ΠΉΡ‚, прямой (big-endian) ΠΈΠ»ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ (little-endian). (ΠšΠΎΠΌΡƒ интСрСсна этимология этих Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ², заглянитС Π² английский ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π» Β«ΠŸΡƒΡ‚Π΅ΡˆΠ΅ΡΡ‚Π²ΠΈΠΉ Π“ΡƒΠ»Π»ΠΈΠ²Π΅Ρ€Π°Β» Π”ΠΆΠΎΠ½Π°Ρ‚Π°Π½Π° Π‘Π²ΠΈΡ„Ρ‚Π° :-) β€” ΠΏΡ€ΠΈΠΌ. Ρ€Π΅Π΄.). Π£ процСссора x86 Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ порядок слСдования Π±Π°ΠΉΡ‚, ΠΈ ΠΎΠ½ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ. ΠŸΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Ρ‹ MIPS ΠΈ PPC Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ ΠΎΠ±Π° порядка слСдования Π±Π°ΠΉΡ‚, Ρ‚. Π΅. ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ с прямым, Ρ‚Π°ΠΊ ΠΈ с ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΌ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, процСссоры MIPS ΠΈ PPC ΡΠ²Π»ΡΡŽΡ‚ΡΡ процСссорами Ρ‚ΠΈΠΏΠ° RISC (с сокращСнным Π½Π°Π±ΠΎΡ€ΠΎΠΌ ΠΊΠΎΠΌΠ°Π½Π΄), Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Ρ‚ΠΈΠΏΠ° |= Π² Π‘ΠΈ (установка Π±ΠΈΡ‚Π°) ΠΌΠΎΠ³ΡƒΡ‚ ΠΈ Π½Π΅ Π±Ρ‹Ρ‚ΡŒ Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½Ρ‹ΠΌΠΈ. Π­Ρ‚ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΆΡƒΡ‚ΠΊΠΈΠΌ послСдствиям! Бписок Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½ΠΎΡΡ‚ΡŒ выполняСмой ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π² Ρ„Π°ΠΉΠ»Π΅ <atomic.h>.

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° SMP

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ вСрсии QNX4 Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° однопроцСссорных систСмах, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ QNX/Neutrino ΡƒΠΆΠ΅ Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ издания этой ΠΊΠ½ΠΈΠ³ΠΈ обСспСчивала ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ SMP ΠΏΠΎ мСньшСй ΠΌΠ΅Ρ€Π΅ Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ x86. SMP Π΄Π°Π΅Ρ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ прСимущСства, особСнно Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠΉ ОБ, Π½ΠΎ это ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΈ Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹ΠΉ пистолСт для прострСливания Π½ΠΎΠ³ΠΈ (ΠΊΡ‚ΠΎ Π»ΡŽΠ±ΠΎΠΏΡ‹Ρ‚Π΅Π½, ΠΏΠΎΠΈΡ‰ΠΈΡ‚Π΅ Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ Ρ„Ρ€Π°Π·Π΅ Β«shoot yourself in the footΒ» β€” ΠΏΡ€ΠΈΠΌ. Ρ€Π΅Π΄.).

НапримСр, Π² однопроцСссорной машинС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ прСрывания (ISR) ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Ρ‚Π΅ΡΠ½ΠΈΡ‚ΡŒ ΠΏΠΎΡ‚ΠΎΠΊ, Π½ΠΎ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±Ρ‹Π²Π°Π΅Ρ‚. Π’ однопроцСссорной машинС Π±Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ сСбС, Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠΈ якобы Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ, хотя Π² Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ это Π½Π΅ Ρ‚Π°ΠΊ.

Π’ Π±Π»ΠΎΠΊΠ΅ SMP ΠΏΠΎΡ‚ΠΎΠΊ ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ прСрывания ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ, Π΄Π° ΠΈ нСсколько ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Ρ‚ΠΎΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ SMP β€” это Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ прСвосходная рабочая станция, Π½ΠΎ ΠΈ Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎΠ΅ срСдство тСстирования ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния β€” Ссли Π²Ρ‹ сдСлали ΠΊΠ°ΠΊΠΈΠ΅ Π±Ρ‹ Ρ‚ΠΎ Π½ΠΈ Π±Ρ‹Π»ΠΎ Β«ΠΏΠ»ΠΎΡ…ΠΈΠ΅Β» прСдполоТСния ΠΎ Π·Π°Ρ‰ΠΈΡ‚Π΅ Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠΉ срСдС, Π² SMP-систСмС ΠΎΠ½ΠΈ ΠΎΠ΄Π½Π°ΠΆΠ΄Ρ‹ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹ΠΏΠ»Ρ‹Π²ΡƒΡ‚.

Для ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΠΈ Ρ‚ΠΎΠ³ΠΎ, насколько это Π²Π΅Ρ€Π½ΠΎ, ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€. Одна ΠΈΠ· ошибок Π² Ρ€Π°Π½Π½Π΅ΠΉ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ вСрсии ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ SMP ΠΏΡ€ΠΎΡΠ²Π»ΡΠ»Π°ΡΡŒ Π² Β«ΠΎΠΊΠ½Π΅Β» Π΄Π»ΠΈΠ½ΠΎΠΉ Π² ΠΎΠ΄ΠΈΠ½ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ»! Π’ΠΎ, Ρ‡Ρ‚ΠΎ для однопроцСссорной ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Π±Ρ‹Π»ΠΎ Π·Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΎ ΠΊΠ°ΠΊ атомарная опСрация Β«Ρ‡Ρ‚Π΅Π½ΠΈΠ΅/модификация/запись», Π² SMP-Π±Π»ΠΎΠΊΠ΅ стало Π΄ΠΎΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π²ΠΌΠ΅ΡˆΠ°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ Π² Ρ…ΠΎΠ΄ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ процСссора, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰Π΅Π³ΠΎ «сравнСниС/ΠΎΠ±ΠΌΠ΅Π½Β».