用于在共享处理器分区环境中移动线程的方法及装置制造方法及图纸

技术编号:5012355 阅读:225 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供一种用于将软件线程分配给具有多个虚拟处理器的数据处理系统的公共虚拟处理器的计算机实现的方法及装置。数据处理系统检测第一线程与第二线程之间关于与所述数据处理系统的资源关联的锁的合作。响应于检测到合作,所述数据处理系统将所述第一线程分配给所述公共虚拟处理器。所述数据处理系统将所述第二线程移动到所述公共虚拟处理器,由此将所述第一线程及所述第二线程所经历的与所述锁关联的睡眠时间减少到低于在检测合作步骤之前所经历的睡眠时间。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术一般地涉及用于将线程放置在处理器上的计算机实现的方法、数据处理系 统及计算机程序产品。更具体地说,本专利技术涉及将线程放置在共享处理器分区环境中。
技术介绍
计算机设计者日益依赖于多个处理器架构以利用通过现代技术而可用的较高 级的硬件整合及小型化。一种流行类型的架构为对称多处理器(SMP)架构,例如,如在 P0Wer5 计算机系统中实现的架构。PoWer5为纽约阿蒙克的国际商业机器公司的商标。对称多处理器的共同特征为将计算机资源从池分配给一个或多个逻辑分区的能 力。计算机资源包括(例如)存储器、盘存储装置及物理处理器。在逻辑分区之间共享物 理资源的架构被称为Micro-partitioning 。Micro-partitioning为国际商业机器公司在 美国和/或其它国家地区的商标。在此类配置中,系统管理程序可将物理处理器的时间片 分配给逻辑分区,且稍后将物理处理器的第二时间片分配给第二逻辑分区。此类时间共享 配置被称为虚拟处理器。虚拟处理器为物理处理器的时间分摊部分。通常,以按时间片度 量的单位分摊虚拟处理器。可将时间片分组成被称作分派轮(dispatch wheel)的集合。在系统管理程序的虚拟化及可用之前,物理处理器上的操作系统时间分片的软件 线程在被称为分时共享的架构中操作。通过系统管理程序的可用性,存在物理处理器的两 个大致独立的调度器。第一调度器或系统管理程序将虚拟处理器分派至物理处理器。第二 调度器或操作系统在执行时管理软件线程。然而,在微分区环境中,通过使用处理器或虚拟处理器而执行软件以执行处理程 序或软件线程的指令。典型操作系统实例或分区可具有在若干物理处理器上同时操作的许 多软件线程。此外,可使用微分区而向分区分配处理器时间的较细粒分配,这导致对于物理 处理器的分摊分时共享级别。此结果是混用操作系统调度与系统管理程序分区调度的后 果。此细粒度是可能的,因为虚拟处理器对应于物理处理器的各种权利(entitlement)。权 利为物理处理器针对线程而操作的分派轮的比例。在此类配置中,每个线程在每个线程被 分配的时间片期间执行。此类配置可增加每个物理处理器的总体使用。软件线程可在分派至虚拟处理器的操作系统内在执行状态与睡眠状态之间交替。 举例而言,当所有必要资源皆可用于软件线程时,该软件线程执行。当资源不受由同一分区 中执行的另一软件线程所持有的互斥锁控制时,资源可用。相反地,当同一分区中执行的另 一软件线程锁定由软件线程的代码所需的资源时,该软件线程睡眠。睡眠软件线程为由于 数据处理资源被由第二执行软件线程获取的锁占据而不能进展的软件线程。尽管如此,当 软件线程正等待某一事件(例如,锁释放)且所述事件发生时,操作系统使软件线程可执行 且向该软件线程分配逻辑处理器。逻辑处理器是抽象硬件线程的虚拟处理器的延伸。其处 理软件线程的指令的执行。如果多个软件线程同时操作,则软件可实现改进的性能。然而,必须小心的是,由 一个线程所使用的资源被保留或被以其他方式防止由第二线程在第一线程的此类有限使用周期期间进行存取及/或修改。排除第二软件线程进行存取的一种方式是使第一线程建 立与资源关联的锁。锁是对应于数据处理资源(例如,一段存储器)的位集合。锁可包括 用于追踪锁的细节的索引号或其它识别符。SMP的设计者试图实现的一个目标是使线程等待锁变得可用的时间最小化。因此, 需要有效地调度竞争锁以便减少在睡眠状态下所花费的时间的软件线程。
技术实现思路
本专利技术优选地提供一种用于将软件线程分配给具有多个虚拟处理器且可能在虚 拟处理器内具有多个逻辑处理器的数据处理系统的公共虚拟处理器的计算机实现的方法 及装置。初始地,所述数据处理系统可将第一软件线程分配给所述公共虚拟处理器。数据 处理系统优选地检测第一软件线程与第二软件线程之间关于与所述数据处理系统的资源 关联的锁的合作。响应于检测到合作,所述数据处理系统优选地将所述第二软件线程移动 到所述公共虚拟处理器。根据第一方面,提供了一种用于将软件线程分配给具有多个虚拟处理器的数据处 理系统的第一虚拟处理器的计算机实现的方法,所述方法包含将第一软件线程分配给所 述第一虚拟处理器;检测第一软件线程与第二软件线程之间关于与所述数据处理系统的资 源关联的锁的合作;及响应于检测到合作,将所述第二软件线程移动到所述第一虚拟处理O根据第二方面,提供了一种用于将软件线程分配给具有多个虚拟处理器的数据处 理系统的第一虚拟处理器的计算机程序产品,所述计算机程序产品包含用于响应于检测 到合作而将第一线程分配给所述第一虚拟处理器的计算机可用程序代码;用于检测第一线 程与第二线程之间关于与所述数据处理系统的资源关联的锁的合作的计算机可用程序代 码;及用于响应于检测合作的计算机可用程序代码而将所述第二线程移动到所述第一虚拟 处理器的计算机可用程序代码。根据第三方面,提供了一种数据处理系统,所述系统包含总线;存储设备,其连 接至所述总线,其中计算机可用代码位于所述存储设备中;通信单元,其连接至所述总线; 处理单元,其连接至所述总线,其中所述处理单元可操作以执行所述计算机可用代码以便 将软件线程分配给具有多个虚拟处理器的数据处理系统的第一虚拟处理器,所述处理单元 还可操作以执行所述计算机可用代码以将第一线程分配给所述第一虚拟处理器;检测第一 线程与第二线程之间关于与所述数据处理系统的资源关联的锁的合作;及响应于检测到合 作,将所述第二线程移动到所述第一虚拟处理器。附图说明现在将仅通过示例的方式参考附图描述本专利技术,这些附图是图IA为根据本专利技术的一个说明性实施例的数据处理系统;图IB及图IC为根据本专利技术的一个说明性实施例的数据处理系统的组件的逻辑 图;图2A及图2C为两个软件线程的示意图;图2B示出了根据本专利技术的一个实施例的在一时间间隔期间软件线程到一个或多个虚拟处理器的分配;图2D、图2E及图2F示出了根据本专利技术的一个说明性实施例的用于移动软件线程 以在逻辑处理器上操作的步骤;图3示出了根据本专利技术的一个说明性实施例的与每个软件线程关联的数据结构;图4A示出了根据本专利技术的一个说明性实施例的软件线程及虚拟处理器的状态;图4B示出了根据本专利技术的一个说明性实施例的允许操作系统将软件线程移动到 虚拟处理器的流程图;图5示出了根据本专利技术的一个说明性实施例的响应唤醒之后的软件线程的流程 图;以及图6示出了根据本专利技术的一个说明性实施例的可基于异步方式而移动软件线程 的流程图。具体实施例方式图IA示出了其中可实现本专利技术的说明性实施例的数据处理系统的方块图。数据 处理系统100可为对称多处理器(SMP)系统,其包括连接至系统总线106的多个处理器 101、102、103及104。举例而言,数据处理系统100可以是IBM eServer 且实现为网络 内的服务器。IBM和eServer为国际商业机器公司的商标。备选地,可使用单处理器系统。 还连接至系统总线106的是存储器控制器/高速缓存108,其向多个本地存储器160-163提 供接口。I/O总线桥接器110连接至系统总线106且向I/O总线112提供接口。可如所描 绘而集成存储器控制器/高速缓存108与I/O总线桥接器110。数据处理系统100是逻辑分本文档来自技高网
...

【技术保护点】
一种用于将软件线程分配给具有多个虚拟处理器的数据处理系统的第一虚拟处理器的计算机实现的方法,所述方法包含:将第一软件线程分配给所述第一虚拟处理器;检测第一软件线程与第二软件线程之间关于与所述数据处理系统的资源关联的锁的合作;及响应于检测到合作,将所述第二软件线程移动到所述第一虚拟处理器。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:BR奥尔斯泽斯基D米歇尔LB布伦纳
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

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

1