深入理解Linux CPU调度器:策略、机制与内核抢占
1. 线程调度策略与优先级查询
在Linux系统中,线程是实际被调度并在处理器上运行的实体。系统为线程分配调度策略和优先级,默认情况下采用 SCHED_OTHER 策略,实时优先级为0。
若要查询系统中给定线程的调度策略和优先级,可使用 chrt(1) 工具。例如,查询 init 进程(PID为1)的调度信息,可执行以下命令:
$ chrt -p 1
pid 1's current scheduling policy: SCHED_OTHER
pid 1's current scheduling priority: 0
chrt 工具使用 sched_getattr(2) 系统调用进行查询,使用 sched_setattr(2) 系统调用进行设置。通过 strace 命令可以验证:
$ strace chrt -p 1
[ ... ]
sched_getattr(1, {size=48, sched_policy=SCHED_OTHER, sched_flags=0,
sched_nice=0, sched_priority=0, sched_runtime=0, sched_deadline=0,
sched_period=0}, 48, 0)
超级会员免费看
订阅专栏 解锁全文
2549

被折叠的 条评论
为什么被折叠?



