JPH1124943A - 計算機再起動方法および計算機停止方法 - Google Patents

計算機再起動方法および計算機停止方法

Info

Publication number
JPH1124943A
JPH1124943A JP9191840A JP19184097A JPH1124943A JP H1124943 A JPH1124943 A JP H1124943A JP 9191840 A JP9191840 A JP 9191840A JP 19184097 A JP19184097 A JP 19184097A JP H1124943 A JPH1124943 A JP H1124943A
Authority
JP
Japan
Prior art keywords
kernel
module
interrupt
computer
restart
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
JP9191840A
Other languages
English (en)
Other versions
JP3593241B2 (ja
Inventor
Tomonori Sekiguchi
知紀 関口
Toshiaki Arai
利明 新井
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
Priority to JP19184097A priority Critical patent/JP3593241B2/ja
Priority to TW087110013A priority patent/TW469409B/zh
Priority to US09/107,388 priority patent/US6253320B1/en
Priority to KR1019980026409A priority patent/KR100306456B1/ko
Priority to CNB981178529A priority patent/CN1143209C/zh
Priority to CNB2004100033815A priority patent/CN1251074C/zh
Publication of JPH1124943A publication Critical patent/JPH1124943A/ja
Priority to US09/858,492 priority patent/US7069430B2/en
Priority to US10/861,482 priority patent/US7373496B2/en
Application granted granted Critical
Publication of JP3593241B2 publication Critical patent/JP3593241B2/ja
Priority to US12/107,651 priority patent/US7765395B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 operations
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Retry When Errors Occur (AREA)

Abstract

(57)【要約】 【課題】 オペレーティングシステム再起動時でも、オ
ペレーティングシステムとは独立して処理を実施できる
外部割り込み処理について、その割り込みの処理をオペ
レーティングシステムの再起動の間も実行できるように
することにある。 【解決手段】 カーネルが複数のロードモジュールによ
り構成されるオペレーティングシステムを有する計算機
おけるカーネルがソフトウェア障害を検出した時にカー
ネルを再起動するために、オペレーティングシステムの
カーネルを主記憶に再ロードする場合に、無停止モジュ
ールに係るアドレス領域に対する仮想アドレス変換テー
ブルと、主記憶内の無停止モジュールに係るアドレス領
域の記憶内容と、無停止モジュールが処理する外部割り
込みに対する割り込み処理ハンドラの登録内容とについ
ては主記憶に保持したままにして、再ロード対象から外
して再ロードを行い、再ロード後にカーネルを実行す
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は計算機の起動方法に
関し、特に、オペレーティングシステムがソフトウェア
フォルトにより停止した時の再起動方法に関する。
【0002】
【従来の技術】一部のオペレーティングシステムでは、
計算機に接続しているハードウェアについて、それを制
御するデバイスドライバモジュールをカーネルから分離
して、カーネルが必要なデバイスドライバをロードして
利用することが可能になっている。上記の機能を持つオ
ペレーティングシステムにおいて、クロック割り込みを
横取りして管理する実時間処理ドライバを利用して、時
間制約の厳しいシステムの制御を計算機に実施させる方
式がある。この方式では、本来オペレーティングシステ
ムが受けとるべきクロック割り込みを実時間処理ドライ
バが横取りし、オペレーティングシステムの処理より優
先して実時間処理を実施し、その後オペレーティングシ
ステムに制御を戻す方法が取られる。この方式は、Wind
ows NT等のカーネルモードで動作するモジュールの追加
が容易なオペレーティングシステムで多く実現されてい
る。
【0003】実時間処理においては信頼性の確保も大き
な問題となる。上記の方式においては、実時間処理モジ
ュールをオペレーティングシステムのカーネルに依存し
ないようにすることにより、オペレーティングシステム
がソフトウェア障害により停止してしまっても、実時間
処理を継続することができる機能を持つものもある。ま
た、オペレーティングシステムが障害により停止する時
に、実時間処理モジュールにその旨通知を発行して、実
時間処理モジュール側でオペレーティングシステムの停
止に対処する処理を実施できるようにしているものもあ
る。
【0004】しかしながら、これらの方式では、ソフト
ウェア障害により停止してしまったオペレーティングシ
ステムを再起動する時、実時間処理ドライバも停止して
しまう。つまり、オペレーティングシステムの再起動処
理と実時間処理を同時には実施できないという問題点が
ある。これは、オペレーティングシステムの再起動時に
プロセッサをリセットしてしまうため、実時間モジュー
ルが動作するための仮想記憶、割り込み処理用の情報が
失われてしまうからである。これは、非常に短い周期で
停止することなく制御しなければならないハードウェア
がある場合には、計算機再起動時にその制御が途絶えて
しまうため問題である。
【0005】従来技術ではクロック割り込みに限らず、
計算機の再起動中はハードウェアの発生する外部割り込
みを受け付けることができない。その割り込み処理がオ
ペレーティングシステムの機能に依存していなくてもで
ある。例えば、複数の計算機からなるクラスタ構成の計
算機システムでは、他の計算機が稼働しているかどうか
を一定間隔で問い合わせて、一定時間返答がなければそ
の計算機が実行を停止していると判断し、システム構成
を変更する処理を実施する。この場合に、計算機が停止
しているという判断を下すためには一定の待ち時間が必
要になり、システム再構成を開始するまでの時間が長く
なり問題である。この問合せに反応する外部割り込みを
カーネル再起動処理中も受け付けて返答を返すことがで
きれば、再構成を開始するまでの時間を短縮できる。ま
た、プロセッサをリセットする再起動方法では、メモリ
チェック、ハードウェア構成認識等の処理が実行される
ため、オペレーティングシステムの起動までの時間が長
くなるという問題がある。
【0006】
【発明が解決しようとする課題】従来のオペレーティン
グシステムでは、オペレーティングシステムがソフトウ
ェアフォルトにより停止し再起動を実施する場合に、再
起動処理の間、外部デバイスからの割り込みを受け付け
られず、割り込みに対する処理を実行できない問題があ
る。本発明の目的は、オペレーティングシステム再起動
時でも、オペレーティングシステムとは独立して処理を
実施できる外部割り込み処理について、その割り込みの
処理をオペレーティングシステムの再起動の間も実行で
きるようにすることにある。
【0007】
【課題を解決するための手段】上記目的を達成するた
め、本発明は、カーネルが複数のロードモジュールによ
り構成されるオペレーティングシステムを有する計算機
おけるカーネルがソフトウェア障害を検出した時にカー
ネルを再起動する計算機再起動方法であり、オペレーテ
ィングシステムのカーネルを主記憶に再ロードする際、
特定のモジュールに係るアドレス領域に対する仮想アド
レス変換テーブルと、主記憶装置の該アドレス領域の記
憶内容と、該特定のモジュールが処理する外部割り込み
に対する割り込み処理ハンドラの登録とについては保持
したままとして再ロード対象から外し、再ロード後、カ
ーネルを実行するようにしている。
【0008】また、外部デバイスが発生する割り込みを
処理するモジュールを、カーネルの再起動処理中も中断
することなく割り込み処理をする前記特定のモジュール
として登録し、該特定のモジュールが管理する外部デバ
イスの占有するハードウェア資源を登録し、前記登録し
た2つのデータを書き込み禁止領域に配置し、オペレー
ティングシステムのカーネルがソフトウェア障害を検出
してカーネルを再起動する時に、前記登録データに基づ
きカーネル再起動時の外部デバイスの初期化手順、およ
びカーネルがロードするモジュールの構成を決定するこ
とにより再ロード対象を決定するようにしている。
【0009】また、カーネルが複数のロードモジュール
により構成されるオペレーティングシステムを有する計
算機おけるカーネルがソフトウェア障害を検出した時に
カーネルの処理を停止する計算機停止方法であり、カー
ネルがソフトウェア障害を検出したとき、プロセッサを
リセットすることなく、カーネル再起動中も特定の割り
込みに対する処理ができるように割り込み処理に利用さ
れる主記憶内容および割り込みハンドラの設定を主記憶
中に維持したままカーネルの処理を停止するようにして
いる。
【0010】また、カーネルが複数のロードモジュール
により構成されるオペレーティングシステムを有する計
算機おけるカーネルがソフトウェア障害を検出した時に
カーネルを再起動する計算機再起動方法であって、上記
の計算機停止方法により主記憶中に格納された割り込み
処理用の主記憶内容、および割り込みハンドラの設定
を、オペレーティングシステムカーネル起動時に引き継
ぐようにしている。
【0011】また、カーネルが複数のロードモジュール
により構成されるオペレーティングシステムを有する計
算機おけるカーネルがソフトウェア障害を検出した時に
カーネルを再起動する計算機再起動方法であり、カーネ
ル初期起動時のカーネルを構成するモジュールの主記憶
へのロードと外部デバイスの初期化が終了した時点で、
特定の割り込み処理で使用されるデータ領域以外の主記
憶内容と、カーネル初期起動時のレジスタ内容を二次記
憶装置に格納し、カーネルが停止した時に、特定の割り
込みハンドラの設定を保持したまま、前記二次記憶装置
に格納された特定の割り込み処理で使用されるデータ領
域以外の主記憶内容と、カーネル初期起動時のレジスタ
内容を復元して、カーネルを構成するモジュールの主記
憶へのロードと、外部デバイスの初期化以降の処理を再
開することで再起動を実施するようにしている。
【0012】
【発明の実施の形態】以下に、図面を用いて本発明の第
一の実施の形態を説明する。図1は本発明の実施の形態
の計算機を示す図である。計算機100はプロセッサ1
01、主記憶102、読み取り専用メモリ103、磁気
ディスク105、外部デバイス106、および、10
7、割り込みコントローラ104、各構成要素を接続す
るバス108、割り込み信号バス109からなる。読み
取り専用メモリ103には、計算機の初期化処理を実行
するプログラムが格納されており、プロセッサ101が
リセット状態になった時に制御が移るアドレスに初期化
プログラムが配置されるようにバス108に接続されて
いる。読み取り専用メモリ103に格納されているプロ
グラムは、ハードウェア構成を表すデータを主記憶内に
構築する。更に磁気ディスクのあらかじめ定められた領
域にあるデータを主記憶にロードし、それをプログラム
とみなして制御を渡す。この例では、ローダ114が磁
気ディスク105の定められた領域にあり、これが主記
憶102にロードされて実行される。処理を引き継いだ
ローダ114は、カーネル111を主記憶にロードし、
プロセッサの仮想アドレス変換機構を設定して、プロセ
ッサを仮想アドレスモードに移し、カーネルを実行す
る。この時、ローダはハードウェア構成データをカーネ
ルに引き渡す。
【0013】カーネルは、ハードウェア構成データを参
照してカーネルが管理するハードウェアデバイスの初期
化処理を実施し、モジュール構成ファイル110の内容
にしたがってカーネルからは分離されたプログラムモジ
ュールを主記憶102にロードし、それぞれのモジュー
ルの初期化処理を実行する。例えば、モジュール構成フ
ァイルが、再起動ローダ113、デバイスドライバ11
2をロードするように書かれていれば、カーネルはこれ
らを主記憶にロードし、それぞれの初期化ルーチンを実
行する。図1は、主記憶にカーネル、再起動ローダ、お
よび、デバイスドライバがロードされていることを示し
ている。最後に、カーネルは最初のプロセスを生成し
て、計算機起動手順は完了する。
【0014】このような計算機システムで、オペレーテ
ィングシステムカーネルがソフトウェア障害により停止
してしまった時に、プロセッサをリセットして上記の手
順で計算機を再起動してしまうと、再起動の間、仮想ア
ドレスモードは解除され、外部デバイス106、およ
び、107からの割り込みを受け付けることができなく
なる。ここでは、外部デバイス106が発生する割り込
みは、カーネルがソフトウェア障害により停止し、再起
動している間も処理しなければならない割り込みで、デ
バイスドライバ112により管理されるものとして説明
する。本発明は、カーネルの再起動処理をしている間も
特定の割り込みを受け付け続け、割り込み処理を実行可
能な再起動手順を提供するものである。
【0015】外部デバイス106はデバイスドライバ1
12により管理されるものとする。デバイスドライバ1
12は、カーネルが提供するサービスを利用せずに外部
デバイス106の割り込みを処理するようにプログラム
されているモジュールである。ここで述べる実施の形態
では、デバイスドライバ112は、無停止モジュールと
して再起動ローダ113の無停止モジュール管理テーブ
ル500に登録される。再起動ローダ113は、カーネ
ルがソフトウェア障害により停止してカーネルの再起動
を実施する時に実行されるモジュールであり、無停止モ
ジュールとして管理テーブル500に登録されているモ
ジュールの処理環境を維持したままカーネルの再起動処
理を実行する。
【0016】無停止モジュールの処理環境とは、無停止
モジュールが配置されている仮想アドレス、それに対す
るアドレス変換テーブル、モジュールが格納されている
物理メモリ、無停止モジュールが処理すべき割り込みの
割り込みハンドラの設定を指している。アドレス変換テ
ーブルはページテーブル410に設定され、割り込みハ
ンドラは割り込みハンドラテーブル430に設定されて
いる。また、アドレス空間情報とハードウェア資源情報
は資源管理データ115に格納されている。再起動ロー
ダ113は、無停止モジュール管理テーブル500を参
照して、無停止モジュールが確保しているアドレス領
域、割り込みハンドラの設定を保持したまま、カーネル
の再ロード、および、実行を行なう。これにより、無停
止モジュールの割り込み処理の連続性を保つことができ
る。
【0017】以下で、本発明の第1の実施の形態の詳細
について説明する。図2は、本発明のオペレーティング
システムのカーネルのアドレス空間を表現するデータ構
造を示している。200はカーネルのアドレス空間にロ
ードされているモジュールを記録するロードモジュール
管理テーブルである。各モジュールはファイルとして磁
気ディスクなどの二次記憶装置に格納されており、オペ
レーティングシステムローダ、または、カーネルにより
主記憶にロードされる。ロードモジュール管理テーブル
200は、主記憶にロードされている各モジュールのモ
ジュール名称201、モジュールのコード領域開始仮想
アドレス202、コード領域のサイズ203、データ領
域開始仮想アドレス、データ領域の大きさ205、およ
び、モジュールインターフェイス情報206を含んでい
る。モジュールインターフェイス情報は、ロードされる
モジュールがカーネルに提供するインターフェイスルー
チンの開始アドレスである。インターフェイスルーチン
206を登録することにより、カーネルはロードされた
モジュールの機能を利用できるようになる。
【0018】図2の207から211は、モジュール名
称がデバイスドライバ1であるモジュールのコード開始
アドレス、サイズ、データ開始アドレス、サイズ、およ
び、インターフェイスルーチン情報を格納している。こ
の図のロードモジュール管理テーブル200では、カー
ネル、再起動ローダ、デバイスドライバ1、およびデバ
イスドライバ2がカーネル空間にロードされていること
を示している。220は、カーネルの仮想アドレス空間
の空き領域を表現するカーネル仮想空間空き領域リスト
を保持している。220は空き領域を表現する空きブロ
ック構造体230を指している。空きブロック構造体2
30は、空き領域の開始仮想アドレス232、その空き
領域のサイズ233、および、次の空き領域を表現する
空きブロック構造体へのポインタ231を含んでいる。
231は次の空きブロック構造体である240のアドレ
スを格納している。この図の220では、それぞれアド
レス232、242から始まり、大きさが233、24
3である2つの連続した空き領域がカーネルの仮想アド
レス空間にあることを示している。250は、物理メモ
リの空き領域を表現する物理メモリ空き領域リストであ
る。物理メモリ空き領域リストも、カーネル仮想空間空
き領域リストと同様に構成される。空きブロック構造体
260、および、270がそれぞれ物理メモリの空き領
域を表現している。この図の250も、220と同様に
2つの連続した空き物理メモリがあることを表現してい
る。
【0019】次に、計算機に接続している外部デバイス
を管理するデータ構造について説明する。図3は、本発
明の実施の形態の計算機に接続している外部デバイスが
占有する資源を表現するデータ構造を示している。30
0は、外部デバイスの制御用のレジスタが存在するアド
レス範囲を表現するデバイス占有アドレスリストであ
る。デバイス占有アドレスリスト300は、1つのアド
レス範囲を表現するデバイス占有アドレス構造体から成
り、図3では、310、320、330の3つのデバイ
ス占有アドレス構造体から構成されている。デバイス占
有アドレス構造体310は、デバイス制御レジスタ開始
アドレス312、大きさ313、そのアドレス範囲によ
り制御されるデバイスを管理しているモジュールのモジ
ュール番号314、および、デバイス占有アドレスリス
トを構成するためのリンク311を含んでいる。モジュ
ール番号314は、図2のロードモジュール管理テーブ
ル200へのインデックスとなる。例えば、デバイス占
有アドレス構造体310がカーネルが管理している外部
デバイスの占有資源を表現しているとすると、314の
モジュール番号には0が格納される。デバイスドライバ
1の管理するデバイスがあるならば、そのモジュール番
号には2が格納される(ロードモジュール管理テーブル
200へのインデックスは0から数えるとする)。
【0020】340は、外部デバイスが占有する割り込
み番号を記録するデバイス占有割り込みテーブルであ
る。デバイス占有割り込みテーブル340は、プロセッ
サが認識する割り込み番号が、どのモジュールの管理す
るハードウェアデバイスに占有されているかを記録して
いる。例えば、カーネルが管理するクロック割り込み用
デバイスが割り込み番号0を占有しているならば、デバ
イス占有割り込みテーブルの0番目のエントリ341
に、カーネルのモジュール番号である0が格納される。
【0021】次に、プロセッサが直接利用するデータ構
造について説明する。図4は、プロセッサが利用する仮
想アドレス変換テーブル、および、割り込み処理用テー
ブルのデータ構造を示している。410は、プロセッサ
の仮想アドレス−物理アドレス変換を規定するページテ
ーブルである。ページテーブル410のエントリは、プ
ロセッサの規定するページサイズ毎に存在する。各エン
トリは、仮想アドレス空間内のそれぞれの仮想ページに
ついて、そのエントリが有効であるかを示すフラグ41
1、そのページが書き込み可能であるかを示すフラグ4
12、そのエントリの仮想ページに対応する物理ページ
の開始アドレス413を含んでいる。400は、プロセ
ッサのレジスタで、ページテーブル410の開始アドレ
スを格納している。プロセッサは、仮想アドレスモード
で動作している時、ページテーブルレジスタ400を参
照して、仮想アドレスから実際のメモリアクセスに必要
な物理アドレスを生成する。
【0022】430は、プロセッサに入る割り込みにつ
いて、割り込み番号毎の割り込みハンドラを規定する割
り込みハンドラテーブルである。割り込みには要因毎に
番号が振られている。割り込みコントローラ104は、
外部デバイスからの割り込み要求を受け、割り込み番号
に変換してプロセッサに通知する。割り込みハンドラテ
ーブル430は、それぞれの割り込み番号毎の割り込み
ハンドラの開始アドレスを格納している。例えば、クロ
ック割り込みが0番の割り込みを利用しているならば、
割り込みハンドラテーブルの0番目のエントリ431に
は、クロック割り込みハンドラのアドレスが格納されて
いる。420は、プロセッサのレジスタで、割り込みハ
ンドラテーブル430の開始アドレスを格納している。
プロセッサは、割り込みハンドラテーブルレジスタ42
0を参照して、割り込みを検出した時に要因毎の割り込
みハンドラに制御を移す。例えば、プロセッサがクロッ
ク割り込み、つまり0番の割り込みを検出した時、プロ
セッサは割り込みハンドラテーブルレジスタ420が指
すテーブル430の0番エントリ431に格納されてい
るハンドラに制御を移す。
【0023】次に、再起動ローダが管理するデータ構造
について説明する。再起動ローダは、オペレーティング
システムのカーネルがソフトウェア障害により停止し、
オペレーティングシステムを再起動する時に、オペレー
ティングシステムカーネルを主記憶にロードし、カーネ
ルを実行するモジュールである。図5は、再起動ローダ
が管理するデータ構造を示している。500は無停止モ
ジュール管理テーブルであり、再起動ローダによりカー
ネルの再ロード、再起動中もハードウェアデバイスから
の割り込み受け付けて処理を実行するモジュールである
無停止モジュールの情報を管理するデータ構造である。
無停止モジュール管理テーブル500は、無停止モジュ
ール名501、無停止モジュールのコード領域開始アド
レス502、コード領域の大きさ503、データ領域の
開始アドレス504、データ領域の大きさ505、無停
止モジュールが管理する外部デバイスが占有する資源の
情報506、および、無停止モジュールの再初期化ルー
チンのアドレスを含んでいる。利用ハードウェア情報5
06には、無停止モジュールが管理する外部デバイスの
制御用占有アドレス、占有割り込み番号が記録されてい
る。再初期化ルーチン507には、カーネルが再起動し
たときに実行されるルーチンのアドレスを格納する。再
初期化ルーチンが何を実行するかは、モジュールが管理
しているハードウェアに依存するが、少なくとも、ロー
ドモジュール管理テーブル200へのインターフェイス
ルーチン206の登録を実行する。これにより、カーネ
ルは再び無停止モジュールの提供する機能を利用できる
ようになる。
【0024】図5の無停止モジュール管理テーブル50
0では、再起動ローダ、および、デバイスドライバ1が
無停止モジュールとして登録されている。更に、508
ないし513には、デバイスドライバ1の占有アドレ
ス、外部デバイス情報、再初期化ルーチンアドレスが格
納されている。再起動ローダは、無停止モジュール管理
テーブル500の情報を利用して、オペレーティングシ
ステムカーネル再起動時のカーネル空間、および、外部
デバイス構成情報を構築してカーネルに引き渡す。カー
ネルが、これらの情報を参照して起動手順を決定するこ
とで、カーネル再起動中でも中断することなく、外部デ
バイスからの割り込み処理を可能にする。無停止モジュ
ール管理テーブル500は、再起動ローダのデータ領域
に置かれるデータ構造で、再起動ローダモジュールによ
り管理される。再起動ローダモジュールは、モジュール
の初期化時に再起動ローダのデータ領域を書き込み禁止
とし、ソフトウェア障害による無停止モジュール管理テ
ーブル500の破壊を防ぐ。データ領域を書き込み禁止
にするには、データ領域を含む仮想ページに対応するペ
ージテーブル410のエントリの書き込み可フラグをリ
セットすることで実現できる。
【0025】次に、カーネルが起動時に読み込むロード
モジュールを定義するファイルの形式について説明す
る。図6は、本発明の実施の形態のロードモジュールを
定義するデータ構造を示している。110は、モジュー
ル構成ファイルの内容を示している。モジュール構成フ
ァイル110の各エントリは、カーネルがロードするモ
ジュールの名称601、モジュールが格納されているフ
ァイル名602、および、そのモジュールが無停止モジ
ュールであるかを示すフラグ603を含んでいる。図6
の例では、カーネルは再起動ローダ、デバイスドライバ
1、デバイスドライバ2の順でモジュールを主記憶に読
み込む。デバイスドライバ1が格納されているファイル
の名前はdriver1で、デバイスドライバ1は無停
止モジュールであることを表現している。モジュール構
成ファイル110は、オペレーティングシステムが予め
定めた名前のファイルに格納され、カーネルは容易にこ
のファイルを発見できる。
【0026】図7は、本発明の実施の形態のロードモジ
ュールが格納されるファイルの形式を示している。ロー
ドモジュールを格納しているファイル700は、モジュ
ールの実行コードが格納されているコード開始オフセッ
ト701、実行コードのサイズ702、データが格納さ
れているデータ開始オフセット703、データ領域のサ
イズ704、モジュールの初期化ルーチンの実行コード
が格納されている初期化ルーチンオフセット705、モ
ジュールの再配置情報開始オフセット706、再配置情
報のサイズ707、実行コード708および、データ7
09を保持している。モジュールの再配置情報は710
は、モジュールを主記憶にロードする時に利用するデー
タで、モジュールのコード、および、データ領域がロー
ドされたアドレスにしたがってモジュールのコードを変
更するためのデータである。これにより、ロードするモ
ジュールの構成が変わってモジュールがロードされるア
ドレスが変わっても良い。
【0027】次に、本発明の実施例のオペレーティング
システム再起動の手順について説明する。図8は、オペ
レーティングシステムを再起動する時に実行される再起
動ローダの処理手順を示すフローチャートである。ま
ず、ステップ801でカーネル空間に再起動ローダがロ
ードされているか検査する。再起動ローダがロードされ
ていない、あるいは、ロードされているかどうか判別で
きない場合は、ステップ802へ進む。ステップ802
では、プロセッサをリセットして計算機の再起動を実行
する。多くの計算機ではプロセッサをリセット状態にす
ると、仮想アドレス変換が禁止になり、割り込みハンド
ラの設定も無効になり、プロセッサが規定する物理アド
レスに制御を移す。通常、この物理アドレスには計算機
の起動手順を記憶した読み込み専用メモリ103がマッ
プされている。この起動手順は、計算機に接続している
ハードウェアデバイスをリセットする。これは、オペレ
ーティングシステムのカーネル実行時に外部デバイスを
既知の状態にするためである。この起動手順のために、
特に、プロセッサがリセットされてしまうために、従来
の計算機ではオペレーティングシステム再起動の間、外
部デバイスからの割り込み処理を受け付けることができ
なくなってしまう。一方、ステップ801で再起動ロー
ダがロードされていると判断された場合は、プロセッサ
をリセットすることなく、ステップ803に進む。ステ
ップ803からが、実際の再起動ローダが実行する処理
である。
【0028】ステップ803では、ロードモジュール管
理テーブル200に登録されているモジュールがハード
ウェアリセットルーチンをもっているか検査し、登録さ
れていれば、そのリセットルーチンを呼び出す。特別な
ハードウェアリセットが必要ないデバイスの場合は、リ
セットルーチンは登録しなくてもよい。次のステップ8
04では、無停止モジュール管理テーブル500の各エ
ントリの利用ハードウェア情報506を参照して、無停
止モジュールが受け付ける以外の割り込みについて、そ
れらの割り込みの割り込みハンドラを無効にする。具体
的には、割り込みハンドラテーブル430のエントリ
を、割り込みを受け付けるだけの割り込みハンドラのア
ドレスに設定する。次のステップ805では、この後に
続く無停止モジュールのデータ領域へのデータ格納に備
えて、無停止モジュールのデータ領域の格納されている
ページを書き込み可能に設定する。具体的には、ページ
テーブル410の、無停止モジュールのデータ領域に対
応するエントリの書き込み可フラグ412をセットす
る。
【0029】続くステップ806、807、および、8
08では、カーネルが再起動時に参照するカーネル空間
空き領域リスト、物理メモリ空き領域リスト、デバイス
占有アドレスリスト、および、デバイス占有割り込みテ
ーブルを作成する。ステップ806では、仮想メモリ空
き領域リスト、および、物理メモリ空き領域リストを作
成する。ステップ806では、無停止モジュール管理テ
ーブル500を参照して、無停止モジュール、再起動ロ
ーダ、およびカーネルスタック116が利用している以
外のアドレス領域を空き領域とする空き領域リストを、
再起動ローダのデータ領域内に作成する。空き領域リス
トは、オペレーティングシステムの管理する空き領域リ
スト220、および、250と同じデータ構造である。
ステップ807では、デバイス占有アドレスリストを作
成する。ステップ807では、ステップ806と同様、
無停止モジュール管理テーブル500を参照して、無停
止モジュールが利用している以外のアドレス領域を空き
領域とするデバイス占有アドレスリストを再起動ローダ
のデータ領域内に作成する。ここで作成するデバイス占
有アドレスリストは、オペレーティングシステムの管理
するデバイス占有アドレスリスト300とほぼ同じデー
タ構造であるが、デバイス占有アドレス構造体のモジュ
ール番号については、モジュール番号ではなくモジュー
ル名称を格納する。ステップ808では、デバイス占有
割り込みテーブルを作成する。ステップ807と同様
に、無停止モジュールが利用している以外の割り込み番
号を未使用とするデバイス占有割り込みテーブルを、再
起動ローダのデータ領域内に作成する。ここでも、ステ
ップ807と同様、デバイス占有割り込みテーブルの各
エントリには、モジュール番号ではなくモジュール名称
を格納する。
【0030】ステップ806ないし808で作成したデ
ータ構造は、カーネルが再起動した時に、無停止モジュ
ールが管理しているハードウェアデバイス資源を、誤っ
て他のモジュールに割り当てないようにするためのデー
タ構造である。最後に、再起動ローダは、主記憶にオペ
レーティングシステムカーネルをロードし(ステップ8
09)、再起動ローダの再初期化ルーチンのアドレスを
パラメータに加えてカーネルを実行する(ステップ81
0)。
【0031】次に、本発明の実施例のオペレーティング
システムカーネルの初期化処理について説明する。図9
は、本発明の実施例のオペレーティングシステムカーネ
ルの初期化処理手順を示すフローチャートである。ま
ず、カーネルは起動時に再起動ローダによる起動か、通
常の起動かを判別する(ステップ901)。これは、再
起動ローダによる起動では、再起動ローダの再初期化ル
ーチンのアドレスをパラメータとしてカーネルに渡すの
で、容易に判別できる。再起動ローダによる起動でない
場合は、通常手順によりカーネルの実行を進める(ステ
ップ902)。ここでの通常手順とは、バス、および、
割り込みコントローラの初期化、カーネル管理のハード
ウェアデバイスの初期化、モジュール構成ファイルに記
されたモジュールの主記憶へのロードと初期化、初期プ
ロセスの実行である。
【0032】再起動ローダによる起動の場合は、ステッ
プ903へ進む。ステップ903では、再起動ローダモ
ジュール用にロードモジュール管理テーブル200のエ
ントリを割り当てる。続くステップ904で、パラメー
タとして渡された再起動ローダモジュールの再初期化ル
ーチンのアドレスを基に再初期化ルーチンを実行する。
再起動ローダの再初期化ルーチンは、無停止モジュール
の再初期化ルーチンと同様の処理を実施する。この再初
期化ルーチンでは、ロードモジュール管理テーブル20
0の設定を実施する。特に、管理テーブル200のモジ
ュールインターフェイス206が設定され、再起動ルー
チンが提供するインターフェイスルーチンをカーネルか
ら呼び出せるようになる。続く、ステップ905でハー
ドウェア構成情報のコピー、ステップ906と907で
再起動ローダがカーネル起動前に構築した空き領域リス
ト、デバイス占有アドレスリスト、デバイス占有割り込
みテーブルをカーネルのデータ空間にコピーする。これ
らの処理は、再起動ローダが提供するインターフェイス
ルーチンにより実行される。
【0033】通常起動時には、カーネルがロードされて
いる以外のメモリ領域を空き領域とする空き領域リス
ト、空のデバイス占有アドレスリスト、および、すべて
の割り込みのエントリが未使用であるデバイス割り込み
テーブルを作成して、以降の処理を実行する。それに対
し、再起動ローダによるカーネル再起動時には、再起動
ローダが作成した空き領域リスト、デバイス占有アドレ
スリスト、および、デバイス占有割り込みテーブルを利
用する。これにより、無停止モジュールのデータ領域の
初期化、外部デバイスの初期化を避け、無停止モジュー
ルの外部デバイスに関連する処理の連続性を保持するこ
とが可能になる。
【0034】続くステップ908から912は、カーネ
ルが管理するバスと割り込みコントローラ以外のすべて
の外部デバイスについての初期化処理である。ステップ
909では、外部デバイスが利用するアドレス領域、お
よび、割り込み番号が、既に利用されているか検査す
る。これは、デバイス占有アドレスリスト300、およ
び、デバイス占有割り込みテーブル340を参照するこ
とにより検査する。再起動ローダによる再起動時には、
これらのデータ構造に無停止モジュールが利用している
デバイス情報が含まれていることになる。外部デバイス
の使用するアドレス領域、および、割り込み番号が未使
用であるならば、そのアドレス領域、および、割り込み
番号をデバイス占有アドレスリスト300と、デバイス
占有割り込みテーブル340に、カーネルのモジュール
番号とともに登録する(ステップ910)。カーネルの
モジュール番号は、ロードモジュール管理テーブル20
0を検索することによって得られる。さらに、対象とな
っている外部デバイスの初期化を実施し(ステップ91
1)、ステップ912へ進む。
【0035】もし、初期化処理中の外部デバイスが利用
するアドレス、あるいは、割り込み番号が既にデバイス
占有アドレスリスト300、および、デバイス占有割り
込みテーブル340に登録されているならば、これは、
無停止モジュールが利用しているデバイスであるか、ハ
ードウェア構成に誤りがあるかのどちらかである。も
し、初期化処理中の外部デバイスが利用するアドレス、
割り込み番号が既にデバイス占有アドレスリスト30
0、および、デバイス占有割り込みテーブル340に登
録されている場合は、ステップ910、および、911
は実行せずにステップ912へ進む。これにより、無停
止モジュールが管理している外部デバイスの初期化を避
け、無停止モジュールのデバイスに関連する処理の連続
性が保持される。ステップ912では、処理対象デバイ
スを他のデバイスに設定して、ステップ908へ進む。
処理対象デバイスが残っていなければ、ステップ908
の検査からステップ1001へ処理を進める。
【0036】ステップ1001からの処理のフローチャ
ートは図10に示す。図10のフローチャートは、主
に、モジュールのロード処理に関する。ステップ100
1では、モジュール構成ファイル110をメモリに読み
込む。続くステップ1002ないし1011はモジュー
ル構成ファイルに登録されている各モジュールについて
実行する。ステップ1002と1008により、各モジ
ュール毎に処理を実行するようループを構成する。ルー
プ内の最初のステップ1003では、モジュール構成フ
ァイル110の無停止フラグ603を参照して、処理対
象のモジュールが無停止モジュールかどうか検査する。
無停止モジュールでない場合は、ステップ1004へ進
む。
【0037】ステップ1004から始まる処理は、モジ
ュールの主記憶へのロードを実施する。まず、ステップ
1004で必要なメモリ領域を獲得する。これは、空き
領域リスト220、および、250を参照してモジュー
ルを格納するのに十分な空き領域を探し、見つけた領域
を空きリストから外すことで実施する。モジュールを格
納するのに必要な領域は、モジュールを格納しているフ
ァイルの先頭部分702、および、704を参照して求
める。メモリの割当では、ページテーブル410の設定
も行なう。割り当てたアドレス領域に対応するページテ
ーブル410のそれぞれのエントリについて、有効フラ
グ411をセットし、割り当てた物理ページの先頭アド
レスを413に格納する。さらに、書き込み可能フラグ
412もセットする。コード領域が格納されているペー
ジの書き込み可能フラグ412は、コード領域のロード
後リセットする。
【0038】続くステップ1005で、モジュール構成
ファイル110のファイル名602で示されるファイル
を、ステップ1004で割り当てた領域にロードする。
ロード後、ファイルに格納されている再配置情報70
6、707、および、710によりコード領域を修正す
る。さらに、ロードモジュール管理テーブル200に処
理中のモジュール用のエントリを割り当て、そのエント
リのアドレス、および、サイズ情報を設定する(ステッ
プ1006)。次に、モジュールの初期化ルーチンを実
行する(ステップ1007)。モジュールの初期化ルー
チンは、少なくとも、ロードモジュール管理テーブル2
00のモジュールインターフェイス206を設定する。
もし、その他のモジュールが必要とする初期化処理があ
れば、それも実行する。モジュールインターフェイス2
06が設定されると、カーネルはモジュールが提供する
処理ルーチンのアドレスを知ることができ、モジュール
の提供する処理を実行できるようになる。続くステップ
1008では、処理対象モジュールを次のモジュール構
成ファイルのエントリに設定して、ステップ1002へ
戻る。
【0039】次に、処理対象モジュールが無停止モジュ
ールである場合について説明する。ステップ1003
で、処理対象モジュールが無停止モジュールであると判
定された場合、ステップ1009へ進む。ステップ10
09では、ロードモジュール管理テーブル200の更新
処理をする。まず、ロードモジュール管理テーブル20
0に処理中のモジュールのデータを格納するエントリを
割り当てる。割り当てたエントリに格納すべき202、
ないし、205のアドレス、および、サイズ情報は、再
起動ローダのデータ領域内の無停止モジュール管理テー
ブル500の502、ないし、505に格納されてお
り、これを割り当てたエントリにコピーし、ロードモジ
ュール管理テーブル200を更新する。
【0040】次に、無停止モジュールの再初期化ルーチ
ンを実行する(ステップ1010)。再初期化ルーチン
のアドレスは、無停止モジュール管理テーブル500の
再初期化ルーチン507に格納されており、無停止モジ
ュール名称より再初期化ルーチンを得ることができる。
無停止モジュールの再初期化ルーチンは、少なくとも、
ロードモジュール管理テーブル200のインターフェイ
スルーチン206の設定を実行する。必要であれば、ハ
ードウェアデバイスの設定などその他の処理を行なう。
この時に、無停止モジュールは新しくロードされないた
め、これまでのデータ領域は保存され、無停止モジュー
ルのデバイスに関連する処理の連続性を保持することが
できる。
【0041】続くステップ1011では、デバイス占有
アドレスリスト300、および、デバイス占有割り込み
テーブル340の内、処理対象の無停止モジュールが管
理するアドレス領域、および、割り込み番号を表現して
いるエントリのモジュール番号の欄に、ステップ100
9で割り当てたロードモジュール管理テーブル200の
エントリ番号を格納する。無停止モジュールが管理する
デバイスアドレス領域と割り込み番号は、無停止モジュ
ール管理テーブル500の利用ハードウェア情報506
より得られる。空き領域リスト220と250について
は、再起動ローダが無停止モジュールのあるアドレス領
域を空きリストから外しているので、特別な処理をする
必要はない。続いてステップ1008へ進み、次のロー
ドモジュールの処理を行なう。ステップ1002で、す
べてのモジュールをロードしたと判定されたら、ステッ
プ1012へ進む。ステップ1012は初期プロセスの
作成と実行を行ない、オペレーティングシステムの起動
を完了する。
【0042】次に、無停止モジュールの初期化ルーチン
について説明する。モジュールの初期化ルーチンはすべ
てのモジュールが持たなければならないルーチンで、カ
ーネルの起動時に実行される。図11は、本発明の実施
の形態の、無停止モジュールの初期化ルーチンの処理を
示すフローチャートである。ここでは、モジュール構成
ファイル110に設定されているデバイスドライバ1の
初期化ルーチンであるとして説明する。まず、デバイス
ドライバ1のカーネルへのインターフェイスとなるモジ
ュールインターフェイスを、ロードモジュール管理テー
ブル200のデバイスドライバ1用に割り当てたエント
リ211に格納する(ステップ1101)。次のステッ
プ1102では、デバイスドライバ1用のデバイス占有
アドレス構造体を割り当て、開始アドレス、サイズ、モ
ジュール番号を設定し、デバイス占有アドレスリスト3
00に追加する。さらに、デバイス占有割り込みテーブ
ル340の、デバイスドライバ1が管理する割り込み番
号のエントリにデバイスドライバ1のモジュール番号を
格納する。これにより、デバイスドライバ1の利用する
デバイスアドレス領域、および、割り込み番号を、デバ
イス占有アドレスリスト300、および、デバイス占有
割り込みテーブル340に登録する。続いて、モジュー
ルの無停止モジュール管理テーブル500への登録を行
なう(ステップ1103)。無停止モジュール管理テー
ブルに現在処理中のモジュール用のエントリを割り当
て、アドレス、サイズ情報、利用ハードウェア情報、お
よび、再初期化ルーチンのアドレスを設定する。設定
は、再起動ローダの提供するインターフェイスルーチン
により実行する。無停止モジュール管理テーブル500
を更新する場合、無停止モジュール管理テーブル500
のあるページは書き込み禁止に設定されているので、更
新の前後でページテーブル410の書き込み可フラグを
操作する。
【0043】次に、再起動ローダが提供するインターフ
ェイスルーチンについて説明する。再起動ローダはそれ
自身が無停止モジュールであり、初期化ルーチン、再初
期化ルーチン、ハードウェア構成データコピールーチ
ン、無停止モジュール登録ルーチンを提供する。まず、
再起動ローダの初期化ルーチンの処理について説明す
る。図12は、再起動ローダの処理手順を示すフローチ
ャートである。再起動ローダは無停止モジュールであ
り、再起動ローダの初期化ルーチンは、計算機が起動さ
れた時にのみ呼ばれる。まず、再起動ローダの初期化ル
ーチンでは、以降の再起動処理に備えて、読み込み専用
メモリ103に格納されている初期プログラムが作成し
たハードウェア構成情報を、再起動ローダのデータ領域
にコピーする(ステップ1201)。次に、無停止モジ
ュール管理テーブル500の初期化(ステップ120
2)、再起動ローダ自身の無停止モジュール管理テーブ
ルへの登録(ステップ1203)を実行する。最後に、
無停止モジュール管理テーブル、および、ハードウェア
構成データが格納されている再起動ローダのデータ領域
に割り当てられているページを書き込み禁止に設定して
(ステップ1204)終了する。
【0044】再初期化ルーチンは、他の無停止モジュー
ルと同じであり、ロードモジュール管理テーブルへのイ
ンターフェイスルーチンの登録処理をする。ハードウェ
ア構成データコピールーチンは、再起動ローダのデータ
領域に格納されているハードウェア構成データをカーネ
ルのデータ領域にコピーする。無停止モジュール登録ル
ーチンは、無停止モジュールに関するデータを無停止モ
ジュール管理テーブル500に登録する。通常、再起動
ローダのデータ領域は仮想アドレス機構により書き込み
禁止に設定されているので、登録ルーチンは書き込み禁
止を一旦解除して、無停止モジュールデータをテーブル
500に書き込み、再びデータ領域を書き込み禁止とす
る。
【0045】この実施の形態によれば、オペレーティン
グシステムカーネルがソフトウェア障害により停止して
再起動処理を実施しても、無停止モジュールが利用する
として登録した外部デバイスの割り込みの処理を中断す
ることなく実施することができる。また、プロセッサリ
セット時に実行されるハードウェア構成認識処理を回避
でき、再起動までの時間を短縮できる。
【0046】次に、本発明を、クロック割り込みを契機
に外部デバイスの制御を実施するモジュールを無停止モ
ジュールとする実施形態について述べる。クロック割り
込みは、通常カーネル本体が管理する割り込みである。
時間制約の厳しい処理を実施する場合に、クロック割り
込みをカーネルに渡す前に横取りして、時間制約付きの
処理を優先して実施するモジュールを利用する方式があ
る。割り込みを横取りするとは、割り込みハンドラの設
定を変更してしまうことをいう。このような時間制約の
厳しい制御においては、時間制約が厳しいと同時に、ク
ロック割り込みに対する処理の中断が許されない場合が
ある。本発明によれば、クロック割り込みを横取りする
モジュールを無停止モジュールとすることで、カーネル
がソフトウェア障害により停止して再起動することにな
っても、クロック割り込みに対する処理を中断すること
なく継続することができる。クロック割り込み処理モジ
ュールを無停止モジュールとして登録する時に、クロッ
ク割り込みの割り込み番号、および、クロック割り込み
の制御アドレスをモジュールの占有資源としてデバイス
として無停止モジュール管理テーブル500に登録す
る。これにより、カーネルの再起動の前後で、クロック
割り込みの処理環境は引き継がれる。また、カーネルの
再起動時に、カーネルが自身の管理デバイスであるクロ
ック割り込みが他のモジュールに占有されていることを
認識し、クロック割り込みに関する設定を変更せずに起
動処理を進める。これにより、オペレーティングシステ
ムカーネルがソフトウェア障害により停止し再起動され
ても、クロック割り込み処理は中断することなく、信頼
性が高く、高可用な制御システムを実現できる。
【0047】本発明の第二の実施の形態について説明す
る。図13はこの実施形態における計算機の起動手順に
示すフローチャートである。ステップ1301から13
03にて通常のカーネル初期化処理であるカーネルデー
タの初期化(ステップ1301)、外部デバイスの初期
化(ステップ1302)、および、カーネルモジュール
のロードと初期化(ステップ1303)を実施する。モ
ジュールの初期化は、第一の実施の形態でのように、モ
ジュールが無停止モジュールであるならば、無停止モジ
ュール管理テーブル500にその利用アドレス情報を登
録する。次のステップ1304では、主記憶102のう
ち、カーネル、および、その他のモジュールがロードさ
れている領域で、無停止モジュールのデータ領域以外の
領域を磁気ディスク105の再起動ファイルに記録す
る。さらに、ステップ1305では、ページテーブルレ
ジスタ、および、カーネルスタックのスタックポインタ
値を磁気ディスク105の再起動ファイルに保存し、ス
テップ1306で次のステップ1307のアドレスを磁
気ディスク105の再起動ファイルに保存する。ここで
作成された再起動ファイルは、カーネルがソフトウェア
障害のための再起動する時にカーネルのソフトウエア構
成を再現するために利用する。
【0048】図14は、本発明の第二の実施形態におけ
るオペレーティングシステムカーネルの再起動手順を示
すフローチャートである。この再起動手順は、無停止モ
ジュールとして登録されている再起動ローダにより実施
される。図にしたがって再起動手順を説明する。まず、
ページテーブルレジスタ400の指しているページテー
ブル410を、再起動ローダのデータ領域にコピーし
(ステップ1401)、ページテーブルレジスタ400
がコピーされた方のページテーブルを指すように変更す
る(ステップ1402)。次に、磁気ディスク105の
再起動ファイルに記録されたカーネル起動時の主記憶1
02の内容を、主記憶102にコピーする(ステップ1
403)。続いて、ページテーブルレジスタとスタック
ポインタ、および、ステップ1307のアドレスを磁気
ディスク105の再起動ファイルより取得する(ステッ
プ1404、1405)。続くステップ1406で、取
得したページレジスタ値、および、スタックポインタ値
をレジスタに設定し、ステップ1307へ処理を移す
(ステップ1407)。第2の実施形態では、磁気ディ
スク105の再起動ファイルは、無停止モジュールとし
て登録されているモジュールのデータ領域を含んでいな
いため、カーネル再起動の前後で無停止モジュールのデ
ータ領域は主記憶102に保存されている。これによ
り、無停止モジュールの外部割り込み処理の連続性を維
持することができる。
【0049】また、カーネルがソフトウェア障害を検出
したときに、プロセッサのリセットを行わないように
し、カーネル再起動中も特定の割り込みに対する処理が
できるように割り込み処理に利用される主記憶の内容を
主記憶中に維持したまま、かつ割り込みハンドラの設定
を主記憶中に維持したままカーネルの処理を停止するよ
うにしてもよい。そして、カーネルを再起動するとき、
主記憶中に格納された割り込み処理用の主記憶の内容、
および割り込みハンドラの設定を、そのまま引き継ぐよ
うにしている。
【0050】
【発明の効果】オペレーティングシステムのカーネルが
ソフトウェア障害を検出し再起動する時に、無停止モジ
ュール管理テーブル500を参照して、カーネル再起動
時の外部デバイスの初期化手順、および、ロードするモ
ジュールの構成を決定する手順を設けることにより、特
定の外部デバイスが発生する割り込みに対する処理をカ
ーネルの再起動処理中も中断することなく実施し続ける
ことができる。プロセッサをリセットすることなくオペ
レーティングシステムを再起動することにより、プロセ
ッサリセット時に実行されるハードウェア構成検査等の
処理を回避することができ、オペレーティングシステム
が再起動するまでの時間を短縮できる。
【図面の簡単な説明】
【図1】本発明の実施の形態の適用される計算機の構成
を示す図である。
【図2】ロードモジュール、および、空きメモリ空間を
管理するデータ構造を示す図である。
【図3】ハードウェア占有資源を管理するデータ構造を
示す図である。
【図4】ページテーブル、および、割り込みハンドラテ
ーブルのデータ構造を示す図である。
【図5】無停止モジュールを管理するデータ構造を示す
図である。
【図6】モジュール構成ファイルの形式を示す図であ
る。
【図7】モジュールを格納しているファイルの形式を示
す図である。
【図8】ソフトウェア障害検出時の処理フローチャート
を示す図である。
【図9】カーネル再起動処理のフローチャートを示す図
である。
【図10】カーネル再起動処理の図9のフローチャート
に続くフローチャートを示す図である。
【図11】無停止モジュールの初期化手順のフローチャ
ートを示す図である。
【図12】再起同ローダの処理のフローチャートを示す
図である。
【図13】本発明の第二の実施の形態の計算機の起動手
順の処理のフローチャートを示す図である。
【図14】本発明の第二の実施の形態のカーネル再起動
処理のフローチャートを示す図である。
【符合の説明】
100 計算機 101 プロセッサ 102 主記憶装置 103 読み取り専用メモリ 104 割り込みコントローラ 105 磁気ディスク 106、107 外部デバイス 108 バス 109 割り込み信号バス 110〜114 ファイル 200〜709 データ構造

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 カーネルが複数のロードモジュールによ
    り構成されるオペレーティングシステムを有する計算機
    おけるカーネルがソフトウェア障害を検出した時にカー
    ネルを再起動する計算機再起動方法であって、 オペレーティングシステムのカーネルを主記憶装置に再
    ロードする際、 特定のモジュールに係るアドレス領域に対する仮想アド
    レス変換テーブルと、主記憶装置の該アドレス領域の記
    憶内容と、該特定のモジュールが処理する外部割り込み
    に対する割り込み処理ハンドラの登録とについては保持
    したままとして再ロード対象から外し、再ロード後、カ
    ーネルを実行することを特徴とする計算機再起動方法。
  2. 【請求項2】 請求項1記載の計算機再起動方法におい
    て、 外部デバイスが発生する割り込みを処理するモジュール
    を、カーネルの再起動処理中も中断することなく割り込
    み処理をする前記特定のモジュールとして登録し、 該特定のモジュールが管理する外部デバイスの占有する
    ハードウェア資源を登録し、 前記登録した2つのデータを書き込み禁止領域に配置
    し、 オペレーティングシステムのカーネルがソフトウェア障
    害を検出してカーネルを再起動する時に、前記登録デー
    タに基づきカーネル再起動時の外部デバイスの初期化手
    順、およびカーネルがロードするモジュールの構成を決
    定することにより再ロード対象を決定することを特徴と
    する計算機再起動方法。
  3. 【請求項3】 カーネルが複数のロードモジュールによ
    り構成されるオペレーティングシステムを有する計算機
    おけるカーネルがソフトウェア障害を検出した時にカー
    ネルの処理を停止する計算機停止方法であって、 カーネルがソフトウェア障害を検出したとき、プロセッ
    サをリセットすることなく、カーネル再起動中も特定の
    割り込みに対する処理ができるように割り込み処理に利
    用される主記憶内容および割り込みハンドラの設定を主
    記憶装置中に維持したままカーネルの処理を停止するこ
    とを特徴とする計算機停止方法。
  4. 【請求項4】 カーネルが複数のロードモジュールによ
    り構成されるオペレーティングシステムを有する計算機
    おけるカーネルがソフトウェア障害を検出した時にカー
    ネルを再起動する計算機再起動方法であって、 請求項3記載の計算機停止方法により主記憶装置中に格
    納された割り込み処理用の主記憶内容、および割り込み
    ハンドラの設定を、オペレーティングシステムカーネル
    起動時に引き継ぐことを特徴とする計算機再起動方法。
  5. 【請求項5】 カーネルが複数のロードモジュールによ
    り構成されるオペレーティングシステムを有する計算機
    おけるカーネルがソフトウェア障害を検出した時にカー
    ネルを再起動する計算機再起動方法であって、 カーネル初期起動時のカーネルを構成するモジュールの
    主記憶装置へのロードと外部デバイスの初期化が終了し
    た時点で、特定の割り込み処理で使用されるデータ領域
    以外の主記憶内容と、カーネル初期起動時のレジスタ内
    容を二次記憶装置に格納し、 カーネルが停止した時に、特定の割り込みハンドラの設
    定を保持したまま、前記二次記憶装置に格納された特定
    の割り込み処理で使用されるデータ領域以外の主記憶内
    容と、カーネル初期起動時のレジスタ内容を復元して、
    カーネルを構成するモジュールの主記憶装置へのロード
    と、外部デバイスの初期化以降の処理を再開することで
    再起動を実施することを特徴とする計算機再起動方法。
JP19184097A 1997-07-02 1997-07-02 計算機の再起動方法 Expired - Fee Related JP3593241B2 (ja)

Priority Applications (9)

Application Number Priority Date Filing Date Title
JP19184097A JP3593241B2 (ja) 1997-07-02 1997-07-02 計算機の再起動方法
TW087110013A TW469409B (en) 1997-07-02 1998-06-22 Method to reboot an operating system
US09/107,388 US6253320B1 (en) 1997-07-02 1998-06-30 Operating system rebooting method
KR1019980026409A KR100306456B1 (ko) 1997-07-02 1998-07-01 오퍼레이팅시스템의재기동방법
CNB981178529A CN1143209C (zh) 1997-07-02 1998-07-02 操作系统的重启动方法和计算机系统的控制方法
CNB2004100033815A CN1251074C (zh) 1997-07-02 1998-07-02 计算机的重启动方法
US09/858,492 US7069430B2 (en) 1997-07-02 2001-05-17 Operating system rebooting during which one or more non-stop modules continuously execute a process based on interrupts accepted by the non-stop modules
US10/861,482 US7373496B2 (en) 1997-07-02 2004-06-07 Operating system rebooting apparatus for continuing to execute a non-stop module even during rebooting
US12/107,651 US7765395B2 (en) 1997-07-02 2008-04-22 Operating system rebooting method and apparatus for continuing to execute a non-stop module even during rebooting

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
JPH1124943A true JPH1124943A (ja) 1999-01-29
JP3593241B2 JP3593241B2 (ja) 2004-11-24

Family

ID=16281398

Family Applications (1)

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

Country Status (5)

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

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7069519B1 (en) 1999-09-24 2006-06-27 Hitachi, Ltd. Method, apparatus and navigation apparatus for sharing display by plural operating systems
JP2006522536A (ja) * 2003-03-12 2006-09-28 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 双方向テレビ番組を記憶するための方法及び装置
US7127723B2 (en) 2000-03-02 2006-10-24 Hitachi, Ltd. Information processing apparatus with multiple operating systems
JP2007122343A (ja) * 2005-10-27 2007-05-17 Nec Corp 情報処理装置、情報処理装置における画面表示方法
JP2015062107A (ja) * 2013-09-23 2015-04-02 エルエスアイ コーポレーション ブート・データをキャッシュするソリッドステートドライブ
US9170862B2 (en) 2012-09-27 2015-10-27 Fujitsu Limited Converting apparatus, conversion method, and information processing system

Families Citing this family (151)

* 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
US6560699B1 (en) * 1999-10-20 2003-05-06 Cisco Technology, Inc. Constraint-based language configuration files for updating and verifying system constraints
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
JP4074620B2 (ja) * 2002-06-05 2008-04-09 富士通株式会社 メモリ管理ユニット
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 無線通信ネットワークシステムにおける接続認証
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
US7076645B2 (en) * 2003-06-25 2006-07-11 Nokia Inc. Method of rebooting a multi-device cluster while maintaining cluster operation
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
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 コンピュータシステム及び異常検出回路
US10706373B2 (en) 2011-06-03 2020-07-07 Apple Inc. Performing actions associated with task items that represent tasks to perform
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
US10241644B2 (en) 2011-06-03 2019-03-26 Apple Inc. Actionable reminder entries
US9431006B2 (en) 2009-07-02 2016-08-30 Apple Inc. Methods and apparatuses for automatic speech recognition
US10276170B2 (en) 2010-01-18 2019-04-30 Apple Inc. Intelligent automated assistant
US10705794B2 (en) 2010-01-18 2020-07-07 Apple Inc. Automatically adapting user interfaces for hands-free interaction
US10679605B2 (en) 2010-01-18 2020-06-09 Apple Inc. Hands-free list-reading by intelligent automated assistant
US10553209B2 (en) 2010-01-18 2020-02-04 Apple Inc. Systems and methods for hands-free notification summaries
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
KR102579086B1 (ko) 2013-02-07 2023-09-15 애플 인크. 디지털 어시스턴트를 위한 음성 트리거
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
KR101759009B1 (ko) 2013-03-15 2017-07-17 애플 인크. 적어도 부분적인 보이스 커맨드 시스템을 트레이닝시키는 것
WO2014197334A2 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for user-specified pronunciation of words for speech synthesis and recognition
WO2014197336A1 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for detecting errors in interactions with a voice-based digital assistant
US9582608B2 (en) 2013-06-07 2017-02-28 Apple Inc. Unified ranking with entropy-weighted information for phrase-based semantic auto-completion
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
JP6259911B2 (ja) 2013-06-09 2018-01-10 アップル インコーポレイテッド デジタルアシスタントの2つ以上のインスタンスにわたる会話持続を可能にするための機器、方法、及びグラフィカルユーザインタフェース
HK1220313A1 (zh) 2013-06-13 2017-04-28 苹果公司 用於由语音命令发起的紧急呼叫的系统和方法
CN105453026A (zh) 2013-08-06 2016-03-30 苹果公司 基于来自远程设备的活动自动激活智能响应
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
US9734193B2 (en) 2014-05-30 2017-08-15 Apple Inc. Determining domain salience ranking from ambiguous words in natural speech
US10078631B2 (en) 2014-05-30 2018-09-18 Apple Inc. Entropy-guided text prediction using combined word and character n-gram language models
US9760559B2 (en) 2014-05-30 2017-09-12 Apple Inc. Predictive text input
US9785630B2 (en) 2014-05-30 2017-10-10 Apple Inc. Text prediction using combined word N-gram and unigram language models
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
EP3480811A1 (en) 2014-05-30 2019-05-08 Apple Inc. Multi-command single utterance input method
US9633004B2 (en) 2014-05-30 2017-04-25 Apple Inc. Better resolution when referencing to concepts
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US9430463B2 (en) 2014-05-30 2016-08-30 Apple Inc. Exemplar-based natural language processing
US10289433B2 (en) 2014-05-30 2019-05-14 Apple Inc. Domain specific language for encoding assistant dialog
US9842101B2 (en) 2014-05-30 2017-12-12 Apple Inc. Predictive conversion of language input
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
US9646609B2 (en) 2014-09-30 2017-05-09 Apple Inc. Caching apparatus for serving phonetic pronunciations
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
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
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
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
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
US11025565B2 (en) 2015-06-07 2021-06-01 Apple Inc. Personalized prediction of responses for instant messaging
US10255907B2 (en) 2015-06-07 2019-04-09 Apple Inc. Automatic accent detection using acoustic models
US10186254B2 (en) 2015-06-07 2019-01-22 Apple Inc. Context-based endpoint detection
US10671428B2 (en) 2015-09-08 2020-06-02 Apple Inc. Distributed personal assistant
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US9697820B2 (en) 2015-09-24 2017-07-04 Apple Inc. Unit-selection text-to-speech synthesis using concatenation-sensitive neural networks
US10366158B2 (en) 2015-09-29 2019-07-30 Apple Inc. Efficient word encoding for recurrent neural network language models
US11010550B2 (en) 2015-09-29 2021-05-18 Apple Inc. Unified language modeling framework for word prediction, auto-completion and auto-correction
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
US10490187B2 (en) 2016-06-10 2019-11-26 Apple Inc. Digital assistant providing automated status report
US10586535B2 (en) 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
US10067938B2 (en) 2016-06-10 2018-09-04 Apple Inc. Multilingual word prediction
US10509862B2 (en) 2016-06-10 2019-12-17 Apple Inc. Dynamic phrase expansion of language input
US10192552B2 (en) 2016-06-10 2019-01-29 Apple Inc. Digital assistant providing whispered speech
DK201670540A1 (en) 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
DK179049B1 (en) 2016-06-11 2017-09-18 Apple Inc Data driven natural language event detection and classification
DK179343B1 (en) 2016-06-11 2018-05-14 Apple Inc Intelligent task discovery
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
DK179745B1 (en) 2017-05-12 2019-05-01 Apple Inc. SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT
DK179496B1 (en) 2017-05-12 2019-01-15 Apple Inc. USER-SPECIFIC Acoustic Models
DK201770432A1 (en) 2017-05-15 2018-12-21 Apple Inc. Hierarchical belief states for digital assistants
DK201770431A1 (en) 2017-05-15 2018-12-20 Apple Inc. Optimizing dialogue policy decisions for digital assistants using implicit feedback
DK179549B1 (en) 2017-05-16 2019-02-12 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 株式会社日立製作所 計算機の再起動方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7069519B1 (en) 1999-09-24 2006-06-27 Hitachi, Ltd. Method, apparatus and navigation apparatus for sharing display by plural operating systems
US7127723B2 (en) 2000-03-02 2006-10-24 Hitachi, Ltd. Information processing apparatus with multiple operating systems
JP2006522536A (ja) * 2003-03-12 2006-09-28 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 双方向テレビ番組を記憶するための方法及び装置
JP2007122343A (ja) * 2005-10-27 2007-05-17 Nec Corp 情報処理装置、情報処理装置における画面表示方法
US9170862B2 (en) 2012-09-27 2015-10-27 Fujitsu Limited Converting apparatus, conversion method, and information processing system
JP2015062107A (ja) * 2013-09-23 2015-04-02 エルエスアイ コーポレーション ブート・データをキャッシュするソリッドステートドライブ

Also Published As

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

Similar Documents

Publication Publication Date Title
JP3593241B2 (ja) 計算機の再起動方法
JP3546678B2 (ja) マルチos構成方法
US6711605B2 (en) Multi OS configuration method and computer system
US6996828B1 (en) Multi-OS configuration method
US7475186B2 (en) System and method for persistent RAM disk
US5825649A (en) Kernel substitution method in multi-processor system and multi-processor system having kernel substitution function
EP1854006B1 (en) Method and system for preserving dump data upon a crash of the operating system
US9298472B2 (en) High-speed restart method, information processing device, and program
US9235426B2 (en) Multicore processor system, computer product, and notification method for updating operating system
CN113127263B (zh) 一种内核崩溃恢复方法、装置、设备及存储介质
JP3765201B2 (ja) 計算機システム
US7921247B1 (en) Sharing a dynamically located memory block between components executing in different processor modes in an extensible firmware interface environment
JP3882321B2 (ja) オペレーティングシステムのモジュールプログラムを備えた計算機
JPWO2004081791A1 (ja) 仮想計算機システム、仮想計算機システムにおけるファームウェアアップデート方法
JP2001216172A (ja) マルチos構成方法
JP4026667B2 (ja) マルチos構成方法
JP2001236237A (ja) マルチos構成方法
JP2001290678A (ja) 非同期メモリダンプ実行方式
JPH09231069A (ja) 情報処理方法及び装置
JP2000242550A (ja) データ運用管理方法
JPH03138753A (ja) マルチプロセッサシステムのブートロード装置
JP2003131893A (ja) 演算処理システム、コンピュータ・システム上でのタスク制御方法、並びに記憶媒体
CN121614195A (zh) 电子设备的启动方法、电子设备、程序产品及存储介质
CN119987874A (zh) 一种芯片的启动方法、芯片、电子设备和存储介质
JP2004038995A (ja) マルチos構成方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040127

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20040316

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040329

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040824

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040827

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080903

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080903

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090903

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090903

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100903

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100903

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110903

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120903

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130903

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees