用于线程调度的方法以及系统技术方案

技术编号:10328195 阅读:175 留言:0更新日期:2014-08-14 14:26
提供一种用于在具有用以执行操作系统的硬件处理器的电子装置中执行线程调度的方法。所述方法包含以下步骤:当多个预设条件其中之一满足时,启用由硬件处理器执行的虚拟管理器;通过线程调度器接收用于调度将执行的线程的请求。通过虚拟管理器屏蔽线程调度器以防其存取第一队列,所述第一队列包含处于可运行状态的多个第一线程。将线程调度器引导至第一虚拟队列以选择将执行的线程,第一虚拟队列包含第一队列中的所述第一线程的第一部分,此第一部分与当前正在运行的至少一个应用程序相关联;通过硬件处理器调度所选定的线程的执行。

【技术实现步骤摘要】
用于线程调度的方法以及系统
本专利技术涉及用于线程调度的方法以及系统。更明确地说,本专利技术涉及用于以用户为中心的线程调度方法以及系统。
技术介绍
现今的操作系统中通常会维持一个运行队列(run-queue),用以选择其中一个线程作为下一调度候选者以用于执行。为考量公平性,每一线程被指派时间片以定义线程最多能够按其调度间隔运行多久,另外还设定每一线程的优先级以判断其执行次序。操作系统的调度器按优先次序将所有可运行的线程插入到运行队列,且选取具有最高优先级的线程作为将由处理器执行的下一调度候选者。对于例如智能电话、平板电脑(tablet computer)以及个人计算机等消费型电子装置,用户体验为非常重要的考量。然而,消费型电子装置的计算资源有限,当这种消费型电子装置的处理器同时执行过多进程或线程时,用户常感到明显滞后。
技术实现思路
因此,本专利技术涉及用于线程调度的方法以及系统,所述方法以及系统可将处理器的调度集中在前台进程以及操作系统的相关进程上以提供顺利而流畅的用户体验。本专利技术提供的方法以及系统简单且易于实施。本专利技术提供一种用于在具有用以执行操作系统的硬件处理器的电子装置中执行线程调度的方法。所述操作系统包含线程调度器以及队列管理器。所述方法包含以下步骤:判断多个预设条件中的至少一者是否满足。当预设条件中的一者满足时,启用由所述硬件处理器执行的虚拟管理器;通过所述线程调度器接收用于调度将执行的线程的请求。通过所述虚拟管理器屏蔽线程调度器以防其存取第一队列,第一队列包含处于可运行状态的多个第一线程;将线程调度器引导至第一虚拟队列以选择将执行的线程,第一虚拟队列包含第一队列中的所述多个第一线程的第一部分,第一部分与当前正在运行的至少一个应用程序相关联;通过所述硬件处理器调度选定线程的执行。本专利技术还提供一种用于电子装置中的线程调度系统。所述线程调度系统包含系统队列、线程调度器、队列管理器以及虚拟管理器。系统队列包含用于维持处于第一状态的多个第一线程的第一队列以及用于维持处于第二状态的多个第二线程的第二队列。线程调度器用以接收用于调度第一线程中的至少一者的执行以及更新第二线程的状态的请求。队列管理器用以接收用于更新第一队列以及第二队列中的线程的请求。所述虚拟管理器用以拦截由线程调度器以及队列管理器接收的用于存取第一队列的请求,更新第一队列以及第二队列中的线程,且用以根据与当前正在运行的至少一个应用程序相关联的白名单将第一队列中的第一线程映射到第一虚拟队列以及第二虚拟队列中。本专利技术还提供一种用于在具有用以执行操作系统的硬件处理器的电子装置中执行线程调度的方法。所述操作系统包含运行队列以及休眠队列。所述方法包含以下步骤:通过所述硬件处理器产生包含与当前正在运行的应用程序相关联的进程的白名单;通过所述硬件处理器根据白名单而调度运行队列中的线程的执行;通过所述硬件处理器根据白名单将休眠队列中的线程更新到运行队列中。【附图说明】图1绘示本专利技术的实施例的操作系统的部分示意图。图2绘示本专利技术实施例的虚拟管理器的示意图。图3到图9绘 示本专利技术实施例的用于线程调度的方法的流程的示意图。图10绘示本专利技术实施例的用于线程调度的电子装置的示意图。[主要元件标号说明]100:操作系统110:调度器120:队列管理器130:虚拟管理器140:系统运行队列150:系统休眠队列160:线程列表210:切换模块220:白名单230:控制单元240:虚拟运行队列250:虚拟封锁队列310~940:方法步骤1000:电子装置1010:处理器1020:存储装置【具体实施方式】图1绘示本专利技术实施例的操作系统100的一部分的示意图。操作系统100由电子装置的应用处理器或其它合适处理器执行。电子装置可为智能电话、个人数字助理(PDA)、平板电脑、笔记本计算机或个人计算机。操作系统100包括线程调度器110、队列管理器(queue manager ;QM) 120、虚拟管理器(virtual manager ;VM) 130、系统运行队列 140、系统休眠队列150以及线程列表160。操作系统100中可存在一个或一个以上进程,每一进程可包含一个或一个以上线程。线程列表160记录操作系统100中的所有线程以及每一线程的状态,线程的状态可为正在运行、可运行、休眠或封锁。正在运行状态意味线程当前由电子装置的处理器执行。可运行状态意味线程准备好由处理器执行但尚未运行。封锁状态意味线程正等待预设事件发生,例如来自电子装置的硬件组件的中断或由另一线程先前获取的排它性对象的释放。系统运行队列140记录所有可运行线程,而系统休眠队列150记录所有封锁线程。系统运行队列140按优先次序记录线程,这意味系统运行队列140中的线程是按优先级次序排序。系统运行队列140的第一线程具有最高优先级。另一方面,系统休眠队列150中的线程是根据线程的休眠时间的长度排序的。系统休眠队列150的第一个线程具有最短休眠时间。调度器110安排电子装置的处理器的线程执行。换句话说,调度器110判断操作系统100中的线程的执行次序。QM120处理希望将线程插入到系统运行队列140以及系统休眠队列150或从系统运行队列140以及系统休眠队列150移除线程的所有请求,且确保请求恰当地串行化。本专利技术的VM130设置为调度器110、QM120、系统运行队列140与系统休眠队列150之间的中间层。VM130代替系统运行队列140以及系统休眠队列150与线程调度器110以及QM120互动。VM130可将调度器110的调度引导至较重要的线程,例如与用户当前关注(focus)的应用程序相关联的线程,使得这些进程可被优先执行。VM130可参考线程列表160以查询线程的当前状态。此外,VM130支持在对操作系统100透明化的即时被安装或卸载的能力,这意味VM130可灵活地被启用或停用。当VM130被停用时,调度器110以及QM120不受VM130影响,且操作系统100表现得正如常规多任务操作系统一样。在这种状况下,调度器110将此时应唤醒的线程按优先次序从系统休眠队列150移动到系统运行队列140,且接着调度器110选择系统运行队列140中的第一线程作为将由处理器执行的下一线程。选定的线程可运行历时其剩余时间量和/或系统休眠队列150中的第一个线程的休眠时间中的最小值。当VM130被启用时,VM130将系统运行队列140中的线程分类为两部分,且参考用户活动(例如,当前正在运行的前台应用程序)管理处理器进行的线程执行的调度。下文论述VM130的处理细节。图2绘示本专利技术实施例的VM130的示意图。VM130包含切换模块210、控制单元230、白名单220、虚拟运行队列240以及虚拟封锁队列250。切换模块210监视一些预定条件且根据预定条件而停用或启用VM130。举例来说,可根据(例如)处理器的使用率(usage)、总线流通量(bus traffic)、处理器的吞吐量(throughput)和/或可影响效率或处理优先级的其它条件定义预定条件。当处理器的利用率百分比高于第一阈值时,切换模块210启用控制单元230以用于将传入线程映射到虚拟运行队列240或虚拟封锁队列250中,且用于重定向传入请求的调度。当处理本文档来自技高网...
用于线程调度的方法以及系统

