(57)【要約】【課題】  仮想記憶システムを用いた情報処理システムにおいて、メモリ要求発生後のスワップ機構によって、メモリアクセス開始までに制御の遅延を避けるようにする。【解決手段】  一次記憶に空きが生じた際に、二次記憶に格納されたメモリページから、メモリ要求が発生する可能性が高いメモリページを決定し、先行してスワップイン処理を実行する。【選択図】図１
2012159962.tif 000002
【特許請求の範囲】
【請求項１】
仮想記憶を用いた情報処理システムであって、
二次記憶に退避されたメモリページ間の優先度を決定するメモリ優先度決定手段と、
一次記憶に空きが生じた際に、上記決定された優先度に応じて、メモリページを二次記憶から一次記憶へ復帰させる手段とを備える情報処理システム。
【請求項２】
スワップアウト時にメモリページ毎にスワップアウト回数をカウントするスワップアウトカウント手段を備え、
前記メモリ優先度決定手段が、スワップアウト回数の少ないメモリページのメモリ優先度を高く決定することを特徴とする請求項１に記載の情報処理システム。
【請求項３】
次に実行される可能性の高いタスクのエントリポイントを含むメモリページを特定する第一のメモリページ特定手段を備え、
前記メモリ優先度決定手段が、前記メモリページ特定手段で特定されたメモリページのメモリ優先度を高く決定することを特徴とする請求項１に記載の情報処理システム。
【請求項４】
実行アドレスに後続するアドレスを含むメモリページを特定する第二のメモリページ特定手段を備え、
前記メモリ優先度決定手段が、前記第二のメモリページ特定手段で特定されたメモリページのメモリ優先度を高く決定することを特徴とする請求項１に記載の情報処理システム。
【請求項５】
外部イベントを検知する手段と、
スワップイン時に復帰するメモリページと直前に記録された外部イベントとを紐つけて記録する第一の記録手段とを備え、
前記メモリ優先度決定手段が、前記第一の記録手段により外部イベント発生時に紐つけられたメモリページのメモリ優先度を高く決定することを特徴とする請求項１に記載の情報処理システム。
【請求項６】
スワップイン時に復帰するメモリページと直前に選択された機能群とを紐つけて記録する第二の記録手段とを備え、
前記メモリ優先度決定手段が、前記第二の記録手段により選択された機能群に紐つけられたメモリページのメモリ優先度を高く決定することを特徴とする請求項１に記載の情報処理システム。
【請求項７】
実行されたジョブの履歴を記録するジョブ履歴記録手段と、
スワップイン時に復帰するメモリページと直前に選択されたジョブとを紐つけて記録する第三の記録手段とを備え、
前記メモリ優先度決定手段が、前記ジョブ履歴記録手段で記録された履歴から実行頻度が高いジョブを決定し、前記第三の記録手段によりそのジョブと紐つけられたメモリページのメモリ優先度を高く決定することを特徴とする請求項１に記載の情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理システムの仮想記憶システムに関するものであり、特にスワップインによる制御の遅延を避ける情報処理システムに関する。
【背景技術】
【０００２】
従来、複写機やファックスなどの事務機器では、ユーザーに提供する機能に必要なメモリ容量を決定して搭載していた。
【０００３】
一方、近年の事務機器は、原稿スキャンやプリントやデータ送受信といった基本的な機能を組み合わせた応用機能を提供可能なマルチファンクションな事務機器であり、複数の機能を同時に提供する際には大容量のメモリを必要とする。
【０００４】
このようなメモリ容量の肥大化による事務機器のコスト上昇を避けるため、機器に搭載される実メモリの容量を抑える技術として、これまでコンピュータ等の情報機器で使用されてきた仮想記憶を用いたメモリ管理が事務機器にも用いられ始めている。
【０００５】
仮想記憶を用いた情報システムでは、使用メモリのスワップ機構のために、制御の一部にメモリを準備するための待ち時間が生じてしまう。
【０００６】
通常この待ち時間は非常に短く、メモリ使用の急激な変化が無ければ、情報機器で問題となることはほとんどない。
【０００７】
ところが、事務機器には情報機器には無いメカ部品等が少なくなく、ほんのわずかな制御の遅延が大きな動作の遅れに至る可能性があり、ユーザーに提供すべき定量的なスペックを満たせなくなることもある。
【０００８】
仮想記憶による制御の遅延を抑えるため、例えば特許文献１では、各ジョブのスワップアウト回数や、消費CPUタイムや緊急度を記録し、それらの値に応じて一部のジョブが使用するメモリ内容をより高速な二次記憶装置にスワップアウトすることが提案されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開平０７−１６０５８４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、特許文献１に記載の提案では、スワップ機構のための処理の遅延を少なくすることは出来るが、スワップインのタイミングはメモリアクセス要求後であり、組み込み機器で避けたい処理遅延を除去することが難しい。
【００１１】
また、通常の事務機器について、
・仮想記憶に使用する二次記憶を複数持つようなケースは少ない。
【００１２】
・複数の二次記憶を用いた仮想記憶は技術的に困難かつコスト高である。
といった点が考慮されていない。
【課題を解決するための手段】
【００１３】
本発明は、仮想記憶のスワップ機構による制御の遅延を避けるため、請求項１に記載の情報処理システムを提案するものである。
【００１４】
すなわち、一次記憶に空きが生じた際に、二次記憶に退避したメモリページ間で決定した優先度に応じて、二次記憶から一次記憶へメモリページを復帰させることにより、メモリのスワップイン制御を前倒しする情報処理システムである。
【００１５】
この前倒しによって、制御の対象となるメモリが一次記憶に存在する確率を高め、スワップ機構による制御の遅延が生じないようにする。
【００１６】
また、二次記憶に退避したメモリページ間で優先度を決定するメモリ優先度決定手段は、請求項２、請求項３、請求項４、請求項５、請求項６、請求項７に示す手段である。
【００１７】
請求項２におけるメモリ優先度決定手段は、スワップアウト実績の少ないメモリページのメモリ優先度を高く決定する。
【００１８】
これは、スワップアウト実績の少ないメモリページは頻繁に参照されていると見なして決定するものである。
【００１９】
請求項３におけるメモリ優先度決定手段は、次に実行される可能性の高いタスクのエントリポイントを含むメモリページのメモリ優先度を高く決定する。
【００２０】
これは、タスクのスケジューリングに伴い、実行優先度の高いタスクのエントリポイントを含むメモリページが参照される（必要とされる）可能性が高いと見なして決定するものである。
【００２１】
請求項４におけるメモリ優先度決定手段は、実行アドレス（プログラムカウンタ）に後続するアドレスを含むメモリページのメモリ優先度を高く決定する。
【００２２】
これは、実行アドレスに近いアドレスを含むメモリページが参照される可能性が高いと見なして決定するものである。
【００２３】
請求項３と請求項４との差分は、より優先度の高いタスクの現在のステートで明確になる。
【００２４】
もし、優先度の非常に高いタスクが実行状態であれば、しばらくは現在のタスクが実行されると見なし、請求項４に述べた現在の実行アドレスに後続するメモリページを優先することが有効である。
【００２５】
逆に、優先度の非常に高いタスクが待機状態であれば、タスクスケジューリングによってこのタスクが実行状態になると見なし、請求項３に述べた実行優先度の高いタスクのエントリポイントを含むメモリページを優先することが有効である。
【００２６】
また、タスク間の実行優先度に差が少ない場合や、時分割システムのように優先度が存在しない場合は、タスクスケジューリングのタイミングが近いならば請求項３を、逆ならば請求項４を用いることが有効である。
【００２７】
このように、請求項２以降のメモリ優先度決定手段は、単独で用いたり組み合わせて用いたりすることも可能かつ有効である。
【００２８】
請求項５におけるメモリ優先度決定手段は、USBデバイスの接続などの外部イベントに関係するメモリページのメモリ優先度を高く決定する。
【００２９】
外部イベントの発生とその後にスワップインしたメモリページとの紐つけを記録しておくことで、外部イベント発生時に記録を参照して紐つけられたメモリページを前もってスワップインするように制御する。
【００３０】
請求項６におけるメモリ優先度決定手段は、機器が提供する多数の機能をグルーピングした機能群の選択に関係するメモリページのメモリ優先度を高く決定する。
【００３１】
背景技術に述べたマルチファンクションな事務機器の場合、ここでいう機能群の指定は、コピーやファイリングやファックスやスキャンなどの選択に該当する。
【００３２】
請求項５と同様に、機能群の選択とその後にスワップインしたメモリページとの紐つけを記録しておくことで、機能群選択時に記録を参照して紐つけられたメモリページを前もってスワップインするように制御する。
【００３３】
請求項７におけるメモリ優先度決定手段は、過去に実行されたジョブの履歴を参照して実行頻度の高いジョブを決定し、請求項５や請求項６と同様、ジョブに紐つけられたメモリページのメモリ優先度を高く決定する。
【発明の効果】
【００３４】
以上のように、二次記憶に退避されたメモリページの中から次に要求される可能性の高いメモリページを決定し、一次記憶に空きが出来た際にメモリ要求に先立って復帰させておくことで、メモリ使用時にスワップ機構による制御の遅延を避けることができる。
【００３５】
これを図１２に示す。１２０１〜１２０２〜１２０３〜１２０４〜１２０５に示すフローが従来の処理であり、１２０６〜１２０７〜１２０８〜１２０９〜１２１０に示す処理が本件の処理である。
【００３６】
本件の処理では、従来のフローの１２０４のスワップインに相当するスワップインである１２０７を、メモリアクセス要求の発生する１２０８に先行して実施する。
【００３７】
そうすることで、アクセス要求からアクセス実施までの時間を、従来の１２０３〜１２０４〜１２０５から、本件の１２０８〜１２０９〜１２１０とスワップインに要する時間だけ削減する。
【図面の簡単な説明】
【００３８】
【図１】仮想記憶を用いた情報処理システムの構成例を示すブロック図
【図２】画像形成装置(MFP)100の構成図
【図３】仮想記憶の概念図
【図４】スワップイン動作を必要とするメモリアクセスが発生した場合の従来処理
【図５】スワップイン動作を必要とするメモリアクセスが発生した場合の本件処理
【図６】スワップアウト回数をカウントするためのテーブル例
【図７】タスクコントロールブロックの代表例
【図８】実施例３の処理例
【図９】実施例４の処理例
【図１０】機能群を選択する操作部の表示例
【図１１】実施例６の処理例
【図１２】従来のスワップイン処理と本件の先行スワップイン処理の比較
【発明を実施するための形態】
【００３９】
以下、本発明を実施するための最良の形態について図面を用いて説明する。
【００４０】
請求項１に記載のメモリページを二次記憶から一次記憶へ復帰させる手段は、仮想記憶におけるスワップイン制御のことであり、詳細な説明は省略する。
【００４１】
本件は、スワップイン制御の開始タイミングと、対象となる復帰させるメモリページの特定に関するものである。
【００４２】
通常のスワップイン制御の開始タイミングは、仮想記憶における仮想アドレスから実アドレスへのアドレス変換において、実アドレスが存在しない場合に発生する。
【００４３】
本件におけるスワップイン制御の開始タイミングは、一次記憶に空きが生じた場合に発生する。
【００４４】
一次記憶に空きが生じた事は、OS（オペレーティングシステム）が提供する動的メモリマネージメントの結果をもって検知することができるが、この技術は一般的であるため、説明を省略する。
【００４５】
図１は請求項１に記載の仮想記憶を用いた情報処理システムの一例である画像処理システムの構成例を示すブロック図である。
【００４６】
この画像処理システムは、オフィス10とオフィス20とをインターネット104で接続された環境で実現する。オフィス10内に構築されたLAN107には、画像形成装置(MFP)100、MFP100を制御するマネージメントPC101、クライアントPC（外部記憶手段）102、文書管理サーバ106、そのデータベース105、およびプロキシサーバ103が接続されている。LAN107及びオフィース20内のLAN108はプロキシサーバ103を介してインターネット104に接続される。MFP100は本発明において紙文書の画像読み取り部と読み取った画像信号に対する画像処理の一部を担当し、画像信号はLAN109を用いてマネージメントPC101に入力する。マネージメントPCは通常のPCであり、内部に画像記憶手段、画像処理手段、表示手段、入力手段を有するが、その一部をMFP100に一体化して構成されている。
【００４７】
図２は図１に示したMFP100の構成図である。
【００４８】
図２においてオートドキュメントフィーダー（以降ADFと記す）を含む画像読み取り部110は束状の或いは1枚の原稿画像を図示しない光源で照射し、原稿反射像をレンズで固体撮像素子上に結像し、固体撮像素子からラスター状の画像読み取り信号を600DPIの密度のイメージ情報として得る。通常の複写機能はこの画像信号をデータ処理装置115で記録信号へ画像処理し、複数毎複写の場合は記憶装置111に一旦一ページ分の記録データを記憶保持した後、記録装置112に順次出力して紙上に画像を形成する。
【００４９】
一方クライアントPC102から出力されるプリントデータはLAN107からネットワークI/F114を経てデータ処理装置115で記録可能なラスターデータに変換した後、前記記録装置112で紙上に記録画像として形成される。
【００５０】
MFP100への操作者の指示はMFPに装備されたキー操作部とマネージメントPC101に入力されるキーボード及びマウスからなる入力装置113から行われ、これら一連の動作はデータ処理装置115内の図示しない制御部で制御される。
【００５１】
一方、操作入力の状態表示及び処理中の画像データの表示は表示装置116で行われる。尚記憶装置111はマネージメントPC101からも制御され、これらMFP100とマネージメントPC101とのデータの授受及び制御はネットワークI/F117および直結したLAN109を用いて行われる。
【００５２】
データ処理装置１１５内にはCPU１１８とROM１１９とRAM１２０が含まれ、記憶装置１１１はHDDで構成される。
【００５３】
仮想記憶を使用するデータ処理装置１１５は、CPU１１８の制御により、データ処理のためのプログラムが必要とするメモリ領域を一次記憶であるRAM１２０と二次記憶であるHDD１１１内に確保する。
【００５４】
図３は仮想記憶の概念図である。
【００５５】
仮想記憶はメモリ管理技法の一つであり、
（１）不連続なメモリ領域（実メモリ空間）をソフトウェアから見て連続になるように（仮想アドレス空間）見せかける。
（２）メモリ空間の一部を二次記憶（スワップ領域）に退避することで、実装されている一次記憶装置（実メモリ空間）よりも大きな記憶領域（仮想アドレス空間）を仮想的に提供する。
という２つの目的を持っている。
【００５６】
仮想アドレス空間３０１は論理的なアドレス（va）を持ち、一部は一次記憶内の実メモリ空間３０２に、一部は二次記憶内のスワップ領域３０３にマッピングされる。
【００５７】
実メモリ空間３０２は一次記憶の物理アドレス（pa）を持ち、スワップ領域３０３は二次記憶内のスワップファイルのアドレス（sw）を持つ。
【００５８】
図３では、一次記憶内の実メモリ空間３０２と、二次記憶内のスワップ領域３０３とに離散して確保されているメモリページであるpa0、pa1、paN、sw0が、仮想アドレス空間３０１ではva1、va2、va3、va4と連続して配置される。
【００５９】
仮想記憶ではこのようにメモリページ間のマッピングを行うことで、上記（１）と（２）の目的を達成する。
【００６０】
本特許では、主に（２）の目的で仮想記憶を使用する情報処理システムについて記載している。
【００６１】
このようなシステムでは、CPUがOSに対して仮想メモリを物理メモリにマッピングする手段と、物理メモリに対応していない仮想アドレス空間へのアクセスを検出する手段を提供し、必要に応じてスワップ領域（二次記憶）に退避したデータを物理メモリに読み込み（スワップイン）できるようにしなければならない。
【００６２】
仮想記憶を用いたシステムでは、このスワップイン動作の処理時間分だけ、メモリへのアクセスを検出してから実際のアクセスが行われるまでにより多くの時間を必要とする。
【００６３】
本特許では、このスワップインによる制御の遅延を抑えるため、
・二次記憶の中からアクセスされる可能性の高いメモリページを決定する。
・一次記憶に空きが生じた際に、メモリへのアクセスが要求される前に、アクセスされる可能性の高いメモリページを先行してスワップインする。
という制御を実現する。
【００６４】
図４はスワップイン動作を必要とするメモリアクセスが発生した場合の従来処理である。
【００６５】
４０１で一次記憶に空き領域が発生している。仮想アドレスへのアクセスと一次記憶の空き領域とは本来が関係ないが、本特許では一次記憶に空きが発生した場合の処理に関するものなので、一次記憶に空き領域が発生した場合に限定して述べる。
【００６６】
次に４０２に示すように、一次記憶ではなく二次記憶に格納されているメモリ領域へのアクセスが発生する。この場合、一次記憶には存在しないメモリ領域へのアクセスであるため、すぐにはアクセス不可能であり、４０３に示すスワップイン制御が必要である。
【００６７】
４０３に示すスワップイン制御の後、４０２でアクセスが発生したメモリ領域が一次記憶に復帰するため、４０４に示すとおり、該当するメモリ領域へのアクセスが可能となる。
【００６８】
このように、４０２で一次記憶に存在しないメモリ領域のアクセスが発生してから４０４で実際にアクセスできるまで、４０３のスワップイン制御に必要な時間の遅延が発生する。
【００６９】
図５はスワップイン動作を必要とするメモリアクセスが発生した場合の本件処理である。
【００７０】
５０１で４０１と同様に一次記憶に空き領域が発生する。ここで図４の従来処理では無かった、メモリ優先度に応じたスワップイン制御を行うのが５０２である。二次記憶に退避されたメモリページの中で、次に最もアクセスが発生する可能性が高いページをメモリ優先度によって決定している。
【００７１】
よって、５０３に示すように、本来ならば二次記憶への領域へのアクセスが、先行スワップイン制御により、一次記憶への領域へのアクセスとなる可能性が高い。
【００７２】
このようにすることで、図４の従来処理と異なり、メモリへのアクセスが発生する５０３とメモリへのアクセスを実現する５０４との間にスワップイン制御が挟まれず、制御の遅延が発生しない。
【００７３】
先行してスワップインするメモリページが決定された後に該当ページをスワップインする手段としては、そのページをREADすることでスワップインを起こす方法がある。この場合、該当ページが元々一次記憶にあった場合も、同一ページに対する多重のスワップインを行わないため、そのような確認も不要となる。
【００７４】
READすべきメモリページの物理アドレスは、仮想記憶が仮想アドレスと実アドレスの変換に用いるTLB(Translation Look-aside Buffer)やページテーブルを参照することで得ることができる。
【００７５】
本件では、一次記憶に存在しないメモリ領域へのアクセスが発生しないよう、一次記憶に空きが生じた際に二次記憶から一次記憶へスワップインしておくメモリページの決定方法が重要である。
【００７６】
以下に、請求項１に記載のメモリ優先度決定手段について、請求項２から請求項７で記載したメモリ優先度決定手段を用いて説明する。
【００７７】
［実施例１］
実施例1のメモリ優先度決定手段は、請求項２で記載したメモリ優先度決定手段であり、スワップアウト実績の少ないメモリページが参照される可能性が高いと見なすものである。
【００７８】
図６はメモリページ毎のスワップアウト回数をカウントし、スワップアウト実績の少ないメモリページを探索するためのテーブルの例である。
【００７９】
請求項２に記載のスワップアウトカウント手段はこのテーブルの作成と参照によって、メモリページ毎のスワップアウト回数をカウントする。
【００８０】
テーブルの一要素は６０１で示される次の昇順アドレスへのポインタ、６０２で示されるページアドレス、６０３で示されるスワップアウト回数、６０４で示されるスワップアウト回数の昇順ポインタからなる。
【００８１】
６０５は最小ページアドレスを持つ要素へのポインタであり、６０６は最小スワップアウト回数を持つ要素へのポインタである。
【００８２】
あるページがスワップアウトする場合、まず昇順アドレスポインタ６０１をたぐって該当するページがテーブルに存在するか判定する。
【００８３】
ページがテーブルに存在しない場合は最初のスワップアウトなのでスワップアウト回数６０３に１を設定し、６０６が指していたスワップアウト回数の昇順ポインタを持つ要素を作成し、６０６がこの要素を指すように変更する。
【００８４】
ページがテーブルに存在する場合はスワップアウト回数６０３を１増加し、スワップアウト回数の昇順ポインタ６０４内の順位を進める。
【００８５】
なお、仮想記憶の一般的な実装であるページング方式では、仮想アドレスと物理アドレスを変換するページテーブルがスワップインやスワップアウトの基本的な情報を持っているため、図６に示すテーブルにはその情報を含めない。
【００８６】
上記により、スワップアウト回数の昇順ポインタ６０４を参照することにより、最もスワップアウト実績の少ないメモリページを特定し、このメモリページの優先度を高くすることにより、メモリに空きが生じた際に事前にスワップインさせることが可能となる。
【００８７】
［実施例２］
実施例２のメモリ優先度決定手段は、請求項３に記載したメモリ優先度決定手段であり、次に実行される可能性の高いタスクのエントリポイントを含むメモリページがアクセスされる可能性が高いと見なす。
【００８８】
次に実行されるタスクを決定するには、システムが採用しているスケジューリングのアルゴリズムに依存するが、多岐に渡る。
【００８９】
一般的には、タスク間に優先度を設定したスケジューリングを行う場合は高優先度なタスク、優先度を設定していない場合は実行待ち行列の待ち順番に従って決定するが、それらが組み合わさったスケジューリングもあり、詳細は記述しない。
【００９０】
プログラムカウンタやスタックポインタなどのレジスタ群の値や、アドレス空間などのデータはタスクコントロールブロックというデータ構造に保管され活用されるため、エントリポイントはここから決定することができる。
【００９１】
図７にタスクコントロールブロックの代表的な例を示す。
【００９２】
７０１はタスクを識別するために使用するIDである。
【００９３】
７０２はタスクのプログラム領域の先頭アドレスである。
【００９４】
７０３はタスクのスタック保存領域の先頭アドレスである。
【００９５】
７０４はタスクが実行されたときのCPUのレジスタ（コンテキスト）を保存した内容である。
【００９６】
７０５はタスクが時間待ちなどでタイマを使用する時に使用され、初期値設定後、OSが時間割り込みの発生毎にカウントしていく。
【００９７】
７０６はタスクの優先度で、この値を使用してOSがスケジューリングを行う。
【００９８】
７０７はRUNNINGなどタスク状態の情報である。
【００９９】
上記により、請求項３に記載の第一のメモリページ特定手段は、７０７で示されるタスク状態に応じて、この７０２と７０３で示されるアドレスを含むメモリページを特定すし、このメモリページの優先度を高くすることにより、メモリに空きが生じた際に事前にスワ  ップインさせることが可能となる。
【０１００】
［実施例３］
実施例３のメモリ優先度決定手段は、請求項４に記載したメモリ優先度決定手段であり、現在の実行アドレスに後続するアドレスを含むメモリページがアクセスされる可能性が高いと見なす。
【０１０１】
実施例２に述べたように、現在の実行アドレスはプログラムカウンタを参照したり、その情報が保存されているタスクコントロールブロックを参照することで得られる。
【０１０２】
よって、現在の実行アドレスを含むメモリページの次のメモリページからスワップインするように制御する。
【０１０３】
タスクコントロールブロックは実施例２で示しているため、特にここでは図示しない。
【０１０４】
実施例３の処理例を図８に示す。
【０１０５】
ステップ８０１でスワップアウトされているページでアドレスをソートし、ステップ８０２で図７の７０４に格納されるプログラムカウンタを参照し、後続するアドレスを含むページを特定する。そして、ステップ８０２で特定されたページが存在すれば、ステップ８０３で当該ページをスワップインする。
【０１０６】
請求項４に記載の第二のメモリページ特定手段は、図７の７０４に格納されるプログラムカウンタを参照し、後続のアドレスを含むメモリページを特定し、このメモリページの優先度を高くすることにより、メモリに空きが生じた際に事前にスワップインすることが可能となる。
【０１０７】
［実施例４］
実施例４のメモリ優先度決定手段は、請求項５に記載したメモリ優先度決定手段であり、検知した外部イベントに紐つけられたメモリページがアクセスされる可能性が高いと見なす。
【０１０８】
これはシステムにUSBメモリが挿されたなどのイベントが発生した場合、それに続いて実行されるプログラムは、USBメモリを使用するプログラムと見なせるからである。
【０１０９】
よってこのような外部イベントの発生と、引き続いてスワップインしたメモリページとを紐つけるテーブルを作成しておき、このテーブルを参照することで、外部イベント発生後にアクセスされる可能性の高いメモリページを特定できる。
【０１１０】
請求項５に記載の外部イベント検知手段は、ハードウェア割り込みやポーリングを用いて実装されるが、これらの処理は一般的であるため、説明を省略する。
【０１１１】
実施例４の処理例を図９に示す。
【０１１２】
９０１で外部イベントの発生を記録している。
【０１１３】
９０２でスワップイン発生時にメモリページと直前のイベントと紐つける。紐つけは不図示のテーブル等のデータ構造で実現できる。
【０１１４】
９０３は９０１や９０２の繰り返しを表している。
【０１１５】
９０４で外部イベントが発生した場合は、９０１のように外部イベントを記録すると共に、９０２で紐つけられたメモリページをスワップインする。
【０１１６】
実施例４はこのサイクルを繰り返すことで、外部イベントとメモリページの紐つけの確度を高めていく。
【０１１７】
請求項５に記載の第一の記録手段は、図９の９０１と９０２のサイクルからなる９０３で記録し、この記録から外部イベントに紐つけられたページを事前にスワップインすることが可能となる。
【０１１８】
［実施例５］
実施例５のメモリ優先度決定手段は、請求項６に記載したメモリ優先度決定手段であり、操作部のタブやボタン等で選択された機能群に関連するメモリページがアクセスされる可能性が高いと見なす。
【０１１９】
例えばマルチファンクション機能を提供する事務機器では、詳細な機能の設定の前に、コピーかファックスかファイリングかスキャンかといったジョブ種類を選択する機器が多い。
【０１２０】
請求項６に記載の機能群の例として、このようなジョブ種類が挙げられる。
【０１２１】
図１０に機能群（ジョブ種類）を選択する操作部の例を示す。
【０１２２】
１００１が機能群（ジョブ種類）を選択するボタン群であり、コピー、ファックス、ファイリング、スキャン、その他を選択するボタンが配置してあり、ここではスキャンが選択されていることを示す。
【０１２３】
１００２、１００３、１００４、１００５は１００１で選択された機能群に関係する詳細機能を設定する部分であり、それぞれ倍率が等倍、カラーが白黒、フォーマットがJPEG、ページが13ページ目が選択されていることを示す。
【０１２４】
請求項６に記載の第二の記録手段は、スワップインが発生したメモリページとその直前に選択された機能群（ジョブ種類）とを紐つけ、機能群（ジョブ種類）からメモリページを決定できるように記録すし、この記録から選択された機能に紐づけられたメモリページを事前にスワップインすることが可能となる。
【０１２５】
［実施例６］
実施例６のメモリ優先度決定手段は、請求項７に記載したメモリ優先度決定手段であり、例えば実施例５の機能群（ジョブ種類）から選択されるジョブと、その実行開始後にスワップインされるメモリページとを紐つける。
【０１２６】
請求項７に記載の第三の記録手段は、請求項６に記載の第二の記録手段と同等であり、説明を省略する。
【０１２７】
続いてジョブ履歴から次に実行される可能性が高いジョブを決定し、そのジョブと紐つけられたメモリページを先行してスワップインする。
【０１２８】
請求項７に記載のジョブ履歴記録手段は一般的であるため、不図示かつ説明を省略する。
【０１２９】
ジョブ履歴によって次のジョブを予想することは、ユーザーが使用する機能群（ジョブ種類）が偏っている場合に有効である。
【０１３０】
このように使用パターンが偏るケースでは、仮想記憶のオンデマンドページング機構により、使用するメモリが自然と一次記憶に格納される傾向がある。
【０１３１】
しかしながら、直前に頻度の低いジョブを実行した後では、頻度の高いジョブに関するメモリページが二次記憶にスワップアウトされる可能性があるため、やはりジョブ履歴を参照してスワップインするメモリページを決定することが有効である。
【０１３２】
図１１に実施例６の処理例を示す。
【０１３３】
まず、１１０１でジョブとメモリーページを紐つけ、１１０２でジョブ履歴を参照し、実行頻度の高いジョブを選択する。そして１１０３で、１１０２で選択したジョブに紐つけられたページ（１１０１で紐つけ）を先行してスワップインする。図１２は、従来のスワップイン処理と本発明のスワップイン処理を示したフロー図である。１２０１〜１２０２〜１２０３〜１２０４〜１２０５に示すフローが従来の処理であり、１２０６〜１２０７〜１２０８〜１２０９〜１２１０に示す処理が本発明の処理である。
【０１３４】
従来の処理では、１２０１で一次記憶に空き領域が発生しても特になにもせず（１２０２）、二次記憶に退避されたメモリ領域へのアクセスが生じると（１２０３）、二次記憶に退避したメモリ内容を一次記憶にスワップインし（１２０４）、当該メモリ領域への実際のアクセスが可能となる（１２０５）。一方、本発明の処理では、従来のフローでスワップイン処理１２０４に相当するスワップイン処理１２０７を、メモリアクセス要求の発生する１２０８（従来の処理の１２０３に相当）に先行して実施する。
【０１３５】
そうすることで、アクセス要求からアクセス実施までの時間を、従来の１２０３〜１２０４〜１２０５から、本件の１２０８〜１２０９〜１２１０とスワップインに要する時間だけ削減する。なお、メモリ優先度に応じて先行スワップインする処理（１２０７）は、前記、実施例１〜実施例６で説明した処理に相当する。
【０１３６】
以上説明したように、本発明によれば、二次記憶に退避されたメモリページの中から次に要求される可能性の高いメモリページを決定し、一次記憶に空きが出来た際にメモリ要求に先立って復帰させておくことで、メモリ使用時にスワップ機構による制御の遅延を避けることができる。
【符号の説明】
【０１３７】
１０，２０  オフィス
１０４  インターネット
【図１】
2012159962.tif 000003
【図２】
2012159962.tif 000004
【図３】
2012159962.tif 000005
【図４】
2012159962.tif 000006
【図５】
2012159962.tif 000007
【図６】
2012159962.tif 000008
【図７】
2012159962.tif 000009
【図８】
2012159962.tif 000010
【図９】
2012159962.tif 000011
【図１０】
2012159962.tif 000012
【図１１】
2012159962.tif 000013
【図１２】
2012159962.tif 000014