基于存储器调页行为关联非相关进程内线程的方法和系统的制作方法

文档序号:6461234阅读:128来源:国知局
专利名称:基于存储器调页行为关联非相关进程内线程的方法和系统的制作方法
技术领域
本发明 一般涉及数据处理系统并且特别涉及内核进程管理。更为特别 地,本发明涉及一种用于关联来自非相关进程的线程的改进的方法、系统 和程序产品。
背景技术
典型的个人计算机的存储器系统包括一个或多个诸如磁盘或光盘之类的非易失性大容量存储设备和易失性随机读取存储器(RAM)、以及易失 性随机存取存储器,其可以包括高速緩冲存储器和较低速率的主存储器二 者。为了提供足够的用于存储器映射的输入/输出(I/O)的地址以及由操 作系统和应用软件所使用的数据和指令,个人计算机的处理器通常使用包 括了比RAM中物理上存在的多得多的地址的虛拟地址空间。由此,为了 执行存储器映射的I/O或为了访问RAM,处理器将虛拟地址映射到已分配 给特定I/O i殳备的物理地址或RAM内的物理位置。在PowerPC RISC体系结构中,虛拟地址空间被分区成许多存储页 面,其中每个存储页面具有被称为页表项(PTE)的地址描述符。对应着 特定存储页面的PTE包含该存储页面的虛拟地址和该页帧的相关联的物 理地址,由此使处理器能够将该存储页面内的任何虛拟地址翻译成存储器 中的物理地址。由操作系统在存储器中创建的PTE位于页表项组(PTEG) 中,每个页表项组(PTEG )可以包含例如多至八个PTE。根据PowerPCTM 体系结构,特定的PTE可以位于主PTEG或次PTEG中的任何一个中的 任意位置,主PTEG和次PTEG是通过分别对存储页面的虛拟地址执4亍主 和次哈希函数来选择的。为了改善性能,处理器还包括转换后备緩冲器 (TLB ),其存储最近被访问的PTE用于进行快速访问。在常规计算机操作系统(OS)中,多个处理器的线程可以共享单一物理处理器。每个进程线程周期性地被处理器执行预定量的时间(常称为时 间片)。然而,活动的进程线程很少在一时钟周期期间使用现代处理器内的所有多个执行单元。同时多线程(SMT)使多个进程的线程能够在同一 时钟周期中执行不同的指令,由此使用了否则将被单个进程线程搁置空闲 的执行单元。应用程序常需要来自诸如设备驱动程序或端口监控程序(daemon)之 类的另一应用(也称为"伙伴应用")或内核进程的协助,以完成一个或 多个操作。在某些情况下,伙伴应用或协助内核进程在应用程序被编码时 是未知的,因为应用程序、数据处理系统硬件以及操作系统常常是独立开 发或由不同厂家开发的。当存储器约束或其它操作条件导致应用程序被调 页(page)进存储器时,依赖于伙伴应用或协助内核进程的帮助的应用程 序常展现出次优的性能,因为伙伴应用/进程将也被以"滞后(lagging)" 的方式调页进存储器。以"滞后"的方式将伙伴应用/进程调页进存储器延 迟了执行所协助的应用,所协助的应用在执行路径上正在等待伙伴应用的 调页(page-in)。发明内容所公开的是一种在存储器调页行为方面将非相关应用内的相关进程线 程连接(tie)到一起的方法、系统和计算机程序产品。在数据处理系统中, 第一进程线程与单独的高等待时间的存储位置内的一个或多个"伙伴"线 程相关。内核基于用户输入、线程"调页,,模式、以力或者这些线程数据 结构内的预定义的标识信息来标识该第一线程的一个或多个相关线程。出 于存储器管理调页的目的,内核用该线程标识信息来将该第一线程与一个 或多个相关伙伴线程聚集到一起。因此,第一线程和匹配的相关伙伴线程 在相同或相近的执行周期内被调页进较低等待时间的存储器,由此消除了 针对第 一线程的执行延迟,否则第一线程在以滞后的方式将一个或多个伙 伴线程从单独的较高等待时间的存储位置调页进较低等待时间的存储器时将必须进行等待。因此,在存储器调页行为方面将来自非相关应用的相关 线程连接到一起通过改善存储器管理而提高了处理器的执行效率。在以下详细的书面描述中,本发明的上述内容以及另外的目标、特征 和优点将是显而易见的。