【技术保护点】
一种用于在具有用以执行操作系统的硬件处理器的电子装置中执行线程调度的方法,其中所述操作系统包括线程调度器以及队列管理器,所述方法包括:判断是否满足多个预设条件中的至少一者;当满足所述多个预设条件中的一者时,启用由所述硬件处理器执行的虚拟管理器;通过所述线程调度器接收用于调度将执行的线程的请求;通过所述虚拟管理器屏蔽所述线程调度器以防存取第一队列,所述第一队列包括处于可运行状态的多个第一线程;将所述线程调度器引导至包括所述第一队列中的所述多个第一线程的第一部分的第一虚拟队列以选择将执行的所述线程,所述第一线程的所述第一部分与当前正在运行的至少一个应用程序相关联;以及通过所述硬件处理器调度选定的所述线程的执行。

【技术特征摘要】
2013.02.07 US 13/762,3291.一种用于在具有用以执行操作系统的硬件处理器的电子装置中执行线程调度的方法,其中所述操作系统包括线程调度器以及队列管理器,所述方法包括: 判断是否满足多个预设条件中的至少一者; 当满足所述多个预设条件中的一者时,启用由所述硬件处理器执行的虚拟管理器; 通过所述线程调度器接收用于调度将执行的线程的请求; 通过所述虚拟管理器屏蔽所述线程调度器以防存取第一队列,所述第一队列包括处于可运行状态的多个第一线程; 将所述线程调度器引导至包括所述第一队列中的所述多个第一线程的第一部分的第一虚拟队列以选择将执行的所述线程,所述第一线程的所述第一部分与当前正在运行的至少一个应用程序相关联;以及 通过所述硬件处理器调度选定的所述线程的执行。2.根据权利要求1所述的方法,还包括: 通过所述虚拟管理器产生包括与当前正在运行的所述应用程序相关联的进程的白名单;以及 通过所述虚拟管理器根据所述多个第一线程对所述白名单的从属性,将所述多个第一线程映射到所述第一虚拟队列以及第二虚拟队列。3.根据权利要求2所述的方法,其中所述白名单包括与前台应用程序、系统关键服务、时序关键后台应用程序或服务相关联的至少一个进程。4.根据权利要求2所述的方法,还包括: 根据当前正在所述电子装置上运行的应用程序更新所述白名单。5.根据权利要求2所述的方法,还包括: 通过队列管理器接收用于插入线程的请求; 通过所述虚拟管理器屏蔽所述队列管理器以防存取所述第一队列; 通过所述虚拟管理器根据所述白名单而判断所述第二虚拟队列中与所插入的线程相关联的线程;以及 通过所述虚拟管理器将所插入的线程以及所述第二虚拟队列中相关联的线程移动到所述第一虚拟队列中。6.根据权利要求2所述的方法,还包括: 通过所述调度器接收对所述第一队列中的线程的请求; 通过所述虚拟管理器拦截所述请求; 判断所请求的线程是否在所述第二虚拟队列中; 当所述所请求的线程在所述第二虚拟队列中时,通过所述虚拟管理器根据所述白名单判断所述第二虚拟队列中与所请求的线程相关联的线程;以及 通过所述虚拟管理器将所请求的线程以及所述第二虚拟队列中相关联的线程移动到所述第一虚拟队列中。7.根据权利要求2所述的方法,还包括: 判断当前正在所述电子装置上运行的前台应用程序; 于当前正在运行的所述前台应用程序被切换时,根据新的前台应用程序更新所述白名单;以及根据所述更新的白名单来更新所述第一虚拟队列以及所述第二虚拟队列。8.根据权利要求2所述的方法,还包括: 通过所述调度器判断所述第二队列中的多个第二线程的状态改变,所述多个第二线程处于休眠状态; 当所述第二线程中的至少一者的状态被改变时,向所述队列管理器发送用于插入具有状态改变的所述第二线程的请求; 通过所述虚拟管理器从所述队列管理器拦截所述用于插入具有状态改变的所述第二线程的请求;以及 根据所述白名单而将具有状态改变的所述第二线程插入到所述第一虚拟队列或所述第二虚拟队列中。9.根据权利要求1所述的方法,其中所述预设条件包括以下各项中的至少一者:所述硬件处理器的使用率超过预定阈值、时序关键应用程序或服务的需求、耦接到所述硬件处理器的总线的流通量,以及所述硬件处理器的吞吐量。10.根据权利要求1所述的方法,还包括: 通过所述队列管理器接收用于删除线程的请求; 通过所述虚拟管理器屏蔽所述队列管理器以防存取所述第一队列;以及 从...

【专利技术属性】
技术研发人员:张文彦吴志聪陈定伦陈高斌
申请(专利权)人:宏达国际电子股份有限公司
类型:发明
国别省市:中国台湾;71

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1