sched(7) Miscellaneous Information Manual sched(7) sched - 2.6.23 CFS " ". CFS "O(1)". ( ). nice(2) nice nice . getpriority(2) nice . setpriority(2) nice . sched_setscheduler(2) . sched_getscheduler(2) . sched_setparam(2) . sched_getparam(2) . sched_get_priority_max(2) . sched_get_priority_min(2) . sched_rr_get_interval(2) "". sched_yield(2) . sched_setaffinity(2) ( ) . sched_getaffinity(2) ( ) . sched_setattr(2) . ( ) sched_setscheduler(2) sched_setparam(2). sched_getattr(2) . ( ) sched_getscheduler(2) sched_getparam(2). . sched_priority. . (SCHED_OTHER SCHED_IDLE SCHED_BATCH) sched_priority ( 0). (SCHED_FIFO SCHED_RR) sched_priority 1 () 99 (). ( .) : POSIX.1 32 . sched_get_priority_min(2) sched_get_priority_max(2) . sched_priority . . . : . . SCHED_FIFO: SCHED_FIFO 0 SCHED_FIFO SCHED_OTHER SCHED_BATCH SCHED_IDLE . SCHED_FIFO . SCHED_FIFO : o SCHED_FIFO . o SCHED_FIFO . o sched_setscheduler(2) sched_setparam(2) sched_setattr(2) pthread_setschedparam(3) pthread_setschedprio(3) SCHED_FIFO pid : () . . () . () . POSIX.1-2008 ( ) pthread_setschedprio(3) . o sched_yield(2) . SCHED_FIFO . SCHED_FIFO / sched_yield(2). SCHED_RR: SCHED_RR SCHED_FIFO. SCHED_FIFO SCHED_RR . SCHED_RR . SCHED_RR . sched_rr_get_interval(2). SCHED_DEADLINE: 3.14 (SCHED_DEADLINE). GEDF ( ) CBS ( ). sched_setattr(2) sched_getattr(2). . . ( ). . . : arrival/wakeup absolute deadline | start time | | | | v v v -----x--------xooooooooooooooooo--------x--------x--- |<- comp. time ->| |<------- relative deadline ------>| |<-------------- period ------------------->| SCHED_DEADLINE sched_setattr(2) : Runtime ( ) Deadline ( ) Period (). : Runtime ( ) Deadline Period . SCHED_DEADLINE : arrival/wakeup absolute deadline | start time | | | | v v v -----x--------xooooooooooooooooo--------x--------x--- |<-- Runtime ------->| |<----------- Deadline ----------->| |<-------------- Period ------------------->| sched_runtime sched_deadline sched_period sched_attr sched_setattr(2). . sched_period 0 sched_deadline. : sched_runtime <= sched_deadline <= sched_period 1024 ( ) 2^63. sched_setattr(2) EINVAL. CBS . SCHED_DEADLINE ( ) . SCHED_DEADLINE. sched_setattr(2) EBUSY. ( ) Runtime Period Runtime Period . SCHED_DEADLINE SCHED_DEADLINE ( ) SCHED_DEADLINE . fork(2) SCHED_DEADLINE EAGAIN fork ( ). SCHED_DEADLINE sched_yield(2) . SCHED_OTHER: SCHED_OTHER 0 ( SCHED_OTHER). SCHED_OTHER . 0 . nice ( ) . SCHED_OTHER. SCHED_OTHER SCHED_NORMAL. nice nice . SCHED_OTHER SCHED_BATCH ( ). nice nice(2) setpriority(2) sched_setattr(2). POSIX.1 nice nice. nice : nice . nice UNIX. -20 ( ) +19 ( ). -20..20. ( 2.0) -infinity..15. nice SCHED_OTHER UNIX . CFS 2.6.23 nice . nice 1.25 . nice (+19) nice (-20) ( ). RLIMIT_NICE nice setrlimit(2) . nice autogroup . SCHED_BATCH: ( 2.6.16.) SCHED_BATCH 0. SCHED_OTHER ( nice). . . nice ( ). SCHED_IDLE: ( 2.6.23.) SCHED_IDLE 0 nice . ( nice +19 SCHED_OTHER SCHED_BATCH). . fork(2) . : o OR SCHED_RESET_ON_FORK policy sched_setscheduler(2) ( 2.6.32) o SCHED_FLAG_RESET_ON_FORK attr.sched_flags sched_setattr(2). . sched_getscheduler(2) sched_getattr(2). RLIMIT_RTTIME ( getrlimit(2)) . : o SCHED_FIFO SCHED_RR SCHED_OTHER . o nice nice . CAP_SYS_NICE. fork(2). 2.6.12 (CAP_SYS_NICE) ( ). SCHED_OTHER ( pid) . (CAP_SYS_NICE) SCHED_DEADLINE. 2.6.12 RLIMIT_RTPRIO SCHED_RR SCHED_FIFO. : o RLIMIT_RTPRIO RLIMIT_RTPRIO. o RLIMIT_RTPRIO 0 . o . o SCHED_IDLE. 2.6.39 RLIMIT_RTPRIO . 2.6.39 SCHED_BATCH SCHED_OTHER nice RLIMIT_NICE ( getrlimit(2)). (CAP_SYS_NICE) RLIMIT_RTPRIO . getrlimit(2) RLIMIT_RTPRIO. SCHED_FIFO SCHED_RR SCHED_DEADLINE . 2.6.25 ( ) . . 2.6.25 . RLIMIT_RTTIME . getrlimit(2) . 2.6.25 /proc . ( ) . : /proc/sys/kernel/sched_rt_period_us 100% . 1 INT_MAX 1 35 . 1,000,000 (1 ). /proc/sys/kernel/sched_rt_runtime_us "" . -1 INT_MAX-1. -1 ( 2.6.25). 950,000 (0.95 ) 5% . / . " ". fork(2). execve(2). mlock(2) mlockall(2). 2.6.38 ( make(1) -j). CFS CONFIG_SCHED_AUTOGROUP. /proc/sys/kernel/sched_autogroup_enabled 0 1 . 1 noautogroup. setsid(2) . fork(2) . . . " " . /proc . CFS . . ( taskset(1) SMP). make -j10. : . . 50% 9% . SMP : . ( ) /proc/pid/autogroup: $ cat /proc/1/autogroup /autogroup-1 nice 0 . "nice" nice . +19 ( ) -20 ( ). ( write(2) EINVAL.) nice nice nice . nice ( ) nice ( ). cgroups(7) cgroups cgroup . (SCHED_OTHER SCHED_BATCH SCHED_IDLE). . . nice ( SCHED_OTHER SCHED_BATCH SCHED_IDLE) CFS " " CONFIG_FAIR_GROUP_SCHED ( ). " ". " ". : o cgroup . cgroup . o () ( setsid(2)) . . . o cgroup . o cgroup . o ( CONFIG_FAIR_GROUP_SCHED) . nice . nice UNIX. ( ) setpriority(2) nice(1) (: ). ( ) ( ) nice . nice : $ echo 10 > /proc/self/autogroup 2.6.18 realtime-preempt. : patch-kernelversion-rtpatchversion git . LTS . 6.12 . realtime-patch . 6.13 . : CONFIG_PREEMPT_NONE CONFIG_PREEMPT_VOLUNTARY CONFIG_PREEMPT CONFIG_PREEMPT_LAZY. CONFIG_PREEMPT_RT CONFIG_PREEMPT CONFIG_PREEMPT_LAZY. SCHED_NORMAL . . CONFIG_PREEMPT_RT . SCHED_FIFO SCHED_RR SCHED_DEADLINE . cgroups(7) . ( ). 2.6 O(1) 2.6.17. chcpu(1), chrt(1), lscpu(1), ps(1), taskset(1), top(1), getpriority(2), mlock(2), mlockall(2), munlock(2), munlockall(2), nice(2), sched_get_priority_max(2), sched_get_priority_min(2), sched_getaffinity(2), sched_getparam(2), sched_getscheduler(2), sched_rr_get_interval(2), sched_setaffinity(2), sched_setparam(2), sched_setscheduler(2), sched_yield(2), setpriority(2), pthread_getaffinity_np(3), pthread_getschedparam(3), pthread_setaffinity_np(3), sched_getcpu(3), capabilities(7), cpuset(7) Programming for the real world - POSIX.4 Bill O. Gallmeister O'Reilly & Associates, Inc., ISBN 1-56592-074-0. . : 3 . . : . 6.18 8 2026 sched(7)