41.5. 显示进程的时间片
SCHED_RR (round-robin)策略与 SCHED_FIFO (first-in、first-in、first-out)策略稍有不同。SCHED_RR 分配以轮循轮转相同的优先级的并发进程。这样,每个进程都会分配一个时间片。sched_rr_get_interval() 函数报告分配给每个进程的时间片。
注意
虽然 POSIX 要求此功能 必须 仅处理配置为使用 SCHED_RR 调度程序策略运行的进程,sched_rr_get_interval() 函数可检索 Linux 上任何进程的时间片长度。
timeslice 信息返回为 timespec。这是自 1970 年 1 月 1 日 00:00:00 GMT 的基础时间起的秒数和纳秒:
struct timespec {
time_t tv_sec; /* seconds / long tv_nsec; / nanoseconds */
}
struct timespec {
time_t tv_sec; /* seconds / long tv_nsec; / nanoseconds */
}
流程
显示进程的时间片:
使用以下代码创建一个测试脚本:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在这些示例中,使用
sched_03运行程序,具有不同的策略和优先级。chrt -o 0 ./sched_03
$ chrt -o 0 ./sched_03 Timeslice: 0.38994072Copy to Clipboard Copied! Toggle word wrap Toggle overflow chrt -r 10 ./sched_03
$ chrt -r 10 ./sched_03 Timeslice: 0.99984800Copy to Clipboard Copied! Toggle word wrap Toggle overflow chrt -f 10 ./sched_03
$ chrt -f 10 ./sched_03 Timeslice: 0.0Copy to Clipboard Copied! Toggle word wrap Toggle overflow