CN1251074C - 计算机的重启动方法 - Google Patents

计算机的重启动方法 Download PDF

Info

Publication number
CN1251074C
CN1251074C CNB2004100033815A CN200410003381A CN1251074C CN 1251074 C CN1251074 C CN 1251074C CN B2004100033815 A CNB2004100033815 A CN B2004100033815A CN 200410003381 A CN200410003381 A CN 200410003381A CN 1251074 C CN1251074 C CN 1251074C
Authority
CN
China
Prior art keywords
module
program
mentioned
interrupt
address
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.)
Expired - Fee Related
Application number
CNB2004100033815A
Other languages
English (en)
Other versions
CN1512331A (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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of CN1512331A publication Critical patent/CN1512331A/zh
Application granted granted Critical
Publication of CN1251074C publication Critical patent/CN1251074C/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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)
  • Retry When Errors Occur (AREA)

Abstract

在计算机中使由多个装入模块构成的操作***重启动的方法,首先,将此操作***重启动过程中***作的一个装入模块保存到存储器中。使这一个装入模块处理的***为可接收状态。然后将这一个装入模块以外的装入模块装入上述计算机的存储器中。由此,在操作***的重启动过程中,使这个装入模块的***处理成为可能。

Description

计算机的重启动方法
本申请是申请号为98117852.9、申请日为1998年7月2日的原案申请的分案申请,该原案的在先申请为JP97-191840,在先申请日为1997年7月2日。
技术领域
本发明涉及操作***的重启动方法,特别涉及操作***因软件故障而中断时的操作***重启动方法。
背景技术
在现有的各种操作***中,从核心程序分离出用于控制与计算机相连接的硬件的设备驱动程序模块。而且,从磁盘装置等次级存储装置装入核心程序需要的设备驱动程序并利用。在具有上述功能的操作***中,采用利用从操作***中夺取时钟***并进行管理的实时处理驱动程序,在计算机中执行严格时间限制的***控制的方式。通过这种方式,实时处理驱动程序夺取原来操作***应接收的时钟***优先于操作***处理执行实时处理。然后使控制返回操作***。
这样的实例在“The RTX Real-Time Subsystem for Windows NT”(USENIXWindows NT Workshop-August 11-13,1997,pp33-37)中予以描述。在此文献中,通过OS的一部分模块的变更和特殊的设备驱动程序,从OS夺取作为实时控制对象的设备的***,并由与OS无关的程序执行***处理。由此,能够与OS处理无关地处理***并提高实时性。
在实时处理中,确保可靠性是一个大问题。在上述方式中,实时处理模块不依赖于操作***的核心程序。由此,即使操作***因软件故障而中断,也能够继续进行实时处理。而且在操作***因故障而中断时,会通知实时处理模块。由此,在实时处理模块一侧,能够执行与操作***的中断相对应的处理。在上述实例中,对作为实时控制对象的设备的***处理进行控制,以便于即使在OS因故障而中断时也继续进行该处理。
但是,在现有方式中,在重启动因软件故障而中断的操作***时,实时处理驱动程序也会中断。即,存在不能同时执行操作***的重启动处理和实时处理的问题。这是由于为了在操作***重启动时对处理器复位而丢失了用于实时处理模块工作的虚拟存储的内容和***处理用的信息。该问题是因为当具有在非常短的周期内不能中断而必须控制的硬件的情况下,在重启动操作***时其控制中断。在现有技术中,不管时钟***,在操作***的重启动中,操作***不能接收硬件产生的外部***。
例如在由多个计算机构成的簇结构计算机***中,相隔预定时间询问其它的计算机是否正在工作,如果在预定时间没有回答,则判断为该计算机中断执行,从而执行变更***结构的处理。在这种情况下,为了做出计算机是否中断的判断,必须等待一段时间。如果在操作***的重启动中不能进行***处理,则需要把判断为计算机中断的预定等待时间设定为较长的时间。为此,而产生了开始***再构成之前的时间的问题。如果在操作***的重启动中也接收到响应该询问的外部***并能够返回回答,则能够缩短上述的预定时间。从而,能够缩短开始再构成之前的时间。
在现有的重启动方法中,存在为了执行存储器检测和硬件构成识别等处理而使操作***启动之前的时间变长的问题。
发明内容
本发明的目的是在操作***重启动时,能够执行独立于操作***而执行处理的外部***处理。
为了达到上述目的,根据本发明的一种由多个装入模块构成的操作***在一台计算机中的重启动的方法,其特征在于,包括下列步骤:对作为非中断模块而登录的装入模块在维持所述登录模块的处理环境下执行重启动;将上述操作***重启动过程中***作的上述多个装入模块中的一个保存到存储器中;使上述一个装入模块处理的***成为可接收状态;将上述一个装入模块以外的装入模块装入上述计算机的存储器中。
另外,根据本发明的一种重启动的方法,用于具有主存储装置、处理器、磁盘、外部设备和连接这些的总线并允许该处理器进行时钟***处理的一台计算机中的、由软件即多个装入模块构成的操作***中,其特征在于,包括下列步骤:将在上述操作***的启动时将存储在上述主存储装置中的上述多个装入模块保存到上述磁盘中;对作为非中断模块而存储到主存储装置中的上述多个装入模块中管理时钟***的模块的重启动,在维持该模块的虚拟地址、与该虚拟地址对应的地址转换表、存储了该模块的物理存储器、有关该模块应处理的***的设定的情况下执行上述多个装入模块中的重启动装入;即使在上述操作***的重启动中,也使之成为可接收上述时钟***处理的状态;通过上述重启动装入将保存在上述磁盘中的内容装入到上述主存储装置,将上述管理时钟***的模块以外的装入模块装入上述主存储装置中的状态重现。
附图说明
图1是适用于本发明实施例的计算机构成图。
图2是用于管理装入模块及空的存储器空间的数据结构图。
图3是用于管理硬件占用资源的数据结构图。
图4是页面表及***处理程序表的数据结构图。
图5是用于管理非中断模块的数据结构图。
图6是模块构成文件。
图7是用于存储模块的装入模块文件。
图8是检测出软件故障时的处理流程图。
图9是操作***重启动处理的第一流程图。
图10是操作***重启动处理的第二流程图。
图11是非中断模块的初始化顺序流程图。
图12是重启动装入程序的处理流程图。
图13是本发明第二实施例的计算机启动顺序的处理流程图。
图14是本发明第二实施例的操作***重启动处理的流程图。
具体实施方式
下面,参照附图说明本发明的第一及第二实施例。
(1)第一实施例
图1是本发明第一实施例中所使用的计算机的构成图。计算机100由处理器101、主存储器102、只读存储器103、磁盘105、外部设备106和107、***控制器104、连接各构成部件的总线108以及***信号总线109构成。
在只读存储器103中,存有执行计算机初始化处理的程序,初始化程序被配置在在处理器101为复位状态时控制转移的地址上。存在只读存储器103中的程序在主存储器102中建立表示硬件结构的数据。而且处于磁盘105上的预定区域中的数据被装入到主存储器102中,并被作为程序传送到控制中。在此例中,装入程序114位于磁盘105的预定区域,并被装入主存储器102中而被执行。
继承了处理的装入程序114将核心程序111装入主存储器中,设定处理器101的虚拟地址变换机构,将处理器转换到虚拟地址模式,并执行核心程序111。此时,装入程序将硬件结构数据传送到核心程序111中。核心程序111参照硬件结构数据,执行核心程序111所管理的硬件设备的初始化处理,并按照模块结构文件110的内容将从核心程序111中分离出的程序模块装入主存储器102中,执行各个模块的初始化处理。例如,如果模块结构文件110的内容是装入重启动装入程序113、设备驱动程序112,则核心程序111将这些内容装入主存储器并执行各自的初始化程序。图1示出了核心程序111、重启动装入程序113及设备驱动程序112被装入主存储器中。最后,核心程序111生成初始进程,结束计算机的启动过程。
在这样的计算机***中,当在操作***核心程序111因软件故障而中断并对处理器复位及按照上述过程重启动操作***时,在重启动期间,虚拟地址模式被解除且不能接收来自外部设备106及107的***。这里,说明了:外部设备106所产生的***是核心程序111因软件故障而中断并进行重启动期间必须处理的***,由设备驱动程序112来进行管理的。本发明在进行核心程序111的重启动处理期间能够持续接收特定的***并提供可以执行***处理的重启动过程。
设备驱动程序112是被编程为不利用核心程序111提供的服务来处理外部设备106的***的模块。这里,设备驱动程序112作为非中断模块被登录到重启动装入程序113的非中断模块管理表500中。重启动装入程序113是在核心程序111因软件故障而中断并进行核心程序111的重启动时所执行的模块,执行原样维持作为非中断模块而被登录到管理表500中的模块的处理环境的核心程序111的重启动处理。
所谓的非中断模块的处理环境,是指配置非中断模块的虚拟地址、与其对应的地址转换表、存储模块的物理存储器、非中断模块应处理的***的***处理程序的设定。地址转换表被设定在页面表410,***处理程序被设定在***处理程序表430中。地址空间信息和硬件资源信息被存储在资源管理数据115中。
重启动装入程序113参照非中断模块管理表500,原样保持非中断模块确保的地址区域和***处理程序的设定,进行核心程序111的重新装入和执行。由此,能够保证非中断模块***处理的连续性。
图2示出了表示本发明的操作***核心程序111的地址空间的数据结构。
200是记录装入到核心程序111的地址空间中的模块的装入模块管理表。各个模块作为文件被存储到磁盘等次级存储装置中,并由操作***装入程序或核心程序111装入到主存储器中。装入模块管理表200包含被装入到主存储器中的各个模块的模块名称201、模块代码区域起始虚拟地址202、代码区域大小203、数据区域起始虚拟地址204、数据区域大小205及模块接口信息206。
模块接口信息206是被装入的模块提供给核心程序111的接口程序的起始地址。通过登录接口程序206,核心程序111能够利用被装入的模块的功能。
图2的207至211存有模块名称为设备驱动程序#1的模块的代码起始地址、大小、数据起始地址、大小及接口程序信息。在此图的装入模块管理表200中,示出了核心程序111、重启动装入程序113、设备驱动程序#1及设备驱动程序#2被装入核心空间。
220是表示核心程序111的虚拟地址空间的空区域的核心虚拟空间空区域列表。列表220指出表示空区域的空数据块结构230。空数据块结构230包含空区域的起始虚拟地址232、该空区域的大小233及指向表示下一个空区域的空数据块结构的指针231。231存有下一个空数据块结构240的地址。此图的220中,示出了核心程序111的虚拟地址空间中分别从地址232、242开始、大小为233、243的2个空区域。
250是表示物理存储器的空区域的物理存储器空区域列表。物理存储器空区域列表250的结构与核心程序虚拟空间空区域列表220的结构相同。空数据块结构260及270分别表示物理存储器的空区域。此图中的列表250与220一样,表示2个空的物理存储器区域。
下面说明管理与计算机相连的外部设备的数据结构。
图3示出了表示本发明与计算机相连的外部设备所占用的资源的数据结构。300是表示用于控制外部设备的寄存器所存在的地址范围的设备占用地址列表。设备占用地址列表300由表示1个地址范围的设备占用地址结构构成,在图3中,由3个设备占用地址结构310、320和330构成。设备占用地址结构310包含设备控制寄存器起始地址312、大小313、用于管理在该地址范围内被控制的设备的模块的模块编号314及用于构成设备占用地址列表300的链路311。
模块编号314是对图2的装入模块管理表200的索引。例如,设备占用地址结构310表示核心程序111所管理的外部设备的占用资源时,在314的模块编号中存入表200中核心程序111的索引“0”。如果是设备驱动程序#1管理的设备,则在该模块编号中存入表200中设备驱动程序#1的索引“2”。对装入模块管理表200的索引从0开始计数。
340是记录外部设备所占用的***编号的设备占用***表。设备占用***表340用于记录处理器识别的***编号被哪个模块管理的硬件设备占用。例如,如果核心程序111管理的时钟***用设备占用了***编号0,则将核心程序111的模块编号0存入设备占用***表的第0项341中。
下面,说明处理器直接利用的数据结构。图4示出了处理器利用的虚拟地址转换表及***处理用表的数据结构。410是用于规定从处理器的虚拟地址到物理地址的地址转换的页面表。页面表410的项存有处理器规定的每一页面。每一项包含表示该项关于虚拟地址空间内的各虚拟页面是否有效的标记411、表示该页面是否可以写入的标记412和该项对应于虚拟页面的物理页面的起始地址413。
处理器的寄存器400存储页面表410的起始地址。处理器在虚拟地址模式下工作时,参照页面表寄存器400,从虚拟地址中生成进行实际的存储器访问时所必需的物理地址。430是***处理程序表,用于规定关于进入处理器的***的每个***编号的***处理程序。在***中对每个要素进行编号。***控制器104从外部设备接收***请求,转换到***编号并通知处理器。***处理程序表430存储各个***编号下的每个***处理程序的起始地址。例如,如果时钟***利用第0个***,则在***处理程序表的第0项431中***时钟***处理程序的地址。
处理器的寄存器400存有***处理程序表430的起始地址。处理器参照***处理程序表寄存器420,在检测出***时将控制转移到每个要素的***处理程序。例如,在处理器检测出时钟***,即第0个***时,处理器将控制转移到存在***处理程序表寄存器420所指向的表430的第0项431中的处理程序。
下面说明重启动装入程序113所管理的数据结构。重启动装入程序113是在操作***的核心程序111因软件故障发生中断而进行操作***的重启动时,将操作***核心程序111装入主存储器中并执行核心程序111的模块。
图5示出了重启动装入程序113所管理的数据结构。500是非中断模块管理表,并是管理非中断模块信息的数据结构,该非中断模块是在由重启动装入程序113进行核心程序111的再装入和重启动过程中也从硬件设备接收***并执行处理的模块。非中断模块管理表500包含非中断模块名501、非中断模块的代码区域起始地址502、代码区域的大小503、数据区域的起始地址504、数据区域的大小505、非中断模块所管理的外部设备占用的资源信息506及非中断模块再初始化程序的地址。
在利用硬件信息506中,记录非中断模块管理的外部设备控制所占用的地址和占用***编号。在再初始化程序507中,存有核心程序111重启动时所执行的程序的地址。再初始化程序执行什么取决于模块所管理的硬件,但至少要执行向装入模块管理表200登录接口程序206。由此核心程序111能够再次利用非中断模块所提供的功能。
在图5所示的非中断模块管理表500中,重启动装入程序113及设备驱动程序#1作为非中断模块被登录。而且在508至513中,存有设备驱动程序#1的占用地址、外部设备信息、在初始化程序地址。重启动装入程序113利用非中断模块管理表500的信息,建立操作***核心程序111重启动时的核心空间及外部设备结构信息,并将其发送到核心程序111中。通过参照这些信息决定启动过程,即使在核心程序重启动中没有发生中断,核心程序111也可以执行来自外部设备的***处理。利用重启动装入程序113的数据区域中所设置的数据结构,由重启动装入模块来管理非中断模块管理表500。重启动装入摸块在对摸块进行初始化时使重启动装入程序113的数据区域为禁止写入,从而防止了软件故障对非中断模块管理表500的破坏。通过将对应于包含数据区域的虚拟页面的页面表410的各项中的可写入标记复位,来实现使数据区域为禁止写入。
下面,说明定义核心程序111启动时的所读入的装入摸块的文件形式。图6示出了定义装入模块的数据结构。110是示了模块结构文件的内容。模块结构文件110的各项包含核心程序111所装入的模块的名称601、存储模块的文件名602及表示该模块是否为非中断模块的标记603。在图6所示的例子中,核心程序111按照重启动装入程序113、设备驱动程序1、设备驱动程序2的顺序将模块读入主存储器中。若存储设备驱动程序1的文件名为driver1,则表示设备驱动程序是非中断模块。模块结构文件110被存储在操作***中具有预定名称的文件中,所以核心程序111能够容易地发现这个文件。
图7示出了存储装入模块的文件形式。存储装入模块的文件700保存表示模块执行代码的存储位置的代码起始偏移地址701、执行代码的大小702、表示数据存储位置的数据起始偏移地址703、数据区域的大小704、模块初始化程序的执行代码被存储的初始化程序偏移地址705、模块的再配置信息起始偏移地址706、再配置信息的大小707、执行代码708及数据709。
模块再配置信息710是将模块装入主存储器中时所利用的数据,也是用于根据模块代码及数据区域被装入的地址来变更模块代码的数据。由此,也可以改变装入的模块的结构或模块被装入的地址。
下面,说明本发明的操作***重启动过程。图8是示出了重启动操作***时执行的重启动装入程序113的处理过程的流程图。首先,在步骤801检查重启动装入程序113是否被装入核心程序空间。在没有装入重启动装入程序113或不能判断是否装入了重启动装入程序113的情况下,进入步骤802。在步骤802,复位处理器并执行计算机的重启动。
在多台计算机中处理器处于复位状态时,虚拟地址转换变为无效,***处理程序的设定也变为无效,控制被转移到处理器规定的物理地址。通常,这个物理地址与存储计算机启动过程的读入专用存储器103相映射。这个启动过程是对与计算机相连的硬件设备复位。其目的是为了在执行操作***的核心程序111时使外部设备处于已知状态。由于这个启动过程,特别是由于处理器被复位,使得在原来计算机的操作***重启动期间,不能接收来自外部设备的***处理。
另一方面,在步骤801判断为装入了重启动装入程序113的情况下,不对处理器复位而进行步骤803。从步骤803开始是执行实际的重启动装入程序113的处理过程。在步骤803,检查登录在装入模块管理表200中的模块是否带有硬件复位程序,如果该程序被登录,则调用该复位程序。特别是在硬件复位是对不必要的设备的情况下,也可以不登录复位程序。
接着在步骤804,参照非中断模块管理表500中各项的利用硬件信息506,使关于非中断模块所接收的***以外的***的***处理程序无效。具体地说,就是将***处理程序430的各项设定为只接收***的***处理程序的地址。接着在步骤805,将准备用于以后向非中断模块的数据区域的数据存储的、重启动装入处理的数据区域中所存储的页面设定为可写入状态。具体地说,就是使页面表410中对应于非中断模块数据区域的项的可写入标记412被设定为可写入状态。
在步骤806中,生成虚拟空间空区域列表及物理存储器空区域列表。在步骤806,参照非中断模块管理表500,在重启动装入程序113的数据区域内生成以非中断模块、重启动装入程序113及核心程序堆栈116利用的地址区域以外的地址区域为空区域的空区域列表。空区域列表具有和操作***管理的空区域列表220及250相同的数据结构。
在步骤807,生成设备占用地址列表。在步骤807,与步骤806相同,参照非中断模块管理表500,在重启动装入程序113的数据区域内生成以非中断模块利用的地址区域以外的地址区域为空区域的设备占用地址列表。这里所生成的设备占用地址列表的数据结构虽然与操作***管理的设备占用地址列表300的数据结构大致相同,但在设备占用地址结构的模块编号中,存储的不是模块编号而是模块名称。
在步骤808,生成设备占用***表。与步骤807相同,在重启动装入程序113的数据区域内生成以非中断模块利用的***编号以外的编号为未使用编号的设备占用***表。此处与步骤807一样,在设备占用***表的各项中,存储的不是模块编号而是模块名称。步骤806至808中所生成的数据结构不会在核心程序111重启动时将非中断模块管理的硬件设备资源错误地分配给其他模块。
最后,重启动装入程序113将操作***核心程序111装入主存储器中(步骤809)并将重启动装入程序113的再初始化程序的地址添加到参数中,执行核心程序111(步骤810)。
图9是示出了本发明实施例的操作***核心程序111的初始化处理过程的流程图。
首先,判断核心程序111在启动时是由重起动装入程序113启动还是进行常规启动(步骤901)。这是很容易判断的,因为在由重启动装入程序113进行的启动中需要将重启动装入程序113的再初始化程序的地址作为参数传送给核心程序111。
在不是由重启动装入程序113进行启动的情况下,按照常规过程执行核心程序111(步骤902)。这里所谓的常规过程是指总线及***控制器的初始化、核心程序管理的硬件设备的初始化、模块结构文件中记载的模块装入主存储器的初始化、初始进程的执行。
在由重启动装入程序113启动的情况下,进入步骤903。在步骤903,向重启动装入程序模块分配装入模块管理表200的项。接着在步骤904,根据作为参数传递的重启动装入程序模块的再初始化程序地址执行再初始化程序。重启动装入程序113的再初始化程序执行与非中断模块的再初始化程序相同的处理。在这个再初始化程序中,执行装入模块管理表200的设定。特别是,设定管理表200的模块接口206,从核心程序111中调用重启动程序提供的接口程序。
接着,在步骤905复制硬件结构信息。在步骤906和907中将重起动装入程序113在核心程序启动前建立的空区域列表、设备占用地址列表及设备占用***表复制到核心程序111的数据空间。由重启动装入程序113提供的接口程序执行这些处理。
在常规启动中,生成以装有核心程序111的存储器区域以外的区域为空区域的空区域列表、空的设备占用地址列表及全部***项均为未使用的设备***表,并执行后面的处理。
相应地,在由重启动装入程序113启动时,利用重启动装入程序113生成的空区域列表、设备占用地址列表及设备占用***表。由此,避免了非中断模块数据区域的初始化和外部设备的初始化,保持了与非中断模块的外部设备相关的处理的连续性。
接着步骤908至912是对核心程序111管理的总线及***控制器以外的全部外部设备进行的初始化处理。首先,在步骤908,判断是不是核心程序111管理的硬件设备,如果不是,则进入步骤1001。在步骤909,检查外部设备利用的地址区域及***编号是否已经被使用。如果初始化处理中的外部设备所利用的地址和***编号已经被登录在设备占用地址列表300及设备占用***表340中,则不执行步骤910和911而进入步骤912。如果初始化处理中的外部设备所利用的地址或***编号还没有被登录在设备占用地址列表300及设备占用***表340中,则意味着着是非中断模块利用的设备。由此,避免了非中断模块管理的外部设备的初始化,保持了与非中断模块的设备相关的处理的连续性。
如果外部设备使用的地址区域及***编号不是未被使用的,则将该地址区域及***编号与核心程序111的模块编号同时登录到设备占用地址列表300和设备占用***表340中(步骤910)。
通过检索装入模块管理表200得到核心程序111的模块编号。执行作为对象的外部设备的初始化(步骤911),并进入步骤912。在步骤912,设定其他设备为处理对象设备,进入步骤908。如果没有剩余的处理对象设备,则从步骤908的检查进入到步骤1001。
图10示出了从步骤1001开始的处理流程图。图10的流程图主要与模块的装入处理相关。
在步骤1001,将模块结构文件110读入存储器中。接着步骤1002至1011执行模块结构文件中所登录的各个模块。步骤1002至1008构成了执行每个模块处理的循环。
在循环内的开始步骤1003,参照模块结构文件110的非中断标记603,检查作为处理对象的模块是不是非中断模块。不是非中断模块的情况下,进入步骤1004。
从步骤1004开始,执行模块向主存储器的装入。首先,在步骤1004获得必要的存储器区域。这是通过参照空区域列表220及物理存储器空区域列表250,寻找存储模块所必需的足够空区域,并从这些空区域列表中取出找到的区域而实现的。参照存储模块的文件前面的部分702及704求出存储模块所必需的区域。在存储器的分配中,也进行页面表410的设定。对与分配的地址区域相对应的页面表410的各项设置有效标记411,并将所分配的物理页面的起始地址存入413中。而且,还设置了可写入标记412。在装入代码区域后设置存有代码区域的页面的可写入标记412。
接着在步骤1005,将以模块结构文件110中的文件名602表示的文件装入在步骤1004中分配的区域。装入后,利用存储在文件中的再配置信息706、707及710来修正代码区域。而且,分配装入模块管理表200中用于被处理的模块的项,并设定该项的地址及大小信息(步骤1006)。
接着,这些模块的初始化程序(步骤1007)。模块的初始化程序至少设定装入模块管理表200的模块接口206。如果需要执行其他模块的初始化处理,也会执行该处理。在模块接口被设定时,核心程序111能够知道模块所提供的处理程序的地址,并能够执行模块所提供的处理。
接着在步骤1008,将处理对象模块设定为模块结构文件的下一项,然后返回步骤1002。下面对处理对象模块为非中断模块的情况进行说明。在步骤1003,判断为处理对象模块为非中断模块时,进入步骤1009。在步骤1009,进行装入模块管理表200的更新处理。首先,分配装入模块管理表200中存储处理中的模块数据的项。应存入分配的项中的装入模块管理表200的202至205的地址及大小信息被存入重启动装入程序113的数据区域内的非中断模块管理表500的502至505中,将这些信息复制到所分配的项中并更新装入模块管理表200。
接着执行非中断模块的再初始化程序(步骤1010)。再初始化程序的地址被存储在非中断模块管理表500的再初始化程序507中,通过非中断模块名称可以得到再初始化程序。非中断模块的再初始化程序至少执行装入模块管理表200的接口程序206的设定。如果需要,还进行硬件设备的设定等其他处理。此时,由于非中断模块是新的并且没有被装入,在此之前的数据区域被保存,从而保持了与非中断模块的设备相关的处理的连续性。
接着在步骤1011,在设备占用地址列表300及设备占用***表340内关于表示作为处理对象的非中断模块所管理的地址区域及***编号的项的模块编号栏中存入在步骤1009中分配的装入模块管理表200的项的编号。通过非中断模块管理表500的利用硬件信息506得到非中断模块管理的设备的地址区域和***编号。对于空区域列表220和250,由于重启动装入程序113从空列表中取出了非中断模块具有的地址区域,所以不需要特别的处理。进行进入步骤1008进行下一个装入模块的处理。
在步骤1002,如果判断为装入了全部模块,就进入步骤1012。步骤1012不生成和执行初始进程,就完成了操作***的启动。
下面,说明非中断模块的初始化程序。模块的初始化程序是全部模块必须具有的程序,在核心程序111启动时被执行。图11是表示本发明实施例的非中断模块的初始化程序处理的流程图。这里说明对模块结构文件110中设定的设备驱动程序#1的初始化程序的处理。
首先,作为设备驱动程序#1与核心程序111的接口的模块接口被存储在装入模块管理表200中用于设备驱动程序#1的分配项211中(步骤1101)。
在下面的步骤1102,分配设备驱动程序1的设备占用地址结构,设定起始地址、大小和模块编号,并将其追加到设备占用地址列表300中。而且还在设备占用***表340中设备驱动程序1管理的***编号项中存入设备驱动程序1的模块编号。由此,将设备驱动程序#1利用的设备地址区域及***编号登录到设备占用地址列表300及设备占用***表340中。
接着,进行向模块的非中断模块管理表500的登录(步骤1103)。在非中断模块管理表中分配用于正在处理的模块的项,并设定地址、大小信息、利用硬件信息及再初始化程序的地址。由重启动装入程序113提供的接口程序来实现上述设定过程。在更新非中断模块管理表500时,由于非中断模块管理表500中的页面被设定为禁止写入,所以在更新前后要对页面表410中的可写入标记进行操作。然后,设定硬件设备(步骤1104)。
下面说明重启动装入程序113提供的接口程序。重启动装入程序113本身是非中断模块,它提供了初始化程序、再初始化程序、硬件结构数据复制程序、非中断模块登录程序。
首先,说明重启动装入程序113的初始化程序处理。图12是表示重启动装入程序113的处理过程的流程图。
重启动装入程序113是非中断模块,重启动装入程序113的初始化程序只在启动计算机时被调用。首先,在重启动装入程序113的初始化程序中,将为以后的重启动处理准备的、存在读入专用存储器103中的初始化程序所生成的硬件结构信息复制到重启动装入程序113的数据区域中(步骤1201)。接着执行非中断模块管理表500的初始化(步骤1202)和向重启动装入程序113本身的非中断模块管理表的登录(步骤1203)。最后,将分配在存有非中断模块管理表及硬件结构数据的重启动装入程序113的数据区域中的页面设定为禁止写入(步骤1204)。
再初始化程序执行向装入模块管理表登录接口程序的处理。这与其他非中断模块的情况相同。硬件结构数据复制程序将存在重启动装入程序113的数据区域中的硬件结构数据复制到核心程序111的数据区域中。非中断模块登录程序将与非中断模块相关的数据登录到非中断模块管理表500中。通常,由于重启动装入程序113的数据区域由虚拟地址机构设定为禁止写入,所以登录程序一旦解除禁止写入,就将非中断模块数据写入表500中,然后再次使数据区域为禁止写入。
通过本实施例,即使在操作***核心程序111因软件故障而中断并执行重启动处理时,也不中断非中断模块利用并登录的外部设备的***处理并能够继续执行处理。而且还避免了在处理器复位时执行的硬件结构识别处理,缩短了到重启动的时间。
下面说明以执行以时钟***为例的外部设备控制的模块为非中断模块的实施例。时钟***通常是由核心程序111本身管理的***。在执行时间限制严格的处理的情况下,采取利用在将时钟***传送到核心程序111之前进行夺取、优先于带有时间限制的处理而执行的模块的方式。所谓的夺取***,就是变更***处理程序的设定。对于这样的时间限制严格的控制,在时间限制严格的同时还不允许中断与时钟***相应的处理。
通过本发明,使夺取时钟***的模块为非中断模块,即使在核心程序111因软件故障而中断并执行重启动时,也不会中断与时钟***相应的处理,并能够继续执行。
在将时钟***处理模块作为非中断模块登录时,将时钟***的***编号及时钟***的控制地址作为模块占用的资源和设备登录到非中断模块管理表500中。由此,在核心程序111重启动的前后,时钟***的处理环境是连续的。而且在核心程序111重启动时,通过识别作为核心程序111自己管理的设备的时钟***被其他模块占用,而无须变更时钟***的相关设定而进入启动处理。
由此,实现了即使在操作***核心程序111因软件故障而中断并被重启动时,也不中断时钟***处理、可靠性高且可用性高的控制***。
(2)第2实施例
对本发明的第二实施例进行说明。
图13是表示本实施例中的计算机启动过程的流程图。
首先执行作为常规核心程序初始化处理的核心程序数据初始化(步骤1301)、外部设备初始化(步骤1302)及核心程序模块的装入和初始化(步骤1303)。象第一实施例一样,如果模块是非中断模块,则模块的初始化将其利用地址信息登录到非中断模块管理表500中。
在下面的步骤1304中,主存储器102内装有核心程序111及其他模块的区域中,将非中断模块的数据区域以外的区域记录到磁盘105的重启动文件中。而且,在步骤1305,将页面表寄存器及核心程序堆栈的堆栈指针值保存到磁盘105的重启动文件中。
这里所生成的重启动文件是为了在核心程序111因软件故障而重启动时再现核心程序111的软件结构。在步骤1307生成和执行初始进程。
图14是表示本发明第二实施例的操作***核心程序111的重启动过程的流程图。
由作为非中断模块登录的重启动装入程序113执行此重启动过程。依图说明重启动过程。首先,将页面表寄存器400所指的页面表410复制到重启动装入程序113的数据区域中(步骤1401),然后进行变更使页面表寄存器400指向被复制一方的页面表(步骤1402)。
接着,将记录在磁盘105的重启动文件中的核心程序启动时的主存储器102的内容复制到主存储器102中(步骤1403)。接着,从磁盘105的重启动文件中取得页面表寄存器和堆栈指针遗迹步骤1307的地址(步骤1404、1405)。在步骤1406,将所取得的页面寄存器值和堆栈指针值设定到寄存器中并转移到步骤1307的处理(步骤1407)。
在第二实施例中,由于磁盘105的重启动文件中不包含作为非中断模块登录的模块数据区域,所以在核心程序重启动的前后,非中断模块的数据区域被保存在主存储器102中。由此,能够维持非中断模块的外部***处理的连续性。在本实施例中,主存储器102的内容被保存在设备105中,但也可以保存在主存储器的其他区域。
在核心程序111检测出软件故障时,将***处理中使用的主存储器的内容维持在主存储器中以便于不进行处理器复位而能够执行核心程序重启动中的特定***处理。并且也可以将***处理程序的设置维持在主存储器中并中断核心程序111的处理。
在操作***的核心程序111检测出软件故障而重启动时,通过参照非中断模块管理表500设计出核心程序重启动时的外部设备初始化过程和决定装入的模块结构的过程,能够在核心程序111的重启动处理中不中断与特定外部设备发生的***相对应的处理而继续执行该处理。
而且,通过不对处理器复位而执行操作***的重启动,能够避免在处理器复位时执行硬件结构检查等处理,缩短了到操作***重启动的时间。

