切换在系统复位异常时锁定页表项的锁定位组合的方法技术方案

技术编号:2856076 阅读:192 留言:0更新日期:2012-04-11 18:40
一种用于更改锁定位组合的方法、系统和计算机指令,所述锁定位组合用于在接收到系统复位异常时锁定资源。本发明专利技术根据系统复位异常发生的次数强制软件使用不同的锁定位组合。当接收到系统复位异常时,根据系统复位异常发生的历史来更新专用寄存器中的系统复位异常位值。根据系统复位异常位中的更新后的值,更改用于锁定资源的所述锁定位组合以允许所述数据处理系统重新使用具有错误锁定位的资源。以这种方式,消除了死锁的资源,并且处理器不能在系统资源上获得由系统复位异常引起的无限期地保持的锁定。

【技术实现步骤摘要】

本专利技术一般地涉及改进的数据处理系统。具体地说,本专利技术涉及用于处理系统复位异常(SRE)的方法、装置和计算机指令。
技术介绍
在PowerPC处理器中,可以使用存储器管理单元(MMU)来执行从虚拟地址到物理地址的转换。PowerPC处理器是摩托罗拉公司或国际商业机器公司的产品。MMU利用页表(包括多个被称为页表项(PTE)的项)来帮助从虚拟存储器到实际存储器的转换。当进程通过展示地址来请求系统资源时,MMU会自动地扫描页表以寻找匹配的页表项。当发现匹配时,虚拟存储器被转换成物理存储器以供进程使用。页表项被用于存储物理页码和相应虚拟地址的其他定义信息。物理页码和页偏移被组合以形成完整的物理地址。页表项具有位字段,其包括诸如页是否已经被写入、何时其被最后使用以及何种类型的进程可以对其进行读写之类的属性信息。页表项还可以具有为软件保留的特定位,以实现软件锁定机制,以便为项更新串行化建立对页表项的专有所有权。当进程获得PTE的所有权并且发生不可屏蔽的系统复位异常(SRE)时,使用这种锁定机制将出现问题。SRE类似于实际按下计算机上的“复位”按钮。如果在进程已获得PTE但尚未释放所有权时出现SRE,则由处理器获得的软件锁定将被无限期地保持并变成死锁。即,尽管处理器已经接收到SRE,如果资源调用过早地结束,则页表项仍将指示处理器具有对共享资源的锁定。由于资源调用不能被完成,锁定将永远不会被释放。这种情况导致这样的问题其他进程或线程将不能获得对由处理器锁定的系统资源的访问。这些其他进程将由于不断尝试获得对系统资源的锁定而变得“饥饿”,即,纠缠于锁定,并且永远不能执行要求系统资源锁定的必需工作。在不知道被锁定的特定页表项的情况下,某些系统中的软件必须依靠穷举法来搜索页表,以便寻找被锁定的页表项并将其释放。此类系统的一个实例是JS20刀片服务器,其是国际商业机器公司的产品。由于页表可能非常大,穷举法可能导致长时间的搜索只是为了寻找某个被锁定的页表项。因此,具有一种用于避免由于不可屏蔽的系统复位异常引起的死锁的改进的方法、装置和计算机指令将是有利的。
技术实现思路
本专利技术提供了一种用于更改锁定位组合的方法、系统和计算机指令,所述锁定位组合用于在接收到系统复位异常时锁定资源。本专利技术的机制强制软件根据系统复位异常发生的次数来使用不同的锁定位组合。当接收到系统复位异常时,根据系统复位异常发生的历史来更新专用寄存器中的系统复位异常位值。根据系统复位异常位中的更新后的值,软件采用用于资源更新过程的新的锁定位组合。在资源更新过程中,如果软件遇到先前锁定的资源,则该资源将被正确地重新锁定、更新以及释放。因此,死锁的资源被移除并且数据处理系统能够重新使用该资源。以这种方式,处理器不能在系统资源上获得无限期地保持的锁定。附图说明在所附权利要求中说明了被认为是本专利技术特性的新颖特征。但是,当结合附图阅读时,通过参考以下对示例性实施例的详细说明,可以最佳地理解专利技术本身及其优选使用方式、进一步的目的和优点,这些附图是图1是其中可以实现本专利技术的数据处理系统的方块图;图2是示出了软件用来实现锁定机制的位的已知页表项格式;图3是根据本专利技术的一个优选实施例的用于建立将被用来锁定页表项的锁定位组合的过程的流程图;以及图4是根据本专利技术的一个优选实施例的用于根据系统复位异常位来标识将使用的页表项锁定组合并更新页表项的过程的流程图。具体实施例方式现在参考图1,图1示出了其中可以实现本专利技术的数据处理系统的方块图。数据处理系统100可以是对称多处理器(SMP)系统,其包括多个连接到系统总线106的处理器/高速缓冲存储器102、104和105。尽管仅示出了三个处理器,但是本专利技术可以使用具有其他数量的处理器的数据处理系统来实现。可替代地,可以采用单处理器系统。同时连接到系统总线106的是存储器控制器108,其提供到本地存储器109的接口。I/O总线桥110与系统总线106相连并提供到I/O总线112的接口。如图所示,存储器控制器108与I/O总线桥110可以是集成的。连接到I/O总线112的外围组件互连(PCI)主机桥114提供到PCI局部总线116和126的接口。多个PCI兼容适配器可以与PCI局部总线116和126相连。PCI至PCI桥117提供到PCI总线119和PCI总线121的接口。典型的PCI总线实现将支持四个PCI扩展槽或附加连接器。通过经由附加板连接到PCI局部总线116的调制解调器118和网络适配器120可以提供到其他系统和设备的通信链路。以这种方式,数据处理系统100允许连接多台网络计算机。存储器映射的图形适配器130和非易失性存储器132也可以如示出的那样直接或间接地与I/O总线122相连。可以使用各种可从市场上购买的计算机系统来实现图1中所示的数据处理系统。例如,可以使用IBM eServer pSeries JS20Blade系统来实现数据处理系统100,该系统是纽约阿蒙克的国际商业机器公司的产品,运行高级交互执行(AIX)操作系统或LINUX操作系统。本领域的技术人员将理解,图1中所示的硬件可以有所变化。例如,除所示硬件之外或替代所示硬件,还可以使用诸如硬盘和光盘驱动器之类的其他外围设备。所示实例并非旨在暗示对本专利技术的体系结构限制。本专利技术提供了一种用于在系统复位异常发生时避免死锁的方法、装置和计算机指令。本专利技术认识到软件可以获得对共享资源的锁定,并因此允许独占地访问共享资源直到锁定被释放。软件使用实现锁定机制的两个位的组合来获得锁定。尽管当前可以使用两个位来实现锁定机制,但是现有的系统仅利用了其中的一个位。另一个位未被使用。本专利技术还认识到在某些情况下,例如当系统复位异常在调用共享资源过程中发生时,一旦调用完成,锁定也不会被释放。例如,在现有技术的系统中,系统复位异常的发生将导致处理器立即转到操作系统的复位处理例程。如果处理器在复位时具有对系统资源的锁定,则锁定将不会被释放。结果,处理器将继续无限期地具有对资源的锁定,使得系统中的其他处理器都不能访问被锁定的资源。这些处理器将继续“纠缠”于锁定并由于没有能力完成分配给它们的工作而变得空闲。本专利技术的机制通过利用页表项中的可用锁定位来消除死锁的页表项状态来解决此问题。以这种方式,无需穷举的页表搜索来释放锁定的页表项。根据本专利技术,两个位被用于这些示例性实例中的锁定机制。本专利技术根据系统复位异常的发生次数,强制软件使用不同的锁定位组合。如果根据系统复位异常发生的历史,用于页表项的锁定位被设置成指定的组合,则该页表项将处于锁定状态。以这种方式,处理器不能在系统资源上获得无限期地保持的锁定。从而避免了处理器空闲。在实现此过程之前,整个页表都被闲置并且所有页表项都被清除。PowerPC处理器的专用寄存器中的两个位也被清除以便指示没有发生系统复位异常。这两个位或“系统复位异常发生位”(SREB)被软件读取以确定用于锁定任何特定的PTE项的锁定位组合。锁定位组合被用来设置PTE项的锁定位字段以建立专有所有权。当系统复位异常发生时,递增SREB(00到01,等)以反映系统复位异常已经发生的次数。其锁定位字段与根据SREB当前值的锁定位组合选择相匹配的PTE项被认为由处理器正确地锁定并拥有。否则,PTE项没本文档来自技高网
...

