嵌入式 linux线程调度方式小结

本文详细介绍了Linux内核的三种线程调度策略:SCHED_OTHER(分时调度)、SCHED_FIFO(实时,先到先服务)和SCHED_RR(实时,时间片轮转)。SCHED_RR与SCHED_FIFO的区别在于时间片管理,SCHED_RR会重新分配时间片,而SCHED_FIFO则一直运行直至主动放弃。实时进程具有优先调度权,分时进程通过nice值决定调度概率。文章还讨论了如何在POSIX线程中设置和获取调度策略及优先级。
摘要由CSDN通过智能技术生成

linux进程调度方法(SCHED_OTHER,SCHED_FIFO,SCHED_RR)

linux进程调度方法(SCHED_OTHER,SCHED_FIFO,SCHED_RR)
linux内核的三种调度方法:
1,SCHED_OTHER 分时调度策略,
2,SCHED_FIFO实时调度策略,先到先服务
3,SCHED_RR实时调度策略,时间片轮转
linux内核的三种调度方法:

1,SCHED_OTHER 分时调度策略,

2,SCHED_FIFO实时调度策略,先到先服务

3,SCHED_RR实时调度策略,时间片轮转

实时进程将得到优先调用,实时进程根据实时优先级决定调度权值,分时进程则通过nice和counter值决定权值,nice越小,counter越大,被调度的概率越大,也就是曾经使用了cpu最少的进程将会得到优先调度。


SHCED_RR和SCHED_FIFO的不同:

     当采用SHCED_RR策略的进程的时间片用完,系统将重新分配时间片,并置于就绪队列尾。放在队列尾保证了所有具有相同优先级的RR任务的调度公平。   

    SCHED_FIFO一旦占用cpu则一直运行。一直运行直到有更高优先级任务到达或自己放弃。

    如果有相同优先级的实时进程(根据优先级计算的调度权值是一样的)已经准备好,FIFO时必须等待该进程主动放弃后才可以运行这个优先级相同的任务。而RR可以让每个任务都执行一段时间。


相同点:

    RR和FIFO都只用于实时任务。

    创建时优先级大于0(1-99)。

    按照可抢占优先级调度算法进行。

    就绪态的实时任务立即抢占非实时任务。


所有任务都采用linux分时调度策略时。

1,创建任务指定采用分时调度策略,并指定优先级nice值(-20~19)。

2,将根据每个任务的nice值确定在cpu上的执行时间(counter)。

3,如果没有等待资源,则将该任务加入到就绪队列中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值