JP5029333B2 - コンピュータシステム、仮想記憶制御方法、及びプログラム - Google Patents

コンピュータシステム、仮想記憶制御方法、及びプログラム Download PDF

Info

Publication number
JP5029333B2
JP5029333B2 JP2007317133A JP2007317133A JP5029333B2 JP 5029333 B2 JP5029333 B2 JP 5029333B2 JP 2007317133 A JP2007317133 A JP 2007317133A JP 2007317133 A JP2007317133 A JP 2007317133A JP 5029333 B2 JP5029333 B2 JP 5029333B2
Authority
JP
Japan
Prior art keywords
event
page
stack
reception process
final operation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007317133A
Other languages
English (en)
Other versions
JP2009140315A (ja
Inventor
尚生 黒澤
耕平 小笹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2007317133A priority Critical patent/JP5029333B2/ja
Publication of JP2009140315A publication Critical patent/JP2009140315A/ja
Application granted granted Critical
Publication of JP5029333B2 publication Critical patent/JP5029333B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、コンピュータシステム、仮想記憶制御方法、及びプログラムに関し、特にプロセスの実行情報を格納するスタックにおけるミッシングページ例外の発生を防ぐことのできるコンピュータシステム、仮想記憶制御方法、及びプログラムに関する。
近年、仮想記憶を採用する多くのコンピュータシステムでは、LRU(Least Recently Used)等のページ置換アルゴリズムに基づいて、使用頻度の低いページをページアウトする。したがって、イベント受信待ちの時間が所定時間以上である長時間待ち状態であったプロセスがイベント受信などを契機に突然動き出す場合、メモリ上に存在しないページへの参照であることを示すミッシングページ例外が、高い確率で発生する。
なお、一般的なコンピュータシステムは、使用頻度が低いとメモリ上からページアウトされるページング対象のページと、使用頻度に関わらず常にメモリ上に存在するページング対象外のページとを備える。メモリを効率的に利用するという観点では、ページング対象外のページを少なくすることが好ましい。
特許文献1に記載の技術は、共有リソースに変更を行わない時には、排他制御によるプロセス待ち状態を回避し、システムの処理性能の低下を防止する共有リソースの排他制御を行うものである。
特許文献1に記載の共有リソースの排他制御装置は、情報処理を行う複数のプロセスと、その複数のプロセスによって共有される共有リソースと、プロセスの共有リソースへのアクセスの排他制御を行い、共有リソースへのアクセスが同時に複数のプロセスで処理が行われないようにする共有リソースアクセス排他手段と、共有リソースの内容を変更する共有リソース変更手段と、共有リソースの内容を変更する必要が生じた場合に、共有リソース変更手段からの要求に基づいて、プロセスに対し、共有リソースアクセス排他手段を使用して共有リソースへのアクセスに排他制御を行うように要求する共有リソースアクセス方法変更手段と、を有する。
しかしながら、特許文献1では、解放されたプロセスの処理の再開に伴う、システムの処理性能の低下については、考慮されていない。
特許文献2に記載のコンピュータシステムは、ページミッシング時に該当するページを二次記憶から主記憶にページインし、ページ置換アルゴリズムとして主記憶に存在する各プロセスのページの使用頻度を管理している使用頻度表に基づくLRUを採用するデマンドページング方式による仮想記憶管理機構を有するものである。
特許文献2に記載のコンピュータシステムは、システムの負荷状況に応じ、待ち状態に入るプロセスに含まれ、かつ、主記憶に存在しているページについて前記使用頻度表で管理されている使用頻度を下げる待ち状態突入時使用頻度変更手段と、システムの負荷状況に応じ、待ち状態の解除されたプロセスに含まれ、かつ、主記憶に存在しているページについて前記使用頻度表で管理されている使用頻度を上げる待ち解除時使用頻度変更手段とを有する。
しかしながら、特許文献2では、ページイン処理を行う場合に主記憶上に、プロセスの実行情報を格納するスタックの領域が存在することを前提としているが、スタック自体が主記憶上に存在しない場合については、考慮されていない。
特許文献3に記載の技術は、不必要なイベントを無効にすることができ、またイベントの受信順序を自由に変更できるイベント送受信装置に関するものである。
特許文献3に記載のイベント送受信装置は、イベント名と、送受信回数を関連付けて登録する受信イベント管理テーブルと非受信イベント管理テーブルを設け、送信側プロセスは、イベントキューに格納する際に、いずれかのテーブルに登録されたそのイベントについての送信回数を更新する。受信側プロセスは、受信イベント管理テーブルの送信回数と受信回数を比較し、送信回数の方が大きい時はイベント受信回数を更新して、イベントキューからイベントを読み込む。イベント名を登録する受信イベント管理テーブルと非受信イベント管理テーブルとの間でそのイベントを相手側のテーブルに移し替えることにより、受信順序を入れ替え、受信回数を大きくすることにより、不要なものを受信しないで済む。
しかしながら、特許文献3では、イベントを受信する回数を減らすことはできるが、イベントを受信する処理の1回当たりのシステムの処理性能の低下については、考慮されていない。
特許文献4に記載の技術は、仮想記憶システムにおいて、仮想空間上のプログラムを実行する場合、プログラムのページの実行と並行してプリページングを行うことにより、プログラムローディング時間を短縮するものである。
特許文献4に記載のプログラムローディング方式は、プロセッサにプログラムを二次記憶装置から全ページロードし、プログラムを実行し、この時参照したページを記憶しておく。実行後のプログラムはページファイルへページアウトする。ページファイルへページアウトしたプログラムをロードする場合、プログラムの1ページをプロセッサにページインし、実行している間に、以前に参照したページは続いて実行する可能性が高いとして、そのページの近くで以前参照された数ページのページインを行う。
これにより、ページファイルからプロセッサへのプログラムのローディングにおいて、プログラム実行時のページイン待ちを減らすことで、プログラム実行時間の短縮を図ることができる。
しかしながら、特許文献4では、関連性の高いページを連続してページインする際に効果を発揮するが、関連性の低いページを複数、または、同時にページインする際には、効果が発揮されない。
ここで、ミッシングページ例外が発生する仕組みと、ページ、及びスタックでのミッシングページ例外を解決する仕組みとして考え得るものとを挙げる。
図7は、ミッシングページ例外を解決するためにミッシングページ例外検出手段とミッシングページ例外解決手段を用いたコンピュータシステム100aの構成及び動作を示す図である。図7に示すコンピュータシステム100aは、仮想記憶を採用しており、LRU等のページ置換アルゴリズムに基づいて、使用頻度の低いページをページアウトするものである。コンピュータシステム100aは、イベント送信プロセス10aと、イベント受信プロセス20aと、ミッシングページ例外検出手段51aとを含む。
イベント送信プロセス10aは、イベント受信プロセス20aへイベントの送信を行うプロセスである。イベント送信プロセス10aは、イベント送信機能11a、イベント送信手段14を含む。イベント送信機能11aは、イベント送信手段14を実行し、イベント受信プロセス20aへイベントを送信する。
イベント受信プロセス20aは、イベント受信機能21a、イベント受信手段23、ミッシングページ例外解決手段24、スタック26、その他のページ27を含む。
イベント受信機能21aは、イベント受信手段23により、イベント送信プロセス10aからのイベントを受信する。また、イベント受信手段23は、イベントを受信した後、次のイベントの受信を待ち受ける受信待ち状態となる。また、イベント受信手段23は、他のプロセスからのイベントを受信することができる。
ミッシングページ例外解決手段24は、ページ27でミッシングページ例外が発生したときにページインを行う手段である。ミッシングページ例外解決手段24は、ソフトウェアとして実装されたものであればよい。
スタック26は、イベント受信プロセス20aでミッシングページ例外が発生した時に、ミッシングページ例外情報を一時的に格納し、また、イベント受信プロセス20a上で動作する各手段が一時的なデータを格納するテーブルである。尚、ミッシングページ例外情報とは、ミッシングページ例外発生時のプログラムカウンタ(命令カウンタ値、例外を引き起こした命令のアドレス)の値、レジスタの値、対象ページのアドレスなどから構成される。
ページ27は、イベント受信プロセス20aに属し、かつ、ページング対象であるメモリ領域を示す。
ミッシングページ例外検出手段51aは、イベント受信プロセス20aで発生するミッシングページ例外を検出し、ミッシングページ例外解決手段24を起動する手段である。ミッシングページ例外検出手段51aは、ハードウェアとして実装されたものであればよい。
次に、コンピュータシステム100aがミッシングページ例外を解決する例を説明する。前提として、イベント受信プロセス20aは、長時間待ち状態であり、ページ27がメモリ上に存在しないものとする。
まず、イベント送信プロセス10aのイベント送信手段14は、イベント受信プロセス20aへイベントを送信する(D201)。次に、イベント受信プロセス20aのイベント受信手段23は、当該イベントを受信し、イベント受信プロセス20aの動作を開始する。
イベント受信プロセス20aにおいて、イベント受信手段23、イベント受信機能21a、あるいは、その他の手段は、ページ27を参照/更新する。このとき、ページ27がメモリ上に存在しないため、イベント受信プロセス20aにおいて、ミッシングページ例外が発生する。そして、ミッシングページ例外検出手段51aは、ページ27のミッシングページ例外を検出する(D202)。
その後、ミッシングページ例外検出手段51aは、イベント受信プロセス20aに割り込みをかけ、ページ27がミッシングページであることを示すミッシングページ例外情報をスタック26に格納する(D203)。ミッシングページ例外検出手段51aは、ミッシングページ例外解決手段24を起動する(D204)。ミッシングページ例外解決手段24は、スタック26からミッシングページ例外情報を取り出す(D205)。ミッシングページ例外解決手段24は、取り出したミッシングページ例外情報を基にページ27のページイン処理を行う(D206)。
このようにして、上述したコンピュータシステム100aでは、ミッシングページ例外を解決することができる。しかしながら、上述したコンピュータシステム100aでは、スタック26自体がページング対象である場合、スタック26を構成するページがページアウトされ、ミッシングページ例外が発生する可能性がある。そのため、前記処理だけでは不十分である。なぜなら、スタック26がページアウトされると、ミッシングページ例外検出手段51は、ミッシングページ例外情報をスタック26に格納することができないからである。そこで、上記問題に対する一つの解決案として、以下に示すスタックページイン代行プロセスを導入することが考えられる。
図8は、スタックページイン代行プロセスを用いたコンピュータシステム100bの構成及び動作を示す図である。コンピュータシステム100bは、図7のコンピュータシステム100aに対して、ミッシングページ例外検出手段51aがミッシングページ例外検出手段51bに置き換わり、スタックページイン代行プロセス30がさらに追加されたものである。また、それ以外の構成についても、図7と同等のため、説明を省略する。
ミッシングページ例外検出手段51bは、ミッシングページ例外検出手段51aの機能に加え、検出したミッシングページ例外がスタックに関する場合、後述するスタックページイン代行プロセス30を起動する手段である。
スタックページイン代行プロセス30は、スタックページイン手段31、メッセージ登録テーブル35を含む。スタックページイン代行プロセス30は、コンピュータシステム100b内に一つだけ存在し、ページング対象外のプロセスである。
スタックページイン手段31は、プロセスのスタックにおいてミッシングページ例外が発生した場合に、当該プロセスのスタックをページインする手段である。
メッセージ登録テーブル35は、スタックに関するミッシングページ例外情報を一時的に格納するテーブルである。メッセージ登録テーブル35は、常にページング対象外である。メッセージ登録テーブル35へのアクセスでミッシングページ例外を発生させないためである。
次に、コンピュータシステム100bがスタック26におけるミッシングページ例外を解決する例を説明する。前提として、イベント受信プロセス20aは、長時間待ち状態であり、ページ27及びスタック26がメモリ上に存在しないものとする。
まず、イベント送信プロセス10aのイベント送信手段14は、イベント受信プロセス20aへイベントを送信する(D301)。次に、イベント受信プロセス20aのイベント受信手段23は、当該イベントを受信し、イベント受信プロセス20aの動作を開始する。
イベント受信プロセス20aにおいて、イベント受信手段23、イベント受信機能21a、あるいは、その他の手段は、ページ27を参照/更新する。このとき、ページ27がメモリ上に存在しないため、イベント受信プロセス20aにおいて、ミッシングページ例外が発生する。そして、ミッシングページ例外検出手段51bは、ページ27のミッシングページ例外を検出する(D302)。
その後、ミッシングページ例外検出手段51bは、イベント受信プロセス20aに割り込みをかけ、ページ27がミッシングページであることを示すミッシングページ例外情報をスタック26に格納することを試みる(D303)。このとき、スタック26がメモリ上に存在しないため、ミッシングページ例外検出手段51bは、ミッシングページ例外情報の格納に失敗する。そこで、ミッシングページ例外検出手段51bは、スタックページイン代行プロセス30のメッセージ登録テーブル35に、スタック26がミッシングページであることを示すミッシングページ例外情報を格納する(D304)。ミッシングページ例外検出手段51bは、スタックページイン代行プロセス30のスタックページイン手段31を起動する(D305)。
スタックページイン手段31は、メッセージ登録テーブル35からミッシングページ例外情報を取得する(D306)。スタックページイン手段31は、取得したミッシングページ例外情報を基に、イベント受信プロセス20aのスタック26をページインする(D307)。その後、スタックページイン手段31は、イベント受信プロセス20aを起動する。
イベント受信プロセス20aにおいて、イベント受信手段23、イベント受信機能21a、あるいは、その他の手段は、再び、ページ27を参照/更新する。このとき、ページ27がメモリ上に存在しないため、イベント受信プロセス20aにおいて、ミッシングページ例外が発生する。そして、ミッシングページ例外検出手段51bは、ページ27のミッシングページ例外を再び検出する(D308)。
その後、ミッシングページ例外検出手段51bは、イベント受信プロセス20aに割り込みをかけ、ページ27がミッシングページであることを示すミッシングページ例外情報をスタック26に格納することを試みる(D309)。このとき、スタック26がメモリ上に存在するため、ミッシングページ例外検出手段51bは、ミッシングページ例外情報の格納に成功する。ミッシングページ例外検出手段51bは、ミッシングページ例外解決手段24を起動する(D310)。ミッシングページ例外解決手段24は、スタック26からミッシングページ例外情報を取り出す(D311)。ミッシングページ例外解決手段24は、取り出したミッシングページ例外情報を基にページ27のページイン処理を行う(D312)。
このように、上述したコンピュータシステム100bでは、スタックにおけるミッシングページ例外を解決することができる。また、上述したコンピュータシステム100bでは、スタックページイン代行プロセス30以外のプロセスのスタックをページング対象にすることが可能であり、プロセス数が多い場合であっても、スタックページイン代行プロセス30のみをメモリ上に常駐させればよく、必要メモリ量を少なくすることができる。
特開2000−003287号公報 特開平02−219148号公報 特開平10−003393号公報 特開平07−152574号公報
しかしながら、上述したコンピュータシステム100bでは、イベント送信プロセス10aからイベント受信プロセス20aへのイベントの送信が、短時間に大量に動作すると、スタックページイン代行プロセス30に処理が集中し、スタックページイン代行プロセス30がボトルネックとなることによって、システム全体の性能が低下するという問題がある。
本発明は、このような問題点を解決するためになされたものであり、スタックにおけるミッシングページ例外の発生を防ぐことのできるコンピュータシステムを提供することを目的とする。
本発明にかかるコンピュータシステムは、仮想記憶を採用し、イベント送信プロセスとイベント受信プロセスの間でイベントの送受信を行うものである。前記イベント受信プロセスは、前記イベント送信プロセスからのイベントを受信するイベント受信手段と、前記イベント受信プロセスの動作に用いられ、一時的なデータを格納するスタックと、を備える。前記イベント送信プロセスは、前記イベント受信プロセスへイベントを送信するイベント送信手段と、前記イベント受信プロセスのイベント受信待ちの時間が所定時間以上である長時間待ち状態かどうかを検出する長時間待ち検出手段と、前記長時間待ち検出手段により前記イベント受信プロセスが長時間待ち状態であると検出された場合、前記イベント受信プロセスの前記スタックをページインするスタックページイン手段と、を備える。
本発明にかかる仮想記憶制御方法は、仮想記憶を採用し、イベント送信プロセスとイベント受信プロセスの間でイベントの送受信を行うコンピュータシステムにおけるものである。前記イベント受信プロセスのイベント受信待ちの時間が所定時間以上である長時間待ち状態かどうかを検出する長時間待ち検出ステップと、前記イベント受信プロセスが長時間待ち状態であると検出された場合、前記イベント受信プロセスのスタックをページインするスタックページインステップと、前記イベント受信プロセスへイベントを送信するイベント送信ステップと、を含む。
本発明にかかるプログラムは、仮想記憶を採用し、イベント送信プロセスとイベント受信プロセスの間でイベントの送受信を行うコンピュータの仮想記憶の制御処理を実行させるものである。前記制御処理は、前記イベント受信プロセスのイベント受信待ちの時間が所定時間以上である長時間待ち状態かどうかを検出する長時間待ち検出処理と、前記イベント受信プロセスが長時間待ち状態であると検出された場合、前記イベント受信プロセスのスタックをページインするスタックページイン処理と、前記イベント受信プロセスへイベントを送信するイベント送信処理と、を含む。
本発明により、スタックにおけるミッシングページ例外の発生を防ぐことのできるコンピュータシステムを提供することができる。
以下では、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略する。
発明の実施例1.
図1は、本発明の実施例1にかかるコンピュータシステム100の全体構成を示すブロック図である。コンピュータシステム100は、仮想記憶を採用しており、LRU等のページ置換アルゴリズムに基づいて、使用頻度の低いページをページアウトするものである。コンピュータシステム100は、イベント送信プロセス10と、イベント受信プロセス20と、ミッシングページ例外検出手段51とを含む。
イベント送信プロセス10は、イベント受信プロセス20へイベントの送信を行うプロセスである。イベント送信プロセス10は、イベント送信機能11、長時間待ち検出手段12、スタックページイン手段13、イベント送信手段14を含む。イベント送信機能11は、長時間待ち検出手段12、スタックページイン手段13、イベント送信手段14を順次実行し、イベント受信プロセス20へイベントを送信する。
長時間待ち検出手段12は、イベント受信プロセス20のイベント受信待ちの時間を算出し、イベント受信プロセス20のスタック26がページアウトされているか検出する手段である。例えば、イベント受信待ちの時間の算出は、後述する最終動作時刻記憶テーブル25から最終動作時刻を取得して算出するとよい。
スタックページイン手段13は、イベント受信プロセス20のスタック26をページインする手段である。
イベント送信手段14は、イベント受信プロセス20へイベントを送信する手段である。
イベント受信プロセス20は、イベント受信機能21、最終動作時刻格納手段22、イベント受信手段23、ミッシングページ例外解決手段24、最終動作時刻記憶テーブル25、スタック26、その他のページ27を含む。
イベント受信機能21は、イベント受信手段23、最終動作時刻格納手段22を順次実行し、イベント送信プロセス10からのイベントを受信する。
最終動作時刻格納手段22は、イベント受信プロセス20が最終動作の終了時に、最終動作時刻記憶テーブル25へイベント受信プロセス20の最終動作時刻を格納する手段である。また、最終動作時刻格納手段22は、プロセス動作の開始時に、最終動作時刻記憶テーブル25へ0を格納する。
イベント受信手段23は、イベント送信プロセス10からのイベントを受信する手段である。イベント受信手段23は、イベントを受信した後、次のイベントの受信を待ち受ける受信待ち状態となる。また、イベント受信手段23は、他のプロセスからのイベントを受信することができる。
ミッシングページ例外解決手段24は、ページ27でミッシングページ例外が発生したときにページインを行う手段である。ミッシングページ例外解決手段24は、ソフトウェアとして実装されたものであればよい。
最終動作時刻記憶テーブル25は、イベント受信プロセス20の最終動作の終了時の時刻、または、0を格納するテーブルである。
スタック26は、イベント受信プロセス20でミッシングページ例外が発生した時に、ミッシングページ例外情報を一時的に保持し、また、イベント受信プロセス20上で動作する各手段が一時的なデータを格納するテーブルである。尚、ミッシングページ例外情報とは、ミッシングページ例外発生時のプログラムカウンタ(命令カウンタ値、例外を引き起こした命令のアドレス)の値、レジスタの値、対象ページのアドレスなどから構成される。
ページ27は、イベント受信プロセス20に属し、かつ、ページング対象であるメモリ領域を示す。
ミッシングページ例外検出手段51は、イベント受信プロセス20で発生するミッシングページ例外を検出し、ミッシングページ例外解決手段24を起動する手段である。ミッシングページ例外検出手段51は、ハードウェアとして実装されたものであればよい。
尚、イベント受信プロセス20は、最終動作時刻送信手段を備えているとよい。最終動作時刻送信手段は、イベント送信プロセス10からの要求に応じ、最終動作時刻記憶テーブル25を参照して最終動作時刻を返信するようにすればよい。
図2は、本発明の実施例1にかかるイベント受信プロセス20が、イベントの受信待ちの状態に遷移するときの動作を表わすフローチャート図である。
イベント受信プロセス20におけるイベント受信に伴う各種処理の最終動作の終了時に、最終動作時刻格納手段22は、最終動作時刻記憶テーブル25へ最終動作時刻として現在時刻を格納する(S101、図1のD101)。イベント受信手段23は、任意のプロセスから次のイベントの受信を待ち受ける受信待ち状態となる(S102)。
この後、イベント受信プロセス20における受信待ち状態が、予め定めたページアウト対象となるか否かの閾値の時間であるページアウト時間以上続く場合、スタック26及びその他のページ27は、コンピュータシステム100における仮想記憶管理によりページアウトされる。尚、ページアウト時間は、コンピュータシステム100におけるページ置換アルゴリズムに依存した固定値であり、コンピュータシステム100が記憶している。
図3は、本発明の実施例1にかかるイベント送信プロセス10の動作を表わすフローチャート図である。ここでは、図2に引き続き、処理が行われるものとして説明する。また、イベント受信プロセス20における受信待ち状態が、ページアウト時間以上続いているものとする。
まず、イベント送信プロセス10におけるイベント送信機能11は、イベント受信プロセス20へイベントを送信するために、長時間待ち検出手段12を起動する。長時間待ち検出手段12は、最終動作時刻記憶テーブル25からイベント受信プロセス20の最終動作時刻を取得する(S201、図1のD102)。
引き続き、長時間待ち検出手段12は、取得した最終動作時刻が0か否かを判定する(S202)。最終動作時刻が0と判定される場合、ステップS206へ進む。最終動作時刻が0以外と判定される場合、ステップS203へ進む。ここでは、図2で説明したように、イベント受信プロセス20におけるイベント受信に伴う各種処理の最終動作の終了時点の時刻が格納されているため、ステップS203へ進む。
長時間待ち検出手段12は、(1)式によりイベント受信プロセス20の待ち時間を算出する(S203)。
待ち時間 = 現在時刻 − 最終動作時刻 ・・・(1)
長時間待ち検出手段12は、待ち時間と待ち時間の閾値であるページアウト時間とを比較し、待ち時間が閾値より大きいか否かを判定する(S204)。待ち時間が、閾値より小さい場合、ステップS206へ進む。待ち時間が閾値を超えている場合、ステップS205へ進む。ここでは、待ち時間が閾値を超えており、スタック26がページアウトされているため、ステップS205へ進む。
スタックページイン手段13は、イベント受信プロセス20のスタック26をページインする(S205、図1のD103)。
イベント送信手段14は、イベント受信プロセス20に送信対象のイベントを送信する(S206、図1のD104)。
図4は、本発明の実施例1にかかるイベント受信プロセス20の動作を表わすフローチャート図である。ここでは、図3に引き続き、処理が行われるものとして説明する。イベント受信プロセス20は、受信待ち状態であるため、イベント受信機能21が稼働しており、イベント受信手段23によりイベントを受信可能である。
イベント受信プロセス20のイベント受信手段23は、イベント送信手段14からのイベントを受信する(S301)。
その後、最終動作時刻格納手段22は、最終動作時刻記憶テーブル25に最終動作時刻を0に更新する(S302)。そして、イベント受信プロセス20aは、動作を開始する。
これにより、この後、他のプロセスがイベント送信前に、最終動作時刻記憶テーブル25を参照する際、長時間待ち状態でないと判定される。
図5は、本発明の実施例1にかかるミッシングページ例外検出手段51の動作を表わすフローチャート図である。ここでは、図4に引き続き、処理が行われるものとして説明する。
イベント受信プロセス20において、イベント受信手段23、イベント受信機能21、あるいは、その他の手段は、ページ27を参照/更新する。このとき、ページ27がメモリ上に存在しないため、イベント受信プロセス20において、ミッシングページ例外が発生する。そして、ミッシングページ例外検出手段51は、ページ27のミッシングページ例外を検出する(S401、図1のD105)。
その後、ミッシングページ例外検出手段51は、イベント受信プロセス20に割り込みをかけ、ページ27がミッシングページであることを示すミッシングページ例外情報をスタック26に格納する(S402、図1のD106)。このとき、図3で説明したように、スタックページイン手段13により、イベント受信プロセス20において、スタック26がページインされているため、ミッシングページ例外検出手段51は、ミッシングページ例外情報を格納することができる。ミッシングページ例外検出手段51は、ミッシングページ例外解決手段24を起動する(S403、図1のD107)。
図6は、本発明の実施例1にかかるイベント受信プロセス20の動作を表わすフローチャート図である。ここでは、図5に引き続き、処理が行われるものとして説明する。
イベント受信プロセス20におけるミッシングページ例外解決手段24は、スタック26からミッシングページ例外情報を取得する(S501、図1のD108)。
ミッシングページ例外解決手段24は、取得したミッシングページ例外情報を基にページ27のページイン処理を行う(S502、図1のD108)。
以上のように本発明の実施例では、図2乃至図6の処理により、スタックにおけるミッシングページ例外を解決することができる。
本発明の実施例では、イベント受信プロセス20が長時間待ち状態のため、スタック26がページアウトされている場合に、スタックページイン手段13によりスタック26をページインすることで、イベント受信プロセス20がイベント受信後の処理において、スタックにおけるミッシングページ例外を未然に防ぐことができる。これにより、長時間待ち状態のプロセスの処理の再開に伴うシステムの処理性能の低下を抑えることができる。
また、本発明の実施例では、イベント送信手段14によるイベント送信前に、長時間待ち検出手段12においてイベント受信プロセス20が長時間待ち状態であるか否かを検出することにより、イベント受信プロセス20が長時間待ち状態でない場合には、イベント送信プロセス10は、スタックページイン手段13を実行しない。これにより、イベント送信プロセス10の1回当たりの処理性能の低下を抑えることができる。
さらに、長時間待ち状態である多数のプロセスに対して処理が集中した場合、関連性の低いページを関連性の低いページを複数、または、同時にページインすることとなる。しかし、本発明の実施例では、プロセスごとに長時間待ち状態であるかを検出するため、ページごとの関連性の有無に影響を受けず、ミッシングページ例外を解決することができる。
その他の発明の実施例.
尚、本発明の活用例として、仮想記憶採用するマルチプロセッサのコンピュータシステムなどが挙げられる。
尚、イベント受信プロセス20が長時間待ち状態であるか否かの判定は、長時間待ち検出手段12にて行うものを説明したが、これに限定されるものではない。すなわち、当該判定処理自体は、イベント受信プロセス20において実施されても構わない。例えば、イベント受信プロセス20は、長時間待ち検出手段12から要求があった場合に、最終動作時刻記憶テーブル25に格納された最終動作時刻を取得し、(1)式により待ち時間を算出し、長時間待ち状態か否かを判定し、判定結果を長時間待ち検出手段12へ返信すればよい。これにより、長時間待ち検出手段12は、受信した判定結果を基に、長時間待ち状態であるか否かの検出をすることができる。
また、本発明の実施例1にかかるコンピュータシステム100は、上述したスタックページイン代行プロセス30をさらに加えてもよい。これにより、イベント送信プロセス10及びイベント受信プロセス20以外のプロセス間のイベント送受信において、スタックにおけるミッシングページ例外の発生に対応することができる。また、本発明を用いずにスタックページイン代行プロセス30のみを適用した場合に比べ、スタックページイン代行プロセス30への負荷を軽減し、システム全体の性能低下を抑えることができる。
さらに、本発明は上述した実施の形態のみに限定されるものではなく、既に述べた本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
本発明の実施例1にかかるコンピュータシステム100の全体構成を示すブロック図である。 本発明の実施例1にかかるイベント受信プロセス20が、イベントの受信待ちの状態に遷移するときの動作を表わすフローチャート図である。 本発明の実施例1にかかるイベント送信プロセス10の動作を表わすフローチャート図である。 本発明の実施例1にかかるイベント受信プロセス20の動作を表わすフローチャート図である。 本発明の実施例1にかかるミッシングページ例外検出手段51の動作を表わすフローチャート図である。 本発明の実施例1にかかるイベント受信プロセス20の動作を表わすフローチャート図である。 ミッシングページ例外を解決するためにミッシングページ例外検出手段とミッシングページ例外解決手段を用いたコンピュータシステム100aの構成及び動作を示す図である。 スタックページイン代行プロセスを用いたコンピュータシステム100bの構成及び動作を示す図である。
符号の説明
10、10a イベント送信プロセス 11、11a イベント送信機能
12 長時間待ち検出手段 13 スタックページイン手段
14 イベント送信手段 20、20a イベント受信プロセス
21、21a イベント受信機能 22 最終動作時刻格納手段
23 イベント受信手段 24 ミッシングページ例外解決手段
25 最終動作時刻記憶テーブル 26 スタック 27 ページ
30 スタックページイン代行プロセス 31 スタックページイン手段
35 メッセージ登録テーブル
51、51a、51b ミッシングページ例外検出手段
100、100a、100b コンピュータシステム

Claims (13)

  1. 仮想記憶を採用し、イベント送信プロセスとイベント受信プロセスの間でイベントの送受信を行うコンピュータシステムであって、
    前記イベント受信プロセスは、
    前記イベント送信プロセスからのイベントを受信するイベント受信手段と、
    前記イベント受信プロセスの動作に用いられ、一時的なデータを格納するスタックと、
    前記スタックに格納されたデータに基づき、当該スタック以外のページをページインするミッシングページ例外解決手段とを備え、
    前記イベント送信プロセスは、
    前記イベント受信プロセスへイベントを送信するイベント送信手段を備え、
    前記コンピュータシステムは、
    メモリ上に存在しないページへ参照された場合に発生するミッシングページ例外を検出し、前記ミッシングページ例外を表わす情報を前記スタックに格納し、前記ミッシングページ例外解決手段を起動するミッシングページ例外検出手段をさらに備え、
    前記イベント送信プロセスは、
    前記イベント受信プロセスのイベント受信待ちの時間が所定時間以上である長時間待ち状態かどうかを検出する長時間待ち検出手段と、
    前記長時間待ち検出手段により前記イベント受信プロセスが長時間待ち状態であると検出された場合、前記イベント受信プロセスの前記スタックをページインするスタックページイン手段と、
    をさらに備えるコンピュータシステム。
  2. 前記イベント受信プロセスは、
    前記イベント受信プロセスの最終動作時刻を記憶する最終動作時刻記憶部をさらに備え、
    前記長時間待ち検出手段は、
    前記最終動作時刻記憶部から前記最終動作時刻を取得し、前記長時間待ち状態であるかを検出する、請求項1に記載のコンピュータシステム。
  3. 前記長時間待ち検出手段は、
    前記最終動作時刻と現在時刻との差分から、前記長時間待ち状態であるかを検出する、請求項2に記載のコンピュータシステム。
  4. 前記イベント受信プロセスは、
    前記イベント受信プロセスの動作開始時に、前記最終動作時刻記憶部へ前記イベント受信プロセスの処理開始の旨を格納し、前記イベント受信プロセスの最終動作の終了後に、前記最終動作時刻記憶部へ前記最終動作時刻を格納する最終動作時刻格納手段をさらに備える、請求項2又は3に記載のコンピュータシステム。
  5. 前記コンピュータシステムは、
    前記スタックをページインするスタックページイン代行プロセスをさらに備え、
    前記ミッシングページ例外検出手段は、
    メモリ上に存在しない前記スタックへ参照された場合に発生するスタックにおけるミッシングページ例外を検出し、前記スタックページイン代行プロセスへ通知し、前記スタックページイン代行プロセスを起動する、請求項1乃至4のいずれか1項に記載のコンピュータシステム。
  6. 仮想記憶を採用し、イベント送信プロセスとイベント受信プロセスの間でイベントの送受信を行うコンピュータシステムの仮想記憶制御方法であって、
    前記イベント送信プロセスが、前記イベント受信プロセスのイベント受信待ちの時間が所定時間以上である長時間待ち状態かどうかを検出する長時間待ち検出ステップと、
    前記イベント送信プロセスが、前記イベント受信プロセスが長時間待ち状態であると検出された場合、前記イベント受信プロセスのスタックをページインするスタックページインステップと、
    前記イベント送信プロセスが、前記イベント受信プロセスへイベントを送信するイベント送信ステップと、
    前記コンピュータシステムのミッシングページ例外検出手段が、メモリ上に存在しないページへ参照された場合に発生するミッシングページ例外を検出するステップと、
    前記ミッシングページ例外検出手段が、前記ミッシングページ例外が検出された場合に、前記ミッシングページ例外を表わす情報を前記スタックに格納するステップと、
    前記コンピュータシステムのミッシングページ例外解決手段が、前記スタックに格納されたデータに基づき、当該スタック以外のページをページインするステップと、
    を含む仮想記憶制御方法。
  7. 前記仮想記憶制御方法は、
    前記イベント受信プロセスが、前記イベント受信プロセスの最終動作時刻を最終動作時刻記憶部に格納する最終動作時刻格納ステップをさらに含み、
    前記長時間待ち検出ステップは、
    前記イベント送信プロセスが、前記最終動作時刻を取得し、前記長時間待ち状態であるかを検出する、請求項6に記載の仮想記憶制御方法。
  8. 前記長時間待ち検出ステップは、
    前記イベント送信プロセスが、前記最終動作時刻と現在時刻との差分から、前記長時間待ち状態であるかを検出する、請求項7に記載の仮想記憶制御方法。
  9. 前記最終動作時刻格納ステップは、
    前記イベント受信プロセスが、前記イベント受信プロセスの動作開始時に、前記最終動作時刻記憶部へ前記イベント受信プロセスの処理開始の旨を格納し、前記イベント受信プロセスの最終動作の終了後に、前記最終動作時刻記憶部へ前記最終動作時刻を格納する、請求項7又は8に記載の仮想記憶制御方法。
  10. 仮想記憶を採用し、イベント送信プロセスとイベント受信プロセスの間でイベントの送受信を行うコンピュータ仮想記憶の制御処理を実行させるためのプログラムであって、
    前記制御処理は、
    前記イベント送信プロセスが、前記イベント受信プロセスのイベント受信待ちの時間が所定時間以上である長時間待ち状態かどうかを検出する長時間待ち検出処理と、
    前記イベント送信プロセスが、前記イベント受信プロセスが長時間待ち状態であると検出された場合、前記イベント受信プロセスのスタックをページインするスタックページイン処理と、
    前記イベント送信プロセスが、前記イベント受信プロセスへイベントを送信するイベント送信処理と、
    前記コンピュータのミッシングページ例外検出手段が、メモリ上に存在しないページへ参照された場合に発生するミッシングページ例外を検出し、前記ミッシングページ例外を表わす情報を前記スタックに格納するミッシングページ例外検出処理と、
    前記コンピュータのミッシングページ例外解決手段が、前記スタックに格納されたデータに基づき、当該スタック以外のページをページインするミッシングページ例外解決処理と、
    を含むプログラム。
  11. 前記プログラムは、
    前記イベント受信プロセスが、前記イベント受信プロセスの最終動作時刻を記憶する最終動作時刻記憶部をさらに含み、
    前記長時間待ち検出処理は、
    前記イベント送信プロセスが、前記最終動作時刻記憶部から前記最終動作時刻を取得し、前記長時間待ち状態であるかを検出する、請求項10に記載のプログラム。
  12. 前記長時間待ち検出処理は、
    前記イベント送信プロセスが、前記最終動作時刻と現在時刻との差分から、前記長時間待ち状態であるかを検出する、請求項11に記載のプログラム。
  13. 前記プログラムは、
    前記イベント受信プロセスが、前記イベント受信プロセスの動作開始時に、前記最終動作時刻記憶部へ前記イベント受信プロセスの処理開始の旨を格納し、前記イベント受信プロセスの最終動作の終了後に、前記最終動作時刻記憶部へ前記最終動作時刻を格納する最終動作時刻格納処理をさらに備える、請求項11又は12に記載のプログラム。
JP2007317133A 2007-12-07 2007-12-07 コンピュータシステム、仮想記憶制御方法、及びプログラム Expired - Fee Related JP5029333B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007317133A JP5029333B2 (ja) 2007-12-07 2007-12-07 コンピュータシステム、仮想記憶制御方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007317133A JP5029333B2 (ja) 2007-12-07 2007-12-07 コンピュータシステム、仮想記憶制御方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2009140315A JP2009140315A (ja) 2009-06-25
JP5029333B2 true JP5029333B2 (ja) 2012-09-19

Family

ID=40870845

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007317133A Expired - Fee Related JP5029333B2 (ja) 2007-12-07 2007-12-07 コンピュータシステム、仮想記憶制御方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP5029333B2 (ja)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05265845A (ja) * 1992-03-24 1993-10-15 Mitsubishi Electric Corp スワッピング制御方式
JP3163196B2 (ja) * 1993-04-07 2001-05-08 富士通株式会社 仮想記憶制御における命令中断情報格納制御方法
JP2636722B2 (ja) * 1993-12-25 1997-07-30 日本電気株式会社 マルチタスク実行管理方式
JPH09212373A (ja) * 1996-01-30 1997-08-15 Pfu Ltd プロセス監視装置
JP3550890B2 (ja) * 1996-06-17 2004-08-04 株式会社高岳製作所 イベント送受信方法及び装置

Also Published As

Publication number Publication date
JP2009140315A (ja) 2009-06-25

Similar Documents

Publication Publication Date Title
US10305813B2 (en) Socket management with reduced latency packet processing
CN112260876B (zh) 动态网关路由配置方法、平台、计算机设备及存储介质
US8737262B2 (en) Zero copy transmission with raw packets
WO2006134373A3 (en) Reception according to a data transfer protocol of data directed to any of a plurality of destination entities
CN108021434A (zh) 数据处理装置及其处理数据的方法、介质、存储控制器
US7886181B2 (en) Failure recovery method in cluster system
WO2023273424A1 (zh) 一种基于linux内核ko模块的加载方法及装置
CN115334156A (zh) 报文的处理方法、装置、设备、存储介质
CN104049955A (zh) Cache一致性多级流水线处理方法及装置
JP5029333B2 (ja) コンピュータシステム、仮想記憶制御方法、及びプログラム
JP2011095869A (ja) リクエスト情報処理方法および計算機システム
CN108521351B (zh) 会话流量统计方法、处理器核心、存储介质、电子设备
JP4812848B2 (ja) クラスタリングサーバシステム、および、データ転送方法
CN116483570A (zh) 有状态服务的动态扩缩容方法、装置、设备及存储介质
CN113572747B (zh) 一种ip地址的处理方法、装置、存储介质和处理器
JP6725662B2 (ja) 計算機システムおよび処理方法
EP3286637B1 (en) Memory register interrupt based signaling and messaging
US9948533B2 (en) Interrupt management
JP2010182017A (ja) 分散計算機システム、マネージャ引き継ぎ方法及びマネージャ引き継ぎプログラム
JP2001022718A (ja) 並列処理装置
JP2020048126A (ja) 中継システム
US10116543B2 (en) Dynamic asynchronous communication management
CN116956270B (zh) 应用程序运行方法、运行环境re、电子设备、存储介质
CN111611193B (zh) 事件处理方法、装置和设备
US20230056294A1 (en) Client live keeping method and apparatus, electronic device, and storage medium

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111031

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111213

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120124

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120313

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120501

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: 20120529

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120611

R150 Certificate of patent or registration of utility model

Ref document number: 5029333

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150706

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees