JPH10254786A - メモリの一部を保護するための方法及び装置 - Google Patents
メモリの一部を保護するための方法及び装置Info
- Publication number
- JPH10254786A JPH10254786A JP9313527A JP31352797A JPH10254786A JP H10254786 A JPH10254786 A JP H10254786A JP 9313527 A JP9313527 A JP 9313527A JP 31352797 A JP31352797 A JP 31352797A JP H10254786 A JPH10254786 A JP H10254786A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- hidden
- processor
- server
- operating system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
- G06F12/1425—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
- G06F12/1441—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Hardware Redundancy (AREA)
- Storage Device Security (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】
【課題】 オペレーティング・システム、またはオペレ
ーティング・システム上で実行されるアプリケーション
・プログラムのエラーによって、メモリ上に保管された
データが壊されない方法、及び装置を提供する。 【解決手段】 コンピュータ・システム内のメモリが、
可視的な部分と隠された部分とを持つ。メモリの可視的
な部分には、プロセッサ、及びコンピュータ・システム
内で作動するオペレーティング・システム(OS)がア
ドレス指定できる。プロセッサまたはOSのいずれによ
るアドレス指定可能性も、メモリの隠された部分に対し
ては除外される。メモリの隠された部分は、プロセッサ
またはOSのいずれかによって伝送されたデータを保管
するために用いられる。メモリの可視的な部分に配置さ
れた通信領域が、プロセッサまたはOSのいずれかから
のデータ・アクセスの要求を受け取る。
ーティング・システム上で実行されるアプリケーション
・プログラムのエラーによって、メモリ上に保管された
データが壊されない方法、及び装置を提供する。 【解決手段】 コンピュータ・システム内のメモリが、
可視的な部分と隠された部分とを持つ。メモリの可視的
な部分には、プロセッサ、及びコンピュータ・システム
内で作動するオペレーティング・システム(OS)がア
ドレス指定できる。プロセッサまたはOSのいずれによ
るアドレス指定可能性も、メモリの隠された部分に対し
ては除外される。メモリの隠された部分は、プロセッサ
またはOSのいずれかによって伝送されたデータを保管
するために用いられる。メモリの可視的な部分に配置さ
れた通信領域が、プロセッサまたはOSのいずれかから
のデータ・アクセスの要求を受け取る。
Description
【0001】
【発明の属する技術分野】本発明は、概してコンピュー
タ・システムに関し、より詳細には、コンピュータ・シ
ステム内に配置されたメモリの一部に保管されたデータ
の保護に関し、特にコンピュータ・システムと、オペレ
ーティング・システムが直接のアクセス権をもたないメ
モリの一部との間にデータを転送するメカニズムを開示
する。
タ・システムに関し、より詳細には、コンピュータ・シ
ステム内に配置されたメモリの一部に保管されたデータ
の保護に関し、特にコンピュータ・システムと、オペレ
ーティング・システムが直接のアクセス権をもたないメ
モリの一部との間にデータを転送するメカニズムを開示
する。
【0002】
【従来の技術】コンピュータ・システム上でプロセスが
実行されるとき、このプロセスはデータを保管し、そこ
からデータを取り出すために指定されたメモリ部分を使
用する。その他のプロセスも、これらの指定されたメモ
リ部分にアクセスすることもある。
実行されるとき、このプロセスはデータを保管し、そこ
からデータを取り出すために指定されたメモリ部分を使
用する。その他のプロセスも、これらの指定されたメモ
リ部分にアクセスすることもある。
【0003】コンピュータ・システム上で実行されてい
る第1のプロセスが停止し、後に再開される場合に、第
1のプロセスが停止している間にこのコンピュータ・シ
ステム上で実行される第2のプロセスが、第1のプロセ
スによって以前に使用されたメモリ部分にアクセスする
ことがある。第1のプロセスが停止している間に、第2
のプロセスが、第1のプロセスによってメモリに保管さ
れたデータ値を上書きする場合、第1のプロセスが再開
したとき、自身が停止する前にメモリに保管したデータ
値は、もはや使用できない。これによりエラーが発生す
るかもしれない。
る第1のプロセスが停止し、後に再開される場合に、第
1のプロセスが停止している間にこのコンピュータ・シ
ステム上で実行される第2のプロセスが、第1のプロセ
スによって以前に使用されたメモリ部分にアクセスする
ことがある。第1のプロセスが停止している間に、第2
のプロセスが、第1のプロセスによってメモリに保管さ
れたデータ値を上書きする場合、第1のプロセスが再開
したとき、自身が停止する前にメモリに保管したデータ
値は、もはや使用できない。これによりエラーが発生す
るかもしれない。
【0004】更にいくつかのプロセスが、同時にあるコ
ンピュータ・システム内で実行されている場合は、ある
プロセスが、他のプロセスが使用しているメモリ部分に
データを保管するかもしれない。そうすると、あるプロ
セスが自身が保管したデータを取り出す前に、そのデー
タが壊されるかもしれない。
ンピュータ・システム内で実行されている場合は、ある
プロセスが、他のプロセスが使用しているメモリ部分に
データを保管するかもしれない。そうすると、あるプロ
セスが自身が保管したデータを取り出す前に、そのデー
タが壊されるかもしれない。
【0005】
【発明が解決しようとする課題】コンピュータ・システ
ムに対してシステム再起動が行われることは、一般的な
ことである。このようなコンピュータ・システムが、シ
ステム再起動が行われる際にも内容が消去されないデー
タ・バッファを提供する、ソフトウェア・アプリケーシ
ョン実行させることもできる。これは例えば、IBM
Corporation、Armonk、New Yo
rkの製品である、トランザクション処理機能(TP
F)として知られるソフトウェア・パッケージに見いだ
される。TPFにおいては、システム再起動が行われる
際に、ある種のデータ・バッファの内容は消去されな
い。再起動が完了した後、TPFがシステム再起動の前
に自身が存在した位置から実行を継続するとき、消去さ
れなかったデータ・バッファの内容は、同じ状態である
ことが望ましい。しかしこれらのデータ・バッファは、
システムで実行中のいずれのアプリケーション・プログ
ラムによってもアクセス可能である。したがってこれら
のデータ・バッファは、オペレーティング・システムの
誤動作、あるいはオペレーティング・システム上で実行
されるアプリケーションのいずれかによって壊されるこ
とがある。
ムに対してシステム再起動が行われることは、一般的な
ことである。このようなコンピュータ・システムが、シ
ステム再起動が行われる際にも内容が消去されないデー
タ・バッファを提供する、ソフトウェア・アプリケーシ
ョン実行させることもできる。これは例えば、IBM
Corporation、Armonk、New Yo
rkの製品である、トランザクション処理機能(TP
F)として知られるソフトウェア・パッケージに見いだ
される。TPFにおいては、システム再起動が行われる
際に、ある種のデータ・バッファの内容は消去されな
い。再起動が完了した後、TPFがシステム再起動の前
に自身が存在した位置から実行を継続するとき、消去さ
れなかったデータ・バッファの内容は、同じ状態である
ことが望ましい。しかしこれらのデータ・バッファは、
システムで実行中のいずれのアプリケーション・プログ
ラムによってもアクセス可能である。したがってこれら
のデータ・バッファは、オペレーティング・システムの
誤動作、あるいはオペレーティング・システム上で実行
されるアプリケーションのいずれかによって壊されるこ
とがある。
【0006】
【課題を解決するための手段】コンピュータ・システム
内のメモリが、可視的な部分と隠された部分とをもつ。
メモリの可視的な部分には、プロセッサ及びコンピュー
タ・システム内で作動するオペレーティング・システム
(OS)がアドレスできる。プロセッサまたはOSのい
ずれかによるアドレス可能性は、メモリの隠された部分
に対しては除外される。メモリの隠された部分は、プロ
セッサまたはOSによって伝送されるデータを保管する
ために用いられる。メモリの可視的な部分に配置された
通信領域が、プロセッサまたはOSのいずれかからのデ
ータ・アクセス要求を受け取る。メモリの可視的部分と
メモリの隠された部分の双方にアドレスする隠されたサ
ーバが、通信領域からのデータ・アクセス要求を受け取
り、隠されたメモリ部分へのデータ・アクセスを開始す
る。
内のメモリが、可視的な部分と隠された部分とをもつ。
メモリの可視的な部分には、プロセッサ及びコンピュー
タ・システム内で作動するオペレーティング・システム
(OS)がアドレスできる。プロセッサまたはOSのい
ずれかによるアドレス可能性は、メモリの隠された部分
に対しては除外される。メモリの隠された部分は、プロ
セッサまたはOSによって伝送されるデータを保管する
ために用いられる。メモリの可視的な部分に配置された
通信領域が、プロセッサまたはOSのいずれかからのデ
ータ・アクセス要求を受け取る。メモリの可視的部分と
メモリの隠された部分の双方にアドレスする隠されたサ
ーバが、通信領域からのデータ・アクセス要求を受け取
り、隠されたメモリ部分へのデータ・アクセスを開始す
る。
【0007】
【発明の実施の形態】図1は本発明の代表的な1実施例
に従ったコンピュータ・システムを示す。図示したよう
に、コンピュータ・システムのハードウェアは、ある種
のバス、または他の相互接続メカニズム10を介してメ
モリ20に接続される、1つまたは複数のプロセッサ1
5a〜15nを含む。
に従ったコンピュータ・システムを示す。図示したよう
に、コンピュータ・システムのハードウェアは、ある種
のバス、または他の相互接続メカニズム10を介してメ
モリ20に接続される、1つまたは複数のプロセッサ1
5a〜15nを含む。
【0008】本発明の代表的な1実施例に従って、いか
なるコンピュータ・システムも使用できるが、Dura
ble Memory RS/6000(DM/600
0)が使用できる。このシステムは、1994年6月発
行の「The 24th International
Symposium on Fault Toler
ant Computing」のダイジェスト版、ペー
ジ414〜423に記載の、Abott M.、Har
D.、Herger L.、Kauffman
M.、Mak K.、Murdock J.、Schu
lz C.、Smith T.B.、Tremaine
B.、Yeh D.、Wong L.による「Dur
able Memory RS/6000 Syste
m Design」等に説明されている。このシステム
は、ハードウェア冗長性を備え、ハードウェア構成部品
または電源のいずれかが故障しても、コンピュータは停
止しない。
なるコンピュータ・システムも使用できるが、Dura
ble Memory RS/6000(DM/600
0)が使用できる。このシステムは、1994年6月発
行の「The 24th International
Symposium on Fault Toler
ant Computing」のダイジェスト版、ペー
ジ414〜423に記載の、Abott M.、Har
D.、Herger L.、Kauffman
M.、Mak K.、Murdock J.、Schu
lz C.、Smith T.B.、Tremaine
B.、Yeh D.、Wong L.による「Dur
able Memory RS/6000 Syste
m Design」等に説明されている。このシステム
は、ハードウェア冗長性を備え、ハードウェア構成部品
または電源のいずれかが故障しても、コンピュータは停
止しない。
【0009】メモリ20の一部は可視的(visibl
e)なメモリ30である。各プロセッサ15a〜15n
上で実行されるプログラムは、可視的なメモリ30にア
クセス権をもつ。
e)なメモリ30である。各プロセッサ15a〜15n
上で実行されるプログラムは、可視的なメモリ30にア
クセス権をもつ。
【0010】図2に示すように可視的なメモリ30は、
AIX(IBM Corporation、Armon
k、New Yorkから提供されている)のような汎
用のオペレーティング・システム40、およびアプリケ
ーション・プログラム5a〜5nを含む。メモリ20の
これ以外の部分は、隠された(hidden)メモリ6
0である。オペレーティング・システム(OS)40、
及びアプリケーション・プログラム5a〜5nが、この
隠されたメモリにアクセスするのを防ぐために、いくつ
かの方法がある。1つの好ましい方法は、メモリ20の
一部分に欠陥があることをAIXに伝える機能を利用す
る。AIXがブートされるとき、AIXは、欠陥がある
メモリ領域の記述を含むIPL制御ブロックを見つける
ことを予期している。AIXは、欠陥があると確認され
たいかなるメモリの内容にもアクセスしたり、これを変
更することはなく、自身の仮想アドレス・テーブルにこ
のようなメモリに関する記述はしない。このようにし
て、AIXが、自身が使用しているプロセッサ15a〜
15nのいずれに対しても、仮想アドレス変換をオンに
すると同時に、このメモリ部分は効果的に隠される。こ
の方法によりメモリ60は、自身がアクセス可能になっ
ている初期化中の短い期間においてさえも、変更される
恐れはない。他のOSはブートされたとき、使用可能な
メモリを指定できるようにする。全体の実メモリより少
ない使用可能メモリを指定してブートすると、使用可能
メモリが指定した領域外のメモリ部分は、OSに対して
隠されている。
AIX(IBM Corporation、Armon
k、New Yorkから提供されている)のような汎
用のオペレーティング・システム40、およびアプリケ
ーション・プログラム5a〜5nを含む。メモリ20の
これ以外の部分は、隠された(hidden)メモリ6
0である。オペレーティング・システム(OS)40、
及びアプリケーション・プログラム5a〜5nが、この
隠されたメモリにアクセスするのを防ぐために、いくつ
かの方法がある。1つの好ましい方法は、メモリ20の
一部分に欠陥があることをAIXに伝える機能を利用す
る。AIXがブートされるとき、AIXは、欠陥がある
メモリ領域の記述を含むIPL制御ブロックを見つける
ことを予期している。AIXは、欠陥があると確認され
たいかなるメモリの内容にもアクセスしたり、これを変
更することはなく、自身の仮想アドレス・テーブルにこ
のようなメモリに関する記述はしない。このようにし
て、AIXが、自身が使用しているプロセッサ15a〜
15nのいずれに対しても、仮想アドレス変換をオンに
すると同時に、このメモリ部分は効果的に隠される。こ
の方法によりメモリ60は、自身がアクセス可能になっ
ている初期化中の短い期間においてさえも、変更される
恐れはない。他のOSはブートされたとき、使用可能な
メモリを指定できるようにする。全体の実メモリより少
ない使用可能メモリを指定してブートすると、使用可能
メモリが指定した領域外のメモリ部分は、OSに対して
隠されている。
【0011】隠されたサーバ70は、隠されたメモリ6
0に対するアクセスを制御する。隠されたサーバ70
は、隠されたメモリ60にロードされたプログラムであ
る。隠されたサーバ70内のアドレス変換は、オフにす
ることができる。隠されたサーバ70、ならびにOS4
0及びアプリケーション・プログラム5a〜5nの双方
は、可視的なメモリ30に配置された通信領域80を共
同で使用する。これが隠されたサーバ70、ならびにO
S40及びアプリケーション・プログラム5a〜5nの
双方が通信するメカニズムである。すべての通信メカニ
ズムを可視的なメモリ30に配置することにより、OS
40及びアプリケーション・プログラム5a〜5nが、
隠されたメモリに損傷を加える可能性が除かれる。
0に対するアクセスを制御する。隠されたサーバ70
は、隠されたメモリ60にロードされたプログラムであ
る。隠されたサーバ70内のアドレス変換は、オフにす
ることができる。隠されたサーバ70、ならびにOS4
0及びアプリケーション・プログラム5a〜5nの双方
は、可視的なメモリ30に配置された通信領域80を共
同で使用する。これが隠されたサーバ70、ならびにO
S40及びアプリケーション・プログラム5a〜5nの
双方が通信するメカニズムである。すべての通信メカニ
ズムを可視的なメモリ30に配置することにより、OS
40及びアプリケーション・プログラム5a〜5nが、
隠されたメモリに損傷を加える可能性が除かれる。
【0012】好ましい実施例では、通信領域80は待ち
行列90、及び要求ブロック100a〜100nを含
む。待ち行列90は、好ましくは記憶装置の1ページを
占め、待ち行列の連鎖要素を形成するために使用される
すべてのポインタは、好ましくはアドレスではなく、そ
れに代わるそのページ内のオフセットである。このよう
にして待ち行列90は、仮想アドレス変換をオンにして
作動するOS40の下で実行されるプログラムにより、
更に仮想アドレス変換をオフにして作動する隠されたサ
ーバ70により取り扱われる。待ち行列90中のエント
リは、待ち行列中のエントリと要求ブロック100a〜
100nの実アドレスとをリンクする、連鎖オフセット
をもつ。待ち行列の先頭ポインタの実アドレスを使用す
ることにより、隠されたサーバ70は、例えば仮想アド
レス変換用のAIXメカニズムを使用することなく、先
頭ポインタを使用できる。
行列90、及び要求ブロック100a〜100nを含
む。待ち行列90は、好ましくは記憶装置の1ページを
占め、待ち行列の連鎖要素を形成するために使用される
すべてのポインタは、好ましくはアドレスではなく、そ
れに代わるそのページ内のオフセットである。このよう
にして待ち行列90は、仮想アドレス変換をオンにして
作動するOS40の下で実行されるプログラムにより、
更に仮想アドレス変換をオフにして作動する隠されたサ
ーバ70により取り扱われる。待ち行列90中のエント
リは、待ち行列中のエントリと要求ブロック100a〜
100nの実アドレスとをリンクする、連鎖オフセット
をもつ。待ち行列の先頭ポインタの実アドレスを使用す
ることにより、隠されたサーバ70は、例えば仮想アド
レス変換用のAIXメカニズムを使用することなく、先
頭ポインタを使用できる。
【0013】図3に示すように、隠されたメモリ60の
一部分は固定メモリ(stablememory)11
0である。この固定メモリは固定メモリ記述子120を
含み、隠されたサーバ70は、事前に準備されたアドレ
スを用いて、この固定メモリ記述子の位置指定ができ、
隠されたサーバ70は、この固定メモリ記述子を用いて
固定メモリ110のどの部分が使用中であるかを確認す
る。固定メモリ110の少量の一部は、隠されたサーバ
70が自身の記録保持のために使用するが、固定メモリ
110の大部分は、隠されたサーバ70がアクセスでき
るプログラムである、特定のサービス130a〜130
nが使用する。好ましい実施例は、例えばVDISKサ
ービス130a、PCACHEサービス130b、及び
その他のサービスを含む。
一部分は固定メモリ(stablememory)11
0である。この固定メモリは固定メモリ記述子120を
含み、隠されたサーバ70は、事前に準備されたアドレ
スを用いて、この固定メモリ記述子の位置指定ができ、
隠されたサーバ70は、この固定メモリ記述子を用いて
固定メモリ110のどの部分が使用中であるかを確認す
る。固定メモリ110の少量の一部は、隠されたサーバ
70が自身の記録保持のために使用するが、固定メモリ
110の大部分は、隠されたサーバ70がアクセスでき
るプログラムである、特定のサービス130a〜130
nが使用する。好ましい実施例は、例えばVDISKサ
ービス130a、PCACHEサービス130b、及び
その他のサービスを含む。
【0014】VDISKサービス130aは、固定メモ
リ110中のスペースを使用するコマンドを処理し、こ
のスペースが1つまたは複数のディスク上にあるかのよ
うにデータを保管する。メモリ中でこの方法で使用され
ている各スペースは、VDISKと呼ばれる。VDIS
Kサービス130aは、少なくとも次の要求、つまりデ
ータ保管に使用するために固定メモリ110のスペース
を割り当てる要求、可視的メモリ30から固定メモリ1
10にデータをコピーする要求、及び固定メモリ110
から可視的メモリ30にデータをコピーする要求を処理
する能力を提供できることが望ましい。PCACHEサ
ービス130bは、ある時間後にディスクに書き込まれ
ることになっているデータをキャッシングする。データ
のディスク・アドレスは、データ自体と一緒にPCAC
HEサービス130bによって保管され、OS40の故
障後にキャッシュ情報を復元できるようにする。
リ110中のスペースを使用するコマンドを処理し、こ
のスペースが1つまたは複数のディスク上にあるかのよ
うにデータを保管する。メモリ中でこの方法で使用され
ている各スペースは、VDISKと呼ばれる。VDIS
Kサービス130aは、少なくとも次の要求、つまりデ
ータ保管に使用するために固定メモリ110のスペース
を割り当てる要求、可視的メモリ30から固定メモリ1
10にデータをコピーする要求、及び固定メモリ110
から可視的メモリ30にデータをコピーする要求を処理
する能力を提供できることが望ましい。PCACHEサ
ービス130bは、ある時間後にディスクに書き込まれ
ることになっているデータをキャッシングする。データ
のディスク・アドレスは、データ自体と一緒にPCAC
HEサービス130bによって保管され、OS40の故
障後にキャッシュ情報を復元できるようにする。
【0015】隠されたサーバ70がロードされ、起動さ
れたとき、固定メモリ記述子120の有効性が検査さ
れ、それが有効でない場合は、固定メモリはいずれも使
用されていないことを示すように初期化される。この有
効性検査の可能性ある方法には、例えばチェックサム値
を、固定メモリ記述子120の内容に対して新たに計算
されたチェックサム値と比較すること、メモリ使用数を
合計して、この値が固定メモリ110の合計と一致する
ことを確かめること、更に隠されたサーバ70がメモリ
初期化を終了したときに、固定メモリ記述子120中に
存在する特殊キー値を比較することがある。新たに起動
されたバージョンの隠されたサーバ70が、事前に存在
する固定メモリ記述子120をこのようにして使用する
ことにより、情報の明らかな消失なしに、隠されたサー
バ70用のコードの置換が可能になる。新バージョンの
隠されたサーバ70が、古いバージョンの固定メモリ記
述子120を解釈できることが、当然望ましいことであ
る。
れたとき、固定メモリ記述子120の有効性が検査さ
れ、それが有効でない場合は、固定メモリはいずれも使
用されていないことを示すように初期化される。この有
効性検査の可能性ある方法には、例えばチェックサム値
を、固定メモリ記述子120の内容に対して新たに計算
されたチェックサム値と比較すること、メモリ使用数を
合計して、この値が固定メモリ110の合計と一致する
ことを確かめること、更に隠されたサーバ70がメモリ
初期化を終了したときに、固定メモリ記述子120中に
存在する特殊キー値を比較することがある。新たに起動
されたバージョンの隠されたサーバ70が、事前に存在
する固定メモリ記述子120をこのようにして使用する
ことにより、情報の明らかな消失なしに、隠されたサー
バ70用のコードの置換が可能になる。新バージョンの
隠されたサーバ70が、古いバージョンの固定メモリ記
述子120を解釈できることが、当然望ましいことであ
る。
【0016】隠されたサーバ70は、固定メモリ記述子
120の一部を使用して、それぞれ別個のサービス13
0a〜130nに割り振られている、サービス・データ
・ハンドル115a〜115nを記録する。各サービス
・データ・ハンドルは、それぞれデータ記述子を指す。
データ記述子は、それぞれのサービスが使用できる隠さ
れたメモリ60の部分を示す。
120の一部を使用して、それぞれ別個のサービス13
0a〜130nに割り振られている、サービス・データ
・ハンドル115a〜115nを記録する。各サービス
・データ・ハンドルは、それぞれデータ記述子を指す。
データ記述子は、それぞれのサービスが使用できる隠さ
れたメモリ60の部分を示す。
【0017】例えばVDISKサービス130aは、V
DISKデータ記述子140aを使用する。隠されたサ
ーバ70が起動されたときはいつでも、VDISKサー
ビス130aが(他のすべてのサービス130b〜13
0nと同様に)起動され、自身のサービス・データ・ハ
ンドル115aのコピーが渡され、このハンドルは、ゼ
ロであるか、またはVDISKデータ記述子140aを
指すポインタである。VDISKサービス130aは、
自身のサービス・データ・ハンドル115aがVDIS
Kデータ記述子140aを指すこと、及びこの記述子1
40aの有効性を確認する。これは隠されたサーバ70
が、固定メモリ記述子120の存在及びその有効性を確
認するのと同じように行われる。VDISKサービス1
30aが、有効なVDISKデータ記述子140aを見
つけられない場合は、VDISKサービスは、隠れたサ
ーバ70がこれを割り当てるように要求し、割り当てら
れた記述子を初期化して、現時点ではVDISKが何も
存在しないことを示す。VDISKデータ記述子140
aは、OS40及びアプリケーション5a〜5n中に存
在する固定メモリのユーザのために、固定メモリ110
のどの部分がデータの保管用として使用されているかを
記録するために用いられる。
DISKデータ記述子140aを使用する。隠されたサ
ーバ70が起動されたときはいつでも、VDISKサー
ビス130aが(他のすべてのサービス130b〜13
0nと同様に)起動され、自身のサービス・データ・ハ
ンドル115aのコピーが渡され、このハンドルは、ゼ
ロであるか、またはVDISKデータ記述子140aを
指すポインタである。VDISKサービス130aは、
自身のサービス・データ・ハンドル115aがVDIS
Kデータ記述子140aを指すこと、及びこの記述子1
40aの有効性を確認する。これは隠されたサーバ70
が、固定メモリ記述子120の存在及びその有効性を確
認するのと同じように行われる。VDISKサービス1
30aが、有効なVDISKデータ記述子140aを見
つけられない場合は、VDISKサービスは、隠れたサ
ーバ70がこれを割り当てるように要求し、割り当てら
れた記述子を初期化して、現時点ではVDISKが何も
存在しないことを示す。VDISKデータ記述子140
aは、OS40及びアプリケーション5a〜5n中に存
在する固定メモリのユーザのために、固定メモリ110
のどの部分がデータの保管用として使用されているかを
記録するために用いられる。
【0018】サービス・データ・ハンドル115a〜1
15n、及びデータ記述子140a〜140nをこのよ
うに用いることにより、各サービス130a〜130n
は、情報の消失あるいは作動中の明らかな割り込みがな
く、一時停止及び再開始ができ、これは隠されたサーバ
70が一時停止、置換、再開始できることとかなり似た
方法である。隠されたサーバ70の場合と同様に、旧バ
ージョンのサービス130a〜130nによって生成さ
れたデータ記述子140a〜140nを、新バージョン
のサービス130a〜130nが理解できることが望ま
しい。
15n、及びデータ記述子140a〜140nをこのよ
うに用いることにより、各サービス130a〜130n
は、情報の消失あるいは作動中の明らかな割り込みがな
く、一時停止及び再開始ができ、これは隠されたサーバ
70が一時停止、置換、再開始できることとかなり似た
方法である。隠されたサーバ70の場合と同様に、旧バ
ージョンのサービス130a〜130nによって生成さ
れたデータ記述子140a〜140nを、新バージョン
のサービス130a〜130nが理解できることが望ま
しい。
【0019】好ましい実施例では、隠されたサーバ70
への要求には、その要求を処理するサービス130a〜
130nの名前が含まれ、これにより隠されたサーバ7
0は、この要求をこれらのサービス130a〜130n
に渡すことができる。いずれかのサービスが必要とする
追加の要求情報は、要求ブロック100a〜100nに
存在するすることもある。VDISKサービス130a
の場合には、この要求情報は、VDISKを作成するか
否かを示すコマンド・コード、どのVDISKに操作が
行われるかを示すVDISK識別子のようなオペランド
用のスペース、ならびに要求の成功または失敗を示すリ
ターン・コード、及びVDISKサービス130aが要
求の処理をし終ったことを示す完了ビットのような、何
らかの応答情報用のスペースを含む。
への要求には、その要求を処理するサービス130a〜
130nの名前が含まれ、これにより隠されたサーバ7
0は、この要求をこれらのサービス130a〜130n
に渡すことができる。いずれかのサービスが必要とする
追加の要求情報は、要求ブロック100a〜100nに
存在するすることもある。VDISKサービス130a
の場合には、この要求情報は、VDISKを作成するか
否かを示すコマンド・コード、どのVDISKに操作が
行われるかを示すVDISK識別子のようなオペランド
用のスペース、ならびに要求の成功または失敗を示すリ
ターン・コード、及びVDISKサービス130aが要
求の処理をし終ったことを示す完了ビットのような、何
らかの応答情報用のスペースを含む。
【0020】好ましい実施例では、OS40中にインス
トールされているVDISKデバイス・ドライバ160
aが、VDISKサービス130aを使用する。VDI
SKデバイス・ドライバ160aは、OS40上にイン
ストールされているいずれのディスク・デバイス・ドラ
イバとも同じインタフェースを備え、データの保管及び
取り出し用に、実際の記憶装置の代りにVDISKサー
ビス130aを用いる。このことにより、OS40のそ
の他の部分及びアプリケーション・プログラム5a〜5
nは、実際の何らかのディスクのようにVDISKを使
用できる。隠されたメモリ60は、可視的なメモリ30
中で実行されるいかなるプログラムのいかなる故障によ
っても壊されず、固定メモリ110は、隠されたサーバ
70、及びこのサーバに関連するサービス130a〜1
30nの再起動の時点で保存されており、更にDM/6
000ハードウェアに、耐故障性及び電源保護機能が存
在するので、固定メモリ110中のVDISKサービス
130aによって保管されるデータは、実際の磁気ディ
スク上に安全に保管されているように見なせる。
トールされているVDISKデバイス・ドライバ160
aが、VDISKサービス130aを使用する。VDI
SKデバイス・ドライバ160aは、OS40上にイン
ストールされているいずれのディスク・デバイス・ドラ
イバとも同じインタフェースを備え、データの保管及び
取り出し用に、実際の記憶装置の代りにVDISKサー
ビス130aを用いる。このことにより、OS40のそ
の他の部分及びアプリケーション・プログラム5a〜5
nは、実際の何らかのディスクのようにVDISKを使
用できる。隠されたメモリ60は、可視的なメモリ30
中で実行されるいかなるプログラムのいかなる故障によ
っても壊されず、固定メモリ110は、隠されたサーバ
70、及びこのサーバに関連するサービス130a〜1
30nの再起動の時点で保存されており、更にDM/6
000ハードウェアに、耐故障性及び電源保護機能が存
在するので、固定メモリ110中のVDISKサービス
130aによって保管されるデータは、実際の磁気ディ
スク上に安全に保管されているように見なせる。
【0021】隠されたサーバ70に渡されるすべてのア
ドレスは、可視的なメモリ30中の実アドレスであり、
AIXの下で作動するVDISKデバイス・ドライバ1
60aが、AIXのカーネル・サービスを用いてこのア
ドレスを確定し、要求ブロック100a〜100nは、
アドレス変換に関する問題を避けるために、メモリの単
一ページに制限されることが望ましい。
ドレスは、可視的なメモリ30中の実アドレスであり、
AIXの下で作動するVDISKデバイス・ドライバ1
60aが、AIXのカーネル・サービスを用いてこのア
ドレスを確定し、要求ブロック100a〜100nは、
アドレス変換に関する問題を避けるために、メモリの単
一ページに制限されることが望ましい。
【0022】隠されたサーバ70が、プロセッサ15a
〜15nの1サブセットで、OS40が実行されている
プロセッサから切り離されたプロセッサ上で作動してい
るときは、隠されたサーバ70が行う要求処理は、OS
40及びアプリケーション・プログラム5a〜5nの処
理と同時に行われる。隠されたサーバ70、ならびにO
S40及びアプリケーション・プログラム5a〜5n
が、同じプロセッサ15a〜15nを共用するとき、制
御は、転送プログラム170を用いてこの両者の間を往
復して転送されることが望ましく、この転送プログラム
は、プロセッサ15a〜15nの状態を、ある時はOS
40の使用によりセットアップ中であると記録し、次に
隠されたサーバ70が適切に作動できるように、このプ
ロセッサ15a〜15nの状態を変更する。記録される
べき状態はいろいろあるが、その中にはレジスタの内
容、及び仮想アドレス変換ユニットの設定がある。
〜15nの1サブセットで、OS40が実行されている
プロセッサから切り離されたプロセッサ上で作動してい
るときは、隠されたサーバ70が行う要求処理は、OS
40及びアプリケーション・プログラム5a〜5nの処
理と同時に行われる。隠されたサーバ70、ならびにO
S40及びアプリケーション・プログラム5a〜5n
が、同じプロセッサ15a〜15nを共用するとき、制
御は、転送プログラム170を用いてこの両者の間を往
復して転送されることが望ましく、この転送プログラム
は、プロセッサ15a〜15nの状態を、ある時はOS
40の使用によりセットアップ中であると記録し、次に
隠されたサーバ70が適切に作動できるように、このプ
ロセッサ15a〜15nの状態を変更する。記録される
べき状態はいろいろあるが、その中にはレジスタの内
容、及び仮想アドレス変換ユニットの設定がある。
【0023】好ましい実施例では、転送プログラム17
0はメモリの最初の64KBに配置される。AIXは、
メモリのこの部分が自身の実アドレスと同じ仮想アドレ
スをもつように、自身の仮想記憶テーブルを常に設定す
る。メモリのこの区域にあるプログラムは、したがって
アドレス変換をオンにもオフにもでき、いずれにしても
命令の実行を同じプログラム内の次の命令に進める。
0はメモリの最初の64KBに配置される。AIXは、
メモリのこの部分が自身の実アドレスと同じ仮想アドレ
スをもつように、自身の仮想記憶テーブルを常に設定す
る。メモリのこの区域にあるプログラムは、したがって
アドレス変換をオンにもオフにもでき、いずれにしても
命令の実行を同じプログラム内の次の命令に進める。
【0024】OS40の下で作動するVDISKデバイ
ス・ドライバ160aと、VDISKサービス130a
との間に他の信号伝送手段、例えば割り込みなども可能
であるが、好ましい実施例は、要求ブロック100a〜
100nの応答区域に完了フラグを使用する。隠された
サーバ70がOS40と同じプロセッサを共用している
場合は、VDISKデバイス・ドライバ160aは、完
了フラグのチェックと、この隠されたサーバ70への制
御の引き渡しとの間を、同期を取りながらループする。
ス・ドライバ160aと、VDISKサービス130a
との間に他の信号伝送手段、例えば割り込みなども可能
であるが、好ましい実施例は、要求ブロック100a〜
100nの応答区域に完了フラグを使用する。隠された
サーバ70がOS40と同じプロセッサを共用している
場合は、VDISKデバイス・ドライバ160aは、完
了フラグのチェックと、この隠されたサーバ70への制
御の引き渡しとの間を、同期を取りながらループする。
【0025】アプリケーション5a〜5nによるVDI
SK中のデータの要求から、この同じアプリケーション
へのそのデータの配送までの全体の流れを示す経路は、
次のようになる。要求はまずOS40に行き、OSは要
求対象の装置がVDISKであると判断する。そこでこ
の要求は、VDISKデバイス・ドライバ160aに渡
され、VDISKデバイス・ドライバは、どのVDIS
Kがデータをもつかを判断し、要求ブロック100a〜
100n中に、この要求がVDISKサービスに対する
ものであることを示す要求を生成し、更にどのVDIS
Kからデータを取り出すか、VDISKのどこから読み
取りを開始するか、どのくらいの量のデータを転送する
か、可視的なメモリ30内のどこに読み出したデータを
配置するかを判断する。この時点では、要求ブロック1
00a〜100n中の完了フラグは、要求が未完了であ
ることを示すように設定されていることに留意された
い。次にVDISKデバイス・ドライバ160aは、待
ち行列90中にこの要求ブロック100a〜100nを
指す待ち行列エントリを置き、要求が完了したことを示
す完了フラグを待ち始める。プロセッサ15a〜15n
が、OS40と隠されたサーバ70との間で共用されて
いる場合には、VDISKデバイス・ドライバ160a
は、待っている間に転送プログラム170を呼び出し、
隠されたサーバ70にプロセッサ15a〜15nの制御
を渡す。隠されたサーバは、いずれの場合でも自身に制
御が渡されたときに、この待ち行列エントリを待ち行列
から取り出し、VDISKサービス130aがどの要求
ブロック100a〜100nから処理するべきかを判断
する。VDISKサービス130aは、自身のサービス
・データ・ハンドル115aを用いて、自身のVDIS
Kデータ記述子140aの位置決めをし、更にそれによ
ってVDISKデータの位置を決め、その後VDISK
サービスは、VDISKデータを要求ブロック100a
〜100nに記述された可視的なメモリの一部にコピー
し、その後で完了フラグをセットして操作が終了したこ
とを表示する。プロセッサ15a〜15nが、隠された
サーバ70とOS40との間で共用されている場合は、
プロセッサ15a〜15nの制御は隠されたサーバ70
に戻され、このサーバは順に制御を転送プログラム17
0に戻し、そこから更に制御は、VDISKデバイス・
ドライバ130aに渡される。VDISKデバイス・ド
ライバ160aはいずれの場合でも、結局プロセッサ1
5a〜15nの制御を再びもち、完了フラグがセットさ
れていることを確認し、OS40に制御を戻し、OS
は、当初の要求元であるアプリケーション・プログラム
5a〜5nに制御を戻す。
SK中のデータの要求から、この同じアプリケーション
へのそのデータの配送までの全体の流れを示す経路は、
次のようになる。要求はまずOS40に行き、OSは要
求対象の装置がVDISKであると判断する。そこでこ
の要求は、VDISKデバイス・ドライバ160aに渡
され、VDISKデバイス・ドライバは、どのVDIS
Kがデータをもつかを判断し、要求ブロック100a〜
100n中に、この要求がVDISKサービスに対する
ものであることを示す要求を生成し、更にどのVDIS
Kからデータを取り出すか、VDISKのどこから読み
取りを開始するか、どのくらいの量のデータを転送する
か、可視的なメモリ30内のどこに読み出したデータを
配置するかを判断する。この時点では、要求ブロック1
00a〜100n中の完了フラグは、要求が未完了であ
ることを示すように設定されていることに留意された
い。次にVDISKデバイス・ドライバ160aは、待
ち行列90中にこの要求ブロック100a〜100nを
指す待ち行列エントリを置き、要求が完了したことを示
す完了フラグを待ち始める。プロセッサ15a〜15n
が、OS40と隠されたサーバ70との間で共用されて
いる場合には、VDISKデバイス・ドライバ160a
は、待っている間に転送プログラム170を呼び出し、
隠されたサーバ70にプロセッサ15a〜15nの制御
を渡す。隠されたサーバは、いずれの場合でも自身に制
御が渡されたときに、この待ち行列エントリを待ち行列
から取り出し、VDISKサービス130aがどの要求
ブロック100a〜100nから処理するべきかを判断
する。VDISKサービス130aは、自身のサービス
・データ・ハンドル115aを用いて、自身のVDIS
Kデータ記述子140aの位置決めをし、更にそれによ
ってVDISKデータの位置を決め、その後VDISK
サービスは、VDISKデータを要求ブロック100a
〜100nに記述された可視的なメモリの一部にコピー
し、その後で完了フラグをセットして操作が終了したこ
とを表示する。プロセッサ15a〜15nが、隠された
サーバ70とOS40との間で共用されている場合は、
プロセッサ15a〜15nの制御は隠されたサーバ70
に戻され、このサーバは順に制御を転送プログラム17
0に戻し、そこから更に制御は、VDISKデバイス・
ドライバ130aに渡される。VDISKデバイス・ド
ライバ160aはいずれの場合でも、結局プロセッサ1
5a〜15nの制御を再びもち、完了フラグがセットさ
れていることを確認し、OS40に制御を戻し、OS
は、当初の要求元であるアプリケーション・プログラム
5a〜5nに制御を戻す。
【0026】PCACHEデバイス・ドライバ160b
は、VDISKデバイス・ドライバ160aに非常に似
ており、それは、OS40及びアプリケーション・プロ
グラム5a〜5nにとっては、PCACHEデバイス・
ドライバは、実際のディスク装置のように見え、更にこ
のデバイス・ドライバが、隠されたサーバ70及びPC
ACHEサービス130bを用いて固定メモリにデータ
を保管し、そこからデータを取り出すからである。両者
の違いは、PCACHEデバイス・ドライバ160b
が、PCACHEサービス130bのみを用いて、実際
のディスク装置18a〜18nに最近読み書きされたデ
ータのキャッシュを保持することであり、PCACHE
デバイス・ドライバ160bは、それらの特定のディス
ク装置18a〜18nに対するデバイス・ドライバ16
0a〜160nを用いて、キャッシュにアクセスする。
この方法は、1994年11月22日にIBM T.
J.Watson Research Centerが
発行した、RC−19843に記載のC.R.Atta
nasio、M.Butrico、C.A.Polyz
ois、S.E.Smithによる「Design a
nd Implementation of a Re
coverable Virtual Shared
Disk」に記述されている、VSDデバイス・ドライ
バが作動する方法と非常に似た方法である。
は、VDISKデバイス・ドライバ160aに非常に似
ており、それは、OS40及びアプリケーション・プロ
グラム5a〜5nにとっては、PCACHEデバイス・
ドライバは、実際のディスク装置のように見え、更にこ
のデバイス・ドライバが、隠されたサーバ70及びPC
ACHEサービス130bを用いて固定メモリにデータ
を保管し、そこからデータを取り出すからである。両者
の違いは、PCACHEデバイス・ドライバ160b
が、PCACHEサービス130bのみを用いて、実際
のディスク装置18a〜18nに最近読み書きされたデ
ータのキャッシュを保持することであり、PCACHE
デバイス・ドライバ160bは、それらの特定のディス
ク装置18a〜18nに対するデバイス・ドライバ16
0a〜160nを用いて、キャッシュにアクセスする。
この方法は、1994年11月22日にIBM T.
J.Watson Research Centerが
発行した、RC−19843に記載のC.R.Atta
nasio、M.Butrico、C.A.Polyz
ois、S.E.Smithによる「Design a
nd Implementation of a Re
coverable Virtual Shared
Disk」に記述されている、VSDデバイス・ドライ
バが作動する方法と非常に似た方法である。
【0027】OS40の機能停止の場合には、可視的な
メモリ30の内容は完全に失われる。OS40が再起動
されたとき、PCACHEデバイス・ドライバ160b
は、固定メモリ110に現在存在するブロックのホーム
・アドレスのリストを、PCACHEサービス130b
に要求することにより、キャッシュの位置情報のディレ
クトリを再構築する。PCACHEデバイス・ドライバ
160bは、キャッシュの状態を監視するために自身が
使用するどのような内部データ構造も再構築でき、この
内部データ構造の例にはハッシュ・テーブルがあり、し
たがって正常の作動時には、PCACHEサービス13
0bが保管したディレクトリ情報を使用する必要はな
い。
メモリ30の内容は完全に失われる。OS40が再起動
されたとき、PCACHEデバイス・ドライバ160b
は、固定メモリ110に現在存在するブロックのホーム
・アドレスのリストを、PCACHEサービス130b
に要求することにより、キャッシュの位置情報のディレ
クトリを再構築する。PCACHEデバイス・ドライバ
160bは、キャッシュの状態を監視するために自身が
使用するどのような内部データ構造も再構築でき、この
内部データ構造の例にはハッシュ・テーブルがあり、し
たがって正常の作動時には、PCACHEサービス13
0bが保管したディレクトリ情報を使用する必要はな
い。
【0028】図4は、OS40が行うステップの論理的
な流れ図であり、更に詳細には、OS中にインストール
されたデバイス・ドライバ160a〜160n、及び制
御の転送を行う転送プログラム170が行うステップの
流れ図である。最初に、隠されたサーバ70、及び特定
のサービス130a〜130nによって処理されること
になるいかなる要求も、いずれかの要求ブロック100
a〜100n中の通信領域80に置かれる(ステップ4
10)。次に15a〜15nの中のどのプロセッサがこ
れらのステップを実行しているかを示す状態が、可視的
なメモリ30のいずれかに記録される(ステップ42
0)。隠されたメモリ60をこのプロセッサに可視的に
するために(ステップ430)、好ましい実施例では、
プロセッサの仮想アドレス変換がオフにされるが、これ
以外の手段を取ることも十分可能である。その結果、隠
されたメモリ60にはこのプロセッサがアクセスでき、
このプロセッサは、隠されたサーバ70のプログラム中
に含まれる命令の実行を開始できる(ステップ44
0)。隠されたサーバ70がプロセッサの制御を手放せ
る状況になったときはいつでも、このプログラムの次の
ステップにおいて、転送プログラム170中で実行が再
開され、隠されたメモリ60を再び隠す操作に進む(ス
テップ450)。この操作は好ましい実施例では、仮想
アドレス変換をオンに戻すことにより行われる。その他
のプロセッサの状態は復元でき(ステップ460)、制
御は転送を開始したデバイス・ドライバ160a〜16
0nに戻される。通信領域80に置かれた応答データ、
あるいは可視的なメモリ30中の応答データが置かれて
いた場所の応答データを検査できる(ステップ47
0)。
な流れ図であり、更に詳細には、OS中にインストール
されたデバイス・ドライバ160a〜160n、及び制
御の転送を行う転送プログラム170が行うステップの
流れ図である。最初に、隠されたサーバ70、及び特定
のサービス130a〜130nによって処理されること
になるいかなる要求も、いずれかの要求ブロック100
a〜100n中の通信領域80に置かれる(ステップ4
10)。次に15a〜15nの中のどのプロセッサがこ
れらのステップを実行しているかを示す状態が、可視的
なメモリ30のいずれかに記録される(ステップ42
0)。隠されたメモリ60をこのプロセッサに可視的に
するために(ステップ430)、好ましい実施例では、
プロセッサの仮想アドレス変換がオフにされるが、これ
以外の手段を取ることも十分可能である。その結果、隠
されたメモリ60にはこのプロセッサがアクセスでき、
このプロセッサは、隠されたサーバ70のプログラム中
に含まれる命令の実行を開始できる(ステップ44
0)。隠されたサーバ70がプロセッサの制御を手放せ
る状況になったときはいつでも、このプログラムの次の
ステップにおいて、転送プログラム170中で実行が再
開され、隠されたメモリ60を再び隠す操作に進む(ス
テップ450)。この操作は好ましい実施例では、仮想
アドレス変換をオンに戻すことにより行われる。その他
のプロセッサの状態は復元でき(ステップ460)、制
御は転送を開始したデバイス・ドライバ160a〜16
0nに戻される。通信領域80に置かれた応答データ、
あるいは可視的なメモリ30中の応答データが置かれて
いた場所の応答データを検査できる(ステップ47
0)。
【0029】図5は要求を処理するために、隠されたサ
ーバ70が実行するステップの論理的な流れ図である。
最初のステップ510は、要求が通信領域80に現れる
のを待つことである。要求が現れると、なされた要求の
性質に対して適切な何らかの処理が、ステップ520で
行われる。要求データは、例えば要求が渡される何らか
の特定のサービス、及びそのサービスによって実行され
るコマンドを示す。この結果、応答情報が通信領域8
0、または可視的なメモリ30中の任意の場所に配置さ
れる(ステップ530)。当初の要求の内容は、例えば
可視的なメモリ30中の1つの場所であって、特定の要
求に対する応答情報が置かれる通信領域の外にある場所
を指定できる。次にステップ540において、隠された
サーバ70のプログラムを現在実行しているプロセッサ
が、OS40を実行するためにも使用されているか否か
が検査される。この検査は、いかなる数の手段を用いて
も行うことができ、例えば、通信領域内に存在する構成
情報を検査することによっても行える。この時点540
でプロセッサが共用されている場合には、隠されたサー
バは、OS40に制御を転送して戻す(ステップ55
0)。
ーバ70が実行するステップの論理的な流れ図である。
最初のステップ510は、要求が通信領域80に現れる
のを待つことである。要求が現れると、なされた要求の
性質に対して適切な何らかの処理が、ステップ520で
行われる。要求データは、例えば要求が渡される何らか
の特定のサービス、及びそのサービスによって実行され
るコマンドを示す。この結果、応答情報が通信領域8
0、または可視的なメモリ30中の任意の場所に配置さ
れる(ステップ530)。当初の要求の内容は、例えば
可視的なメモリ30中の1つの場所であって、特定の要
求に対する応答情報が置かれる通信領域の外にある場所
を指定できる。次にステップ540において、隠された
サーバ70のプログラムを現在実行しているプロセッサ
が、OS40を実行するためにも使用されているか否か
が検査される。この検査は、いかなる数の手段を用いて
も行うことができ、例えば、通信領域内に存在する構成
情報を検査することによっても行える。この時点540
でプロセッサが共用されている場合には、隠されたサー
バは、OS40に制御を転送して戻す(ステップ55
0)。
【0030】図6は、通信領域80中の待ち行列90
が、その中に一連の要求が置かれた後に、どのように見
えるかを示す例である。この待ち行列90中でAエント
リが最も古く、Eエントリ610が、最も新しく追加さ
れたエントリである。エントリを待ち行列に入れる操作
と、待ち行列から取り除く操作との間の干渉を避けるた
めに、同期化の手順が必要になる。例えば好ましい実施
例では、確実に同期化するために、「TEST and
SET」の(IBM370の)命令シーケンスが用い
られる一方、PowerPCアーキテクチャの「loa
d−and−reserve」及び「store−co
nditionally」命令も用いられる。当分野で
周知のように、「load−and−reserve」
命令は、「store−conditionally」
命令が使用するためのメモリ位置を予約する。「sto
re−conditionally」命令は、保管が行
われるためのメモリ位置に予約がされているか否かをま
ず判定する。予約がされている場合は、保管が行われ、
予約は解除される。予約が行われてない場合は、メモリ
が変更されずに命令が終了する。
が、その中に一連の要求が置かれた後に、どのように見
えるかを示す例である。この待ち行列90中でAエント
リが最も古く、Eエントリ610が、最も新しく追加さ
れたエントリである。エントリを待ち行列に入れる操作
と、待ち行列から取り除く操作との間の干渉を避けるた
めに、同期化の手順が必要になる。例えば好ましい実施
例では、確実に同期化するために、「TEST and
SET」の(IBM370の)命令シーケンスが用い
られる一方、PowerPCアーキテクチャの「loa
d−and−reserve」及び「store−co
nditionally」命令も用いられる。当分野で
周知のように、「load−and−reserve」
命令は、「store−conditionally」
命令が使用するためのメモリ位置を予約する。「sto
re−conditionally」命令は、保管が行
われるためのメモリ位置に予約がされているか否かをま
ず判定する。予約がされている場合は、保管が行われ、
予約は解除される。予約が行われてない場合は、メモリ
が変更されずに命令が終了する。
【0031】待ち行列にエントリを入れるためには、待
ち行列中の第1のエントリのオフセットを含む待ち行列
ヘッダ中のワードに、「load−and−reser
ve」命令が実行される。新しいエントリの「次の」オ
フセットが、このときにその値にセットされる。最後
に、新しいエントリの予約がそのワード上にまだ存在す
るならば、新しいエントリのオフセットが待ち行列のヘ
ッダに保管される。予約が存在しない場合は、待ち行列
に入れる手順が繰り返される。
ち行列中の第1のエントリのオフセットを含む待ち行列
ヘッダ中のワードに、「load−and−reser
ve」命令が実行される。新しいエントリの「次の」オ
フセットが、このときにその値にセットされる。最後
に、新しいエントリの予約がそのワード上にまだ存在す
るならば、新しいエントリのオフセットが待ち行列のヘ
ッダに保管される。予約が存在しない場合は、待ち行列
に入れる手順が繰り返される。
【0032】例えばEエントリ610は、予約と一緒に
先頭ポインタ600をロードすることにより追加され
た。この先頭ポインタは、Eエントリ610の追加の前
には、Dエントリ620を指していた。このポインタ
は、Eエントリ610の次のエントリを示すフィールド
613に置かれる。最後にEエントリ610のアドレス
が、先頭ポインタ600中に条件付きで保管される。こ
の保管が成功したときは、待ち行列入れが行われる。成
功しないときは、このプロセスが繰り返される。
先頭ポインタ600をロードすることにより追加され
た。この先頭ポインタは、Eエントリ610の追加の前
には、Dエントリ620を指していた。このポインタ
は、Eエントリ610の次のエントリを示すフィールド
613に置かれる。最後にEエントリ610のアドレス
が、先頭ポインタ600中に条件付きで保管される。こ
の保管が成功したときは、待ち行列入れが行われる。成
功しないときは、このプロセスが繰り返される。
【0033】この方法は、当然ながら後入れ先出し(L
IFO)方式で構成された待ち行列を形成する。待ち行
列に先入れ先出し(FIFO)の特徴を持たせること
は、待ち行列から取り出すプロセスで行われる。エント
リを待ち行列から取り出すために、待ち行列ヘッダ中
で、先頭オフセットの「loading−and−re
serving」が行われる。その次に、全体の待ち行
列が待ち行列ヘッダから除去され、この操作は、全体の
待ち行列値の代わりにゼロを条件付きで保管することに
より行われる。全体の待ち行列が存在するとき、サーバ
は、待ち行列から最も古い要求を自由に取り出せる。上
とは違って待ち行列が空である場合は、待ち行列解除が
行われる。空でない場合は、待ち行列に残っているエン
トリが、待ち行列ヘッダに戻される。
IFO)方式で構成された待ち行列を形成する。待ち行
列に先入れ先出し(FIFO)の特徴を持たせること
は、待ち行列から取り出すプロセスで行われる。エント
リを待ち行列から取り出すために、待ち行列ヘッダ中
で、先頭オフセットの「loading−and−re
serving」が行われる。その次に、全体の待ち行
列が待ち行列ヘッダから除去され、この操作は、全体の
待ち行列値の代わりにゼロを条件付きで保管することに
より行われる。全体の待ち行列が存在するとき、サーバ
は、待ち行列から最も古い要求を自由に取り出せる。上
とは違って待ち行列が空である場合は、待ち行列解除が
行われる。空でない場合は、待ち行列に残っているエン
トリが、待ち行列ヘッダに戻される。
【0034】残っているエントリを待ち行列ヘッダに戻
すときに、その間に待ち行列に他のエントリが入れられ
た場合は、これらのエントリは、待ち行列から取り出す
プロセスによって除去されたエントリのセットに結合さ
れることが望ましい。この結合を行うために、先頭オフ
セット(待ち行列中の最初のエントリを指す待ち行列ヘ
ッダ中のワード)に、「load−and−reser
ve」命令が実行される。先頭オフセット値がゼロの場
合は、新しいエントリは存在しない。このように、待ち
行列に戻されつつあるエントリの先頭に現在存在するエ
ントリのオフセットは、条件付きで保管される。それ以
外の場合は、ゼロが条件付きで保管され、ロードされた
値は、古い待ち行列に結合される新しい待ち行列の開始
点として用いられる。その後このプロセスは繰り返され
る。いずれの場合でも保管に失敗した場合は、全体のプ
ロセスが繰り返される。
すときに、その間に待ち行列に他のエントリが入れられ
た場合は、これらのエントリは、待ち行列から取り出す
プロセスによって除去されたエントリのセットに結合さ
れることが望ましい。この結合を行うために、先頭オフ
セット(待ち行列中の最初のエントリを指す待ち行列ヘ
ッダ中のワード)に、「load−and−reser
ve」命令が実行される。先頭オフセット値がゼロの場
合は、新しいエントリは存在しない。このように、待ち
行列に戻されつつあるエントリの先頭に現在存在するエ
ントリのオフセットは、条件付きで保管される。それ以
外の場合は、ゼロが条件付きで保管され、ロードされた
値は、古い待ち行列に結合される新しい待ち行列の開始
点として用いられる。その後このプロセスは繰り返され
る。いずれの場合でも保管に失敗した場合は、全体のプ
ロセスが繰り返される。
【0035】エントリ610〜650を待ち行列から取
り出すに当たっては、最も古いエントリから行うことが
望ましい。この例では最も古いものはAエントリ630
である。これを行うには、予約を伴った先頭ポインタ6
00のロード、及び各エントリの場所へのゼロの条件付
きストアを繰り返すことにより、連鎖全体を除去する。
これはストアが成功するまで繰り返し行われる。その
後、最後尾のポインタがゼロでないエントリに到達する
まで、待ち行列は横に動かされる。この例ではそのポイ
ンタは、Aエントリ630の最後尾ポインタ632であ
る。Aエントリ630の前の各エントリは、待ち行列入
れのアルゴリズムによって決まる、後入れ先出し(LI
FO)順になっている。Aエントリ630の後の各エン
トリは、先入れ先出し(FIFO)順になっており、こ
れは、隠されたサーバ70がこれらのエントリをB、
C、D、Eの順に再配置することにより、維持される
(Aエントリ630は、待ち行列90から除去されてい
るので、そこには存在しない)。Bエントリ640は、
Eエントリ610を指すようにセットされた最後尾ポイ
ンタ642をもつ。これは2つのことを示し、その1つ
は、Bエントリ640は、先入れ先出しエントリの最初
のものであることであり、もう1つは、後入れ先出し順
に存在する新しいエントリは、最後尾ポインタ642が
指すエントリの後に配置されるべきであることである。
このことにより、待ち行列90が再配置される必要があ
る度に、全体の待ち行列90を順に後方に動かす必要性
がなくなる。
り出すに当たっては、最も古いエントリから行うことが
望ましい。この例では最も古いものはAエントリ630
である。これを行うには、予約を伴った先頭ポインタ6
00のロード、及び各エントリの場所へのゼロの条件付
きストアを繰り返すことにより、連鎖全体を除去する。
これはストアが成功するまで繰り返し行われる。その
後、最後尾のポインタがゼロでないエントリに到達する
まで、待ち行列は横に動かされる。この例ではそのポイ
ンタは、Aエントリ630の最後尾ポインタ632であ
る。Aエントリ630の前の各エントリは、待ち行列入
れのアルゴリズムによって決まる、後入れ先出し(LI
FO)順になっている。Aエントリ630の後の各エン
トリは、先入れ先出し(FIFO)順になっており、こ
れは、隠されたサーバ70がこれらのエントリをB、
C、D、Eの順に再配置することにより、維持される
(Aエントリ630は、待ち行列90から除去されてい
るので、そこには存在しない)。Bエントリ640は、
Eエントリ610を指すようにセットされた最後尾ポイ
ンタ642をもつ。これは2つのことを示し、その1つ
は、Bエントリ640は、先入れ先出しエントリの最初
のものであることであり、もう1つは、後入れ先出し順
に存在する新しいエントリは、最後尾ポインタ642が
指すエントリの後に配置されるべきであることである。
このことにより、待ち行列90が再配置される必要があ
る度に、全体の待ち行列90を順に後方に動かす必要性
がなくなる。
【0036】残ったエントリを待ち行列90に戻すこと
は、エントリを待ち行列に入れる操作と非常に似てい
る。その差が見られるのは、隠されたサーバ70が、待
ち行列から取り出すプロセスの一部としてエントリを取
り扱っている間に、いくつかの他のエントリが待ち行列
90上に置かれたときである。その場合には、先頭ポイ
ンタ600からロードされる値はゼロではなく、新しく
待ち行列に入れられたエントリを指す。隠されたサーバ
70に対する正しい応答は、通常の待ち行列からの取り
出しとしてこれらのエントリを除去し、これらを以前に
除去されたエントリと結合して単一のリストを作成し、
このリストを待ち行列90上に戻すプロセスを繰り返
す、操作に戻ることである。
は、エントリを待ち行列に入れる操作と非常に似てい
る。その差が見られるのは、隠されたサーバ70が、待
ち行列から取り出すプロセスの一部としてエントリを取
り扱っている間に、いくつかの他のエントリが待ち行列
90上に置かれたときである。その場合には、先頭ポイ
ンタ600からロードされる値はゼロではなく、新しく
待ち行列に入れられたエントリを指す。隠されたサーバ
70に対する正しい応答は、通常の待ち行列からの取り
出しとしてこれらのエントリを除去し、これらを以前に
除去されたエントリと結合して単一のリストを作成し、
このリストを待ち行列90上に戻すプロセスを繰り返
す、操作に戻ることである。
【0037】連鎖上の最も古いエントリが必要になる度
に、LIFO連鎖の最後尾まで操作することを避けるた
めに、最適化が行われる。これには、待ち行列にリスト
を戻す前にエントリの順序を変えることが含まれる。順
序を変えられたエントリは、ここでFIFO順になり、
すべてのエントリは、リストの最後尾のオフセット値を
含む。これにより、FIFO順になっているエントリ
を、最後尾のオフセット値の代りに0をもつLIFO順
になっているエントリから区別でき、更にこれにより、
最後尾に挿入するために最後尾を迅速に位置決めでき
る。新しいエントリが待ち行列に入れられている間に、
いくつかのLIFOエントリの後にいくつかのFIFO
エントリが来るときがあるが、これらのLIFOエント
リは、次に隠されたサーバが待ち行列から取り出す操作
をするときに、隠されたサーバが順序を変えることがで
きる。
に、LIFO連鎖の最後尾まで操作することを避けるた
めに、最適化が行われる。これには、待ち行列にリスト
を戻す前にエントリの順序を変えることが含まれる。順
序を変えられたエントリは、ここでFIFO順になり、
すべてのエントリは、リストの最後尾のオフセット値を
含む。これにより、FIFO順になっているエントリ
を、最後尾のオフセット値の代りに0をもつLIFO順
になっているエントリから区別でき、更にこれにより、
最後尾に挿入するために最後尾を迅速に位置決めでき
る。新しいエントリが待ち行列に入れられている間に、
いくつかのLIFOエントリの後にいくつかのFIFO
エントリが来るときがあるが、これらのLIFOエント
リは、次に隠されたサーバが待ち行列から取り出す操作
をするときに、隠されたサーバが順序を変えることがで
きる。
【0038】本発明の好ましい実施例を説明したが、当
分野に知識をもつ当業者が、文頭の「特許請求の範囲」
から逸脱することなく、現在及び将来において各種の変
更や拡張をなし得ることは、理解できるであろう。この
特許請求の範囲は、最初に開示された当発明を適切に保
護し、維持するためのものと解釈されるべきである。
分野に知識をもつ当業者が、文頭の「特許請求の範囲」
から逸脱することなく、現在及び将来において各種の変
更や拡張をなし得ることは、理解できるであろう。この
特許請求の範囲は、最初に開示された当発明を適切に保
護し、維持するためのものと解釈されるべきである。
【0039】まとめとして、本発明の構成に関して以下
の事項を開示する。
の事項を開示する。
【0040】(1)メモリ、少なくとも1つのプロセッ
サ及びオペレーティング・システムを含むコンピュータ
・システムであって、(a)前記少なくとも1つのプロ
セッサ及び前記オペレーティング・システムがアドレス
指定できる前記メモリの可視的な部分と、(b)前記少
なくとも1つのプロセッサ及び前記オペレーティング・
システムによるアドレス指定可能性が除外され、更に前
記少なくとも1つのプロセッサまたは前記オペレーティ
ング・システムの少なくともいずれか一方から伝送され
たデータを保管するために用いられる、前記メモリの隠
された部分と、(c)前記メモリの前記可視的な部分に
配置され、前記少なくとも1つのプロセッサまたは前記
オペレーティング・システムの少なくともいずれか一方
からのデータ・アクセスの要求を受け取るための通信領
域と、(d)前記メモリの前記可視的な部分、及び前記
メモリの前記隠された部分の双方をアドレス指定し、前
記通信領域から前記データ・アクセスの要求を受け取
り、前記隠されたメモリへの前記データ・アクセスを開
始する、隠されたサーバと、を含むコンピュータ・シス
テム。 (2)前記隠されたサーバが、前記少なくとも1つのプ
ロセッサの第1のプロセッサによって実行され、前記オ
ペレーティング・システムが、前記少なくとも1つのプ
ロセッサの第2のプロセッサによって実行される、
(1)に記載のコンピュータ・システム。 (3)前記プロセッサが、隠されたメモリが前記プロセ
ッサに対して可視的でない第1の状態、及び隠されたメ
モリが前記プロセッサに対して可視的である第2の状態
のいずれかにあり、前記コンピュータ・システムが、前
記プロセッサを前記第1の状態と前記第2の状態との間
を変更する手段と、前記隠されたサーバが前記第2の状
態にある間に、前記隠されたサーバが所要の操作を開始
する手段と、を含む、(1)に記載のコンピュータ・シ
ステム。 (4)前記隠されたサーバが再ロード可能、再起動可能
であり、前記メモリの前記可視的な部分が、前記隠され
たサーバの再起動の直前と直後との双方で同一である、
(1)に記載のコンピュータ・システム。 (5)前記メモリの前記隠された部分にデータを保管す
るため、及び前記オペレーティング・システムの故障を
切り抜けてこれを再起動し、前記隠されたサーバを再ロ
ードして再起動するためのRAMディスク・サービス手
段を更に含む、(1)に記載のコンピュータ・システ
ム。 (6)前記メモリの前記隠された部分にデータを保管す
るため、及び前記オペレーティング・システムの故障を
切り抜けてこれを再起動し、前記隠されたサーバを再ロ
ードして再起動するためのディスク・キャッシュ・サー
ビス手段を更に含む、(1)に記載のコンピュータ・シ
ステム。 (7)少なくとも1つのプロセッサ及びオペレーティン
グ・システムを含むコンピュータ・システム内に配置さ
れたメモリ中に保管されるデータを保護する方法であっ
て、(a)前記少なくとも1つのプロセッサ及び前記オ
ペレーティング・システムがアドレス指定できる前記メ
モリの可視的な部分を割り当てるステップと、(b)前
記少なくとも1つのプロセッサ及び前記オペレーティン
グ・システムによるアドレス指定可能性が除外され、更
に前記少なくとも1つのプロセッサ及び前記オペレーテ
ィング・システムから伝送されたデータを保管するため
に用いられる、前記メモリの隠された部分を割り当てる
ステップと、(c)前記メモリの前記可視的な部分に配
置された通信領域において、前記少なくとも1つのプロ
セッサまたは前記オペレーティング・システムの少なく
ともいずれか一方からの要求を受け取るステップと、
(d)前記メモリの前記可視的な部分、及び前記メモリ
の前記隠された部分の双方をアドレス指定する隠された
サーバが前記要求のそれぞれを受け取るステップと、
(e)前記隠されたメモリに対して前記要求のそれぞれ
を開始するステップと、を含む方法。 (8)(f)前記メモリの前記隠された部分が前記プロ
セッサに対して可視的でない第1の状態から、前記メモ
リの前記隠された部分が前記プロセッサに対して可視的
である第2の状態に前記プロセッサを変更するステップ
と、(g)前記プロセッサの制御を前記隠されたサーバ
に転送するステップと、(h)所要の操作を実行する要
求を前記隠されたサーバが受け取るステップと、(i)
前記隠されたサーバが前記所要の操作を開始するステッ
プと、(j)前記隠されたサーバが前記プロセッサの制
御を終了させるステップと、(k)前記プロセッサを前
記第2の状態から前記第1の状態に変更するステップ
と、を更に含む、(7)に記載の方法。 (9)(l)前記隠されたサーバを再ロードするステッ
プと、(m)前記隠されたサーバを再起動するステップ
と、(n)前記メモリの前記可視的な部分を、前記隠さ
れたサーバの再起動の直前と直後との双方で同一に維持
するステップと、を更に含む、(8)に記載の方法。 (10)前記メモリの前記隠された部分にデータを保管
し、前記オペレーティング・システムの故障を切り抜け
てこれを再起動し、前記隠されたサーバを再ロードして
再起動する、RAMディスク・サービスを提供するステ
ップを更に含む、(7)に記載の方法。 (11)前記メモリの前記隠された部分にデータを保管
し、前記オペレーティング・システムの故障を切り抜け
てこれを再起動し、前記隠されたサーバを再ロードして
再起動する、ディスク・キャッシュ・サービスを提供す
るステップを更に含む、(7)に記載の方法。 (12)前記隠されたサーバが、前記少なくとも1つの
プロセッサの第1のプロセッサによって実行され、前記
オペレーティング・システムが、前記少なくとも1つの
プロセッサの第2のプロセッサによって実行される、
(7)に記載の方法。
サ及びオペレーティング・システムを含むコンピュータ
・システムであって、(a)前記少なくとも1つのプロ
セッサ及び前記オペレーティング・システムがアドレス
指定できる前記メモリの可視的な部分と、(b)前記少
なくとも1つのプロセッサ及び前記オペレーティング・
システムによるアドレス指定可能性が除外され、更に前
記少なくとも1つのプロセッサまたは前記オペレーティ
ング・システムの少なくともいずれか一方から伝送され
たデータを保管するために用いられる、前記メモリの隠
された部分と、(c)前記メモリの前記可視的な部分に
配置され、前記少なくとも1つのプロセッサまたは前記
オペレーティング・システムの少なくともいずれか一方
からのデータ・アクセスの要求を受け取るための通信領
域と、(d)前記メモリの前記可視的な部分、及び前記
メモリの前記隠された部分の双方をアドレス指定し、前
記通信領域から前記データ・アクセスの要求を受け取
り、前記隠されたメモリへの前記データ・アクセスを開
始する、隠されたサーバと、を含むコンピュータ・シス
テム。 (2)前記隠されたサーバが、前記少なくとも1つのプ
ロセッサの第1のプロセッサによって実行され、前記オ
ペレーティング・システムが、前記少なくとも1つのプ
ロセッサの第2のプロセッサによって実行される、
(1)に記載のコンピュータ・システム。 (3)前記プロセッサが、隠されたメモリが前記プロセ
ッサに対して可視的でない第1の状態、及び隠されたメ
モリが前記プロセッサに対して可視的である第2の状態
のいずれかにあり、前記コンピュータ・システムが、前
記プロセッサを前記第1の状態と前記第2の状態との間
を変更する手段と、前記隠されたサーバが前記第2の状
態にある間に、前記隠されたサーバが所要の操作を開始
する手段と、を含む、(1)に記載のコンピュータ・シ
ステム。 (4)前記隠されたサーバが再ロード可能、再起動可能
であり、前記メモリの前記可視的な部分が、前記隠され
たサーバの再起動の直前と直後との双方で同一である、
(1)に記載のコンピュータ・システム。 (5)前記メモリの前記隠された部分にデータを保管す
るため、及び前記オペレーティング・システムの故障を
切り抜けてこれを再起動し、前記隠されたサーバを再ロ
ードして再起動するためのRAMディスク・サービス手
段を更に含む、(1)に記載のコンピュータ・システ
ム。 (6)前記メモリの前記隠された部分にデータを保管す
るため、及び前記オペレーティング・システムの故障を
切り抜けてこれを再起動し、前記隠されたサーバを再ロ
ードして再起動するためのディスク・キャッシュ・サー
ビス手段を更に含む、(1)に記載のコンピュータ・シ
ステム。 (7)少なくとも1つのプロセッサ及びオペレーティン
グ・システムを含むコンピュータ・システム内に配置さ
れたメモリ中に保管されるデータを保護する方法であっ
て、(a)前記少なくとも1つのプロセッサ及び前記オ
ペレーティング・システムがアドレス指定できる前記メ
モリの可視的な部分を割り当てるステップと、(b)前
記少なくとも1つのプロセッサ及び前記オペレーティン
グ・システムによるアドレス指定可能性が除外され、更
に前記少なくとも1つのプロセッサ及び前記オペレーテ
ィング・システムから伝送されたデータを保管するため
に用いられる、前記メモリの隠された部分を割り当てる
ステップと、(c)前記メモリの前記可視的な部分に配
置された通信領域において、前記少なくとも1つのプロ
セッサまたは前記オペレーティング・システムの少なく
ともいずれか一方からの要求を受け取るステップと、
(d)前記メモリの前記可視的な部分、及び前記メモリ
の前記隠された部分の双方をアドレス指定する隠された
サーバが前記要求のそれぞれを受け取るステップと、
(e)前記隠されたメモリに対して前記要求のそれぞれ
を開始するステップと、を含む方法。 (8)(f)前記メモリの前記隠された部分が前記プロ
セッサに対して可視的でない第1の状態から、前記メモ
リの前記隠された部分が前記プロセッサに対して可視的
である第2の状態に前記プロセッサを変更するステップ
と、(g)前記プロセッサの制御を前記隠されたサーバ
に転送するステップと、(h)所要の操作を実行する要
求を前記隠されたサーバが受け取るステップと、(i)
前記隠されたサーバが前記所要の操作を開始するステッ
プと、(j)前記隠されたサーバが前記プロセッサの制
御を終了させるステップと、(k)前記プロセッサを前
記第2の状態から前記第1の状態に変更するステップ
と、を更に含む、(7)に記載の方法。 (9)(l)前記隠されたサーバを再ロードするステッ
プと、(m)前記隠されたサーバを再起動するステップ
と、(n)前記メモリの前記可視的な部分を、前記隠さ
れたサーバの再起動の直前と直後との双方で同一に維持
するステップと、を更に含む、(8)に記載の方法。 (10)前記メモリの前記隠された部分にデータを保管
し、前記オペレーティング・システムの故障を切り抜け
てこれを再起動し、前記隠されたサーバを再ロードして
再起動する、RAMディスク・サービスを提供するステ
ップを更に含む、(7)に記載の方法。 (11)前記メモリの前記隠された部分にデータを保管
し、前記オペレーティング・システムの故障を切り抜け
てこれを再起動し、前記隠されたサーバを再ロードして
再起動する、ディスク・キャッシュ・サービスを提供す
るステップを更に含む、(7)に記載の方法。 (12)前記隠されたサーバが、前記少なくとも1つの
プロセッサの第1のプロセッサによって実行され、前記
オペレーティング・システムが、前記少なくとも1つの
プロセッサの第2のプロセッサによって実行される、
(7)に記載の方法。
【図1】本発明の1実施例に従った、メモリ及びメモリ
と複数のプロセッサ及び複数の入出力装置との関係の構
成を示すブロック図である。
と複数のプロセッサ及び複数の入出力装置との関係の構
成を示すブロック図である。
【図2】図1に示された可視的なメモリ、及び図1に示
された可視的なメモリと隠されたメモリとの間の通信経
路の構成を示すブロック図である。
された可視的なメモリと隠されたメモリとの間の通信経
路の構成を示すブロック図である。
【図3】図1に示された隠されたメモリの内部構成を示
すブロック図である。
すブロック図である。
【図4】オペレーティング・システムが隠されたサーバ
にプロセッサの制御を手渡すための、本発明の1実施例
に従った処理ステップを示す流れ図である。
にプロセッサの制御を手渡すための、本発明の1実施例
に従った処理ステップを示す流れ図である。
【図5】本発明の1実施例に従って、図3の隠されたサ
ーバが実行するステップを示す流れ図である。
ーバが実行するステップを示す流れ図である。
【図6】本発明の1実施例に従って、隠されたサーバに
要求を手渡すために用いられる待ち行列の構成を示すブ
ロック図である。
要求を手渡すために用いられる待ち行列の構成を示すブ
ロック図である。
10 相互接続メカニズム 15a〜15n プロセッサ 18a〜18n ディスク装置 115a〜115n サービス・データ・ハンドル
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ミッシェル・ヘンリ・テオドール・ハック アメリカ合衆国10566、ニューヨーク州ピ ークスキル、ファーネス・ドック・ロード 403 (72)発明者 ナギー・ハリム アメリカ合衆国10598、ニューヨーク州ヨ ークタウン・ハイツ、クロムポンド・ロー ド 2917 (72)発明者 リチャード・パービン・キング アメリカ合衆国10594、ニューヨーク州ソ ーンウッド、ウォーレン・アベニュー 540
Claims (12)
- 【請求項1】メモリ、少なくとも1つのプロセッサ及び
オペレーティング・システムを含むコンピュータ・シス
テムであって、(a)前記少なくとも1つのプロセッサ
及び前記オペレーティング・システムがアドレス指定で
きる前記メモリの可視的な部分と、(b)前記少なくと
も1つのプロセッサ及び前記オペレーティング・システ
ムによるアドレス指定可能性が除外され、更に前記少な
くとも1つのプロセッサまたは前記オペレーティング・
システムの少なくともいずれか一方から伝送されたデー
タを保管するために用いられる、前記メモリの隠された
部分と、(c)前記メモリの前記可視的な部分に配置さ
れ、前記少なくとも1つのプロセッサまたは前記オペレ
ーティング・システムの少なくともいずれか一方からの
データ・アクセスの要求を受け取るための通信領域と、
(d)前記メモリの前記可視的な部分、及び前記メモリ
の前記隠された部分の双方をアドレス指定し、前記通信
領域から前記データ・アクセスの要求を受け取り、前記
隠されたメモリへの前記データ・アクセスを開始する、
隠されたサーバと、を含むコンピュータ・システム。 - 【請求項2】前記隠されたサーバが、前記少なくとも1
つのプロセッサの第1のプロセッサによって実行され、
前記オペレーティング・システムが、前記少なくとも1
つのプロセッサの第2のプロセッサによって実行され
る、請求項1に記載のコンピュータ・システム。 - 【請求項3】前記プロセッサが、隠されたメモリが前記
プロセッサに対して可視的でない第1の状態、及び隠さ
れたメモリが前記プロセッサに対して可視的である第2
の状態のいずれかにあり、前記コンピュータ・システム
が、前記プロセッサを前記第1の状態と前記第2の状態
との間を変更する手段と、前記隠されたサーバが前記第
2の状態にある間に、前記隠されたサーバが所要の操作
を開始する手段と、を含む、請求項1に記載のコンピュ
ータ・システム。 - 【請求項4】前記隠されたサーバが再ロード可能、再起
動可能であり、前記メモリの前記可視的な部分が、前記
隠されたサーバの再起動の直前と直後との双方で同一で
ある、請求項1に記載のコンピュータ・システム。 - 【請求項5】前記メモリの前記隠された部分にデータを
保管するため、及び前記オペレーティング・システムの
故障を切り抜けてこれを再起動し、前記隠されたサーバ
を再ロードして再起動するためのRAMディスク・サー
ビス手段を更に含む、請求項1に記載のコンピュータ・
システム。 - 【請求項6】前記メモリの前記隠された部分にデータを
保管するため、及び前記オペレーティング・システムの
故障を切り抜けてこれを再起動し、前記隠されたサーバ
を再ロードして再起動するためのディスク・キャッシュ
・サービス手段を更に含む、請求項1に記載のコンピュ
ータ・システム。 - 【請求項7】少なくとも1つのプロセッサ及びオペレー
ティング・システムを含むコンピュータ・システム内に
配置されたメモリ中に保管されるデータを保護する方法
であって、(a)前記少なくとも1つのプロセッサ及び
前記オペレーティング・システムがアドレス指定できる
前記メモリの可視的な部分を割り当てるステップと、
(b)前記少なくとも1つのプロセッサ及び前記オペレ
ーティング・システムによるアドレス指定可能性が除外
され、更に前記少なくとも1つのプロセッサ及び前記オ
ペレーティング・システムから伝送されたデータを保管
するために用いられる、前記メモリの隠された部分を割
り当てるステップと、(c)前記メモリの前記可視的な
部分に配置された通信領域において、前記少なくとも1
つのプロセッサまたは前記オペレーティング・システム
の少なくともいずれか一方からの要求を受け取るステッ
プと、(d)前記メモリの前記可視的な部分、及び前記
メモリの前記隠された部分の双方をアドレス指定する隠
されたサーバが前記要求のそれぞれを受け取るステップ
と、(e)前記隠されたメモリに対して前記要求のそれ
ぞれを開始するステップと、を含む方法。 - 【請求項8】(f)前記メモリの前記隠された部分が前
記プロセッサに対して可視的でない第1の状態から、前
記メモリの前記隠された部分が前記プロセッサに対して
可視的である第2の状態に前記プロセッサを変更するス
テップと、(g)前記プロセッサの制御を前記隠された
サーバに転送するステップと、(h)所要の操作を実行
する要求を前記隠されたサーバが受け取るステップと、
(i)前記隠されたサーバが前記所要の操作を開始する
ステップと、(j)前記隠されたサーバが前記プロセッ
サの制御を終了させるステップと、(k)前記プロセッ
サを前記第2の状態から前記第1の状態に変更するステ
ップと、を更に含む、請求項7に記載の方法。 - 【請求項9】(l)前記隠されたサーバを再ロードする
ステップと、(m)前記隠されたサーバを再起動するス
テップと、(n)前記メモリの前記可視的な部分を、前
記隠されたサーバの再起動の直前と直後との双方で同一
に維持するステップと、を更に含む、請求項8に記載の
方法。 - 【請求項10】前記メモリの前記隠された部分にデータ
を保管し、前記オペレーティング・システムの故障を切
り抜けてこれを再起動し、前記隠されたサーバを再ロー
ドして再起動する、RAMディスク・サービスを提供す
るステップを更に含む、請求項7に記載の方法。 - 【請求項11】前記メモリの前記隠された部分にデータ
を保管し、前記オペレーティング・システムの故障を切
り抜けてこれを再起動し、前記隠されたサーバを再ロー
ドして再起動する、ディスク・キャッシュ・サービスを
提供するステップを更に含む、請求項7に記載の方法。 - 【請求項12】前記隠されたサーバが、前記少なくとも
1つのプロセッサの第1のプロセッサによって実行さ
れ、前記オペレーティング・システムが、前記少なくと
も1つのプロセッサの第2のプロセッサによって実行さ
れる、請求項7に記載の方法。
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US3149496P | 1996-11-26 | 1996-11-26 | |
| US08/816,917 US5897658A (en) | 1996-11-26 | 1997-03-13 | Method and apparatus for protecting portions of memory by providing access requests to a communications area for processing by a hidden server |
| US60/031494 | 1997-03-13 | ||
| US08/816917 | 1997-03-13 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH10254786A true JPH10254786A (ja) | 1998-09-25 |
| JP3552502B2 JP3552502B2 (ja) | 2004-08-11 |
Family
ID=26707316
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP31352797A Expired - Fee Related JP3552502B2 (ja) | 1996-11-26 | 1997-11-14 | メモリの一部を保護するための方法及び装置 |
Country Status (6)
| Country | Link |
|---|---|
| US (1) | US5897658A (ja) |
| EP (1) | EP0844565B1 (ja) |
| JP (1) | JP3552502B2 (ja) |
| CN (1) | CN1082688C (ja) |
| DE (1) | DE69710034T2 (ja) |
| SG (1) | SG73478A1 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100652506B1 (ko) | 2004-09-24 | 2006-12-06 | 삼성전자주식회사 | 시스템 운용 데이터 자가 복구 장치 및 방법 |
Families Citing this family (15)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP3904808B2 (ja) * | 2000-06-08 | 2007-04-11 | 株式会社日立製作所 | 分散オブジェクト管理方法及びその実施装置並びにその処理プログラムを記録した記録媒体 |
| US6701421B1 (en) * | 2000-08-17 | 2004-03-02 | International Business Machines Corporation | Application-level memory affinity control |
| US6973666B1 (en) * | 2001-02-28 | 2005-12-06 | Unisys Corporation | Method of moving video data thru a video-on-demand system which avoids paging by an operating system |
| US7895239B2 (en) * | 2002-01-04 | 2011-02-22 | Intel Corporation | Queue arrays in network devices |
| US6792520B2 (en) * | 2002-08-07 | 2004-09-14 | Hewlett-Packard Development Company, L.P. | System and method for using a using vendor-long descriptor in ACPI for the chipset registers |
| US7461131B2 (en) * | 2003-03-07 | 2008-12-02 | International Business Machines Corporation | Use of virtual targets for preparing and servicing requests for server-free data transfer operations |
| TWI343531B (en) * | 2003-12-19 | 2011-06-11 | Oce Tech Bv | Erasing a stored information pattern on a storage medium |
| US20050182796A1 (en) * | 2004-02-12 | 2005-08-18 | International Business Machines Corporation | Method and system for protecting data associated with a replaced image file during a re-provisioning event |
| US7278122B2 (en) * | 2004-06-24 | 2007-10-02 | Ftl Systems, Inc. | Hardware/software design tool and language specification mechanism enabling efficient technology retargeting and optimization |
| US7412705B2 (en) * | 2005-01-04 | 2008-08-12 | International Business Machines Corporation | Method for inter partition communication within a logical partitioned data processing system |
| US7418629B2 (en) * | 2005-02-11 | 2008-08-26 | International Business Machines Corporation | Synchronizing triggering of multiple hardware trace facilities using an existing system bus |
| US7437617B2 (en) * | 2005-02-11 | 2008-10-14 | International Business Machines Corporation | Method, apparatus, and computer program product in a processor for concurrently sharing a memory controller among a tracing process and non-tracing processes using a programmable variable number of shared memory write buffers |
| US7437618B2 (en) * | 2005-02-11 | 2008-10-14 | International Business Machines Corporation | Method in a processor for dynamically during runtime allocating memory for in-memory hardware tracing |
| US8683159B2 (en) * | 2007-12-27 | 2014-03-25 | Intel Corporation | Delivering secured media using a portable memory device |
| US9110793B2 (en) * | 2009-11-03 | 2015-08-18 | International Business Machines Corporation | Inner process |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4564903A (en) * | 1983-10-05 | 1986-01-14 | International Business Machines Corporation | Partitioned multiprocessor programming system |
| US5673394A (en) * | 1990-10-31 | 1997-09-30 | Microsoft Corporation | Method of sharing memory between an operating system and an application program |
| JPH06236284A (ja) * | 1991-10-21 | 1994-08-23 | Intel Corp | コンピュータシステム処理状態を保存及び復元する方法及びコンピュータシステム |
| US5423044A (en) * | 1992-06-16 | 1995-06-06 | International Business Machines Corporation | Shared, distributed lock manager for loosely coupled processing systems |
| US5649099A (en) * | 1993-06-04 | 1997-07-15 | Xerox Corporation | Method for delegating access rights through executable access control program without delegating access rights not in a specification to any intermediary nor comprising server security |
-
1997
- 1997-03-13 US US08/816,917 patent/US5897658A/en not_active Expired - Fee Related
- 1997-10-28 CN CN97121209A patent/CN1082688C/zh not_active Expired - Fee Related
- 1997-10-29 SG SG1997003909A patent/SG73478A1/en unknown
- 1997-11-06 EP EP97308904A patent/EP0844565B1/en not_active Expired - Lifetime
- 1997-11-06 DE DE69710034T patent/DE69710034T2/de not_active Expired - Fee Related
- 1997-11-14 JP JP31352797A patent/JP3552502B2/ja not_active Expired - Fee Related
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100652506B1 (ko) | 2004-09-24 | 2006-12-06 | 삼성전자주식회사 | 시스템 운용 데이터 자가 복구 장치 및 방법 |
Also Published As
| Publication number | Publication date |
|---|---|
| US5897658A (en) | 1999-04-27 |
| SG73478A1 (en) | 2000-06-20 |
| CN1201189A (zh) | 1998-12-09 |
| DE69710034D1 (de) | 2002-03-14 |
| CN1082688C (zh) | 2002-04-10 |
| EP0844565A2 (en) | 1998-05-27 |
| EP0844565B1 (en) | 2002-01-23 |
| JP3552502B2 (ja) | 2004-08-11 |
| DE69710034T2 (de) | 2002-09-26 |
| EP0844565A3 (en) | 1999-12-22 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3552502B2 (ja) | メモリの一部を保護するための方法及び装置 | |
| US5579504A (en) | Multi-processor computer system having shared memory, private cache memories, and invalidate queues having valid bits and flush bits for serializing transactions | |
| US6874054B2 (en) | Direct memory access controller system with message-based programming | |
| US6141734A (en) | Method and apparatus for optimizing the performance of LDxL and STxC interlock instructions in the context of a write invalidate protocol | |
| CN102460377B (zh) | 数据处理设备及方法 | |
| US7543295B2 (en) | Method for enhancing efficiency in mutual exclusion | |
| US8082469B2 (en) | Virtual computer system, error recovery method in virtual computer system, and virtual computer control program | |
| US7234004B2 (en) | Method, apparatus and program product for low latency I/O adapter queuing in a computer system | |
| WO1999035563A1 (en) | Method of asynchronous management of a circular queue in a multiprocess environment | |
| JPH07239783A (ja) | 並列処理を実行する方法およびシステム | |
| JP5089226B2 (ja) | I/oアドレス変換キャッシュ・ミスのソフトウェア・ミス処理用ハードウェア支援エクセプション | |
| JP2003502754A (ja) | 先進のマイクロプロセッサにおけるスケジューリング強化方法および装置 | |
| US6665747B1 (en) | Method and apparatus for interfacing with a secondary storage system | |
| JPH096546A (ja) | ディスク制御システム | |
| US5764962A (en) | Emulation of asynchronous signals using a branch mechanism | |
| US6668287B1 (en) | Software direct memory access | |
| EP2054800A2 (en) | Flash memory access circuit | |
| US6880057B1 (en) | Split write data processing mechanism for memory controllers utilizing inactive periods during write data processing for other transactions | |
| US20070168642A1 (en) | Virtual on-chip memory | |
| US7200686B2 (en) | Method, apparatus, and program product for facilitating serialization of input/output requests to a logical volume allowing nonserialized input/output requests | |
| EP3935491B1 (en) | Instruction ordering | |
| US9442859B1 (en) | Method for asynchronous population of data caches used with mass storage devices | |
| US7216213B2 (en) | Method of analyzing data utilizing queue entry | |
| WO1988003682A1 (en) | I/o system for off-loading operating system functions | |
| US5594909A (en) | File I/O control device writing blocks to faster device first and canceling exclusive lock as each block is written |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 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: 20040414 |
|
| RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20040415 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040426 |
|
| 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: 20080514 Year of fee payment: 4 |
|
| LAPS | Cancellation because of no payment of annual fees |