分配和调度用于多个优先化队列的线程的制作方法

文档序号:9713538阅读:458来源:国知局
分配和调度用于多个优先化队列的线程的制作方法
【专利说明】
【背景技术】
[0001]在现代计算系统中,具有允许计算机程序作为共享对操作系统所管理的计算资源的访问的多个线程来执行的操作系统是常见的。操作系统自身还可以具有可用于服务从应用到操作系统资源的请求的多个线程,在本文中称为工作者线程。
[0002]存在若干方式来管理竞争资源的多个应用的复杂度。一般地,提供队列来管理来自应用的请求以使用工作者线程,诸如使用线程来访问资源的请求。如果所有请求被同等地对待,则首先向工作者线程分配先到请求。在一些实例中,一些请求具有比其它请求更高的优先级。在这样的情况中,单独的请求队列被用于每一个优先级水平,并且每一个优先级水平具有其自身的工作者线程池。调度器基于到达时间向队列中的请求分配线程,并且通过基于优先级而使线程活跃和阻挡或先占线程来管理多个线程对资源的共享访问。
[0003]利用这样的系统,每一个工作者线程具有固定的优先级,并且在执行期间不能够改变优先级;否则存在优先级颠倒的风险。而且,利用针对每一个优先级水平的工作者线程池,优先级水平的数目受系统资源限制。最后,这样的系统可能经历相关性死锁。

【发明内容】

