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

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

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

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

ΠšΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠ²

Рассмотрим Π΄Π²Π° Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ ΠΏΠΎΡ‚ΠΎΠΊΠ°. Если эти ΠΏΠΎΡ‚ΠΎΠΊ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Ρ‹, Ρ‚ΠΎ вСсьма прост β€” ядро ΠΎΡ‚Π΄Π°Π΅Ρ‚ процСссор ΠΏΠΎΡ‚ΠΎΠΊΡƒ с Π²Ρ‹ΡΡˆΠΈΠΌ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ. ΠŸΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Ρ‹ Π² QNX/ Neutrino ΠΏΡ€ΠΎΠ½ΡƒΠΌΠ΅Ρ€ΠΎΠ²Π°Π½Ρ‹ ΠΎΡ‚ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ (самый Π½ΠΈΠ·ΠΊΠΈΠΉ) ΠΈ Π΄Π°Π»Π΅Π΅, Π² Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½Ρ‹ΠΌ дискрСтом β€” Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ это Π±Ρ‹Π»ΠΎ упомянуто Π² обсуТдСнии получСния мутСкса. Π—Π°ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π½ΡƒΠ»Π΅Π²ΠΎΠΉ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ нСльзя β€” ΠΎΠ½ Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½ для «холостого» (idle) ΠΏΠΎΡ‚ΠΎΠΊΠ° (Π½Π° ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΌ ΠΆΠ°Ρ€Π³ΠΎΠ½Π΅ часто Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ Β«Ρ…ΠΎΠ»ΠΎΠ΄ΠΈΠ»ΡŒΠ½ΠΈΠΊΠΎΠΌΒ» β€” ΠΏΡ€ΠΈΠΌ. Ρ€Π΅Π΄.). (Если Π²Ρ‹ Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ минимальноС ΠΈΠ»ΠΈ максимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π°, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ для вашСй систСмы, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ sched_get_priority_min() ΠΈ sched_get_priority_max() β€” ΠΎΠ½ΠΈ описаны Π² <sched.h>. Π’ Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ 1 являСтся самым Π½ΠΈΠ·ΠΊΠΈΠΌ, Π° 63 самым высоким.

Если Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠΎΡ‚ΠΎΠΊ с Π±ΠΎΠ»Π΅Π΅ высоким ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ Π²Π΄Ρ€ΡƒΠ³ становится Π³ΠΎΡ‚ΠΎΠ² ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ, ядро Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ контСкст Π½Π° ΠΏΠΎΡ‚ΠΎΠΊ с Π±ΠΎΠ»Π΅Π΅ высоким ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ. Π­Ρ‚ΠΎ называСтся вытСснСниСм— ΠΏΠΎΡ‚ΠΎΠΊ с Π²Ρ‹ΡΡˆΠΈΠΌ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ вытСсняСт ΠΏΠΎΡ‚ΠΎΠΊ с низшим ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ. Когда ΠΏΠΎΡ‚ΠΎΠΊ с Π²Ρ‹ΡΡˆΠΈΠΌ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Π΅Ρ‚ свою Ρ€Π°Π±ΠΎΡ‚Ρƒ, ΠΈ ядро ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ контСкст ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π½Π° ΠΏΠΎΡ‚ΠΎΠΊ с низшим ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выполнялся Ρ€Π°Π½Π΅Π΅, ΠΌΡ‹ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌ это Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌβ€” ядро возобновляСт Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ°.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π½Π΅ ΠΎΠ΄ΠΈΠ½, Π° Π΄Π²Π° ΠΏΠΎΡ‚ΠΎΠΊΠ° Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚.

Дисциплины диспСтчСризации

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

Π―Π΄Ρ€ΠΎ QNX/Neutrino ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π΄Π²Π΅ дисциплины диспСтчСризации: ΠΊΠ°Ρ€ΡƒΡΠ΅Π»ΡŒΠ½ΡƒΡŽ, ΠΎΠ½Π° ΠΆΠ΅ RR (Round Robin), ΠΈ FIFO (First In β€” First Out).

ДиспСтчСризация FIFO

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

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

На рисункС, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅, ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ Ρ‚Ρ€ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠ°, Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Π½Ρ‹Ρ… Π² Π΄Π²ΡƒΡ… Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… процСссах:

Π’Ρ€ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠ° Π² Π΄Π²ΡƒΡ… Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… процСссах.

Если ΠΌΡ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠΈ «А» ΠΈ Β«Π’Β» находятся Π² состоянии READY (Β«Π³ΠΎΡ‚ΠΎΠ²Β»), Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ‚ΠΎΠΊ Β«Π‘Β» Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½ (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π² ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠΈ мутСкса), Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠΎΡ‚ΠΎΠΊ Β«DΒ» (Π½Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½) Π² настоящСС врСмя выполняСтся, Ρ‚ΠΎ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ готовности, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ядро QNX/Neutrino, Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π”Π²Π° ΠΏΠΎΡ‚ΠΎΠΊΠ° Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ готовности, ΠΎΠ΄ΠΈΠ½ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½, ΠΎΠ΄ΠΈΠ½ выполняСтся.

На рисункС ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ внутрСнняя ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ готовности, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ядро ΠΏΡ€ΠΈ принятии Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠΎΠ³ΠΎ Π·Π°ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ. Π—Π°ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ‚ΠΎΠΊ Β«Π‘Β» Π½Π΅ находится Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ готовности, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½, ΠΈ ΠΏΠΎΡ‚ΠΎΠΊ Β«DΒ» Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ находится Π² этой ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΡƒΠΆΠ΅ выполняСтся.

ΠšΠ°Ρ€ΡƒΡΠ΅Π»ΡŒΠ½Π°Ρ диспСтчСризация (RR)

Дисциплина RR (ΠΊΠ°Ρ€ΡƒΡΠ΅Π»ΡŒΠ½Π°Ρ диспСтчСризация) Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Π° дисциплинС диспСтчСризации FIFO, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ‚ΠΎΠΊ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ бСсконСчно, Ссли имССтся Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠΎΡ‚ΠΎΠΊ с Ρ‚Π΅ΠΌ ΠΆΠ΅ самым ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ. ΠŸΠΎΡ‚ΠΎΠΊ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠ²Π°Π½Ρ‚Π° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ фиксирован ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½). Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρƒ ΠΊΠ²Π°Π½Ρ‚Π° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ sched_rr_get_interval().

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