通过参考以下结合附图来阅读的说明性实施例的详细描述,将能最好地理解本发明自身及其优选的使用模式、别的目标、以及优点,在附图中图l描绘了根据本发明的示例性数据处理系统;图2示出了4艮据本发明的在不同进程内的线程以及相关"伙伴,,线程 的框图;图3A是根据本发明的、出于存储器调页的目的使用内核推导 (deduction )来关联来自非相关应用的相关进程的示例性方法的高层逻辑 流禾呈图;以及图3B是根据本发明的、出于存储器调页的目的使用可编程用户接口 来把来自非相关应用的相关进程关联起来的示例性方法的高层逻辑流程 图。
具体实施方式
现在,参考各图并且特别参考图1,描绘了其中可以使用本发明的示 例性计算机100的框图。计算机100包括耦合到系统总线106的处理器单 元104。驱动/支持显示器110的视频适配器108也耦合到系统总线106。 系统总线106经由总线桥112耦合到输入/输出(I/O)总线114。 1/0接口 116耦合到I/O总线114。 I/O接口 116提供与各种I/O设备的通信,各种 1/0设备包括键盘118、鼠标120、数字通用盘(DVD)驱动器122、软盘 驱动器124以及闪存驱动存储器126。连接到1/0接口 116的各端口的格 式可以是计算机体系结构领域的技术人员所公知的任何一种,其包括但不 限于通用串行总线(USB)端口。计算机100能够使用耦合到系统总线106的网^!妾口 130经由网络128 与服务器150进行通信。网络128可以是诸如因特网之类的外部网络或诸 如以太网之类的内部网络或虛拟专用网(VPN)。硬盘驱动器接口 132也耦合到系统总线106。硬盘驱动器接口 132与 硬盘驱动器134进行接口 。在优选的实施例中,"慢速"或较高等待时间 的数据存储设^(例如,硬盘驱动器134和DVD驱动器122 )填充(populate ) 一个或多个也耦合到系统总线106的"快速"或较低等待时间的存储设备 (例如,系统存储器136 )。系统存储器106被定义为计算机100中的最 低级别的易失性存储器。这种易失性存储器可以包括另外的更高级别的易 失性存储器(未示出),其包括但不限于高速緩沖存储器、寄存器和緩沖 器。填充系统存储器136的代码包括操作系统(OS) 138和应用程序144。OS 138包括命令解释程序(shell) 140,用于提供对诸如应用程序144 之类的资源的透明的用户访问。通常,命令解释程序140 (如它在UNIX 中所称呼的那样)是提供用户与操作系统之间的接口和解释器的程序。如 所描绘的那样,OS 138还包括内核142,其包括用于OS 138的较^f氐层的 功能。内核142提供OS138的其它部分和应用程序144所需的必要服务。 内核142所提供的服务包括存储器管理、进程和任务管理、盘管理、以及 鼠标和键盘管理。应用程序144包括浏览器146和媒体播放器148。浏览器146包括使 万维网(WWW)客户端(也即计算机100)能够发送和接收到因特网的 网络消息的程序模块和指令。计算机100可利用超文本传送协议(HTTP) 和简单邮件传送协议(SMTP)消息传送来使能与服务器150的通信。媒 体播放器148使计算机100能够执行来自诸如DVD驱动器122、硬盘驱动 器134和服务器150之类的一个或多个存储位置的各种音频和/或可视媒体 程序。在计算机100中所描绘的硬件组件不是旨在进行穷举,而是表示和/ 或突出可以被用来实现本发明的某些部件。例如,计算机100可包括诸如 盒式磁带、致密盘只读存储器(CD-ROM )等等之类的可替换的存储设备。这些以及其它变体旨在属于本发明的精神和范围内。现在参考图2,描绘了根据本发明的线程200和相关"伙伴"线程205 的框图。如此处所使用,相关伙伴线程是指提供信息和/或执行线程200所 需的进程的线程。在一个例子中,线程200形成媒体播放器148(来自图1) 的一部分,其在没有运行时驻留在硬盘驱动器134中,而伙伴线程205驻 留于DVD驱动器122 (来自图1)中的DVD上。相关线程可源于不同的 非相关进程、设备驱动程序或内核脚本。线程200包括对于线程200来说 唯一的线程标识符(ID) 210、标签值225以及触发值220a,如在下面在 图3A和3B中所示出和所讨论的那样,触发值220a可以用于将线程200 连接(tie)到独立的相关线程。如此处所使用的,线程ID是指线程的数 据结构内所包括的预定义标识信息。类似地,伙伴线程205包括对于线程 205来说唯一的线程ID215、标签值230、触发值220b,其将伙伴线程205 连接到线程200。根据说明性的实施例,当处理器单元104执行媒体播放器148的线程 200时,线程200需要来自位于DVD驱动器122 (也即高等待时间的存储 装置)中的伙伴线程205的输入或处理。内核63使用下面所讨论的图3A 和3B中所示出的方法之一将伙伴线程205连接到线程200,以确保在与线 程200相同的或者随后紧跟着的执行周期处开始之时伙伴线程205被调页 进系统存储器136 (也即低等待时间的存储装置)。因此,当内核63在与 线程200的相同或相近的执行周期内唤醒系统存储器136中的伙伴线程 205时,内核63能够消除执行延迟,否则如果线程200必须等待用滞后的 方式从DVD驱动器122中调页伙伴线程205 ,则这种执行延迟将会发生。现在转到图3A,示出了根据本发明的、出于存储器调页的目的使用内 核推导来关联相关进程的示例性方法的高层逻辑流程图。响应于处理器单 元104执行线程200,进程开始于方框300处并接着前进到方框305,其描 绘了内核63建立、访问或确定分析窗口的持续期。分析窗口是内核63在 其间跟踪并分析处于活动和/或休眠状态的多个有效(live)线程的调页才莫 式的时间段。在一个实施例中,分析窗口的持续期可以是主存储器50中所存储的预定的常数或缺省值。在另一实施例中,内核63可提供图形用户界 面(GUI)以提示用户来定义分析窗口的持续期。在方框310处,内核63分析在所定义的分析窗口内是活动的线程的调 页模式以便标识可能相关的线程(也即伙伴线程)。如方框315中所示出 那样,如果在分析窗口内线程200在处理器单元104的一个或多个执行周 期期间"醒来"或被调页进页表60,则内核63在相同的N (其中N大于 或等于1)个周期期间确定线程200是否需要来自任何伙伴线程205的输 入(也即向任何伙伴线程205发出调页请求)。如果内核63确定在分才斤窗 口内没有任何伙伴线程205展现出与线程200相同的调页行为,则线程匹 配过程在方框325处终止。如果在方框315处内核63确定一个或多个伙伴线程205展现出与线程 200相同的调页行为,则如方框320所示内核63用唯一的触发值220来标 记线程200和它的一个或多个伙伴线程205,并且过程在方框325处终止。 如此处所使用的,唯一的触发值220是指标记一个或多个线程的组的值, 以使内核63能够将共享着相同的触发值220的线程标识为一组,以及在与 处理器单元104的相同或几乎同步的执行周期内唤醒该组和/或将该组调页 进系统存储器136。内核63可以出于存储器调页目的使用多个唯一触发值 220来标识并聚集不同的线程200和它们对应的伙伴线程205。现在转到图3B,示出根据本发明的、将相关线程从非相关进程调页进 低等待时间的数据存储装置的存储器管理的示例性方法的高层逻辑流程 图。过程开始于方框330并且接着前进到方框335,其描绘内核63确定线 程200是否已经祐:调页进系统存储器136供执行。如果线程200还没有被 调页进系统存储器136,则过程返回到方框335。 一旦内核63确定线程200 已经被调页进系统存储器136,则如方框340中所描绘的那样,内核63确 定线程200是否在线程200的数据结构内包括标签值225,该标签值225 向内核63指示出线程200具有相关的伙伴线程205。如果内核63确定线程200不包括指示出线程200具有相关的伙伴线程 205的标签值225 (也即,线程200不依赖于任何伙伴线程205),则线程匹配过程在方框360处终止。如果内核63确定线程200包括标签值225, 其被设置成指示出线程200具有相关的伙伴线程205 (也即,线程200依 赖于一个或多个伙伴线程205),则如方框345中所描绘的那样,内核63 搜索包括匹配线程200的触发值220a的触发值220的伙伴线程205。才艮据 说明性的实施例,在一个或多个相关线程的集合内的每个线程(例如,线 程200和一个或多个伙伴线程205)包括相同的触发值220。因此,触发值 对于特定集合的相关线程而言是唯一的,从而内核63可以识别不同集合的 相关线程。在方框350处,内核63确定在方框345处如上所述所执行的搜索期间 是否发现了包括与线程200的触发值220a相匹配的触发值220的一个或多 个伙伴线程205 (也即匹配的伙伴线程205)。如果内核63没有找到具有 与线程200的触发值220a相匹配的触发值220的 一个或多个伙伴线程205, 则过程返回到方框345直到一个或多个匹配的伙伴线程205 ^皮标识为止。 一旦内核63标识一个或多个匹配的伙伴线程205,则如方框355中所描绘 那样,内核在相同或相近的执行周期中将相关线程调页进系统存储器136, 并且过程在方框360处终止。因此,本发明使内核63能够基于用户输入和/或线程数据结构内的预 定义标识信息来标识不同应用内的相关的线程组。出于调页目的,内核63 使用线程标识信息来将线程200和一个或多个伙伴线程205聚集起来,由 此通过使一个或多个伙伴线程205能够在与线程200的相同或相近的执行 周期内被调页进系统存储器136,消除了针对线程200的执行延迟。因此, 本发明通过关联驻留于可能不同的高等待时间的存储位置中的相关线程供 在执行期间同时或近似同时调页进低等待时间的数据存储装置(例如系统 存储器136),提高了处理器单元104的执行效率。应当理解,此处对具体名字的使用仅是用于举例并且意思不是暗示对 本发明的任何限制。因此,本发明可不受任何限制地通过被用于描述上面 的设备/工具等的不同命名/术语以及相关联的功能来实现。尽管在具有已安装的软件的功能完整的计算机系统的背景中描述了本发明的说明性实施例,但是本领域的技术人员将意识到本发明的说明性实 施例的软件方面能够以各种形式被分布成程序产品,并且本发明的说明性 实施例同样适用,而与被用于实际执行这种分布的信号承栽介质的特定类 型无关。信号承栽介质的例子包括诸如便携驱动器、软盘、硬盘驱动器、CD ROM、 DVD之类的可记录类型的介质和诸如数字和模拟通信链路之类的传输类型的介质。尽管已参考优选的实施例特别地示出和描述了本发明,但本领域的技术人员应当理解在不偏离本发明的精神和范围的条件下此处可以在形式和细节上做出各种改变。
权利要求
1.数据处理系统中的一种方法,包括分析包括了第一和第二线程的多个线程的存储器调页模式;基于所述多个线程的所述存储器调页模式将所述第二线程标识为与所述第一线程相关;存储所述第二线程与所述第一线程相关的指示;以及当将所述第一线程从较高等待时间的数据存储装置调页进较低等待时间的数据存储装置时,检查相关线程的已存储的指示并且基于所述已存储的指示将所述第二线程调页进所述较低等待时间的数据存储装置。
2. 根据权利要求l所述的方法,其中分析所述存储器调页模式进一步 包括定义包括了预定数目的执行周期的分析窗口 。
3. 根据权利要求l所述的方法,其中存储所述指示包括存储触发值。
4. 根据权利要求3所述的方法,其中所述存储所述触发值进一步包括 在所述第 一线程的数据结构内存储所述触发值。
5. 根据权利要求4所述的方法,其中所述多个线程进一步包括也与所述第一线程相关的第三线程;以及 存储触发值的所述步骤进一步包括在所述第二和第三线程中存储所述 触发值。
6. 根据权利要求l所述的方法,其中将所述第二线程调页进较低等待 时间的数据存储装置是在与将所述第一线程调页进所述存储器的相同的执 行周期中开始的。
7. —种数据处理系统,包括 处理器;存储器;所述存储器中的内核,其中所述存储器存储所述内核在所述处理器上 执行进程期间所使用的多个线程;用于分析包括了第一和第二线程的所述多个线程的存储器调页模式的装置;用于基于所述多个线程的所述存储器调页模式将所述第二线程标识为与所述第一线程相关的装置;用于存储所述第二线程与所述第 一线程相关的指示的装置;当将所述第 一线程从较高等待时间的数据存储装置调页进较低等待时间的数据存储装置时,用于检查相关线程的已存储的指示并且基于所述已存储的指示将所述第二线程调页进所述较低等待时间的数据存储装置的装置。
8. 根据权利要求7所述的数据处理系统,其中用于分析所述存储器调 页模式的所述装置进一步包括用于定义包括了预定数目的执行周期的分析 窗口的装置。
9. 根据权利要求7所述的数据处理系统,其中用于存储所述指示的所 述装置包括用于存储触发值的装置。
10. 根据权利要求9所述的数据处理系统,其中用于存储所述触发值 的装置进一步包括用于在所述第一线程的数据结构内存储所述触发值的装 置。
11. 根据权利要求10所述的数据处理系统,其中 所述多个线程进一步包括也与所述第一线程相关的第三线程;以及 用于存储触发值的所述装置进一步包括在所述第二和第三线程中存储所述触发值。
12. 根据权利要求7所述的数据处理系统,其中将所述第二线程调页 进较低等待时间的数据存储装置是在与将所述第一线程调页进所述存储器 的相同的执行周期中开始的。
全文摘要
一种在存储器调页行为方面将非相关应用内的相关进程线程连接到一起的方法。在数据处理系统中,第一进程线程与单独的高等待时间的存储位置内的一个或多个“伙伴”线程相关。内核分析多个线程的存储器“调页”模式并且基于用户输入、已观察的存储器调页模式、以及/或者这些线程数据结构内的预定义的标识信息来标识第一线程的一个或多个伙伴线程。内核用唯一的线程标识符来标记第一线程和它的对应的相关伙伴线程。当第一线程随后被调页进更低等待时间的存储器时,内核也步伐一致地调页用该唯一线程标识符标记了的相关伙伴线程。在存储器调页行为方面将来自非相关应用的相关线程连接到一起消除了存储器管理延迟。
文档编号G06F12/08GK101251811SQ200810081209
公开日2008年8月27日 申请日期2008年2月19日 优先权日2007年2月20日
发明者G·F·麦克布瑞尔蒂, J·C·穆里洛, J·M-H·谢, S·P·马伦 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1