Claims (3)

1.一种重启动的方法,用于具有主存储装置、处理器、磁盘、外部设备和连接这些的总线并允许该处理器进行时钟***处理的一台计算机中的、由软件即多个装入模块构成的操作***中,其特征在于,包括下列步骤:
将在上述操作***的启动时将存储在上述主存储装置中的上述多个装入模块保存到上述磁盘中;
对作为非中断模块而存储到主存储装置中的上述多个装入模块中管理时钟***的模块的重启动,在维持该模块的虚拟地址、与该虚拟地址对应的地址转换表、存储了该模块的物理存储器、有关该模块应处理的***的设定的情况下执行上述多个装入模块中的重启动装入;
即使在上述操作***的重启动中,也使之成为可接收上述时钟***处理的状态;
通过上述重启动装入将保存在上述磁盘中的内容装入到上述主存储装置,将上述管理时钟***的模块以外的装入模块装入上述主存储装置中的状态重现。
2.如权利要求1所述的重启动方法,其特征在于,在存储到上述主存储装置中的上述装入模块中的非中断模块的内容中,不包含该非中断模块的数据区域内容。
3.如权利要求1所述的重启动方法,其特征在于:
上述再现之前的上述主存储装置的内容是在上述总线、上述操作***的上述多个装入模块的对上述主存储装置的存储和初始化、上述外部设备的初始化及初始进程执行后的内容。
CNB2004100033815A 1997-07-02 1998-07-02 计算机的重启动方法 Expired - Fee Related CN1251074C (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP19184097A JP3593241B2 (ja) 1997-07-02 1997-07-02 計算機の再起動方法
JP191840/97 1997-07-02
JP191840/1997 1997-07-02

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CNB981178529A Division CN1143209C (zh) 1997-07-02 1998-07-02 操作***的重启动方法和计算机***的控制方法

Publications (2)

Publication Number Publication Date
CN1512331A CN1512331A (zh) 2004-07-14
CN1251074C true CN1251074C (zh) 2006-04-12

Family

ID=16281398

Family Applications (2)

Application Number Title Priority Date Filing Date
CNB2004100033815A Expired - Fee Related CN1251074C (zh) 1997-07-02 1998-07-02 计算机的重启动方法
CNB981178529A Expired - Fee Related CN1143209C (zh) 1997-07-02 1998-07-02 操作***的重启动方法和计算机***的控制方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
CNB981178529A Expired - Fee Related CN1143209C (zh) 1997-07-02 1998-07-02 操作***的重启动方法和计算机***的控制方法

Country Status (5)

Country Link
US (4) US6253320B1 (zh)
JP (1) JP3593241B2 (zh)
KR (1) KR100306456B1 (zh)
CN (2) CN1251074C (zh)
TW (1) TW469409B (zh)

Families Citing this family (156)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3593241B2 (ja) * 1997-07-02 2004-11-24 株式会社日立製作所 計算機の再起動方法
US6438709B2 (en) * 1997-09-18 2002-08-20 Intel Corporation Method for recovering from computer system lockup condition
US6766519B1 (en) * 1999-03-26 2004-07-20 Emc Corporation Generic software interface for hardware environments having executing code registers itself and the code for a next suboperation
US6438750B1 (en) * 1999-06-18 2002-08-20 Phoenix Technologies Ltd. Determining loading time of an operating system
JP4395223B2 (ja) 1999-09-24 2010-01-06 株式会社日立製作所 表示装置、表示方法、および、ナビゲーション装置
US6560699B1 (en) * 1999-10-20 2003-05-06 Cisco Technology, Inc. Constraint-based language configuration files for updating and verifying system constraints
JP4402797B2 (ja) 2000-03-02 2010-01-20 株式会社日立製作所 情報処理装置
US8645137B2 (en) 2000-03-16 2014-02-04 Apple Inc. Fast, language-independent method for user authentication by voice
US6587966B1 (en) * 2000-04-25 2003-07-01 Hewlett-Packard Development Company, L.P. Operating system hang detection and correction
JP2002041292A (ja) * 2000-07-13 2002-02-08 Internatl Business Mach Corp <Ibm> コンピュータ用リカバリ装置
US6662320B1 (en) * 2000-07-20 2003-12-09 International Business Machines Corporation Method and apparatus for inhibiting an adapter bus error signal following a reset operation
US20030014608A1 (en) * 2001-07-13 2003-01-16 Mercer Ronald G. Method of providing stack memory in an operating system with stack memory constraints
US6779132B2 (en) * 2001-08-31 2004-08-17 Bull Hn Information Systems Inc. Preserving dump capability after a fault-on-fault or related type failure in a fault tolerant computer system
KR100619657B1 (ko) * 2002-06-05 2006-09-08 후지쯔 가부시끼가이샤 메모리 관리 유닛, 코드 검증 장치 및 코드 복호 장치
US7139850B2 (en) * 2002-06-21 2006-11-21 Fujitsu Limited System for processing programmable buttons using system interrupts
US7231512B2 (en) * 2002-12-18 2007-06-12 Intel Corporation Technique for reconstituting a pre-boot firmware environment after launch of an operating system
JP2004297759A (ja) * 2003-03-11 2004-10-21 Seiko Epson Corp 無線通信ネットワークシステムにおける接続認証
RU2359426C2 (ru) * 2003-03-12 2009-06-20 Конинклейке Филипс Электроникс Н.В. Способ и устройство для запоминания программы интерактивного телевидения
US7130997B2 (en) * 2003-05-29 2006-10-31 International Business Machines Corporation Method of registering a portion of RAM with firmware to preserve the portion during reboot
US7100014B2 (en) * 2003-09-15 2006-08-29 Hewlett-Packard Development Company, Lp. Memory stack architecture for reduced TLB misses
US7587723B2 (en) * 2003-11-13 2009-09-08 International Business Machines Corporation Restarting a shared virtual resource
GB2397477B (en) * 2003-11-26 2004-12-01 F Secure Oyj Securing a data transmission channel
JP4683218B2 (ja) * 2004-01-27 2011-05-18 日本電気株式会社 高速再起動方法および情報処理装置ならびにプログラム
US7467328B2 (en) * 2004-09-03 2008-12-16 Hewlett-Packard Development Company, L.P. Kernel configuration recovery
US8744852B1 (en) * 2004-10-01 2014-06-03 Apple Inc. Spoken interfaces
US8677377B2 (en) 2005-09-08 2014-03-18 Apple Inc. Method and apparatus for building an intelligent automated assistant
JP4692747B2 (ja) * 2005-10-27 2011-06-01 日本電気株式会社 情報処理装置、情報処理装置における画面表示方法
CN100424650C (zh) * 2005-11-30 2008-10-08 许先才 计算机上个人信息应用环境的保存与重现方法及装置
US8286162B2 (en) 2005-12-30 2012-10-09 Intel Corporation Delivering interrupts directly to a virtual processor
US20070168740A1 (en) * 2006-01-10 2007-07-19 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for dumping a process memory space
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US8199155B2 (en) * 2006-11-22 2012-06-12 Nvidia Corporation System, method, and computer program product for saving power in a multi-graphics processor environment
US8977255B2 (en) 2007-04-03 2015-03-10 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
US7779305B2 (en) * 2007-12-28 2010-08-17 Intel Corporation Method and system for recovery from an error in a computing device by transferring control from a virtual machine monitor to separate firmware instructions
US9330720B2 (en) 2008-01-03 2016-05-03 Apple Inc. Methods and apparatus for altering audio output signals
US8996376B2 (en) 2008-04-05 2015-03-31 Apple Inc. Intelligent text-to-speech conversion
US10496753B2 (en) 2010-01-18 2019-12-03 Apple Inc. Automatically adapting user interfaces for hands-free interaction
US20100030549A1 (en) 2008-07-31 2010-02-04 Lee Michael M Mobile device having human language translation capability with positional feedback
WO2010067118A1 (en) 2008-12-11 2010-06-17 Novauris Technologies Limited Speech recognition involving a mobile device
JP2010140361A (ja) * 2008-12-12 2010-06-24 Fujitsu Microelectronics Ltd コンピュータシステム及び異常検出回路
US10241644B2 (en) 2011-06-03 2019-03-26 Apple Inc. Actionable reminder entries
US10241752B2 (en) 2011-09-30 2019-03-26 Apple Inc. Interface for a virtual digital assistant
US9858925B2 (en) 2009-06-05 2018-01-02 Apple Inc. Using context information to facilitate processing of commands in a virtual assistant
US20120309363A1 (en) 2011-06-03 2012-12-06 Apple Inc. Triggering notifications associated with tasks items that represent tasks to perform
US9431006B2 (en) 2009-07-02 2016-08-30 Apple Inc. Methods and apparatuses for automatic speech recognition
US10705794B2 (en) 2010-01-18 2020-07-07 Apple Inc. Automatically adapting user interfaces for hands-free interaction
US10553209B2 (en) 2010-01-18 2020-02-04 Apple Inc. Systems and methods for hands-free notification summaries
US10679605B2 (en) 2010-01-18 2020-06-09 Apple Inc. Hands-free list-reading by intelligent automated assistant
US10276170B2 (en) 2010-01-18 2019-04-30 Apple Inc. Intelligent automated assistant
US8977584B2 (en) 2010-01-25 2015-03-10 Newvaluexchange Global Ai Llp Apparatuses, methods and systems for a digital conversation management platform
CN102754451A (zh) * 2010-02-10 2012-10-24 松下电器产业株式会社 控制装置、控制装置的控制方法和数字广播接收装置
US8682667B2 (en) 2010-02-25 2014-03-25 Apple Inc. User profiling for selecting user specific voice input processing information
US8433828B2 (en) 2010-02-26 2013-04-30 Apple Inc. Accessory protocol for touch screen device accessibility
CN102375767A (zh) * 2010-08-17 2012-03-14 鸿富锦精密工业(深圳)有限公司 计算机重启测试***及方法
US8386618B2 (en) 2010-09-24 2013-02-26 Intel Corporation System and method for facilitating wireless communication during a pre-boot phase of a computing device
US10762293B2 (en) 2010-12-22 2020-09-01 Apple Inc. Using parts-of-speech tagging and named entity recognition for spelling correction
US9262612B2 (en) 2011-03-21 2016-02-16 Apple Inc. Device access using voice authentication
US10057736B2 (en) 2011-06-03 2018-08-21 Apple Inc. Active transport based notifications
US8994660B2 (en) 2011-08-29 2015-03-31 Apple Inc. Text correction processing
US10134385B2 (en) 2012-03-02 2018-11-20 Apple Inc. Systems and methods for name pronunciation
US9483461B2 (en) 2012-03-06 2016-11-01 Apple Inc. Handling speech synthesis of content for multiple languages
US9280610B2 (en) 2012-05-14 2016-03-08 Apple Inc. Crowd sourcing information to fulfill user requests
US9721563B2 (en) 2012-06-08 2017-08-01 Apple Inc. Name recognition system
US9495129B2 (en) 2012-06-29 2016-11-15 Apple Inc. Device, method, and user interface for voice-activated navigation and browsing of a document
US9576574B2 (en) 2012-09-10 2017-02-21 Apple Inc. Context-sensitive handling of interruptions by intelligent digital assistant
US9547647B2 (en) 2012-09-19 2017-01-17 Apple Inc. Voice-based media searching
JP6048507B2 (ja) 2012-09-27 2016-12-21 富士通株式会社 変換装置、変換方法、および情報処理システム
CN104969289B (zh) 2013-02-07 2021-05-28 苹果公司 数字助理的语音触发器
US9368114B2 (en) 2013-03-14 2016-06-14 Apple Inc. Context-sensitive handling of interruptions
WO2014144579A1 (en) 2013-03-15 2014-09-18 Apple Inc. System and method for updating an adaptive speech recognition model
US9922642B2 (en) 2013-03-15 2018-03-20 Apple Inc. Training an at least partial voice command system
WO2014197334A2 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for user-specified pronunciation of words for speech synthesis and recognition
US9582608B2 (en) 2013-06-07 2017-02-28 Apple Inc. Unified ranking with entropy-weighted information for phrase-based semantic auto-completion
WO2014197336A1 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for detecting errors in interactions with a voice-based digital assistant
WO2014197335A1 (en) 2013-06-08 2014-12-11 Apple Inc. Interpreting and acting upon commands that involve sharing information with remote devices
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
EP3937002A1 (en) 2013-06-09 2022-01-12 Apple Inc. Device, method, and graphical user interface for enabling conversation persistence across two or more instances of a digital assistant
CN105265005B (zh) 2013-06-13 2019-09-17 苹果公司 用于由语音命令发起的紧急呼叫的***和方法
WO2015020942A1 (en) 2013-08-06 2015-02-12 Apple Inc. Auto-activating smart responses based on activities from remote devices
US20150089102A1 (en) * 2013-09-23 2015-03-26 Lsi Corporation Solid state drives that cache boot data
US9620105B2 (en) 2014-05-15 2017-04-11 Apple Inc. Analyzing audio input for efficient speech and music recognition
US10592095B2 (en) 2014-05-23 2020-03-17 Apple Inc. Instantaneous speaking of content on touch devices
US9502031B2 (en) 2014-05-27 2016-11-22 Apple Inc. Method for supporting dynamic grammars in WFST-based ASR
US9430463B2 (en) 2014-05-30 2016-08-30 Apple Inc. Exemplar-based natural language processing
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US9842101B2 (en) 2014-05-30 2017-12-12 Apple Inc. Predictive conversion of language input
US9785630B2 (en) 2014-05-30 2017-10-10 Apple Inc. Text prediction using combined word N-gram and unigram language models
US9760559B2 (en) 2014-05-30 2017-09-12 Apple Inc. Predictive text input
US10078631B2 (en) 2014-05-30 2018-09-18 Apple Inc. Entropy-guided text prediction using combined word and character n-gram language models
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US10289433B2 (en) 2014-05-30 2019-05-14 Apple Inc. Domain specific language for encoding assistant dialog
US9633004B2 (en) 2014-05-30 2017-04-25 Apple Inc. Better resolution when referencing to concepts
US9734193B2 (en) 2014-05-30 2017-08-15 Apple Inc. Determining domain salience ranking from ambiguous words in natural speech
WO2015184186A1 (en) 2014-05-30 2015-12-03 Apple Inc. Multi-command single utterance input method
JP6364983B2 (ja) * 2014-06-10 2018-08-01 富士ゼロックス株式会社 電子機器及びプログラム
US10659851B2 (en) 2014-06-30 2020-05-19 Apple Inc. Real-time digital assistant knowledge updates
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US10446141B2 (en) 2014-08-28 2019-10-15 Apple Inc. Automatic speech recognition based on user feedback
US9818400B2 (en) 2014-09-11 2017-11-14 Apple Inc. Method and apparatus for discovering trending terms in speech requests
US10789041B2 (en) 2014-09-12 2020-09-29 Apple Inc. Dynamic thresholds for always listening speech trigger
US10074360B2 (en) 2014-09-30 2018-09-11 Apple Inc. Providing an indication of the suitability of speech recognition
US10127911B2 (en) 2014-09-30 2018-11-13 Apple Inc. Speaker identification and unsupervised speaker adaptation techniques
US9668121B2 (en) 2014-09-30 2017-05-30 Apple Inc. Social reminders
US9646609B2 (en) 2014-09-30 2017-05-09 Apple Inc. Caching apparatus for serving phonetic pronunciations
US9886432B2 (en) 2014-09-30 2018-02-06 Apple Inc. Parsimonious handling of word inflection via categorical stem + suffix N-gram language models
US10552013B2 (en) 2014-12-02 2020-02-04 Apple Inc. Data detection
US9711141B2 (en) 2014-12-09 2017-07-18 Apple Inc. Disambiguating heteronyms in speech synthesis
US9865280B2 (en) 2015-03-06 2018-01-09 Apple Inc. Structured dictation using intelligent automated assistants
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US9721566B2 (en) 2015-03-08 2017-08-01 Apple Inc. Competing devices responding to voice triggers
US10567477B2 (en) 2015-03-08 2020-02-18 Apple Inc. Virtual assistant continuity
US9899019B2 (en) 2015-03-18 2018-02-20 Apple Inc. Systems and methods for structured stem and suffix language models
US9842105B2 (en) 2015-04-16 2017-12-12 Apple Inc. Parsimonious continuous-space phrase representations for natural language processing
US10083688B2 (en) 2015-05-27 2018-09-25 Apple Inc. Device voice control for selecting a displayed affordance
US10127220B2 (en) 2015-06-04 2018-11-13 Apple Inc. Language identification from short strings
US10101822B2 (en) 2015-06-05 2018-10-16 Apple Inc. Language input correction
US9578173B2 (en) 2015-06-05 2017-02-21 Apple Inc. Virtual assistant aided communication with 3rd party service in a communication session
US10186254B2 (en) 2015-06-07 2019-01-22 Apple Inc. Context-based endpoint detection
US10255907B2 (en) 2015-06-07 2019-04-09 Apple Inc. Automatic accent detection using acoustic models
US11025565B2 (en) 2015-06-07 2021-06-01 Apple Inc. Personalized prediction of responses for instant messaging
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US10671428B2 (en) 2015-09-08 2020-06-02 Apple Inc. Distributed personal assistant
US9697820B2 (en) 2015-09-24 2017-07-04 Apple Inc. Unit-selection text-to-speech synthesis using concatenation-sensitive neural networks
US11010550B2 (en) 2015-09-29 2021-05-18 Apple Inc. Unified language modeling framework for word prediction, auto-completion and auto-correction
US10366158B2 (en) 2015-09-29 2019-07-30 Apple Inc. Efficient word encoding for recurrent neural network language models
US11587559B2 (en) 2015-09-30 2023-02-21 Apple Inc. Intelligent device identification
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US10049668B2 (en) 2015-12-02 2018-08-14 Apple Inc. Applying neural network language models to weighted finite state transducers for automatic speech recognition
US10223066B2 (en) 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
CN105660231A (zh) * 2016-03-01 2016-06-15 郑州市顺意科技有限公司 营养钵自动装土装置
US10446143B2 (en) 2016-03-14 2019-10-15 Apple Inc. Identification of voice inputs providing credentials
CN105638304B (zh) * 2016-03-15 2019-02-05 郑州市顺意科技有限公司 营养钵自动分钵装置
US9934775B2 (en) 2016-05-26 2018-04-03 Apple Inc. Unit-selection text-to-speech synthesis based on predicted concatenation parameters
US9972304B2 (en) 2016-06-03 2018-05-15 Apple Inc. Privacy preserving distributed evaluation framework for embedded personalized systems
US10249300B2 (en) 2016-06-06 2019-04-02 Apple Inc. Intelligent list reading
US10049663B2 (en) 2016-06-08 2018-08-14 Apple, Inc. Intelligent automated assistant for media exploration
DK179309B1 (en) 2016-06-09 2018-04-23 Apple Inc Intelligent automated assistant in a home environment
US10067938B2 (en) 2016-06-10 2018-09-04 Apple Inc. Multilingual word prediction
US10586535B2 (en) 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
US10490187B2 (en) 2016-06-10 2019-11-26 Apple Inc. Digital assistant providing automated status report
US10192552B2 (en) 2016-06-10 2019-01-29 Apple Inc. Digital assistant providing whispered speech
US10509862B2 (en) 2016-06-10 2019-12-17 Apple Inc. Dynamic phrase expansion of language input
DK201670540A1 (en) 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
DK179343B1 (en) 2016-06-11 2018-05-14 Apple Inc Intelligent task discovery
DK179049B1 (en) 2016-06-11 2017-09-18 Apple Inc Data driven natural language event detection and classification
DK179415B1 (en) 2016-06-11 2018-06-14 Apple Inc Intelligent device arbitration and control
US10043516B2 (en) 2016-09-23 2018-08-07 Apple Inc. Intelligent automated assistant
US10593346B2 (en) 2016-12-22 2020-03-17 Apple Inc. Rank-reduced token representation for automatic speech recognition
DK201770439A1 (en) 2017-05-11 2018-12-13 Apple Inc. Offline personal assistant
DK179496B1 (en) 2017-05-12 2019-01-15 Apple Inc. USER-SPECIFIC Acoustic Models
DK179745B1 (en) 2017-05-12 2019-05-01 Apple Inc. SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT
DK201770431A1 (en) 2017-05-15 2018-12-20 Apple Inc. Optimizing dialogue policy decisions for digital assistants using implicit feedback
DK201770432A1 (en) 2017-05-15 2018-12-21 Apple Inc. Hierarchical belief states for digital assistants
DK179560B1 (en) 2017-05-16 2019-02-18 Apple Inc. FAR-FIELD EXTENSION FOR DIGITAL ASSISTANT SERVICES
US11010249B2 (en) * 2019-01-08 2021-05-18 Dell Products L.P. Kernel reset to recover from operating system errors
CN110489169B (zh) * 2019-08-06 2021-10-19 晶晨半导体(上海)股份有限公司 一种片上***的存储器快速启动方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59140568A (ja) 1983-01-31 1984-08-11 Fujitsu Ltd プログラム異常処理方式
US5594903A (en) * 1991-02-26 1997-01-14 Lynx Real-Time Systems, Inc. Operating System architecture with reserved memory space resident program code identified in file system name space
US5469571A (en) * 1991-07-15 1995-11-21 Lynx Real-Time Systems, Inc. Operating system architecture using multiple priority light weight kernel task based interrupt handling
JPH06236284A (ja) 1991-10-21 1994-08-23 Intel Corp コンピュータシステム処理状態を保存及び復元する方法及びコンピュータシステム
US5513319A (en) * 1993-07-02 1996-04-30 Dell Usa, L.P. Watchdog timer for computer system reset
CA2126950A1 (en) * 1993-07-30 1995-01-31 Bryan M. Willman Booting a computer system using a last known good set of configuration data
US5903752A (en) * 1994-10-13 1999-05-11 Intel Corporation Method and apparatus for embedding a real-time multi-tasking kernel in a non-real-time operating system
KR970010634B1 (ko) * 1994-10-25 1997-06-28 삼성전자 주식회사 네트워크 하이버네이션 시스템
JP3072048B2 (ja) * 1996-03-19 2000-07-31 株式会社東芝 計算機システムおよび計算機システムのソフトウェア故障回復方法
US5935242A (en) * 1996-10-28 1999-08-10 Sun Microsystems, Inc. Method and apparatus for initializing a device
US5995745A (en) * 1996-12-23 1999-11-30 Yodaiken; Victor J. Adding real-time support to general purpose operating systems
US5991822A (en) * 1997-03-17 1999-11-23 International Business Machines Corporation System for modifying functions of static device driver using a registered driver extension extended dynamically by providing an entry point for the driver extension
US5951686A (en) * 1997-03-31 1999-09-14 International Business Machines Corporation Method and system for reboot recovery
JP3593241B2 (ja) * 1997-07-02 2004-11-24 株式会社日立製作所 計算機の再起動方法

Also Published As

Publication number Publication date
KR100306456B1 (ko) 2001-10-19
US20040230871A1 (en) 2004-11-18
CN1143209C (zh) 2004-03-24
JP3593241B2 (ja) 2004-11-24
US7069430B2 (en) 2006-06-27
KR19990013514A (ko) 1999-02-25
CN1512331A (zh) 2004-07-14
US20080201573A1 (en) 2008-08-21
US20010020259A1 (en) 2001-09-06
JPH1124943A (ja) 1999-01-29
US6253320B1 (en) 2001-06-26
CN1208890A (zh) 1999-02-24
US7373496B2 (en) 2008-05-13
US7765395B2 (en) 2010-07-27
TW469409B (en) 2001-12-21

Similar Documents

Publication Publication Date Title
CN1251074C (zh) 计算机的重启动方法
CN1174323C (zh) 管理共享内存的方法
JP6893284B2 (ja) リソーススケジューリング方法、スケジューリングサーバ、クラウドコンピューティングシステム、及び記憶媒体
CN1213376C (zh) 用于被复制的服务器的协议
CN1096642C (zh) 高效利用空间的对象加锁的***和方法
CN1191526C (zh) 用于计算机***的可恢复软件安装方法和装置
CN1331817A (zh) 用于并发数据库管理***表操作的方法和设备
CN1508679A (zh) 被管理的文件***过滤器模型和构造
CN1722092A (zh) Vex-虚拟扩展框架
CN1700171A (zh) 提供从虚拟环境对硬件的直接访问
CN1975679A (zh) 用于优化分段资源分配的方法和设备
CN1908903A (zh) 执行作业步的***和方法以及计算机产品
CN1500243A (zh) 使用可移动存储器收集和恢复用户环境数据
CN1702622A (zh) 用于校正管理程序工作的分布的***
CN1193410A (zh) 在多处理器***中的处理器之间传送消息的方法与装置
CN101046772A (zh) 回收存储器中的空间的方法和装置
CN102141931A (zh) 一种创建虚拟机的方法、虚拟机监控器及虚拟机***
CN1975655A (zh) 用于管理对存储装置的访问的方法和设备
CN102331958A (zh) Linux***下硬盘启动的方法
CN115033292A (zh) 模型训练方法及装置
CN100339848C (zh) 自动配置或恢复计算机***网络配置的方法
CN1172986A (zh) 实时控制***
US11704143B2 (en) Information processing apparatus, method of controlling the same, and storage medium
CN1295778C (zh) 一种验证芯片硬件行为与软件模拟行为的一致性的方法
CN1928832A (zh) 多处理计算***中的状态跟踪和恢复方法和***

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
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20060412

Termination date: 20110702