ΠŸΠΎΡΡ‚ΡƒΠ»Π°Ρ‚Ρ‹

Π”Π°Π²Π°ΠΉΡ‚Π΅ сдСлаСм сводку ΠΏΡ€Π°Π²ΠΈΠ» диспСтчСризации (для ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½ΠΎΠ³ΠΎ процСссора) ΠΈ отсортируСм ΠΈΡ… Π² порядкС ваТности:

β€’ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡ‚ΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ;

β€’ Π²ΡΠ΅Π³Π΄Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΏΠΎΡ‚ΠΎΠΊ с Π½Π°ΠΈΠ²Ρ‹ΡΡˆΠΈΠΌ Π°Π²Ρ‚ΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ;

β€’ ΠΏΠΎΡ‚ΠΎΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ΠΎΠ½ Π½Π΅ блокируСтся ΠΈΠ΄ΠΈ Π½Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ;

β€’ ΠΏΠΎΡ‚ΠΎΠΊ, диспСтчСризуСмый ΠΏΠΎ дисциплинС ΠΊΠ°Ρ€ΡƒΡΠ΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° (RR), Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π΅ΠΌΡƒ ΠΊΠ²Π°Π½Ρ‚Π° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, послС Ρ‡Π΅Π³ΠΎ ядро обязано Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π΅ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ (ΠΏΡ€ΠΈ нСобходимости).

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

Π‘Ρ…Π΅ΠΌΠ° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° диспСтчСризации.

Бостояния ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²

НСсколько Ρ€Π°Π· Π½Π΅Π±Ρ€Π΅ΠΆΠ½ΠΎ упомянув ΠΎ Β«Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈΒ», «готовности» ΠΈ Β«Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ΅Β», Π΄Π°Π²Π°ΠΉΡ‚Π΅ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ„ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΡƒΠ΅ΠΌ эти состояния ΠΏΠΎΡ‚ΠΎΠΊΠ°.

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ (RUNNING)

БостояниС выполнСния (RUNNING) Π² QNX/Neutrino ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ‚ΠΎΠΊ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ рСсурсы процСссора. Π’ систСмС SMP Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒΡΡ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ мноТСства ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², Π° Π² систСмС с СдинствСнным процСссором Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒΡΡ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ°.

Π“ΠΎΡ‚ΠΎΠ²Π½ΠΎΡΡ‚ΡŒ (READY)

БостояниС готовности (READY) ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ этот ΠΏΠΎΡ‚ΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ поставлСн Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ, Π½ΠΎ Π½Π΅ выполняСтся, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π΅Π½ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠΎΡ‚ΠΎΠΊ (с Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ высоким ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ). Если Π±Ρ‹ Π΄Π²Π° ΠΏΠΎΡ‚ΠΎΠΊΠ° Π±Ρ‹Π»ΠΈ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ, ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ… с ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ 10, Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ β€” с ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ 7, Ρ‚ΠΎ ΠΏΠΎΡ‚ΠΎΠΊ с ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ 10 Π±Ρ‹Π» Π±Ρ‹ ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Π΅Π½ Π² состояниС выполнСния (RUNNING), Π° ΠΏΠΎΡ‚ΠΎΠΊ с ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ 7 β€” Π² состояниС готовности (READY).