系统屋 - 系统光盘下载网站!

当前位置:首页 > 系统教程 > Linux教程 > 详细页面

Linux系统进程管理介绍(2)

时间:2023-02-15来源:系统屋作者:zhijie

  假设我们能收集到这些信息,可以有如下几种调度算法:

  1.最短运行时间优先

  2.最短剩余时间优先

  3.综合已经运行时间和剩余时间来排序

  但是在真实世界中,一般这个信息是无法预测的。即使是同一个进程,之前运行的情况对当前运行的进程也不一定有参考价值。比如cat程序,不同参数对运行时间影响很大。

  Feedback

  这个是基于Prediction来优化的。如果说Prediction是需要预测将来进程还需要多少资源的话,Feedback算法就是基于已经消耗了的资源来判断优先级。

  一般来说,也就是运行时间越长,优先级越低的调度算法。

  Unix调度算法

  老版调度算法

  这是2.6版本之前的调度算法,该算法采用优化的RR算法,每个进程的优先级算法如下:

  p(i) = base(i)+nice(i)+cpu(i)

  其中base和nice值都是静态固定的,可以由用户指定的。

  cpu是随着进程占用CPU时间越长权重就越低的调整因子,该因子调整逻辑如下:

  cpu(i) = cpu(i-1)/2

  也就是每次进程被选中调度一遍之后,下次对应的cpu因子的值都会被除以2,降低下次运行的权重。

  新版调度算法

  内核2.6版本之后重写了调度算法。也叫O(1)算法。

  该算法针对普通进程,设置了100~139共40个优先级,进程属于哪个优先级的计算跟老版调度算法类似。系统再存储了一个位图,每个位图代表一个优先级是否有等待的进程。然后每次都选择优先级最高的且有进程的那个队列选取第一个进程来运行。

  SMP的调度

  对于多处理器的处理,跟上面的调度算法类似,只是在选择出进程之后,需要再判断一下给哪个CPU合适。

  一般来说,考虑到CPU的本地cache,所以尽量将进程调度到之前运行的CPU上运行。当然,考虑到CPU本身的均衡性,所以肯定还是会有迁移的工作。

 2/5   首页 上一页 1 2 3 4 5 下一页 尾页
分享到:

相关信息

  • Linux系统xargs命令的用法

    在Linux系统中使用xargs命令可以解决不少问题,特别是xargs命令再配合find命令,能够发挥出更加惊人的效果。本文就来为大家介绍一下Linux系统xargs命令的用法。...

    2023-02-14

  • Linux系统如何查看进程的线程数?

    Linux系统的进程是由线程组成的,当然Linux进程下的线程数是不固定的,可以是一个进程,也可以是多个进程。本文就来教大家Linux系统如何查看进程的线程数?...

    2023-02-14

评论

系统教程栏目

栏目热门教程

人气教程排行

站长推荐

热门系统下载

公众号