[发明专利]对来自多处理器系统上的多线程程序的存储器访问进行管理的方法和系统无效
申请号: | 200780047152.5 | 申请日: | 2007-06-15 |
公开(公告)号: | CN101563674A | 公开(公告)日: | 2009-10-21 |
发明(设计)人: | M·韦特斯;D·萨布赫拉维蒂;P·贝格埃奥德 | 申请(专利权)人: | 国际商业机器公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F11/36 |
代理公司: | 北京市金杜律师事务所 | 代理人: | 吴立明 |
地址: | 美国*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 来自 处理器 系统 多线程 程序 存储器 访问 进行 管理 方法 | ||
1.一种用于控制由多处理器计算机上执行的进程所创建的线程对存储器的访问的方法,所述方法包括:
-所述进程请求创建新线程;
-在存储器描述符中分配新页表目录,并创建已有线程的页表的副本;
-等待事件;
-当发生页面错误时,对指示所述页面存在于存储器中并且可写的两个位进行测试;
-如果所述页面存在并且可写,并且如果测试到所述线程将要退出,则
-授予导致所述页面错误的所述线程对所述页面的访问权,并且设置指示所述页面存在于存储器中并且可写的位;
-进行所述等待事件的步骤;
-如果所述页面存在并且可写,如果其他线程拥有对所述页面的访问权并且等待所述其他线程释放所述页面,则等待所述其他线程释放;
-当所述线程已经释放访问权时,
-授予导致所述页面错误的所述线程对所述页面的访问权,并且设置指示所述页面存在于存储器中并且可写的位;
-执行所述等待事件的步骤。
2.如权利要求1的方法,还包括:
-在对指示所述页面存在于存储器中并且可写的两个位进行测试的步骤之后,如果所述页面不存在或者不可写,则让内核来处理所述页面错误;
-通过测试相应的位,来测试所述新页面在由内核进程创建之后是否可写;
-如果所述新页面可写,则重置所述新页面的存在位;
-将所述内核创建的所述页表条目传播到所有线程的其他页表;
-执行所述等待事件的步骤。
3.如权利要求1或2的方法,在所述等待事件的步骤之后还包括:
-在调度线程时,将存储器的硬件上下文切换到将要被调度的所述线程的页表;
-执行所述等待事件的步骤。
4.如权利要求1或2的方法,在所述等待事件的步骤之后还包括:
-当线程退出时,释放用于所述线程的页面目录;
-结束用于所述线程的存储器访问控制。
5.如权利要求1-4中任一的方法,其中在存储器描述符中分配新页表目录并创建作为已有线程的页表的副本的新页面目录的步骤仅在其是第一线程时才执行;并且,还包括:
-重置已经设置了可读位的所有页面的页面存在标记。
6.如权利要求5的方法,其中将存储器的硬件上下文切换到将要被调度的线程的页表的步骤由以下步骤代替:
-如果所述线程有权访问地址空间,则将存储器的硬件上下文切换到已有页表;
-如果所述线程无权访问地址空间,则将存储器的硬件上下文切换到新创建的页面目录。
7.如权利要求5或6的方法,其中当线程退出时释放所述页面目录的步骤由以下步骤代替:
-当所述进程中仅剩下一个其他线程时,释放所述新创建的页面目录。
8.一种包括程序代码指令的计算机程序产品,当所述程序在计算机上执行时,所述指令用于执行根据权利要求1-7中任一方法的步骤。
9.一种系统,包括适合于执行根据权利要求1-7中任一方法的装置。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国际商业机器公司,未经国际商业机器公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200780047152.5/1.html,转载请声明来源钻瓜专利网。