概述
说到进程调度,还是很难说清楚的问题,网上的文章虽然汗牛充栋,但我觉得缺少重点且篇幅比较冗余。我争取抓住重点,以较短的篇幅讲清楚。
1、进程优先级和分类
进程优先级代表进程需要运行的紧急程度和需要更多的运行时间片,Linux的优先级的范围是[0, 139],数值越小,优先级越高。用户态通过nice值设置优先级,nice值的范围是[-20,19],其映射到范围100~139。setpriority系统调用能修改进程的优先级0~139。
按照优先级又可以分为两类进程:
1)实时进程:要求最快速被响应,比如视频、工业机器控制程序等。
2)非实时进程:即普通进程,我们大部分程序使用的。其还可以细分为两类:1)交互式进程,需要响应前台请求。2)后台批处理进程,类似mr的计算。
Linux用task_struct表示一个进程(task_struct结构见文末,就不再解读了),通过以下3个字段表示优先级:
1)prio:动态优先级,唯一被调度器使用的优先级字段,其依赖于normal_prio字段。调度器在运行期间可根据其倾向调整该值。
2)static_prio:普通进程的优先级,仅能通
最后
以上就是俭朴信封为你收集整理的优先级调度算法实现_Linux内核浅析-进程调度的算法和数据结构的全部内容,希望文章能够帮你解决优先级调度算法实现_Linux内核浅析-进程调度的算法和数据结构所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复