[0004]本
【发明内容】
以简化的形式引入以下在【具体实施方式】中进一步描述的所选概念。本
【发明内容】
不意图标识所要求保护的主题的关键或者本质特征,也不意图限制所要求保护的主题的范围。
[0005]操作系统提供服务处于不同优先级水平的多个请求的队列的工作者线程池。并发性控制器限制并发执行(即活跃)的工作者线程的数目。操作系统追踪在每一个优先级水平以上的并发执行线程的数目,并且有利于较高优先级工作者线程地先占较低优先级工作者线程的操作。系统可以具有多个工作者线程池,其中每一个池具有其自身的优先级队列和并发性控制器。
[0006]并发性控制器合并有调度器。因此,线程还可以通过直接通知调度器来改变其优先级中间操作。如果线程变成较低优先级并且当前是活跃的,则采取步骤以确保优先级颠倒不会发生。特别地,调度器可以有利于较高优先级工作者线程地先占处于现在较低优先级的活跃工作者线程。
[0007]在以下描述中,对形成其部分的附图做出参考,并且其中作为图示,示出本技术的具体示例实现。要理解的是,可以利用其它实施例,并且可以做出结构改变而不脱离本公开的范围。
【附图说明】
[0008]图1是利用其可以实现这样的系统的组件的示例计算机的框图。
[0009]图2是图示了针对由用于计算机系统的操作系统所管理的工作者线程池的不同优先级的多个队列的示例实现的图。
[0010]图3是向队列添加项目的示例实现的流程图。[0011 ]图4是在工作者线程结束之后选择项目的示例实现的流程图。
[0012]图5是改变线程的优先级的示例实现的流程图。
[0013]图6是向从队列选择的项目分配工作者线程的示例实现的流程图。
[0014]图7是操作中的并发性控制的说明性示例的图。
【具体实施方式】
[0015]以下章节描述在其上可以实现向来自多个优先化队列的项目分配和调度工作者线程的操作系统的示例计算机系统。
[0016]以下描述意图提供利用其可以实现这样的系统的合适计算机的简要、一般描述。计算机可以是各种各样的通用或专用计算硬件配置中的任一种。可能合适的众所周知的计算机示例包括但不限于个人计算机、服务器计算机、手持式或膝上型设备(例如,媒体播放器、笔记本计算机、平板计算机、蜂窝电话、个人数据助理、话音记录器)、多处理器系统、基于微处理器的系统、机顶盒、游戏控制台、可编程消费电子产品、网络PC、小型计算机、大型计算机、包括以上系统或设备中的任一种的分布式计算环境等等。
[0017]图1图示了合适的计算机示例。这仅仅是合适的计算机的一个示例,且并不意图暗示关于这样的计算机的使用范围或功能性的任何限制。
[0018]参照图1,示例计算机100在基本配置方面包括至少一个处理单元102和存储器104。计算机可以包括多个处理单元和/或附加的协处理单元,诸如图形处理单元120。取决于计算机的确切配置和类型,存储器104可以是易失性(诸如RAM)、非易失性(诸如R0M、闪速存储器等等)或二者的某种组合。该配置在图1中以虚线106图示。
[0019]此外,计算机100还可以具有附加特征/功能性。例如,计算机100还可以包括附加的存储装置(可移除和/或不可移除),包括但不限于磁盘或光盘或磁带。这样的附加存储装置在图1中由可移除存储装置108和不可移除存储装置110图示。计算机存储介质包括以用于存储诸如计算机程序指令、数据结构、程序模块、或其它数据之类的信息的任何方法或者技术实现的易失性和非易失性、可移除和不可移除介质。存储器104、可移除存储装置108和不可移除存储装置110都是计算机存储介质的示例。计算机存储介质包括但不限于RAM、R0M、EEPR0M、闪速存储器或其它存储器技术、CD-ROM、数字通用盘(DVD)或其它光学存储装置、磁盒、磁带、磁盘存储装置或其它磁存储设备、或可以用来存储所期望的信息并且可以由计算机100访问的任何其它介质。任何这样的计算机存储介质可以是计算机100的一部分。
[0020]计算机100还可以包含(多个)通信连接112,其允许设备通过通信介质与其它设备通信。通信介质通常承载计算机程序指令、数据结构、程序模块、或在诸如载波之类的已调制数据信号或其它输运机制中的其它数据,并且包括任何信息递送介质。术语“已调制数据信号”意指使其特性中的一个或者多个以便于在信号中编码信息的这样的方式设置或改变、从而改变信号的接收设备的配置或状态的信号。作为示例而非限制,通信介质包括有线介质(诸如有线网络或直接有线连接)以及无线介质(诸如声学、RF、红外和其它无线介质)。通信连接112是与通信介质对接以通过通信介质传送数据和从通信介质接收数据的设备,诸如网络接口。
[0021]计算机100可以具有(多个)各种输入设备114,诸如键盘、鼠标、笔、相机、触摸输入设备等等。还可以包括诸如显示器、扬声器、打印机等等之类的(多个)输出设备116。所有这些设备在本领域中都是众所周知的,并且在此不需要详细地讨论。各种输入和输出设备可以实现自然用户接口(NUI),其是使得用户能够以不受由诸如鼠标、键盘、遥控器等之类的输入设备所强加的人为约束的“自然”方式与设备交互的任何接口技术。
[0022]NUI方法的示例包括依赖于语音识别、触摸和触笔识别、在屏幕上和靠近屏幕二者的手势识别、隔空手势、头部和眼睛追踪、话音和语音、视觉、触摸、手势和机器智能的那些,并且可以包括以下各项的使用:触敏显示器、话音和语音识别、意图和目标理解、使用深度相机(诸如立体相机系统、红外相机系统和其它相机系统以及这些的组合)的运动手势检测、使用加速度计或陀螺仪的运动手势检测、面部识别、三维显示、头部、眼睛和凝视追踪、沉浸式增强现实和虚拟现实系统(这些全部都提供了更自然的接口),以及用于使用电场感测电极来感测脑部活动的技术(EEG和相关方法)。
[0023]在计算机上操作的该系统的每个组件一般由软件实现,诸如一个或多个计算机程序,其包括由计算机处理的计算机可执行指令和/或计算机解释指令,诸如程序模块。一般地,程序模块包括例程、程序、对象、组件、数据结构等等,其在被处理单元处理时指令处理单元执行特定任务或实现特定抽象数据类型。该计算机系统可以在分布式计算环境中实践,其中任务由通过通信网络链接的远程处理设备执行。在分布式计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机存储介质两者中。
[0024]可替换地或此外,本文描述的功能性可以至少部分地由一个或多个硬件逻辑组件执行。例如而没有限制地,可以使用的说明性类型的硬件逻辑组件包括现场可编程门阵列(FPGA)、专用程序集成电路(ASIC)、专用程序标准产品(ASSP)
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1