实时调度之FIFO

来源:互联网 发布:51信用卡待遇 知乎 编辑:程序博客网 时间:2024/05/22 02:12

概括

对于实时调度,在整个进程的生命周期里,它的优先级是不变的.

FIFO的试试调度策略要求进程不能抢占CPU,除非另一个实时进程有更高的优先级.下文将以例子来证实出这种情况.

例子

#! /bin/sh(sleep 5;kill -ALRM $$) & while true;dotrue;done

保存到test.sh文件中,执行:

$ sudo chrt -f 50 ./test.sh &$ ps -C test.sh -o pri,ni,rtptio

上述命令意味着以50的实时优先级和fifo的实时调度方式执行脚本.

脚本将会被卡住,在被同等或更高优先级的进程抢占之前,该脚本将不会放弃CPU.

实际运行中,五秒之后进程并不会被停止,因为cpu将大部分时间都分配到循环中了,kill命令将得不到充分运行

运行结果:
ps结果
解释:
pri:绝对优先级,值域为 [1,139]
rtptio:实时优先级,值域为[1,99] 对于普通进程无意义
ni:nice值,对于实时进程无意义

0 0
原创粉丝点击