高响应比优先调度算法c语言代码_Linux 内核进程调度

IO密集型和CPU密集型

进程按照对IO和处理器的依赖,可以分为此两种。顾名思义,IO密集型进程大部分时间都在提交IO请求或者等待IO请求(任何类型的可阻塞资源,键盘输入、网络IO等),GUI属于IO密集型。CPU密集型则把大部分时间花在了代码的执行上,具有代表性的是需要大量计算的程序,比如张量运算等。当然也有一些结合了IO和CPU的程序,比如word,用户输入的同时会进行拼写检查。

进程调度的目标:程序响应迅速、最大系统利用率。作为保证交互式应用和桌面系统的性能,内核倾向于优先调度IO密集型进程,当然这并不绝对。

进程优先级

最基本的调度算法:优先级高的先运行,低的后运行,相同优先级按照轮状方式进行调度,一个接一个重复进行。在某些系统中,优先级高的进程使用的时间片也长。调度器总是选择时间片没有用完而且优先级最高的程序进行。

Linux有两种不同的优先级范围。第一种是nice值,取值范围是-20~19,取值越小优先级越高,默认是0。nice值代表的是时间片的比例,mac中则是绝对值。

5fa7462864dc31a4bd8a2cf1cd5a8aef.png
ps -el 中显示的NI字段就是nice值

第一种是实时优先级,取值范围0~99,取值越大优先级越高。任何实时进程的优先级都高于普通进程,这意味着实时优先级和nice值并不冲突。

24494da9ad47d201594a5c8ce806f7ac.png
ps -eo state,uid,pid,ppid,rtprio,time,comm 中的rtprio字段代表实时优先级,-说明不是实时进程。

CFS

公平调度法。

待续

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值