CN1201189A - 保护存储器的部分的方法和设备 - Google Patents

保护存储器的部分的方法和设备 Download PDF

Info

Publication number
CN1201189A
CN1201189A CN97121209A CN97121209A CN1201189A CN 1201189 A CN1201189 A CN 1201189A CN 97121209 A CN97121209 A CN 97121209A CN 97121209 A CN97121209 A CN 97121209A CN 1201189 A CN1201189 A CN 1201189A
Authority
CN
China
Prior art keywords
storer
processor
service routine
implicit expression
implicit
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
Application number
CN97121209A
Other languages
English (en)
Other versions
CN1082688C (zh
Inventor
弗兰克·诺曼·埃克森
迈克尔·亨利·索多尔·哈克
纳吉·哈里姆
理查德·帕尔文·金
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1201189A publication Critical patent/CN1201189A/zh
Application granted granted Critical
Publication of CN1082688C publication Critical patent/CN1082688C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range

Abstract

一个计算机系统的存储器包括可见部分和隐式部分。存储器的可见部分是可由处理器及在计算机系统内运行的操作系统寻址的。对于存储器的隐式部分来说,则排除了由处理器或操作系统寻址的可能性。存储器的隐式部分用来存储由处理器或操作系统传送的数据。位于存储器可见部分的通信区接收来自处理器或操作系统的数据存取请求。既定址存储器的可见部分,又定址存储器的隐式部分的隐式服务程序接收来自通信区的数据存取请求,并启动从隐式存储器的数据存取。

Description

保护存储器的部分的方法和设备
总的来说,本发明涉及计算机系统,更准确地说,它涉及对存储在位于计算机系统内的存储器部分中的数据的保护。特别是公开了在计算机系统和操作系统对其没有直接访问权的存储器的部分之间传送数据的机制。
当一个进程在计算机系统上进行时,该进程利用存储器的指定部分存储和检索数据。其它进程也可能访问存储器的那些指定部分。
当在计算机系统上运行的第一个进程被中断而随后又恢复时,在第一个进程被中断的期间,在计算机系统上运行的第二个进程可能会访问先前被第一个进程使用过的存储器的部分。当第一个进程被中断时,如果第二个进程重写由第一个进程存储在存储器中的数据值,那末,当第一个进程恢复时,在它被中断以前它曾存储在存储器中的数据值可能将不复存在,这就可能产生错误。
此外,如果几个进程在一个计算机系统内同时运行,一个进程可能把数据存储到另一进程正在使用的存储器的部分中去。这样,在一个进程检索其已存储的数据之前,该数据可能已被破坏。
一个计算机系统可能经历系统再启动,这也是典型的。这样的计算机系统可能有一个提供数据缓冲器的软件应用程序在运行,该缓冲器的内容不会因系统再启动而被擦除。例如,这种情况可能会在纽约州Armonk镇的IBM公司的一项产品,称为“事项处理设施(TPF)”的软件包中遇到。在TPF中,如果有系统再启动,某些数据缓冲器的内容不会被擦除。在再启动完成之后,当TPF继续在系统再启动之前它所处的点上运行时,未被擦除的数据缓冲器的内容仍保持原样是最理想的。但是,这些数据缓冲器是系统上运行的任何应用程序都可以访问的。因此,这些数据缓冲器可能会被操作系统中的或在操作系统上运行的应用程序中的错误所破坏。
一个计算机系统的存储器包括可见部分和隐式部分。存储器的可见部分可由处理器及在计算机系统内运行的操作系统访问。对于存储器的隐式部分来说,则排除了由处理器或操作系统访问的可能性。存储器的隐式部分用来存储由处理器或操作系统传送的数据。位于存储器可见部分的通信区接收来自处理器或操作系统的数据存取请求。既能访问存储器的可见部分,又能访问存储器的隐式部分的隐式服务程序接收来自通信区的数据存取请求,并启动从隐式存储器的数据存取。
图1是根据本发明的典型实施例说明存储器配置及其与多个处理器和多个输入/输出(I/O)装置关系的框图。
图2是说明图1所示的可见存储器的结构及图1所示的可见存储器与隐式存储器之间的通信路径的框图。
图3是说明图1所示的隐式存储器内部结构的框图。
图4是根据本发明的典型实施例说明操作系统放弃处理器对隐式服务程序的控制权的某些处理步骤的流程图。
图5是根据本发明的典型实施例说明图3的隐式服务程序所完成的步骤的流程图。
图6是根据本发明的典型实施例说明用来向隐式服务程序传送请求的队列结构的框图。
图1根据本发明的典型实施例说明一个计算机系统。如图所示,计算机硬件包括一个或多个处理器15a-15n,它们通过某个总线或其它互连机构10与存储器20连接。
可以使用任何计算机系统,但是,根据本发明的典型实施例,可以使用1994年6月第24届国际容错计算专题讨论会汇编第414-423页,由Abbott,M.,Har,D.Herger,L.,kauffman,M.,Mak,K.,Murdock,J.,Schulz,C.,Smith,T.B.,Tremaine,B.,Yeh,D.,Wong,L.所著的“耐用存储器RS/6000系统设计”中所描述的“耐用存储器RS/6000(DM/6000)”。这个系统提供这样的硬件冗余,使任一硬件部件或电源的故障都不会使计算机停机。
存储器20的一个部分是可见存储器30。在每个处理器15a-15n上运行的程序有权访问可见存储器30。
如图2所示,可见存储器30包括一个象AIX(由纽约州Armonk镇的IBM公司生产)那样的通用操作系统40以及应用程序5a-5n。存储器20的另一部分是隐式存储器60。有几种方法可防止操作系统40及应用程序5a-5n访问这个隐式存储器。一种较可取的方法利用一种能力:通知AIX,存储器20的某些部分是有故障的。当AIX被引导时,它期待着找到一个包括对有故障的存储器部分的描述的IPL控制块。AIX将决不访问或以任何方式改变被确定为有故障的任何存储器的内容,在其虚拟地址表中对这类存储器不作记录。因此,当AIX为其正在使用的无论那个处理器15a-15n一接通虚拟地址变换时,这个存储器就被有效地隐藏起来。这样,即使在它可被访问的短暂的初始化阶段,存储器60也决没有被修改的危险。其它操作系统在引导时能指定可用存储器。如果引导时指定的可用存储容量小于总的实际存储容量。可用存储器指定区域之外的存储器部分对于操作系统来说将是不可见的。
隐式服务程序70控制对隐式存储器60的存取。隐式服务程序70是装入隐式存储器60的一个程序。隐式服务程序70中的地址转换可以断开。隐式服务程序70及操作系统40和应用程序5a-5n共同使用位于可见存储器30内的通信区80。这是隐式服务程序70和操作系统40及应用程序5a-5n后两者赖以通信的机构。把所有的通信机构都放置在可见存储器30之内,就排除了操作系统40和应用程序5a-5n损坏隐式存储器的可能性。
在最佳实施例中,通信区80包括队列90和请求块100a-100n。队列90最好占有存储器的单独一页,用来形成队列的链式单元的所有指示字最好不是地址,而是那一页内的位移。这样,队列90能被在虚拟地址变换接通时工作的在操作系统40下运行的程序控制,以及能被在虚拟地址变换断开的情况下可以工作的隐式服务程序70所控制。队列90的条目有链式位移,以便连接队列条目及请求块100a-100n的实地址。通过利用队列的首部指示字的实地址,隐式服务程序70不使用AIX的虚拟地址变换机制,就能使用首部指示字。
如图3所示,隐式存储器60的一部分是稳态存储器110。它包括一个稳态存储器描述符120,隐式服务程序70利用预先安排的地址能确定描述符120的位置,隐式服务程序70还利用描述符120来确定,稳态存储器110的那些部分正在使用。稳态存储器110的一小部分被隐式服务程序70用来保持其自己的记录,但是,稳态存储器110的大部分由专用服务程序130a-130n使用,这些服务程序都是隐式服务程序70可访问的程序。例如,最佳实施例包括一个VDISK服务程序130a及一个PCACHE服务程序130b,以及其它服务程序。
VDISK服务程序130a处理使用稳态存储器110的空间存储数据的命令,好象是在一个或多个磁盘上。以这种方式被使用的存储器的每个空间都称之为VDISK。VDISK服务程序130a最好至少能提供处理下述请求的能力,即分配稳态存储器110中被用来存储数据的空间的请求,把数据从可见存储器30复制到稳态存储器110的请求,以及把数据从稳态存储器110复制到可见存储器30的请求。PCACHE服务程序130b超高速缓存准备在较晚的时候写到磁盘上去的数据。PCACHE服务程序130b把数据的磁盘地址与数据本身一起存储起来,以便在操作系统40发生故障后再现超向速缓存的信息。
当装入并启动隐式服务程序70后,就要测试稳态存储器描述符120的有效性,如果它不是有效时,就使其初始化,以表明稳态存储器中没有一个空间在使用。对有效性的可能的测试有,例如,将检验和的值与对稳态存储器描述符120的内容重新计算所得的值进行比较,把存储器使用计数加起来查看它们是否与稳态存储器110的总数一致,以及在完成存储器的隐式服务程序70的初始化后对放在稳态存储器描述符120中的特征关键值进行比较。由隐式服务程序70的新近开始的版本使用先有的稳态存储器描述符120就使得有可能替换隐式服务程序70的代码而没有明显的信息损失。当然最为理想的是隐式服务程序70的新版本能解释旧版本的稳态存储器描述符120。
隐式服务程序70利用稳态存储器描述符120的一部分来记录服务数据句柄(handle)115a-115n,每个句柄被分配给不同的服务程序130a-130n。一个服务数据句柄指向一个数据描述符。一个数据描述符指出可供相应的服务程序使用的隐式存储器60的部分。
例如,VDISK服务程序130a使用VDISK数据描述符140a。每当隐式服务程序70被启动时,VDISK服务程序130a也就被启动(所有其它服务程序130b-130n也都如此),并被给与一个其服务数据句柄115a的复制品,后者或是零,或是指VDISK数据描述符140a的指示字。VDISK服务程序130a确认其服务数据句柄115a指向VDISK数据描述符140a以及这个描述符140a的有效性,就象隐式服务程序70确认稳态存储器描述符120的存在及其有效性一样。如果VDISK服务程序130a发现VDISK数据描述符140a无效时,它就请求由隐式服务程序70分配一个并使其初始化,以表明还没有任何VDISK存在。VDISK数据描述符140a代表其在操作系统40及应用程序5a-5n中的用户用来记录稳态存储器110的那些部分正被用来存储数据。
服务数据句柄115a-115n及数据描述符140a-140n的这种用途使服务程序130a-130n能被停止和再启动而无信息损失或明显的运行中断,就象隐式服务程序70能被停止,替换和再启动那样。正如隐式服务程序70的情况一样,由旧版本的服务程序130a-130n所产生的数据描述符140a-140n最好能被新版本的服务程序130a-130n所理解。
在最佳实施例中,对隐式服务程序70的请求包括服务程序130a-130n的名字,这也就是要处理该请求,从而隐式服务程序70能把该请求传送给的那个服务程序130a-130n。任一服务程序可能需要的附加请求信息可在请求块100a-100n中找到。在VDISK服务程序130a的情况下,其包括表明是否要产生一个VDISK的操作码,象VDISK标识符那样用来指出应对那个VDISK进行操作的操作数的所需空间,以及象返回码和完成位那样的任一应答信息的所需空间,该返回码表示请求成功或失败,而完成位则用来指出在处理请求时什么时候完成VDISK服务程序130a。
在最佳实施例中,VDISK服务程序130a由安装到操作系统40中的VDISK设备驱动程序160a使用。VDISK设备驱动程序160a就象安装在操作系统40中的任何磁盘驱动程序一样,提供同样的接口,不过它是利用VDISK服务程序130a而不是实磁盘设备来存储和检索数据。这就使操作系统40的其它部分及应用程序5a-5n能利用VDISK,就象利用实磁盘一样。由于隐式存储器60决不会被在可见存储器30中运行的任何程序的任何故障所破坏,由于稳态存储器110即使在隐式服务程序70及其有关的服务程序130a-130n再启动时也仍被保存,还由于DM/6000硬件的容错和电源保护性能,由VDISK服务程序130a存储在稳态存储器110中的数据可以被认为是象存储在实磁盘上一样安全。
传送到隐式服务程序70的所有地址都是可见存储器30中的实地址,它们是由在AIX下运行的VDISK设备驱动程序160a利用AIX的核心服务程序确定的,而请求块100a-100n合乎要求地被限制在存储器的单独一页,这样就避免了地址转换问题。
当隐式服务程序70在处理器15a-15n的子设备上运行,而该子设备又与操作系统40在其上运行的子设备分离时,隐式服务程序70对请求的处理是与操作系统40及应用程序5a-5n的处理并行的。当隐式服务程序70和操作系统40及应用程序5a-5n共用同一个处理器15a-15n时,最好利用传送程序170在两者之间来回传送控制权,传送程序170记录当前被安排为由操作系统40使用的处理器15a-15n的状态,然后改变处理器15a-15n的状态,以使隐式服务程序70能正常运行。被记录的状态除了别的之外,可能还包括寄存器的内容及虚拟地址变换装置的设置。
在最佳实施例中,传送程序170被放在存储器的第一个64千字节中。AIX总是把其虚拟存储表设置成这样的,使存储器的这个部分有与其实地址相同的虚拟地址。因此,存储器这个区域内的程序能接通或断开地址转换,并仍能继续执行同一个程序的下一条指令。
虽然在操作系统40下运行的VDISK设备驱动程序160a及VDISK服务程序130a之间有发送信号的其它方法,例如利用中断,最佳实施例则利用请求块100a-100n的应答区内的完成标志。如果这个隐式服务程序70与操作系统40共用同一个处理器时,VDISK设备驱动程序160a就在检验完成标志和把控制权给予隐式服务程序70之间同步循环。
从应用程序5a-5n请求VDISK中的数据直到把该数据传送回同一个应用程序的整个流程路经如下。请求首先进到确定设备就是VDISK设备的操作系统40。因此,请求就被传送到VDISK设备驱动程序160a,该驱动程序160a确定那一个VDISK装有数据,并在请求块100a-100n中建立请求,这个请求表明:这是对VDISK服务程序的一个请求,从那个VDISK得到数据,在VDISK的什么地方开始读出,传送多少数据,以及把要读出的数据放在可见存储器30的什么地方。请注意,这个时候在请求块100a-100n中把完成标志设置成表明请求还没有结束。然后,VDISK设备驱动程序160a在队列90中放置一个指向这个请求块100a-100n的队列条目,并开始等待完成标志来表明请求结束。在等待的同时,如果处理器15a-15n是由操作系统40及隐式服务程序70所共用时。VDISK设备驱动程序160a将调用传送程序170把处理器15a-15n的控制权给予隐式服务程序70。在任何情况下,当轮到隐式服务程序70时它将使这个队列条目出队并且确定,并且从请求块100a-100n确定由VDISK服务程序处理什么。利用其服务数据句柄115a,VDISK服务程序130a将确定其VDISK数据描述符140a的位置,并从而确定VDISK数据的位置,VDISK服务程序130a随后将把VDISK数据复制到请求块100a-100n中所提到的可见存储器的部分中去,然后它将设置完成标志以表明操作结束。处理器15a-15n的控制权返回到隐式服务程序70,如果它是由隐式服务程序70与操作系统40共用时,隐式服务程序70又将把把控制权返回到传送程序170,并从而返回到VDISK设备驱动程序130a。无论如何,VDISK设备驱动程序160a将最终拥有处理器15a-15n的控制权并观察到完成标志已被设置,然后把控制权返回到操作系统40,后者将把控制权返回到做出初始请求的应用程序5a-5n。
PCACHE设备驱动程序160b在下列方面与VDISK设备驱动程序160a非常相似:对于操作系统40和应用程序5a-5n来说,它具有实磁盘设备的外表,它还利用隐式服务程序70和PCACHE服务程序130b从稳态存储器存储和检索数据。区别在于,PCACHE设备驱动程序160b只是利用PCACHE服务程序130b来保持一个新近从实磁盘18a-18n中读出的或写入其中的数据的超高速缓存,PCACHE设备驱动程序160b利用供那个特定的磁盘设备18a-18n用的设备驱动程序160a-160n来访问实磁盘18a-18n。这与1994年11月22日IBM T.J.沃森研究中心,由C.R.Attanasio,M.Butrico,C.A.Polyzois,S.E.Smith所著的RC-19843号报告可恢复虚拟共享磁盘的设计和实现中所描述的VSD设备驱动程序的工作方法大致相同。
在操作系统40发生故障的情况下,可见存储器30的内容完全丢失。当操作系统40被再启动时,通过由PCACHE服务程序130b请求目前存在于稳态存储器110中的那些块的内部地址表,PCACHE设备驱动程序160b重建其超高速缓存单元信息的目录。PCACHE设备驱动程序160b然后就能重建它所使用的无论什么样的内部数据结构,以便监视超高速缓存的状态,例如散列表,因而在正常操作过程中就不再需要由PCACHE服务程序130b所存储的目录信息。
图4是操作系统40,或者更准确地说,安装在操作系统内的设备驱动程序160a-160n及传送程序170为了完成控制权的传送所采取的步骤的逻辑流程图。首先,把准备由隐式服务程序70及专用服务程序130a-130n处理的任何请求放在通信区80的某个请求块100a-100n内(步骤410)。然后,那个处理器15a-15n在执行这些步骤,就把该处理器的状态记录在可见存储器30的某个地方(步骤420)。为了使隐式存储器60对这个处理器来说变为可见(步骤430),在最佳实施例中,就把处理器的虚拟地址变换断开,不过其它方法也完全是可能的。现在,这个处理器就能访问那个隐式存储器60,它能开始执行装在隐式服务程序70的程序中的指令(步骤440)。当隐式服务程序70准备放弃处理器的控制权时,这个程序的下一步在传送程序170中再继续下去,其进行隐藏隐式存储器60(步骤450)。在最佳实施例中,这是通过把虚拟地址变换重新接通来实现的。然后,处理器状态的其余部分就能被恢复(步骤460),而控制权则被返回到启动传送的设备驱动程序160a-160n。于是就能检验放在通信区80或可见存储器30中某个地方的应答数据(步骤470)。
图5是隐式服务程序70为了处理请求所完成的步骤的逻辑流程图。第一步510是等待在通信区80内出现请求。当请求出现时,在第520步就完成与所做出的请求的性质相适应的某种处理。例如,请求数据将指示对该请求给出某个特定的服务程序并给出该由那个服务程序完成的命令。这个动作的结果就是把应答信息放在通信区80或可见存储器30的任一单元(步骤530)。例如,原始请求的内容能确定一个在可见存储器30之内但是在通信区之外的单元,特定请求的应答信息应放置到该单元里。然后,在第540步,就要进行一项测试,看看目前运行隐式服务程序70的程序的处理器是否也用来运行操作系统40。这可用多种方法实现,如检验存在于通信区内的配置信息。如果处理器被共享时,隐式服务程序将在540这个点上将控制权传送回操作系统40(步骤550)。
图6是通信区80内的队列90在置入一系列请求之后看起来象什么的例子。A条目是最老的,而E条目610则是最近增加到队列90的条目。为了避免条目入队和出队之间的干扰,需要一种同步方式。例如,尽管可以利用IBM370的TEST(测试)和SET(设置)指令序列来确保同步,但在最佳实施例中,却采用了Power PC体系结构的装入和保留指令以及条件存储指令。正如技术上众所周知的那样,装入和保留指令在存储器单元中建立保留,以供条件存储指令使用。条件存储指令首先确定,在试图存储的存储器单元中是否有保留。如果有保留,进行存储,而保留则被清除。如果没有保留时,指令结束而没有改变存储器。
为了使一个队列条目入队,就在含有队列中第一个条目的位移的队列首标的字上执行装入和保留。新条目的“下一个”位移就被设置成那个值。如果那个字上的队列首标的保留仍然存在的话,新条目的位移就被存储在队列首标。如果保留不存在时,就重复入队过程。
例如,通过装入首部指示符600并带着保留,增加了E条目610,而在增加E条目610之前,首部指示符600曾指向D条目620。这个指示字被放在E条目610的转栏613。最后,E条目610的地址被有条件地存放在首部指示符600中。如果存储成功,入队完成。否则,就重复该过程。
当然,这就产生一个以后进先出方式组织的队列。产生队列时,在出队过程中又产生先进先出的风格。为了使一个条目出队,就要在队列首标中执行首部位移的装入和保留。然后,通过有条件地存储零来代替那个值,就从整个队列除去队列首标。因保有全部队列,服务程序就可以自由地取消最老的队列请求。换句话说,如果队列是非空的,出队就完成了。否则,保留的东西就被返回到队列首标。
当把保留的东西返回到队列首标时,如果与此同时有其它条目被装入队列,条目最好与被出队过程除去的一组条目合并起来。为了完成合并,首部位移(队列首标中指向队列中第一个条目的字)须经装入和保留。如果首部位移等于零,就没有新的条目。这样,目前位于被返回到队列的那些条目首部的条目的位移就被条件存储起来。不然,零就被条件存储起来,而装入的值则被用作要与老队列合并的新队列的开始。然后重复过程。而且,如果有存储故障,就重复整个过程。
为了使一个条目610-650出队,最老的条目是所希望的。在这个例子中,那就是A条目630。为了达到这一点,就要通过反复装入部指示符600并附带保留,并在其位置上条件存储零,来移动整个链。这样重复进行,直到存储成功。队列就被来回移动,直至得到一个其尾指示字非零的条目。在这个例子中,那将是A条目630的尾指示字632。A条目630之前的条目按后进先出次序排列,就象入队算法所确定的那样。A条目630之后的条目按先进先出的次序排列,隐式服务程序70通过把条目重新排列成B-C-D-E的次序将保持这种先进先出的状态(A条目630不在那里,因为它是要从队列90中被除去的条目)。B条目640将使其尾指示字642指向E条目610。这表明两件事情:B条目640是先进先出条目中的第一个条目,以及按后进先出次序找到的新条目应被放在尾指示字642指向的那个条目之后。每当队列90需要重新排列时,这就避免了顺序查对整个队列90。
把剩余的条目返回队列90与使一个条目入队非常相似。当某些其它条目已被放置到队列90,而隐式服务程序70正在处理作为出队过程的部分的条目时,就能看到差别。在那种情况下,从首部指示符600装入的值非零并指向新入队的条目。正确的应答是隐式服务程序70除去那些条目,就象正常出队一样,并把它们与它先前除去的那些条目结合起来,以形成一个单独的表,并返回去重复把这个表放回到队列90的过程。
实现了一种优化方法,以避免每次需要链上最老的条目时,都要跑到后进先出链的末端。这包括在把表返回到队列以前重新排列条目。重新安排的、现在按先进先出次序排列的条目,都含有表的尾部的位移。这就使按先进先出次序排列的条目有别于具有零值而不是尾位移的按后进先出次序排列的条目,它还使尾部在最后插入时能快速定位。当新条目入队时,将有一些后进先出条目,其后面是一些先进先出条目,但是,这可在下次隐式服务程序解除队列时由隐式服务程序予以纠正。
在我们描述我们的发明的最佳实施例的时候,不言而喻的是,在现在和将来,那些精通技术的人们可能会做出属于下列权利要求范围的各种改进和提高。这些权利要求应当被认为是对最先公开的发明的正当保护。

Claims (12)

1.包括存储器,至少一个处理器和一个操作系统的计算机系统,它包括:
可由所述的至少一个处理器和所述的操作系统寻址的所述存储器的可见部分;
a)排除了所述的至少一个处理器和所述的操作系统对其寻址的可能性的以及b)用来存储由所述的至少一个处理器和所述的操作系统两者之一传送的数据的所述存储器的隐式部分;
位于所述存储器的所述可见部分的,用来接收来自a)所述的至少一个处理器以及b)所述的操作系统两者之一的数据存取请求的通信区;以及
a)既定址所述存储器的所述可见产部分,又定址所述存储器的所述隐式部分的,b)接收来自所述通信区的所述数据存取请求的,以及c)启动从所述隐式存储器的所述数据存取的隐式服务程序。
2.根据权利要求1的计算机系统,其特征在于所述隐式服务程序是由所述的至少一个处理器的第一个处理器来执行,而所述的操作系统是由所述的至少一个处理器的第二个处理器来执行。
3.如权利要求1中所述的计算机系统,其特征在于所述处理器处于第一种状态时,隐式存储器对所述处理器来说是不可见的,而处于第二种状态时,隐式存储器对所述处理器来说是可见的。所述的设备进一步还包括:
在所述第一种状态和所述第二种状态之间改变所述处理器的装置;
当所述的隐式服务程序处于所述的第二种状态下时,由所述隐式服务程序启动所需的操作的装置。
4.如权利要求1中所述的计算机系统,其特征在于所述的隐式服务程序是可重新装入和可重新启动的,所述存储器的所述可见部分紧接着所述隐式服务程序再启动之前以及紧接着再启动之后都是相同的。
5.如权利要求1中所述的计算机系统,其特征在于进一步包括随机存取存储磁盘服务装置,以便在所述存储器的所述隐式部分存储数据,经受住故障,及重新启动操作系统,重新装入和重新启动隐式服务程序。
6.如权利要求1中所述的计算机系统,其特征在于进一步包括磁盘超高速缓存服务装置,以便在所述存储器的所述隐式部分存储数据,经受住故障及重新启动所述的操作系统,及重新装入和重新启动隐式服务程序。
7.保护存储在位于计算机系统内的存储器中的数据的方法,其中所述的计算机系统包括至少一个处理器和一个操作系统,所述的方法包括以下一些步骤:
分配可由所述的至少一个处理器和所述的操作系统寻址的所述存储器的可见部分;
分配a)所述的至少一个处理器和所述的操作系统不能寻址的以及b)用来存储由所述的至少一个处理器和所述的操作系统传送的数据的所述存储器的隐式部分;
在位于所述可见存储器中的通信区内接收来自a)所述的至少一个处理器和b)所述的操作系统两者之中至少一个的请求;以及由既定址所述存储器的所述可见部分,又定址所述存储器的所述隐式部分的隐式服务程序接收所述请求的每一个请求;以及从所述的隐式存储器启动所述请求的每一个请求。
8.根据权利要求7保护存储在存储器中的数据的方法,其特征在于进一步包括以下步骤:
把所述处理器从第一种状态改变为第二种状态,在第一种状态下所述存储器的所述隐式部分对于所述的处理器来说是不可见的,在第二种状态下所述存储器的所述隐式部分对于所述处理器来说是可见的;
把所述处理器的控制权传送给所述的隐式服务程序;
由所述的隐式服务程序接收执行所需操作的请求;
由所述的隐式服务程序启动所述的所需操作;
由所述的隐式服务程序终止所述处理器的控制权;以及
把所述的处理器从所述的第二种状态改变为所述的第一种状态。
9.根据权利要求8保护存储在存储器中的数据的方法,其特征在于进一步包括下列步骤:
重新装入所述的隐式服务程序;
重新启动所述的隐式服务程序;以及
保持所述存储器的所述可见部分紧接着所述隐式服务程序再启动之前以及紧接再启动之后是相同的。
10.根据权利要求7保护存储在存储器中的数据的方法,其特征在于进一步包括提供随机存取存储磁盘服务程序的步骤,该服务程序在所述存储器的所述隐式部分存储数据,能经受住故障及重新启动操作系统,以及重新装入和重新启动隐式服务程序。
11.根据权利要求7保护存储在存储器中的数据的方法,其特征在于进一步包括提供磁盘超高速缓冲服务程序的步骤,该服务程序在所述存储器的所述隐式部分存储数据,能经受住故障及重新启动操作系统,以及重新装入和重新启动隐式服务程序。
12.根据权利要求7保护存储在存储器中的数据的方法,其特征在于所述的隐式服务程序由所述的至少一个处理器中的第一个处理器执行,而所述的操作系统则由所述的至少一个处理器中的第二个处理器执行。
CN97121209A 1996-11-26 1997-10-28 保护存储器中的数据的计算机系统和方法 Expired - Fee Related CN1082688C (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US816917 1986-01-08
US031,494 1987-03-27
US031494 1993-03-15
US3149496P 1996-11-26 1996-11-26
US08/816,917 US5897658A (en) 1996-11-26 1997-03-13 Method and apparatus for protecting portions of memory by providing access requests to a communications area for processing by a hidden server
US816,917 1997-03-13

Publications (2)

Publication Number Publication Date
CN1201189A true CN1201189A (zh) 1998-12-09
CN1082688C CN1082688C (zh) 2002-04-10

Family

ID=26707316

Family Applications (1)

Application Number Title Priority Date Filing Date
CN97121209A Expired - Fee Related CN1082688C (zh) 1996-11-26 1997-10-28 保护存储器中的数据的计算机系统和方法

Country Status (6)

Country Link
US (1) US5897658A (zh)
EP (1) EP0844565B1 (zh)
JP (1) JP3552502B2 (zh)
CN (1) CN1082688C (zh)
DE (1) DE69710034T2 (zh)
SG (1) SG73478A1 (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3904808B2 (ja) * 2000-06-08 2007-04-11 株式会社日立製作所 分散オブジェクト管理方法及びその実施装置並びにその処理プログラムを記録した記録媒体
US6701421B1 (en) * 2000-08-17 2004-03-02 International Business Machines Corporation Application-level memory affinity control
US6973666B1 (en) * 2001-02-28 2005-12-06 Unisys Corporation Method of moving video data thru a video-on-demand system which avoids paging by an operating system
US7895239B2 (en) * 2002-01-04 2011-02-22 Intel Corporation Queue arrays in network devices
US6792520B2 (en) * 2002-08-07 2004-09-14 Hewlett-Packard Development Company, L.P. System and method for using a using vendor-long descriptor in ACPI for the chipset registers
US7461131B2 (en) * 2003-03-07 2008-12-02 International Business Machines Corporation Use of virtual targets for preparing and servicing requests for server-free data transfer operations
TWI343531B (en) * 2003-12-19 2011-06-11 Oce Tech Bv Erasing a stored information pattern on a storage medium
US20050182796A1 (en) * 2004-02-12 2005-08-18 International Business Machines Corporation Method and system for protecting data associated with a replaced image file during a re-provisioning event
US7278122B2 (en) * 2004-06-24 2007-10-02 Ftl Systems, Inc. Hardware/software design tool and language specification mechanism enabling efficient technology retargeting and optimization
KR100652506B1 (ko) 2004-09-24 2006-12-06 삼성전자주식회사 시스템 운용 데이터 자가 복구 장치 및 방법
US7412705B2 (en) * 2005-01-04 2008-08-12 International Business Machines Corporation Method for inter partition communication within a logical partitioned data processing system
US7437617B2 (en) * 2005-02-11 2008-10-14 International Business Machines Corporation Method, apparatus, and computer program product in a processor for concurrently sharing a memory controller among a tracing process and non-tracing processes using a programmable variable number of shared memory write buffers
US7437618B2 (en) * 2005-02-11 2008-10-14 International Business Machines Corporation Method in a processor for dynamically during runtime allocating memory for in-memory hardware tracing
US7418629B2 (en) * 2005-02-11 2008-08-26 International Business Machines Corporation Synchronizing triggering of multiple hardware trace facilities using an existing system bus
US8683159B2 (en) * 2007-12-27 2014-03-25 Intel Corporation Delivering secured media using a portable memory device
US9110793B2 (en) * 2009-11-03 2015-08-18 International Business Machines Corporation Inner process

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4564903A (en) * 1983-10-05 1986-01-14 International Business Machines Corporation Partitioned multiprocessor programming system
US5673394A (en) * 1990-10-31 1997-09-30 Microsoft Corporation Method of sharing memory between an operating system and an application program
JPH06236284A (ja) * 1991-10-21 1994-08-23 Intel Corp コンピュータシステム処理状態を保存及び復元する方法及びコンピュータシステム
US5423044A (en) * 1992-06-16 1995-06-06 International Business Machines Corporation Shared, distributed lock manager for loosely coupled processing systems
US5649099A (en) * 1993-06-04 1997-07-15 Xerox Corporation Method for delegating access rights through executable access control program without delegating access rights not in a specification to any intermediary nor comprising server security

Also Published As

Publication number Publication date
SG73478A1 (en) 2000-06-20
DE69710034T2 (de) 2002-09-26
JP3552502B2 (ja) 2004-08-11
EP0844565A3 (en) 1999-12-22
EP0844565A2 (en) 1998-05-27
EP0844565B1 (en) 2002-01-23
US5897658A (en) 1999-04-27
DE69710034D1 (de) 2002-03-14
JPH10254786A (ja) 1998-09-25
CN1082688C (zh) 2002-04-10

Similar Documents

Publication Publication Date Title
CN1082688C (zh) 保护存储器中的数据的计算机系统和方法
US5499367A (en) System for database integrity with multiple logs assigned to client subsets
US6157991A (en) Method and apparatus for asynchronously updating a mirror of a source device
JP2888401B2 (ja) 冗長ディスクドライブアレイに対する同期方法
US7113945B1 (en) Virtual storage device that uses volatile memory
US5519853A (en) Method and apparatus for enhancing synchronous I/O in a computer system with a non-volatile memory and using an acceleration device driver in a computer operating system
US5644701A (en) Data processing system and method for executing snapshot dumps
KR100758367B1 (ko) 향상된 마이크로프로세서에서의 스케줄링을 강화시키는 방법 및 장치
US20170039114A1 (en) Block storage by decoupling ordering from durability
US20030084245A1 (en) Storage control unit with a volatile cache and a non-volatile backup cache, for processing read and write requests
EP0130349A2 (en) A method for the replacement of blocks of information and its use in a data processing system
JPH04245352A (ja) 制御装置の制御方法
EP1031084A1 (en) Computer system transparent data migration
EP1131715A1 (en) Distributed transactional processing system and method
EP0402542A1 (en) Method of removing uncommitted changes to stored data by a database management system
JP2006323826A (ja) データベース管理システムでログ書込みを実行するシステム
WO2008074830A2 (en) System, method and computer program product for managing data using a write-back cache unit
US7165160B2 (en) Computing system with memory mirroring and snapshot reliability
US6751750B1 (en) Method to protect and recover a write ahead log from interruptions
US5996062A (en) Method and apparatus for controlling an instruction pipeline in a data processing system
US5630045A (en) Device and method for fault tolerant dual fetch and store
JP2002543493A (ja) データのセーブ、使用、回復におけるデータの汚染および共用ディスクを扱うための方法、ソフトウェアおよび装置
JPH0574101B2 (zh)
Strom et al. A recoverable object store
EP3935491B1 (en) Instruction ordering

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
C14 Grant of patent or utility model
GR01 Patent grant
C19 Lapse of patent right due to non-payment of the annual fee
CF01 Termination of patent right due to non-payment of annual fee