实时调度之FIFO

概括

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

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

例子

#! /bin/sh
(sleep 5;
kill -ALRM $$) & 
while true;
do
true;
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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值