【技术保护点】
一种用于在数据处理系统中更改软件锁定中的锁定位组合以消除死锁的方法,所述方法包括:    接收系统复位异常;    标识将在所述软件锁定中使用的锁定位组合,其中根据系统复位异常发生位的值来标识所述锁定位组合;以及    使用所述标识的锁定位组合来更新所述软件锁定,其中更新所述软件锁定允许所述数据处理系统消除所述死锁。

【技术特征摘要】
US 2004-7-29 10/902,6071.一种用于在数据处理系统中更改软件锁定中的锁定位组合以消除死锁的方法,所述方法包括接收系统复位异常;标识将在所述软件锁定中使用的锁定位组合,其中根据系统复位异常发生位的值来标识所述锁定位组合;以及使用所述标识的锁定位组合来更新所述软件锁定,其中更新所述软件锁定允许所述数据处理系统消除所述死锁。2.根据权利要求1的方法,进一步包括根据所述系统复位异常发生位中的所述值来执行系统重新引导。3.根据权利要求1的方法,进一步包括根据所述系统复位异常发生位中的所述值来关闭所述数据处理系统。4.根据权利要求1的方法,进一步包括响应于所述系统复位异常已经由操作系统使用操作系统的复位向量来登记的判定,将所述系统复位异常的控制从系统固件复位处理程序传递给操作系统复位处理程序。5.根据权利要求1的方法,其中所述系统复位异常发生位的所述值基于系统复位异常发生的历史。6.根据权利要求1的方法,其中消除所述死锁允许所述数据处理系统重新使用资源。7.根据权利要求1的方法,其中更新所述系统复位异常发生位中的所述值由系统固件复位处理程序来执行。8.根据权利要求1的方法,其中所述系统复位异常发生位被存储在专用寄存器中。9.根据权利要求1的方法,其中软件读取所述系统复位异常发生位以标识将在所述软件锁定中使用的所述锁定位组合。10.根据权利要求1的方法,其中所述系统复位异常发生位被递增以反映系统复位异常已经发生的次数。11.根据权利要求1的方法,其中更新所述软件锁定允许过程建立对资源的专有所有权并更新该资源。12.根据权利要求11的方法,其中在所述资源被更新之后,所述软件锁定被释放。13.一种用于更改软件锁定中的锁定位组合以消除死锁的数据处理系统,所述数据处理系统包括接收装置,所述接收装置用于接收系统复位异常;标识装置,所述标识装置用于标识将在所述软件锁定中使用的锁定位组合,其中根据系统复位异常发生位的值来标识所述锁定位组合;以及更新装置,所述更新装置用于使用所述标识的锁定位组合来更新所述软件锁定,其中更新所述软件锁定允许所述数据处理系统消除所述死锁。14.根据权利要求13的数据处理系统,进一步包括执行装置,所述执行装置用于根据所述系统复位异常发生位中的所述值来执行系统重新引导。15.根据权利要求13的数据处理系统,进一步包括关闭装置,所述关闭装置用于根据所述系统复位异常发生位中的所述值来关闭所述数据处理系统。16.根据权利要求13的数据处理系统,进一步包括传递装置,响应于所述系统复位异常已经由操作系统使用操作系统的复位向量来登记的判定,所述传递装置用于将所述系统复位异常的控制从系统固件复位处理程序传递给操作系统复位处理程序。17.根据权利要求13的数据处理系统,其中所述系统复位异常发生位的所述值基于系统复...

【专利技术属性】
技术研发人员:VH李
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

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

1