[发明专利]分配和调度用于多个队列的计算机、制造品和方法有效
申请号: | 201380077438.3 | 申请日: | 2013-09-21 |
公开(公告)号: | CN105474175B | 公开(公告)日: | 2019-07-16 |
发明(设计)人: | P.泰克赛拉;A.基尚 | 申请(专利权)人: | 微软技术许可有限责任公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 北京市金杜律师事务所 11256 | 代理人: | 王茂华 |
地址: | 美国华*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 分配 调度 用于 优先 队列 线程 | ||
操作系统提供服务处于不同优先级水平的多个请求的队列的工作者线程池。并发性控制器限制当前执行的线程的数目。系统追踪每一个优先级水平以上的当前执行的线程的数目,并且有利于较高优先级工作者线程地先占较低优先级工作者线程的操作。系统可以具有多个工作者线程池,其中每一个池具有其自身的优先级队列和并发性控制器。线程还可以改变其优先级中间操作。如果线程变成较低优先级并且当前活跃,则采取步骤以确保不发生优先级颠倒。特别地,针对新的较低优先级项目的当前线程可以被针对较高优先级项目的线程先占并且将被先占的项目放置在较低优先级队列中。
技术领域
本发明概括地涉及线程管理,更具体地,涉及分配和调度用于多个优先化队列的线程。
背景技术
在现代计算系统中,具有允许计算机程序作为共享对操作系统所管理的计算资源的访问的多个线程来执行的操作系统是常见的。操作系统自身还可以具有可用于服务从应用到操作系统资源的请求的多个线程,在本文中称为工作者线程。
存在若干方式来管理竞争资源的多个应用的复杂度。一般地,提供队列来管理来自应用的请求以使用工作者线程,诸如使用线程来访问资源的请求。如果所有请求被同等地对待,则首先向工作者线程分配先到请求。在一些实例中,一些请求具有比其它请求更高的优先级。在这样的情况中,单独的请求队列被用于每一个优先级水平,并且每一个优先级水平具有其自身的工作者线程池。调度器基于到达时间向队列中的请求分配线程,并且通过基于优先级而使线程活跃和阻挡或先占线程来管理多个线程对资源的共享访问。
利用这样的系统,每一个工作者线程具有固定的优先级,并且在执行期间不能够改变优先级;否则存在优先级颠倒的风险。而且,利用针对每一个优先级水平的工作者线程池,优先级水平的数目受系统资源限制。最后,这样的系统可能经历相关性死锁。
发明内容
本发明内容以简化的形式引入以下在具体实施方式中进一步描述的所选概念。本发明内容不意图标识所要求保护的主题的关键或者本质特征,也不意图限制所要求保护的主题的范围。
操作系统提供服务处于不同优先级水平的多个请求的队列的工作者线程池。并发性控制器限制并发执行(即活跃)的工作者线程的数目。操作系统追踪在每一个优先级水平以上的并发执行线程的数目,并且有利于较高优先级工作者线程地先占较低优先级工作者线程的操作。系统可以具有多个工作者线程池,其中每一个池具有其自身的优先级队列和并发性控制器。
并发性控制器合并有调度器。因此,线程还可以通过直接通知调度器来改变其优先级中间操作。如果线程变成较低优先级并且当前是活跃的,则采取步骤以确保优先级颠倒不会发生。特别地,调度器可以有利于较高优先级工作者线程地先占处于现在较低优先级的活跃工作者线程。
在以下描述中,对形成其部分的附图做出参考,并且其中作为图示,示出本技术的具体示例实现。要理解的是,可以利用其它实施例,并且可以做出结构改变而不脱离本公开的范围。
附图说明
图1是利用其可以实现这样的系统的组件的示例计算机的框图。
图2是图示了针对由用于计算机系统的操作系统所管理的工作者线程池的不同优先级的多个队列的示例实现的图。
图3是向队列添加项目的示例实现的流程图。
图4是在工作者线程结束之后选择项目的示例实现的流程图。
图5是改变线程的优先级的示例实现的流程图。
图6是向从队列选择的项目分配工作者线程的示例实现的流程图。
图7是操作中的并发性控制的说明性示例的图。
具体实施方式
以下章节描述在其上可以实现向来自多个优先化队列的项目分配和调度工作者线程的操作系统的示例计算机系统。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软技术许可有限责任公司,未经微软技术许可有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201380077438.3/2.html,转载请声明来源钻瓜专利网。