我是靠谱客的博主 俭朴信封,最近开发中收集的这篇文章主要介绍优先级调度算法实现_Linux内核浅析-进程调度的算法和数据结构,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

说到进程调度,还是很难说清楚的问题,网上的文章虽然汗牛充栋,但我觉得缺少重点且篇幅比较冗余。我争取抓住重点,以较短的篇幅讲清楚。

1、进程优先级和分类

进程优先级代表进程需要运行的紧急程度和需要更多的运行时间片,Linux的优先级的范围是[0, 139],数值越小,优先级越高。用户态通过nice值设置优先级,nice值的范围是[-20,19],其映射到范围100~139。setpriority系统调用能修改进程的优先级0~139。

按照优先级又可以分为两类进程:

1)实时进程:要求最快速被响应,比如视频、工业机器控制程序等。

2)非实时进程:即普通进程,我们大部分程序使用的。其还可以细分为两类:1)交互式进程,需要响应前台请求。2)后台批处理进程,类似mr的计算。

7d3d8d3e66dacf851ebe6ee4de221c3f.png

Linux用task_struct表示一个进程(task_struct结构见文末,就不再解读了),通过以下3个字段表示优先级:

1)prio:动态优先级,唯一被调度器使用的优先级字段,其依赖于normal_prio字段。调度器在运行期间可根据其倾向调整该值。

2)static_prio:普通进程的优先级,仅能通

最后

以上就是俭朴信封为你收集整理的优先级调度算法实现_Linux内核浅析-进程调度的算法和数据结构的全部内容,希望文章能够帮你解决优先级调度算法实现_Linux内核浅析-进程调度的算法和数据结构所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部