CN1728097A - 切换在系统复位异常时锁定页表项的锁定位组合的方法 - Google Patents
切换在系统复位异常时锁定页表项的锁定位组合的方法 Download PDFInfo
- Publication number
- CN1728097A CN1728097A CN200510082771.0A CN200510082771A CN1728097A CN 1728097 A CN1728097 A CN 1728097A CN 200510082771 A CN200510082771 A CN 200510082771A CN 1728097 A CN1728097 A CN 1728097A
- Authority
- CN
- China
- Prior art keywords
- system reset
- unusually
- takes place
- data handling
- reset
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/524—Deadlock detection or avoidance
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Debugging And Monitoring (AREA)
- Advance Control (AREA)
Abstract
一种用于更改锁定位组合的方法、系统和计算机指令,所述锁定位组合用于在接收到系统复位异常时锁定资源。本发明根据系统复位异常发生的次数强制软件使用不同的锁定位组合。当接收到系统复位异常时,根据系统复位异常发生的历史来更新专用寄存器中的系统复位异常位值。根据系统复位异常位中的更新后的值,更改用于锁定资源的所述锁定位组合以允许所述数据处理系统重新使用具有错误锁定位的资源。以这种方式,消除了死锁的资源,并且处理器不能在系统资源上获得由系统复位异常引起的无限期地保持的锁定。
Description
技术领域
本发明一般地涉及改进的数据处理系统。具体地说,本发明涉及用于处理系统复位异常(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[0∶1](00到01,等)以反映系统复位异常已经发生的次数。其锁定位字段与根据SREB[0∶1]当前值的锁定位组合选择相匹配的PTE项被认为由处理器正确地锁定并拥有。否则,PTE项没有被处理器锁定并拥有(尽管其可能由先前的锁定位组合正确地锁定并拥有)。当PTE更新过程遇到先前锁定的PTE(就SREB[0∶1]的当前值而言是错误的锁定位组合)时,所述过程不但能够使用正确的锁定位组合来锁定PTE以建立所有权并更新PTE,而且还可以在PTE被更新之后借助释放PTE(将00写入锁定位字段)来修复死锁的PTE。
对于SREB的两个位,存在四种可能的组合。例如,可能的组合是:0b00、0b01、0b10以及0b11。两个位初始被设置为被清除,然后被设置为0b00。当第一次系统复位异常发生时,系统复位处理程序将专用寄存器中的两个位更改为0b01。如果第二次系统复位异常发生,则这两个位再次被更改为0x10或0b10。最终,如果第三次系统复位异常发生,则这两个位被更改为0b11。然后,系统复位处理程序将修改自身以便任何将来的系统复位异常会始终将这两个位保持在0b11。因此,可以生成以下状态表:
SREB[0∶1]
发生复位异常的次数
0b00 没有复位
0b01 一次复位
0b10 两次复位
0b11 三次或更多次复位
当系统固件处理程序查看到第一次和第二次系统复位异常时,程序控制被传送回操作系统复位处理程序。但是,对于第三次系统复位异常或超过三次的系统复位异常,系统复位处理程序可能重新引导系统而不是回到操作系统复位处理程序。
一旦在系统复位异常发生位中标识了复位异常发生,当试图建立对PTE的专有所有权时,页表更新过程将需要使用新的锁定位组合。为此,软件从专用寄存器读取SREB[0∶1]。根据SREB[0∶1]的值,相应的页表项锁定位组合被用来锁定页表项。例如,如果两个页表项锁定位被命名为PTE_LOCK[0∶1],则软件可以如下表所示,使用PowerPC原子指令来更新PTE_LOCK[0∶1]:
SREB[0∶1]
PTE LOCK[0∶1]
0b00 0b01
0b01 0b10
0b10 0b11
0b11 xxxx
PTE_LOCK[0∶1]中的“xxxx”值指示由于在此情况下系统复位处理程序将重新引导系统,PTE更新过程将永远查看不到SREB[0∶1]组合。
因此,如果PTE被锁定(例如,PTE_LOCK[0∶1]=0b01),并且第一次系统复位异常发生,则当软件将PTE重新用于新的虚拟地址转换时,由于现在SREB[0∶1]=0b01并且PTE_LOCK[0∶1]=0b10,此PTE将不会被作为死锁的PTE。类似地,在第二次系统复位异常发生之后,由于页表项更新过程会将锁定位更新为PTE_LOCK[0∶1]=0b11,具有PTE_LOCK[0∶1]=0b10的死锁的PTE将可以被重新使用。
通过重新使用PTE,软件还可以成功地设法释放PTE。因此,无需页表搜索来释放锁定的PTE,并且消除了死锁的PTE状态。
必须指出,尽管根据页表项锁定描述了本发明,但是本发明可以应用于任何类型的软件锁定。例如,当SREB[0∶1]=0b00时,处理器使用软件锁定组合“A”来建立资源的专有所有权。如果发生系统复位异常,则本发明允许处理器使用锁定组合“B”来建立所述资源的专有所有权,尽管该资源被使用锁定组合“A”来锁定(由于在新的SREB[0∶1]=0b01下,锁定组合“A”并未指示正确的已建立的资源所有权,其现在被认为是不正确的组合)。
接着转到图2,图2示出了已知的页表项格式,其示出了软件用来实现锁定机制的位。在此实例中,所示页表项200包括两个64位的双字,Dword 0202和Dword 1204。图2中所示的页表项可以在诸如图1中的数据处理系统100之类的数据处理系统中实现。
在示出的实例中,Dword 0202包括虚拟页码(VPN)字段206和位字段208。Dword 1204包括实际页码(RPN)字段210和位字段212。VPN字段206包含虚拟页地址的高阶(high order)位。RPN字段210包含物理页地址的高阶位。如上所述,位字段用于存储描述页表项的属性信息,例如页是否已经被写入、何时其被最后使用以及何种类型的进程可以对其进行读写。例如,Dword 0202中的位字段208包括软件使用(SW)位214、页表项锁定位(LK)216、哈希函数标识符位(H)218以及有效位(V)220。Dword 1204中的位字段212包括参考/更改位(RC)222、存储控制位(WIMG)224以及页保护位(PP)226。
具体地说,Dword 0202内的页表项锁定位216被用作锁定机制,以便当另一个进程或线程正在使用资源时,阻止其他等待获取资源的进程或线程。例如,在更新页表项之前,页表项锁定位216可以被用来锁定页表项200以便建立用于串行化的专有所有权。通过在页表项上设置锁定位,阻止了其他进程在同一时刻访问或更新资源。
现在转到图3,图3示出了根据本发明的一个优选实施例的用于建立将被用来锁定页表项的锁定位组合的过程的流程图。此过程由软件复位处理处理程序执行以响应系统复位异常的发生。图3中所示的过程可以在诸如图1中的数据处理系统100之类的数据处理系统中实现。
当系统复位异常发生时,所述过程开始于判定系统复位异常位值(SREB[0∶1])是否为00(步骤302)。如果是,则软件复位处理程序将SREB[0∶1]值更改为01(步骤304),同时过程继续到步骤312。
返回步骤302,如果SREB[0∶1]值不是00,则判定SREB[0∶1]值是否为01(步骤306)。如果是,则软件复位处理程序将SREB[0∶1]值更改为10(步骤308),同时过程继续到步骤312。
返回步骤306,如果SREB [0∶1]值不是01,则判定SREB[0∶1]值是否为10(步骤310)。如果是,则软件复位处理程序将SREB[0∶1]值更改为11(步骤311),同时过程继续到步骤312。
返回步骤310,如果SREB[0∶1]值不是10,则判定SREB[0∶1]值是否为11(步骤312)。如果判定SREB[0∶1]值是11,则判定平台策略是否为执行平台重新引导(步骤316)。此判定由固件做出,所述固件实现默认的平台重新引导策略。当操作系统启动并运行时,操作系统可以请求将默认的平台重新引导策略更改为关闭系统电源。如果应该执行平台重新引导,则执行系统重新引导(步骤318)。如果不应该执行平台重新引导,则系统被关闭(断开电源)(步骤320)。
返回步骤312,如果判定SREB[0∶1]值不是11,则判定操作系统是否已将其复位处理程序的地址登记到系统复位异常处理程序(步骤322)。如果是,则系统复位处理程序将控制传递给操作系统复位处理程序(步骤324),同时过程在此后终止。如果判定操作系统尚未将其复位处理程序的地址登记到系统复位异常处理程序,则过程在步骤316继续。
图4是根据本发明的一个优选实施例的用于根据系统复位异常位来标识将使用的页表项锁定组合并更新页表项的过程的流程图。当操作系统想要在页表内建立新的虚拟地址转换时,可以执行此过程。图4中所示的过程可以在诸如图1中的数据处理系统100之类的数据处理系统中实现。
该过程开始于判定专用寄存器中的SREB[0∶1]值是否为00(步骤402)。如果是,则用于锁定PTE的页表项锁定组合被标识为01(步骤404)。例如,如果判定SREB[0∶1]值是00,则当页表项使其PTE_LOCK[0∶1]=0b01时,该页表项被认为已锁定。
返回步骤402,如果SREB[0∶1]值不是00,则判定SREB[0∶1]值是否为01(步骤406)。如果是,则用于锁定PTE的页表项锁定组合被标识为10(步骤408)。例如,如果判定SREB[0∶1]值是01,则当页表项使其PTE_LOCK[0∶1]=0b10时,该页表项被认为已锁定。
返回步骤406,如果SREB[0∶1]值不是01,则用于锁定PTE的页表项锁定组合被标识为11(步骤410)。例如,如果判定SREB[0∶1]值不是01,则当页表项使其PTE_LOCK[0∶1]=0b11时,该页表项被认为已锁定。
一旦确定了正确的锁定组合,固件就读取页表项中的锁定位(步骤412)。然后,判定从页表项读取的当前锁定位是否与使用SREB[0∶1]值来标识的正确的锁定组合相匹配(步骤414)。执行此步骤以判定页表项当前是否被锁定(即,页表项是否在更新中)。如果存在匹配,则过程返回步骤412。在这种情况下,PTE当前由正确锁定该PTE的另一个处理器所拥有。因此,该处理器将需要等待PTE被释放。由于锁定位将被释放PTE的其他处理器所更改,所述处理器在稍后的时间将看到不同的读数。
如果从页表项读取的当前锁定位与使用SREB[0∶1]值所标识的锁定组合不匹配,则使用根据SREB[0∶1]值所标识的锁定组合来更新页表项锁定位(步骤416),而项的其他位被保留。此更新使用PowerPC原子存储指令来执行。所述原子存储指令确保当两个或更多处理器在同一时间尝试执行相同的更新时,仅有一个处理器将成功,其他处理器都将失败。例如,如果页表项锁定位当前被设置为01(即,PTE_LOCK[0∶1]=0b01),并且根据SREB[0∶1]值所使用的锁定组合为10,则页表项锁定位将被更新为10(例如,PTE_LOCK[0∶1]=0b10)。软件通过执行原子操作将页表项锁定位设置为新的值来更新页表项锁定位。以这种方式,使用从系统复位异常发生的历史得出的锁定位组合来正确地锁定页表项。因此,如果页表项被正确地锁定(例如,PTE_LOCK[0∶1]=0b01并且SREB[0∶1]=0b00),并且系统复位异常立即发生,则由于新的SREB[0∶1]是0b01但PTE_LOCK[0∶1]仍然是0b01(其现在是错误的锁定位组合),页表项将不会被看作已被锁定。当软件想要将此PTE项重新用于新的虚拟地址转换时,软件将能够在释放PTE时更新PTE以及清除错误的锁定组合,而不是遇到死锁情况。
接着,判定页表项锁定位更新是否成功(步骤418)。如果否,则过程返回步骤412。如果更新成功,则使用转换信息来进一步更新页表项(步骤420)。步骤420中的此更新进一步由先前操作中的PTE的V位来控制。如果设置了V位,则不能执行更新,并且处理器释放PTE并定位另一个要使用的PTE。在页表项被更新之后,释放PTE以便页表项锁定位被清除为00,即,PTE_LOCK[0∶1]=0b00(步骤422)。
因此,本发明提供了一种用于在调用共享资源期间避免由于系统复位异常的发生而造成死锁的机制。本发明的机制利用页表项中的两个可用锁定位来消除死锁的页表项状态。本发明根据系统复位异常的发生次数强制软件使用不同的锁定位组合。如果根据系统复位异常发生的历史,用于页表项的锁定位被设置为指定的组合,则该页表项将处于锁定状态。以这种方式,处理器不能在系统资源上获得无限期地保持的锁定。
重要的是注意到,虽然在完整功能的数据处理系统的情况下说明了本发明,本领域的技术人员将理解,可以以指令的计算机可读介质的形式和各种形式来发布本发明的诸过程,并且本发明均可等同地适用而与实际用于执行发布的信号承载介质的特定类型无关。计算机可读介质的实例包括可记录型介质,诸如软盘、硬盘驱动器、RAM、CD-ROM、DVD-ROM和传输型介质,诸如数字和模拟通信链路、使用诸如例如射频和光波传输之类的传输形式的有线或无线通信链路。计算机可读介质可以采取编码格式的形式,可以对其解码以便在特定数据处理系统内实际地使用。
出于示例和说明目的给出了对本发明的描述,并且所述描述并非旨在是穷举的或是将本发明限于所公开的形式。对于本领域的技术人员来说,许多修改和变化是显而易见的。实施例的选择和描述是为了最佳地解释本发明的原理、实际应用,并且当适合于所构想的特定使用时,使得本领域的其他技术人员能够理解本发明的具有各种修改的各种实施例。
Claims (36)
1.一种用于在数据处理系统中更改软件锁定中的锁定位组合以消除死锁的方法,所述方法包括:
接收系统复位异常;
标识将在所述软件锁定中使用的锁定位组合,其中根据系统复位异常发生位的值来标识所述锁定位组合;以及
使用所述标识的锁定位组合来更新所述软件锁定,其中更新所述软件锁定允许所述数据处理系统消除所述死锁。
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的数据处理系统,其中所述系统复位异常发生位的所述值基于系统复位异常发生的历史。
18.根据权利要求13的数据处理系统,其中消除所述死锁允许所述数据处理系统重新使用资源。
19.根据权利要求13的数据处理系统,其中更新所述系统复位异常发生位中的所述值由系统固件复位处理程序来执行。
20.根据权利要求13的数据处理系统,其中所述系统复位异常发生位被存储在专用寄存器中。
21.根据权利要求13的数据处理系统,其中软件读取所述系统复位异常发生位以标识将在所述软件锁定中使用的所述锁定位组合。
22.根据权利要求13的数据处理系统,其中所述系统复位异常发生位被递增以反映系统复位异常已经发生的次数。
23.根据权利要求13的数据处理系统,其中更新所述软件锁定允许过程建立对资源的专有所有权并更新该资源。
24.根据权利要求23的数据处理系统,其中在所述资源被更新之后,所述软件锁定被释放。
25.一种在计算机可读介质中用于更改软件锁定中的锁定位组合以消除死锁的计算机程序产品,所述计算机程序产品包括:
第一指令,所述第一指令用于接收系统复位异常;
第二指令,所述第二指令用于标识将在所述软件锁定中使用的锁定位组合,其中根据系统复位异常发生位的值来标识所述锁定位组合;以及
第三指令,所述第三指令用于使用所述标识的锁定位组合来更新所述软件锁定,其中更新所述软件锁定允许所述数据处理系统消除所述死锁。
26.根据权利要求25的计算机程序产品,进一步包括:
第四指令,所述第四指令用于根据所述系统复位异常发生位中的所述值来执行系统重新引导。
27.根据权利要求25的计算机程序产品,进一步包括:
第四指令,所述第四指令用于根据所述系统复位异常发生位中的所述值来关闭所述数据处理系统。
28.根据权利要求25的计算机程序产品,进一步包括:
第四指令,响应于所述系统复位异常已经由操作系统使用操作系统的复位向量来登记的判定,所述第四指令用于将所述系统复位异常的控制从系统固件复位处理程序传递给操作系统复位处理程序。
29.根据权利要求25的计算机程序产品,其中所述系统复位异常发生位的所述值基于系统复位异常发生的历史。
30.根据权利要求25的计算机程序产品,其中消除所述死锁允许所述数据处理系统重新使用资源。
31.根据权利要求25的计算机程序产品,其中更新所述系统复位异常发生位中的所述值由系统固件复位处理程序来执行。
32.根据权利要求25的计算机程序产品,其中所述系统复位异常发生位被存储在专用寄存器中。
33.根据权利要求25的计算机程序产品,其中软件读取所述系统复位异常发生位以标识将在所述软件锁定中使用的所述锁定位组合。
34.根据权利要求25的计算机程序产品,其中所述系统复位异常发生位被递增以反映系统复位异常已经发生的次数。
35.根据权利要求25的计算机程序产品,其中更新所述软件锁定允许过程建立对资源的专有所有权并更新该资源。
36.根据权利要求35的计算机程序产品,其中在所述资源被更新之后,所述软件锁定被释放。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/902,607 | 2004-07-29 | ||
US10/902,607 US7921250B2 (en) | 2004-07-29 | 2004-07-29 | Method to switch the lock-bits combination used to lock a page table entry upon receiving system reset exceptions |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1728097A true CN1728097A (zh) | 2006-02-01 |
CN100397344C CN100397344C (zh) | 2008-06-25 |
Family
ID=35801334
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005100827710A Expired - Fee Related CN100397344C (zh) | 2004-07-29 | 2005-07-07 | 切换在系统复位异常时锁定页表项的锁定位组合的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7921250B2 (zh) |
CN (1) | CN100397344C (zh) |
TW (1) | TWI356299B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021000656A1 (zh) * | 2019-07-04 | 2021-01-07 | 中兴通讯股份有限公司 | 死锁检测控制方法、装置、通信设备及计算机存储介质 |
CN113326222A (zh) * | 2021-08-03 | 2021-08-31 | 深圳英集芯科技股份有限公司 | 基于通用串行总线供电的通信方法及相关装置 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5137171B2 (ja) * | 2006-07-24 | 2013-02-06 | ルネサスエレクトロニクス株式会社 | データ処理装置 |
US8145903B2 (en) * | 2007-05-25 | 2012-03-27 | Red Hat, Inc. | Method and system for a kernel lock validator |
US8943278B2 (en) | 2012-07-31 | 2015-01-27 | Advanced Micro Devices, Inc. | Protecting large regions without operating-system support |
US8914586B2 (en) * | 2012-07-31 | 2014-12-16 | Advanced Micro Devices, Inc. | TLB-walk controlled abort policy for hardware transactional memory |
US9697143B2 (en) * | 2015-09-30 | 2017-07-04 | International Business Machines Corporation | Concurrent virtual storage management |
US10282243B2 (en) | 2016-09-15 | 2019-05-07 | International Business Machines Corporation | Performance enhancement for platform data dump collection |
Family Cites Families (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4823261A (en) * | 1986-11-24 | 1989-04-18 | International Business Machines Corp. | Multiprocessor system for updating status information through flip-flopping read version and write version of checkpoint data |
JPH01300366A (ja) * | 1988-05-30 | 1989-12-04 | Ube Ind Ltd | 共有データ競合制御方式 |
US5175829A (en) * | 1988-10-25 | 1992-12-29 | Hewlett-Packard Company | Method and apparatus for bus lock during atomic computer operations |
JP2507071B2 (ja) * | 1989-07-17 | 1996-06-12 | 富士通株式会社 | バスロック制御方式 |
US5778423A (en) * | 1990-06-29 | 1998-07-07 | Digital Equipment Corporation | Prefetch instruction for improving performance in reduced instruction set processor |
JPH04127261A (ja) * | 1990-09-18 | 1992-04-28 | Fujitsu Ltd | マルチプロセッサシステム |
US5434970A (en) * | 1991-02-14 | 1995-07-18 | Cray Research, Inc. | System for distributed multiprocessor communication |
JPH07191944A (ja) * | 1991-09-11 | 1995-07-28 | Internatl Business Mach Corp <Ibm> | 多重プロセッサによる多数の資源への命令におけるデッドロックを防止するためのシステムおよび方法 |
DE69230462T2 (de) * | 1991-11-19 | 2000-08-03 | Sun Microsystems Inc | Arbitrierung des Multiprozessorzugriffs zu gemeinsamen Mitteln |
US5398330A (en) * | 1992-03-05 | 1995-03-14 | Seiko Epson Corporation | Register file backup queue |
JPH0675789A (ja) * | 1992-08-26 | 1994-03-18 | Matsushita Electric Ind Co Ltd | 情報処理装置 |
DE4434895C2 (de) * | 1993-12-23 | 1998-12-24 | Hewlett Packard Co | Verfahren und Vorrichtung zur Behandlung von Ausnahmebedingungen |
JP2605623B2 (ja) * | 1994-05-27 | 1997-04-30 | 日本電気株式会社 | 共有テーブルのロック制御方式 |
US5574922A (en) * | 1994-06-17 | 1996-11-12 | Apple Computer, Inc. | Processor with sequences of processor instructions for locked memory updates |
US5682537A (en) * | 1995-08-31 | 1997-10-28 | Unisys Corporation | Object lock management system with improved local lock management and global deadlock detection in a parallel data processing system |
US5852747A (en) * | 1995-09-08 | 1998-12-22 | International Business Machines Corporation | System for awarding token to client for accessing first data block specified in client request without interference due to contention from other client |
US5797019A (en) * | 1995-10-02 | 1998-08-18 | International Business Machines Corporation | Method and system for performance monitoring time lengths of disabled interrupts in a processing system |
US6185668B1 (en) * | 1995-12-21 | 2001-02-06 | Intergraph Corporation | Method and apparatus for speculative execution of instructions |
JP2937857B2 (ja) * | 1996-04-18 | 1999-08-23 | 甲府日本電気株式会社 | 共通記憶装置のロックフラグ解除方式および方法 |
JPH09330241A (ja) * | 1996-06-07 | 1997-12-22 | Tokai Univ | デッドロック防止排他制御方式 |
US6031757A (en) * | 1996-11-22 | 2000-02-29 | Macronix International Co., Ltd. | Write protected, non-volatile memory device with user programmable sector lock capability |
JPH1124947A (ja) * | 1997-07-08 | 1999-01-29 | Sanyo Electric Co Ltd | コンピュータシステムの排他制御方法及びコンピュータシステム |
US6145094A (en) * | 1998-05-12 | 2000-11-07 | Sun Microsystems, Inc. | Transaction locks for high availability |
US6282637B1 (en) * | 1998-12-02 | 2001-08-28 | Sun Microsystems, Inc. | Partially executing a pending atomic instruction to unlock resources when cancellation of the instruction occurs |
US6230230B1 (en) * | 1998-12-03 | 2001-05-08 | Sun Microsystems, Inc. | Elimination of traps and atomics in thread synchronization |
US6243786B1 (en) * | 1998-12-23 | 2001-06-05 | Industrial Technology Research Institute | Apparatus and method for generating an interrupt prohibited zone in pipelined data processors |
JP2001142861A (ja) * | 1999-11-15 | 2001-05-25 | Mitsubishi Electric Corp | マルチプロセッサシステム |
IES20010611A2 (en) * | 2001-03-08 | 2002-09-18 | Richmount Computers Ltd | Distributed lock management chip |
US7089339B2 (en) * | 2001-03-16 | 2006-08-08 | National Semiconductor Corporation | Sharing of functions between an embedded controller and a host processor |
US6779090B2 (en) * | 2002-05-21 | 2004-08-17 | International Business Machines Corporation | Spinlock for shared memory |
US7496574B2 (en) * | 2003-05-01 | 2009-02-24 | International Business Machines Corporation | Managing locks and transactions |
CA2430763A1 (en) * | 2003-05-30 | 2004-11-30 | Ibm Canada Limited - Ibm Canada Limitee | Efficiently releasing locks when an exception occurs |
US7007145B2 (en) * | 2003-08-11 | 2006-02-28 | Finisar Corporation | Control apparatus and method for controlling access to a memory in an integrated circuit for an electronic module |
US7383368B2 (en) * | 2003-09-25 | 2008-06-03 | Dell Products L.P. | Method and system for autonomically adaptive mutexes by considering acquisition cost value |
US20050149711A1 (en) * | 2003-12-30 | 2005-07-07 | Zimmer Vincent J. | Method and system for firmware-based run time exception filtering |
US7137031B2 (en) * | 2004-02-25 | 2006-11-14 | Hitachi, Ltd. | Logical unit security for clustered storage area networks |
EP3029597A1 (en) * | 2005-07-21 | 2016-06-08 | Clevx, LLC | Memory lock system |
WO2007087340A1 (en) * | 2006-01-24 | 2007-08-02 | Clevx, Llc | Data security system |
-
2004
- 2004-07-29 US US10/902,607 patent/US7921250B2/en not_active Expired - Fee Related
-
2005
- 2005-07-01 TW TW094122442A patent/TWI356299B/zh not_active IP Right Cessation
- 2005-07-07 CN CNB2005100827710A patent/CN100397344C/zh not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021000656A1 (zh) * | 2019-07-04 | 2021-01-07 | 中兴通讯股份有限公司 | 死锁检测控制方法、装置、通信设备及计算机存储介质 |
CN113326222A (zh) * | 2021-08-03 | 2021-08-31 | 深圳英集芯科技股份有限公司 | 基于通用串行总线供电的通信方法及相关装置 |
WO2023011351A1 (zh) * | 2021-08-03 | 2023-02-09 | 深圳英集芯科技股份有限公司 | 基于通用串行总线供电的通信方法及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
TWI356299B (en) | 2012-01-11 |
TW200613977A (en) | 2006-05-01 |
CN100397344C (zh) | 2008-06-25 |
US7921250B2 (en) | 2011-04-05 |
US20060036789A1 (en) | 2006-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1728097A (zh) | 切换在系统复位异常时锁定页表项的锁定位组合的方法 | |
US9213623B2 (en) | Memory allocation with identification of requesting loadable kernel module | |
CN1273891C (zh) | 最小单位地更新多个文件的方法 | |
KR100306456B1 (ko) | 오퍼레이팅시스템의재기동방법 | |
CN100407151C (zh) | 用于管理多个热插拔操作的系统和方法 | |
US7149865B2 (en) | Memory allocation using mask-bit pattern to encode metadata within memory address | |
US7363434B2 (en) | Method, system, and computer-readable medium for updating memory devices in a multi-processor computer system | |
CN103544054A (zh) | 用于在事务性存储器系统中实现强原子性的方法、装置和系统 | |
CN100589089C (zh) | 处理直接存储器访问请求的设备和方法 | |
CN109582590B (zh) | 存储器管理的系统中的指针 | |
US7647490B2 (en) | Method and apparatus for providing updated system locality information during runtime | |
CN101889266A (zh) | 事务存储器中的并行嵌套事务 | |
CN110750356B (zh) | 适用于非易失性内存的多核交互方法、系统及存储介质 | |
US6473845B1 (en) | System and method for dynamically updating memory address mappings | |
EP2504759A1 (en) | Method and system for enabling access to functionality provided by resources outside of an operating system environment | |
US9110791B2 (en) | Optimistic object relocation | |
US7793023B2 (en) | Exclusion control | |
US10838861B1 (en) | Distribution of memory address resources to bus devices in a multi-processor computing system | |
US20090222634A1 (en) | Probabilistic object relocation | |
CN1149494C (zh) | 保持高速缓冲存储器一致性的方法和系统 | |
CN102541743B (zh) | 用于存储管理的方法、设备和系统 | |
US7743234B2 (en) | Facilitating communication within an emulated processing environment | |
CN101055543A (zh) | 用于访问另一个进程的进程本地存储装置的方法和设备 | |
CN112860595A (zh) | Pci设备或pcie设备、数据存取方法及相关组件 | |
US8301845B2 (en) | Access control method and computer system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20080625 Termination date: 20160707 |