PR β ΡΠΈΡΠ»ΠΎΠ²ΠΎΠΉ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠΎΠΌ CPU Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠΎΡΡΠ΄ΠΊΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
ΠΡΠ°ΡΠΊΠΎ:
- ΠΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ Π·Π°Π΄Π°ΡΠΈ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΡΠ΄ΡΠ°.
- Π€ΠΎΡΠΌΠΈΡΡΠ΅ΡΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅
nice(Π΄Π»Ρ ΠΎΠ±ΡΡΠ½ΡΡ Π·Π°Π΄Π°Ρ) ΠΈΠ»ΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ RT-ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ° (Π΄Π»Ρ real-time). - ΠΠ΅Π½ΡΡΠ΅Π΅ ΡΠΈΡΠ»ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΈΠΉ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ.
Π§ΡΠΎ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ:
- ΠΠ»Ρ ΠΎΠ±ΡΡΠ½ΡΡ
Π·Π°Π΄Π°Ρ ΠΊΠ»Π°ΡΡΠ° CFS β Π±Π°Π·ΠΈΡΡΠ΅ΡΡΡ Π½Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠΈ
niceΠΈ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΌ Π²Π΅ΡΠ΅ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠ°. - ΠΠ»Ρ real-time Π·Π°Π΄Π°Ρ (
SCHED_FIFO,SCHED_RR) β ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΈΡ RT-ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΡ. - ΠΠΎΠΆΠ΅Ρ ΡΡΠΈΡΡΠ²Π°ΡΡ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΡΠΎΠ²ΠΊΠΈ ΡΠ΄ΡΠ° (Π΄ΠΈΠ½Π°ΠΌΠΈΠΊΠ° Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π² CFS).
ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ:
- ΠΠ»Ρ CFS ΠΎΠ±ΡΡΠ½ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΠΊΠ°ΠΊ
20 + nice(ΠΏΡΠΈnice=0ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ ΠΎΠΊΠΎΠ»ΠΎ 20). - ΠΠ»Ρ real-time Π·Π°Π΄Π°Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π½Π°Ρ
ΠΎΠ΄ΡΡΡΡ Π½ΠΈΠΆΠ΅ ΠΎΠ±ΡΡΠ½ΡΡ
(Π²
topΡΠ°ΡΡΠΎ <20). - Π‘Π°ΠΌΠΎ ΠΏΠΎ ΡΠ΅Π±Π΅ Π½Π΅ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π΄ΠΎΠ»Ρ CPU β ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΊΠ»Π°ΡΡΠ° ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
- ΠΠΎΠΆΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡΡ ΠΏΡΠΈ
reniceΠΈΠ»ΠΈ ΡΠΌΠ΅Π½Π΅ scheduling class.
ΠΡΡΠ°ΠΆΠ°Π΅Ρ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π² ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ CPU. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π°Π½Π°Π»ΠΈΠ·Π° CPU-bound ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠ² ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² ΠΈ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΠΈ starvation.