2021-04-02

Linux 线程优先级

一、调度策略

Linux线程调度策略有:SCHED_FIFO, SCHED_RR 和 SCHED_OTHER

  1. SCHED_FIFO: 先进先出算法(FIFO),按照进程进入就绪队列的先后次序来选择。即每当进入进程调度,总是把就绪队列的队首进程投入运行;
  2. SCHED_RR:    时间片轮转算法(RR),分时系统的一种调度算法,轮转的基本思想是,将CPU的处理时间划分成一个个的时间片,就绪队列中的进程轮流运行一个时间片。当时间片结束时,就强迫进程让出CPU,该进程进入就绪队列,等待下一次调度,同时,进程调度又去选择就绪队列中的一个进程,分配给它一个时间片,以投入运行。
  3. SCHED_OTHER: 不能设置优先级。

FIFO与RR的不同:

  1. 当采用RR策略的进程的时间片用完,系统将重新分配时间片,并置于就绪队列尾。放在队列尾保证了所有具有相同优先级的RR任务的调度公平。
  2.  FIFO一旦占用cpu则一直运行。一直运行直到有更高优先级任务到达或自己放弃。
  3. 如果有相同优先级的实时进程(根据优先级计算的调度权值是一样的)已经准备好,FIFO时必须等待该进程主动放弃后才可以运行这个优先级相同的任务。而RR可以让每个任务都执行一段时间。

二、如何查看一个线程的优先级

通过top 命令可以快速查看一个进程的有优先级,PR为对应进程的优先级,如下:

 2. 也可以在/proc目录下查看对应线程的优先级

其中policy 为调度策略

0: SCHED_OTHER

1:SCHED_FIFO

2:SCHED_RR

prio 为优先级,优先级越大,值越小

三、如何设置线程的优先级

参考: https://blog.csdn.net/m0_37329910/article/details/100765833

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值