(57)【要約】【課題】高リアルタイム性と高信頼性と高安定性とを同時に得ることが可能で且つ開発が容易な情報処理装置、画像形成装置、スワップアウト制御方法、そのプログラム及びそのプログラムを記録した記録媒体を提供する。【解決手段】仮想記憶機能を有するオペレーティングシステムが実装された情報処理装置において、ユーザモードで動作するスレッド（スワップアウト抑制スレッド）又やカーネルモードで動作するデーモン（スワップアウト抑制デーモン）を用いて、スワップアウト対象から除外する論理ページ又は物理ページを所定期間毎にアクセスする。これにより、対象の物理ページ又は論理ページの最新のアクセス日時が更新されるため、例えばＬＲＵアルゴリズム又はＮＲＵアルゴリズムで選択されるスワップアウト対象から目的のページを除外できる。【選択図】          図３
2004272479.tif 000002
【特許請求の範囲】
【請求項１】
メモリ空間上に存在する１つ以上のページ領域を所定の二次記憶装置へスワップアウトさせる仮想記憶機能を有するオペレーティングシステムが実装された情報処理装置において、
前記仮想メモリ空間上に存在するスワップアウトを避ける論理ページを特定するための論理ページ特定手段と、
前記論理ページを含むプロセスに含まれる論理ページの少なくとも１つへアクセスするためのページアクセス手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記ページアクセス手段は、アクセスする前記論理ページの仮想アドレスへリードアクセスすることを特徴とする請求項１記載の情報処理装置。
【請求項３】
メモリ空間上に存在する１つ以上のページ領域を所定の二次記憶装置へスワップアウトさせる仮想記憶機能を有するオペレーティングシステムが実装された情報処理装置において、
前記仮想メモリ空間上に存在するスワップアウトを避ける論理ページを特定するための論理ページ特定手段と、
前記論理ページに対応する実空間上の物理ページを特定するための物理ページ特定手段と、
前記物理ページを含むプロセスに含まれる物理ページの少なくとも１つへアクセスするためのページアクセス手段と、
を有することを特徴とする情報処理装置。
【請求項４】
前記ページアクセス手段は、アクセスする前記物理ページの物理アドレスへリードアクセスすることを特徴とする請求項３記載の情報処理装置。
【請求項５】
一定時間の経過を通知することでタイミングを発生させるためのタイミング発生手段を有し、
前記ページアクセス手段は、前記タイミング発生手段が発生させたタイミングで前記論理ページ又は前記物理ページへアクセスすることを特徴とする請求項１から４の何れか１項に記載の情報処理装置。
【請求項６】
前記タイミング発生手段は、前記仮想記憶機能によるスワップアウトがなされる周期よりも短い期間でタイミングを発生させることを特徴とする請求項５記載の情報処理装置。
【請求項７】
前記論理ページは、スワップアウトを避けるユーザプログラム及びデータが含まれるページ領域であることを特徴とする請求項１から６の何れか１項に記載の情報処理装置。
【請求項８】
前記ページアクセス手段は前記プロセスを実行時に生成されたスレッド、又は、前記オペレーティングシステムの制御下で動作するデーモンであることを特徴とする請求項１から７の何れか１項に記載の情報総処理装置。
【請求項９】
請求項１から８の何れか１項に記載の前記情報処理装置を有して構成されたことを特徴とする画像形成装置。
【請求項１０】
メモリ空間上に存在する１つ以上のページ領域を所定の二次記憶装置へスワップアウトさせる仮想空間上に存在する１つ以上の論理ページを所定の記憶装置へスワップアウトさせるスワップアウト制御方法において、
前記仮想メモリ空間上に存在するスワップアウトを避ける論理ページを特定するための論理ページ特定ステップと、
前記論理ページを含むプロセスに含まれる論理ページの少なくとも１つへアクセスするためのページアクセスステップと、
を有することを特徴とするスワップアウト制御方法。
【請求項１１】
前記ページアクセスステップは、アクセスする前記論理ページの仮想アドレスへリードアクセスすることを特徴とする請求項１０記載のスワップ制御方法。
【請求項１２】
メモリ空間上に存在する１つ以上のページ領域を所定の二次記憶装置へスワップアウトさせる仮想空間上に存在する１つ以上の論理ページを所定の記憶装置へスワップアウトさせるスワップアウト制御方法において、
前記仮想メモリ空間上に存在するスワップアウトを避ける論理ページを特定するための論理ページ特定ステップと、
前記論理ページに対応する実空間上の物理ページを特定するための物理ページ特定ステップと、
前記物理ページを含むプロセスに含まれる物理ページの少なくとも１つへアクセスするためのページアクセスステップと、
を有することを特徴とするスワップアウト制御方法。
【請求項１３】
前記ページアクセスステップは、アクセスする前記物理ページの物理アドレスへリードアクセスすることを特徴とする請求項１２記載の情報処理装置。
【請求項１４】
一定時間の経過を通知することでタイミングを発生させるためのタイミング発生ステップを有し、
前記ページアクセスステップは、前記タイミング発生ステップが発生させたタイミングで前記論理ページ又は前記物理ページへアクセスすることを特徴とする請求項１０から１３の何れか１項に記載のスワップアウト制御方法。
【請求項１５】
前記タイミング発生ステップは、前記仮想記憶機能によるスワップアウトがなされる周期よりも短い期間でタイミングを発生させることを特徴とする請求項１４記載のスワップアウト制御方法。
【請求項１６】
前記論理ページは、スワップアウトを避けるユーザプログラム及びデータが含まれるページ領域であることを特徴とする請求項１０から１５の何れか１項に記載のスワップアウト制御方法。
【請求項１７】
メモリ空間上に存在する１つ以上のページ領域を所定の二次記憶装置へスワップアウトさせる仮想空間上に存在する１つ以上の論理ページを所定の記憶装置へスワップアウトさせる仮想記憶機能が実装されたオペレーティングシステムを実行するコンピュータを機能させるためのプログラムであって、
前記仮想メモリ空間上に存在するスワップアウトを避ける論理ページを特定するための論理ページ特定処理と、
前記論理ページを含むプロセスに含まれる論理ページの少なくとも１つへアクセスするためのページアクセス処理と、
を前記コンピュータに実行させるためのプログラム。
【請求項１８】
前記ページアクセス処理は、アクセスする前記論理ページの仮想アドレスへ前記コンピュータをリードアクセスさせることを特徴とする請求項１７記載のプログラム。
【請求項１９】
メモリ空間上に存在する１つ以上のページ領域を所定の二次記憶装置へスワップアウトさせる仮想空間上に存在する１つ以上の論理ページを所定の記憶装置へスワップアウトさせる仮想記憶機能が実装されたオペレーティングシステムを実行するコンピュータを機能させるためのプログラムであって、
前記仮想メモリ空間上に存在するスワップアウトを避ける論理ページを特定するための論理ページ特定処理と、
前記論理ページに対応する実空間上の物理ページを特定するための物理ページ特定処理と、
前記物理ページを含むプロセスに含まれる物理ページの少なくとも１つへアクセスするためのページアクセス処理と、
を前記コンピュータに実行させるためのプログラム。
【請求項２０】
前記ページアクセス処理は、アクセスする前記物理ページの物理アドレスへ前記コンピュータをリードアクセスさせることを特徴とする請求項１９記載のプログラム。
【請求項２１】
前記ページアクセス処理は、前記仮想記憶機能によるスワップアウトがなされる周期よりも短い期間で発生された所定のタイミングで前記論理ページ又は前記物理ページへ前記コンピュータをアクセスさせることを特徴とする請求項１７から２０の何れか１項に記載のプログラム。
【請求項２２】
前記論理ページは、スワップアウトを避けるユーザプログラム及びデータが含まれるページ領域であることを特徴とする請求項１７から２１の何れか１項に記載のプログラム。
【請求項２３】
請求項１７から２２の何れか１項に記載の前記プログラムを記録した記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、情報処理装置、画像形成装置、スワップアウト制御方法、そのプログラム及びそのプログラムを記録した記録媒体に関し、特に汎用オペレーティングシステム（ＯＳ）が実装された情報処理装置、画像形成装置、スワップアウト制御方法、そのプログラム及びそのプログラムを記録した記録媒体に関する。
【０００２】
【従来の技術】
近年、複写機にファクシミリやその他の機能を統合した複合機に代表される画像形成装置では、画像データをデジタルデータとして内部で取り扱う、いわゆるデジタル複合機が主流となっている。
【０００３】
デジタル複合機は、画像データをデジタルで保持できるため、高画質化や画像処理の柔軟性の点で従来のアナログ式よりも優れている。また、デジタル複合機は、ネットワークプリンティング機能やマルチＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）機能等、多様な機能を搭載している。
【０００４】
これらの機能の多くは、ソフトウェア（Ｓ／Ｗ）としてデジタル複合機のコントローラに実行されている。また、コントローラの多くは、組み込み用途向けリアルタイムオペレーティングシステム（ＲＴＯＳ）を搭載し、複数のＳ／Ｗをアプリケーションタスクとして実行している。尚、ＲＴＯＳとは、組み込み用途に特化して設計・実装されたオペレーティングシステム（ＯＳ）であり、アプリケーションタスクの優先度制御やハードウェア（Ｈ／Ｗ）デバイスからの割込みの高速な応答性などを実現している。
【０００５】
一般的にＲＴＯＳには、高速な処理（リアルタイム性）や単純でコンパクトなプログラムであること（コンパクト性）等が要求される。このため、信頼性や安定性や汎用性等の面がある程度犠牲にされて設計されることがある。例えば、Ｗｉｎｄｏｗｓ（登録商標）  ＯＳやＵＮＩＸ（登録商標）  ＯＳ等の多くのＯＳ（以下、このようなＯＳを汎用ＯＳという）で採用されている仮想記憶機能は、殆どのＲＴＯＳにおいて標準で搭載されていない。このため、ＲＴＯＳが組み込まれた装置において実行できるプログラムの種類及び数は、実装された実メモリの容量に制限される。尚、仮想記憶機能は、一般的に利用頻度の低いアプリケーションをハードディスクドライブ（以下、ＨＤＤと略す）等の二次以降の記憶装置に退避させる（スワップアウト）ことで実メモリの容量を確保し、必要なプログラムをロードできるようにする機能である。このほかにも、例えばメモリ保護機能やファイルシステム等の機能も、多くのＲＴＯＳには標準で搭載されていない。
【０００６】
図８に、汎用ＯＳを用いて構成した場合の画像形成装置１００の構成を示す（これを従来技術１とする）。画像形成装置１００は、汎用ＯＳであるＯＳカーネル１０１及び入出力デバイス３００を制御するドライバ（図８では、スキャナドライバ１１１，プリンタドライバ１１２，ＵＩ（ユーザインタフェース）ドライバ１１３，ネットワークドライバ１１４を例示；以下、任意のドライバの符号を１１０とする）を有して構成されている。ＯＳカーネル１０１とドライバ１１０とは、所謂ミドルウェア（Ｍ／Ｗ）１０２に含まれる構成であり、例えばＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等において実行されることで実現されている。アプリケーション（図８では、ＵＩアプリケーション２０３，コピーアプリケーション２０５を例示；以下、任意のアプリケーションの符号を２００とする）は、ＯＳカーネル１０１の制御の下で実行されるソフトウェアであり、ユーザプロセスとしてＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等の主記憶装置２１５に展開される。また、入出力デバイス３００は、例えばスキャナデバイス３０１やプリンタデバイス３０２やＵＩデバイス３０３やネットワークアダプタ３０４（以下、任意の入出力デバイスの符号を３００とする）等の周辺機器であり、例えばＰＣＩバス等のバスを介してＭ／Ｗ１０２とのデータの入出力が実現される。
【０００７】
このような構成において、物理メモリに空き領域２０６を確保する必要が生じた場合、ＯＳカーネル１０１は仮想記憶機能を用いて、何れかのアプリケーション（例えばコピーアプリケーション２０５）を、図９に示すように、ＨＤＤ等で構成された二次記憶装置２１４に設けた仮想メモリ空間（仮想空間ともいう）２１０にスワップアウトする。仮想空間２１０上にスワップアウトされたアプリケーションプロセスは、仮想記憶管理部１２０において管理され、必要に応じて主記憶装置２１５の物理メモリへスワップインされる。このような制御により、汎用ＯＳ環境下では、物理メモリ以上のアプリケーションの実行が要求された場合もで高い信頼性及び高い安定性でこれを実行することができる。尚、図９において、物理メモリは主記憶装置２１５内のメモリ空間に相当する。
【０００８】
また、汎用ＯＳにおいて、ＦｒｅｅＢＳＤやＮｅｔＢＳＤやＯｐｅｎＢＳＤ等のＵＮＩＸ互換ＯＳは、オープンソースライセンスを採用しており、ソースコードの取得に関しては極めて低いコストで実現できるため、多くのＳ／Ｗが開発されつつある。但し、Ｓ／Ｗの規模が十分に小さく、他のＯＳ環境への移植も考慮する必要が無ければ、ＲＴＯＳ環境の下で動作するＳ／Ｗを構築することは十分に可能である。
【０００９】
しかしながら、デジタル複合機等の画像処理装置が高機能化し、様々なアプリケーションタスクが実行されることで大規模化すると、ＲＴＯＳのシンプルな機構による問題が顕著に現れてしまう。具体的には、仮想記憶機能を持っていないため、実メモリの容量を超えるタスクをメモリにロードし、実行することができない。また、メモリ保護機能が搭載されていないＲＴＯＳでは、メモリアクセスに不具合（バグ等）を持つタスクが他のタスクやＲＴＯＳそのもののプログラムデータを破壊することを防止する手段がない。更に、このような破壊される状況によっては、システムがハングアップするなどの現象を解析することが極めて困難となる。
【００１０】
一方、汎用ＯＳは、仮想記憶機能やメモリ保護機能等を標準で備えているため、高機能なシステムを安定して実行することができる。しかしながら、このような汎用ＯＳは、多くの場合、多機能化・高信頼化・高安定化のために、リアルタイム性やコンパクト性等が犠牲にされている。このため、一般的に汎用ＯＳは、必ずしも組み込み用途には向いていない。即ち、ある機能をユーザプロセスのアプリケーションで実装した場合、仮想記憶機能を用いることで、搭載された実メモリの容量で許容されるよりも多くのアプリケーションを実行することが可能となる。しかしながら、仮想記憶機能を用いると、一旦、実メモリにロードしたユーザアプリケーションが常に実メモリに常駐しているという保証がなくなる。例えばＨＤＤにスワップアウトされたプログラムを実行する際は、これを再度実メモリにロード（スワップイン）しなければならない。このため、実行するまでにタイムラグが発生してしまう。
【００１１】
このスワップインに係るオーバヘッドは、現実的にリアルタイム処理には向かず、高い応答性が要求される場合には致命的となる。特に複数のデバイス同士で連続して制御する場合、具体的にはスキャナのように画像データを取り込むデバイスとプリンタのように画像を出力するデバイスとを組み合わせたデジタル複合機を構成した場合、スキャナからの画像取込みをユーザプロセスレベルのアプリケーションでハンドリングすると、このアプリケーションが汎用ＯＳの持つプロセススケジューリングの対象であるため、ＨＤＤからスワップインするタイムラグが発生する可能性がある。このような場合、画像取込みからプリンタ出力までの複写機としての性能にばらつきが発生してしまう。
【００１２】
このように、組み込み用途向けＯＳと汎用ＯＳとは相反する性能を有しているため、双方の利点を活かし、リアルタイム性と信頼性と安定性とに優れたプラットホームを実現することは困難であった。
【００１３】
このような問題を解決する従来技術としては、例えば以下に示す特許文献１で開示されるような、複数のＯＳを用途に応じて単一の計算機（コンピュータ）に組み込む技術が存在する。図１０に、この技術を用いて構成した画像形成装置２００の構成を示す（これを従来技術２とする）。
【００１４】
図１０に示すように、画像形成装置２００は、スキャンタスク１５１やプリントタスク１５２やＵＩタスク１５３やコピータスク１５５等のような、リアルタイム性を要求するタスクをＲＴＯＳ１０３環境下で実行し、その他ユーザプロセスとして立ち上げられるアプリケーション２００やネットワークを介したデータの送受信等は、高信頼性及び高安定性が実現できる汎用ＯＳ環境下で実行するように構成されている。
【００１５】
この従来技術によれば、高機能な汎用ＯＳとリアルタイム処理に優れたＲＴＯＳとが組み合わされたハイブリッドなＯＳ構成が実現できる。従って、画像処理等の比較的複雑なアプリケーションを汎用ＯＳ上で実行させ、デバイスドライバ等のリアルタイム性が要求されるＳ／ＷをＲＴＯＳ上で実行させることが可能となり、高リアルタイム性と高信頼性と高安定性とを同時に得ることが可能となる。
【００１６】
【特許文献１】
特開平１１−１４９３８５号公報
【００１７】
【発明が解決しようとする課題】
しかしながら、上記のように複数のＯＳを使用した場合、ライセンスコストや保守コスト等が多く発生するという問題が存在する。また、複数のＯＳ間の情報のやり取りのための制御が煩雑化し、開発に要する手間が増大するという問題も存在する。特に、複数のＯＳを用いた場合では、デバイスから通知される割込みソースを最適なＯＳに配分する作業において非常に複雑で且つ高い応答性が要求される。
【００１８】
本発明は、上記の問題に鑑みてなされたもので、高リアルタイム性と高信頼性と高安定性とを同時に得ることが可能で且つ開発が容易な情報処理装置、画像形成装置、スワップアウト制御方法、そのプログラム及びそのプログラムを記録した記録媒体を提供することを目的とする。
【００１９】
【課題を解決するための手段】
かかる目的を達成するために、本発明は、請求項１記載のように、メモリ空間上に存在する１つ以上のページ領域を所定の二次記憶装置へスワップアウトさせる仮想記憶機能を有するオペレーティングシステムが実装された情報処理装置において、前記仮想メモリ空間上に存在するスワップアウトを避ける論理ページを特定するための論理ページ特定手段と、前記論理ページを含むプロセスに含まれる論理ページの少なくとも１つへアクセスするためのページアクセス手段と、を有するように構成される。仮想記憶機能により仮想空間上の論理ページが例えば二次記憶装置へスワップアウトされる環境下において、仮想空間上のスワップアウトを避けたい論理ページを特定し、特定した論理ページ内のいずれかの論理アドレスにアクセスすることで、これの最新のアクセス日時を更新できるため、例えばＬＲＵアルゴリズムやＮＲＵアルゴリズム等に基づいて選択されるスワップアウト対象から所望する論理ページを除外することができ、特定のアプリケーションのリアルタイム性を維持又は向上させることができる。これを仮想記憶機能を備えたプラットホーム下で行うことで、同時に安定性と信頼性とも確保することができる。
【００２０】
また、請求項１記載の前記ページアクセス手段は、例えば請求項２記載のように、アクセスする前記論理ページの仮想アドレスへリードアクセスするように構成することもできる。アクセスする方法としては、例えば簡単に制御可能なリードアクセスを適用することができる。
【００２１】
また、本発明は、請求項３記載のように、メモリ空間上に存在する１つ以上のページ領域を所定の二次記憶装置へスワップアウトさせる仮想記憶機能を有するオペレーティングシステムが実装された情報処理装置において、前記仮想メモリ空間上に存在するスワップアウトを避ける論理ページを特定するための論理ページ特定手段と、前記論理ページに対応する実空間上の物理ページを特定するための物理ページ特定手段と、前記物理ページを含むプロセスに含まれる物理ページの少なくとも１つへアクセスするためのページアクセス手段と、を有するように構成される。仮想記憶機能により仮想空間上の論理ページが例えば二次記憶装置へスワップアウトされる環境下において、仮想空間上のスワップアウトを避けたい論理ページを特定し、特定した論理ページ内のいずれかの論理アドレスにアクセスすることで、これの最新のアクセス日時を更新できるため、例えばＬＲＵアルゴリズムやＮＲＵアルゴリズム等に基づいて選択されるスワップアウト対象から所望する論理ページを除外することができ、特定のアプリケーションのリアルタイム性を維持又は向上させることができる。これを仮想記憶機能を備えたプラットホーム下で行うことで、同時に安定性と信頼性とも確保することができる。
【００２２】
また、請求項３記載の前記ページアクセス手段は、例えば請求項４記載のように、アクセスする前記物理ページの物理アドレスへリードアクセスするように構成されても良い。アクセスする方法としては、例えば簡単に制御可能なリードアクセスを適用することができる。
【００２３】
また、請求項１から４の何れか１項に記載の前記情報処理装置は、好ましくは請求項５記載のように、一定時間の経過を通知することでタイミングを発生させるためのタイミング発生手段を有し、前記ページアクセス手段が、前記タイミング発生手段が発生させたタイミングで前記論理ページ又は前記物理ページへアクセスするように構成される。一定時間の経過を通知するタイミングに基づいて、スワップアウト対象から除外する論理ページ又は物理ページへアクセスすることで、定期的に除外対象の論理ページ又は物理ページの最新のアクセス日時を更新できる。
【００２４】
また、請求項５記載の前記タイミング発生手段は、好ましくは請求項６記載のように、前記仮想記憶機能によるスワップアウトがなされる周期よりも短い期間でタイミングを発生させるように構成される。これにより、ＮＲＬアルゴリズムのような所定期間アクセスの無い論理ページ又は物理ページをスワップアウトさせる場合に対しても、的確且つ確実にスワップアウト対象から所望する論理ページ又は物理ページを除外することが可能となる。
【００２５】
また、請求項１から６の何れか１項に記載の前記論理ページは、例えば請求項７記載のように、スワップアウトを避けるユーザプログラム及びデータが含まれるページ領域であってもよい。
【００２６】
また、請求項１から７の何れか１項に記載の前記ページアクセス手段は、例えば請求項８記載のように、前記プロセスを実行時に生成されたスレッド、又は、前記オペレーティングシステムの制御下で動作するデーモンとして構成されても良い。スレッドで構成することにより、ユーザモードで動作するように構成することができる。また、デーモンで構成することにより、カーネルモードで動作するように構成することができる。
【００２７】
また、本発明は、請求項９記載のように、請求項１から８の何れか１項に記載の前記情報処理装置を有して構成された画像形成装置である。以上のように作用する情報処理装置を用いて画像形成装置を構成することで、仮想記憶機能を備えたオペレーティングシステムが実装された画像形成装置であって、コピー等のリアルタイム性が要求されるアプリケーションのスワップアウトによるリアルタイム性の低下を抑えることが可能となる。
【００２８】
また、本発明は、請求項１０記載のように、メモリ空間上に存在する１つ以上のページ領域を所定の二次記憶装置へスワップアウトさせる仮想空間上に存在する１つ以上の論理ページを所定の記憶装置へスワップアウトさせるスワップアウト制御方法において、前記仮想メモリ空間上に存在するスワップアウトを避ける論理ページを特定するための論理ページ特定ステップと、前記論理ページを含むプロセスに含まれる論理ページの少なくとも１つへアクセスするためのページアクセスステップと、を有するように構成される。仮想記憶機能により仮想空間上の論理ページが例えば二次記憶装置へスワップアウトされる環境下において、仮想空間上のスワップアウトを避けたい論理ページを特定し、特定した論理ページ内のいずれかの論理アドレスにアクセスすることで、これの最新のアクセス日時を更新できるため、例えばＬＲＵアルゴリズムやＮＲＵアルゴリズム等に基づいて選択されるスワップアウト対象から所望する論理ページを除外することができ、特定のアプリケーションのリアルタイム性を維持又は向上させることができる。これを仮想記憶機能を備えたプラットホーム下で行うことで、同時に安定性と信頼性とも確保することができる。
【００２９】
また、請求項１０記載の前記ページアクセスステップは、例えば請求項１１記載のように、アクセスする前記論理ページの仮想アドレスへリードアクセスするように構成されても良い。アクセスする方法としては、例えば簡単に制御可能なリードアクセスを適用することができる。
【００３０】
また、本発明は、請求項１２記載のように、メモリ空間上に存在する１つ以上のページ領域を所定の二次記憶装置へスワップアウトさせる仮想空間上に存在する１つ以上の論理ページを所定の記憶装置へスワップアウトさせるスワップアウト制御方法において、前記仮想メモリ空間上に存在するスワップアウトを避ける論理ページを特定するための論理ページ特定ステップと、前記論理ページに対応する実空間上の物理ページを特定するための物理ページ特定ステップと、前記物理ページを含むプロセスに含まれる物理ページの少なくとも１つへアクセスするためのページアクセスステップと、を有するように構成される。仮想記憶機能により仮想空間上の論理ページが例えば二次記憶装置へスワップアウトされる環境下において、仮想空間上のスワップアウトを避けたい論理ページを特定し、特定した論理ページ内のいずれかの論理アドレスにアクセスすることで、これの最新のアクセス日時を更新できるため、例えばＬＲＵアルゴリズムやＮＲＵアルゴリズム等に基づいて選択されるスワップアウト対象から所望する論理ページを除外することができ、特定のアプリケーションのリアルタイム性を維持又は向上させることができる。これを仮想記憶機能を備えたプラットホーム下で行うことで、同時に安定性と信頼性とも確保することができる。
【００３１】
また、請求項１２記載の前記ページアクセスステップは、例えば請求項１３記載のように、アクセスする前記物理ページの物理アドレスへリードアクセスするように構成されてもよい。アクセスする方法としては、例えば簡単に制御可能なリードアクセスを適用することができる。
【００３２】
また、請求項１０から１３の何れか１項に記載の前記スワップアウト制御方法は、好ましくは請求項１４記載のように、一定時間の経過を通知することでタイミングを発生させるためのタイミング発生ステップを有し、前記ページアクセスステップは、前記タイミング発生ステップが発生させたタイミングで前記論理ページ又は前記物理ページへアクセスするように構成される。一定時間の経過を通知するタイミングに基づいて、スワップアウト対象から除外する論理ページ又は物理ページへアクセスすることで、定期的に除外対象の論理ページ又は物理ページの最新のアクセス日時を更新できる。
【００３３】
また、請求項１４記載の前記タイミング発生ステップは、好ましくは請求項１５記載のように、前記仮想記憶機能によるスワップアウトがなされる周期よりも短い期間でタイミングを発生させるように構成される。これにより、ＮＲＬアルゴリズムのような所定期間アクセスの無い論理ページ又は物理ページをスワップアウトさせる場合に対しても、的確且つ確実にスワップアウト対象から所望する論理ページ又は物理ページを除外することが可能となる。
【００３４】
また、請求項１０から１５の何れか１項に記載の前記論理ページは、例えば請求項１６記載のように、スワップアウトを避けるユーザプログラム及びデータが含まれるページ領域であってもよい。
【００３５】
また、本発明は、請求項１７記載のように、メモリ空間上に存在する１つ以上のページ領域を所定の二次記憶装置へスワップアウトさせる仮想空間上に存在する１つ以上の論理ページを所定の記憶装置へスワップアウトさせる仮想記憶機能が実装されたオペレーティングシステムを実行するコンピュータを機能させるためのプログラムであって、前記仮想メモリ空間上に存在するスワップアウトを避ける論理ページを特定するための論理ページ特定処理と、前記論理ページを含むプロセスに含まれる論理ページの少なくとも１つへアクセスするためのページアクセス処理と、を前記コンピュータに実行させる。仮想記憶機能により仮想空間上の論理ページが例えば二次記憶装置へスワップアウトされる環境下において、仮想空間上のスワップアウトを避けたい論理ページを特定し、特定した論理ページ内のいずれかの論理アドレスにアクセスすることで、これの最新のアクセス日時を更新できるため、例えばＬＲＵアルゴリズムやＮＲＵアルゴリズム等に基づいて選択されるスワップアウト対象から所望する論理ページを除外することができ、特定のアプリケーションのリアルタイム性を維持又は向上させることができる。これを仮想記憶機能を備えたプラットホーム下で行うことで、同時に安定性と信頼性とも確保することができる。
【００３６】
また、請求項１７記載の前記ページアクセス処理は、例えば請求項１８記載のように、アクセスする前記論理ページの仮想アドレスへ前記コンピュータをリードアクセスさせるように構成されてもよい。アクセスする方法としては、例えば簡単に制御可能なリードアクセスを適用することができる。
【００３７】
また、本発明は、請求項１９記載のように、メモリ空間上に存在する１つ以上のページ領域を所定の二次記憶装置へスワップアウトさせる仮想空間上に存在する１つ以上の論理ページを所定の記憶装置へスワップアウトさせる仮想記憶機能が実装されたオペレーティングシステムを実行するコンピュータを機能させるためのプログラムであって、前記仮想メモリ空間上に存在するスワップアウトを避ける論理ページを特定するための論理ページ特定処理と、前記論理ページに対応する実空間上の物理ページを特定するための物理ページ特定処理と、前記物理ページを含むプロセスに含まれる物理ページの少なくとも１つへアクセスするためのページアクセス処理と、を前記コンピュータに実行させる。仮想記憶機能により仮想空間上の論理ページが例えば二次記憶装置へスワップアウトされる環境下において、仮想空間上のスワップアウトを避けたい論理ページを特定し、特定した論理ページ内のいずれかの論理アドレスにアクセスすることで、これの最新のアクセス日時を更新できるため、例えばＬＲＵアルゴリズムやＮＲＵアルゴリズム等に基づいて選択されるスワップアウト対象から所望する論理ページを除外することができ、特定のアプリケーションのリアルタイム性を維持又は向上させることができる。これを仮想記憶機能を備えたプラットホーム下で行うことで、同時に安定性と信頼性とも確保することができる。
【００３８】
また、成九個１９記載の前記ページアクセス処理は、例えば請求項２０記載のように、アクセスする前記物理ページの物理アドレスへ前記コンピュータをリードアクセスさせるように構成されても良い。アクセスする方法としては、例えば簡単に制御可能なリードアクセスを適用することができる。
【００３９】
また、請求項１７から２０の何れか１項に記載の前記ページアクセス処理は、好ましくは請求項２１記載のように、前記仮想記憶機能によるスワップアウトがなされる周期よりも短い期間で発生された所定のタイミングで前記論理ページ又は前記物理ページへ前記コンピュータをアクセスさせるように構成される。一定時間の経過を通知するタイミングに基づいて、スワップアウト対象から除外する論理ページ又は物理ページへアクセスすることで、定期的に除外対象の論理ページ又は物理ページの最新のアクセス日時を更新できる。更に、ＮＲＬアルゴリズムのような所定期間アクセスの無い論理ページ又は物理ページをスワップアウトさせる場合に対しても、的確且つ確実にスワップアウト対象から所望する論理ページ又は物理ページを除外することが可能となる。
【００４０】
また、請求項１７から２１の何れか１項に記載の前記論理ページは、例えば請求項２２記載のように、スワップアウトを避けるユーザプログラム及びデータが含まれるページ領域であってもよい。
【００４１】
また、本発明は、請求項２３記載のように、請求項１７から２２の何れか１項に記載の前記プログラムを記録媒体に記録して提供するものである。これにより、このプログラムを広く頒布することが可能となる。
【００４２】
【発明の実施の形態】
以下、本発明の好適な一実施形態について図面を用いて詳細に説明する。図１は、本実施形態による情報処理装置が適用される画像形成装置１０の概略構成を示す外観図である。図１に示す画像形成装置１０は、例えばネットワーク機能を備えたデジタル複合機であり、このほかにファクシミリ機能やネットワークプリンタ機能やスキャナ機能（ネットワークスキャナ機能を含む）やダイレクトコピー機能等を有している。
【００４３】
本実施形態において、画像形成装置１０のプラットホームには、例えばＵＮＩＸ等の汎用オペレーティングシステム（ＯＳ）を用いる。尚、この汎用ＯＳには、特にＦｒｅｅＢＳＤやＮｅｔＢＳＤやＯｐｅｎＢＳＤ等のオープンソースライセンスを採用しているものを適用するとなおよい。
【００４４】
この画像形成装置１０の構成について触れておく。画像形成装置１０は、情報処理装置やその他後述するような各種デバイスを内蔵する本体９１と、スキャナ機能やダイレクトコピー機能で読み込む原稿を載置するための原稿台９２と、単一又は複数ページにわたる原稿を自動的にフィードするためのＡＤＦ（ＡｕｔｏＤｏｃｕｍｅｎｎｔ  Ｆｅｅｄｅｒ）９３と、各種サイズの用紙をストックするためのトレイ９４と、任意に使用する用紙を設置するための手差しトレイ９５と、ユーザの操作画面を表示し、且つこの操作画面に基づいた操作を入力させるためのタッチパネル式のディスプレイ装置等で構成された操作表示パネル８０とを有して構成されている。
【００４５】
図２に、図１に示す画像形成装置１０の内部構成をブロック図で示す。図２に示すように、画像形成装置１０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）７２とＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）７３とＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）７４とハードディスクドライブ（以下、ＨＤＤと略す）７５と制御部７６と仮想記憶管理部７７とスキャナ部７９と操作表示パネル８０とシステム時計８１とスワップ制御部８２と印字部８３とタイミング制御部８４とを有して構成される。また、これらの構成要素は、システムバス７８を介して相互に接続されている。
【００４６】
上記の構成においてダイレクトコピー機能を用いた場合、スキャナ部７９で入力された画像の画像データが、ＣＰＵ７２において所定の画像処理がなされた後、印刷部８３から外部へ出力される。
【００４７】
次に、各構成要素の動作について、以下に説明する。ＣＰＵ７２は、システムバス７８を介してシステム全体の制御を行う。ＲＯＭ７３はＣＰＵ７２の制御プログラムを格納するものである。本実施形態のＲＯＭ７３に格納されている制御プログラムは、画像形成装置１０が、スキャン部７９で入力された画像データを処理したり、印刷部８３を介して外部へ出力したり、操作表示パネル８０の制御を行ったりするためのものである。ＲＡＭ７４はＳＲＡＭ（Ｓｔａｔｉｃ  ＲＡＭ）等で構成され、プログラム制御変数や各種処理のためのデータ等を格納するためのものである。ハードディスク７５は、制御プログラムによる各種処理のためのデータを格納したり、画像データなどを格納したりするためのものである。制御部７６は、スキャナ部７９や印刷部８３や操作表示パネル８０と制御データの授受を行ったり、画像データの入出力などの制御を行うためのものである。仮想記憶管理部７７は、主記憶装置であるＲＡＭ７４と二次記憶装置であるハードディスク７５とを用いた仮想記憶機能の制御などを行うためのものである。スキャナ部７９は、原稿を読取って、画像データを入力するためのものである。操作表示パネル８０は、コピーの設定を行う画面を表示したり、コピー指示を行ったりするためのものである。システム時計８１は、時計用チップにより構成され時刻情報（年月日、時分秒）をＣＰＵ７２に提供するためのものである。システム時計８１は、システム電源断時や停電時等に時刻情報が消滅しないようバックアップ用電池を備え、常に現時点の時刻を保持している。スワップアウト抑制部８２は、スワップアウトの抑制処理の制御などを行うためのものである。印刷部８３は、出力画像を印刷して外部に出力するためのものである。タイミング制御部８４はスワップアウト抑制処理などの実行タイミングを発生させたりするなど、タイミングの制御を行うためのものである。
【００４８】
次に、図１及び図２に示す画像形成装置１０における、ユーザからの操作に基づいて動作する（以下、これをユーザモードで動作するという）アプリケーションの処理の流れについて、図３のフローチャートを用いて説明する。アプリケーションとしては、コピーアプリケーションやこのほかユーザインタフェース（ＵＩ）の機能を提供するアプリケーション（ＵＩアプリケーション２０３）等が挙げられる。尚、以下の説明では、コピーを指示するためのＵＩアプリケーション２０３の動作を例に挙げる。
【００４９】
図３は、ユーザからの操作に基づいてＯＳのカーネル（以下、ＯＳカーネルという）がＵＩアプリケーション２０３を起動することで、実際の処理を行うプロセス（プロセスＩＤ＝１：尚、プロセスＩＤとは物理ページを使用しているプロセスの識別子である）が生成された場合を示している。図３において、プロセス（プロセスＩＤ＝１）が生成されると、まず最初にＯＳカーネルはプロセス（プロセスＩＤ＝１）の初期処理を実行する（ステップＳ１０１）。この初期処理が終了すると、ＯＳカーネルは、スワップアウト抑制スレッドを生成し（ステップＳ１０２）、スワップアウト制御処理を開始する（ステップＳ１０３）。但し、ＯＳカーネルは、スワップアウト抑制スレッドの生成が成功するまで、この処理を繰り返す（ステップＳ１０４のＮｏ）。尚、スワップアウト抑制処理を行うスワップアウト抑制スレッドの処理フローについては後述する。
【００５０】
スワップアウト抑制スレッドの生成が成功すると（ステップＳ１０４のＹｅｓ）、ＯＳカーネルは、次に、プロセス（プロセスＩＤ＝１）の本処理を実行する（ステップＳ１０５）。本説明での本処理はアプリケーションに依存するものである。例えば、ユーザからの入力イベントを受けて、画面表示を変更し、ユーザから指示されたコピー処理などの該当する処理をシステムに対して指示する処理を指す。尚、プロセス（プロセスＩＤ＝１）の本処理は、終了条件を満たす場合まで継続される（ステップＳ１０６のＮｏ）。
【００５１】
プロセス（プロセスＩＤ＝１）の本処理が終了すると（ステップＳ１０６のＹｅｓ）、ＯＳカーネルは、スワップアウト抑制スレッドを終了させる（ステップＳ１０７）。その後、ＯＳカーネルは、プロセス（プロセスＩＤ＝１）の終了処理を実行し（ステップＳ１０８）、この動作を終了する。
【００５２】
以上のような動作において、画像形成装置１０に組み込まれた汎用ＯＳにおける仮想記憶機能により、主記憶装置２１５であるＲＡＭ７４上に実行されたアプリケーション（本説明ではＵＩアプリケーション２０３としている）が二次記憶装置２１４であるＨＤＤ７５上にスワップアウトされる。この仮想記憶機能は、一般的な汎用ＯＳに組み込まれている機能であり、例えばＬＲＵ（Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ）アルゴリズムによるものとＮＲＵ（Ｎｏｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ）アルゴリズムによるものとが存在する。ＬＲＵアルゴリズムでは、論理ページをスワップアウトする際に、未使用の時間がもっとも長い論理ページが選択される。また、ＮＲＵアルゴリズムでは、一定期間アクセスされていない論理ページが選択される。尚、論理ページとは、スワップアウトを避けるユーザプログラム及びデータが含まれるページ領域である。
【００５３】
この仮想記憶機能は、図２における仮想記憶管理部７７で実現されるものである。仮想記憶管理部７７は、スワップアウトしたアプリケーションプロセス（以下、単にプロセスという）の識別情報と（プロセスＩＤ）とスワップ先のアドレス（仮想空間における仮想アドレス）とを管理する機能も有している。尚、本実施形態において、画像形成装置１０に組み込まれた汎用ＯＳは、このほか、汎用ＯＳにおいて一般的に標準で搭載されているメモリ保護機能等の機能を備えていてもよい。
【００５４】
そこで本実施形態では、図２におけるユーザモードで動作するアプリケーションレベル（本説明ではＵＩアプリケーション２０３）で適宜又は定期的にスワップアウトされたくない論理ページにアクセスすることで、ＬＲＵアルゴリズムやＮＲＵアルゴリズムを用いた仮想記憶機能により、スワップアウトされたくない論理ページの最終のアクセス日時を更新する。
【００５５】
ここで、図４を用いて、メモリ空間における仮想空間（仮想メモリ空間ともいう）と実空間（実メモリ空間ともいう）との関係について説明する。尚、以下の説明ではプロセス（プロセスＩＤ＝１）に着目し、このプロセス（プロセスＩＤ＝１）の仮想空間におけるページ構造と実空間におけるページ構想との関係を説明する。図４において、プロセス（プロセスＩＤ＝１）の論理ページ＃１，＃２にはシンボル（シンボルＩＤ＝１）が付されている。本説明では、この論理ページ＃１，＃２が、スワップアウトを抑制することでリアルタイム性を保証したい処理の実体である。リアルタイム性を保証したい処理としては、ユーザインタフェースのアプリケーションを例に見れば、ユーザからの入力イベントを受付ける処理を行う関数や、表示を変更する処理を行う関数等がある。また、図４を参照すると、シンボル（シンボルＩＤ＝１）が付された論理ページ＃１，＃２は、物理ページ＃２，＃０にそれぞれ対応している。尚、以下の説明において、論理ページは、サイズが例えば４Ｋバイト単位であり、論理ページのインデックスに従って昇順にリニアに配置されているものとする。
【００５６】
また、プロセス（プロセスＩＤ＝１）の仮想空間上におけるページ構造を管理するための論理ページテーブルの例を図５に示す。図５において、シンボルＩＤは、関数やデータなどのシンボルの識別子を示す。開始論理ページは、シンボルが存在する論理ページの最初の論理ページのインデックスを示す。終了論理ページは、シンボルが存在する論理ページの最後の論理ページのインデックスを示す。先頭アドレスは、シンボルが存在する先頭アドレスを示す。スワップアウト抑制フラグは、シンボルがスワップアウト抑制の対象であるか否かを示す。本実施形態では、このようなテーブルを何れかの構成、例えばスワップアウト制御部８２において管理しておくことで、該当するシンボル及び論理ページがスワップアウト抑制の対象であるか否かの関係を管理することができる。尚、図５においてプロセス（プロセスＩＤ＝１）に関するレコード（シンボルＩＤ＝１を含むレコード）を着目すると、シンボル（シンボルＩＤ＝１）が付された論理ページにおいて、開始論理ページは＃１であり、終了論理ページは＃２である。また、先頭アドレスが‘０ｘ６ｆ１１１１２３’であり、スワップアウト抑制フラグにはスワップアウトを抑制させるための‘１’が格納されている。従って、論理ページテーブルでは、プロセス（プロセスＩＤ＝１）の論理ページ＃１，＃２に対するスワップアウトが抑制されるように記述されている。
【００５７】
また、同じくプロセス（１）の実空間上におけるページ構造を管理するための物理ページテーブルの例を図６に示す。図６において、物理ページは、物理ページのインデックスを示す。プロセスＩＤは、上述のように、物理ページを使用しているプロセスの識別子を示す。先頭アドレスは、物理ページの先頭アドレスを示す。最終アクセス日時は、物理ページにアクセスされた最終日時を示す。スワップアウト抑制フラグは、物理ページがスワップアウト抑制の対象であるか否かを示す。本実施形態では、このようなテーブルを何れかの構成、例えばスワップアウト制御部８２において管理しておくことで、該当する物理ページがスワップアウト抑制の対象であるか否かの関係を管理することができる。尚、図６においてプロセス（プロセスＩＤ＝１）に関するレコードを着目すると、プロセスＩＤ＝１が格納された物理ページは＃０，＃２であり、それぞれの先頭アドレスは、‘０ｘ６ｆ１１１１２３’，‘０ｘ６ｆ１１３１２３’である。また、最終アクセス日時は共に‘２００２／１１／２６  １０：０４：５１’となっており、更にスワップアウト抑制フラグには共にスワップアウトを抑制させるための‘１’が格納されている。従って、物理ページテーブルでは、プロセス（プロセスＩＤ＝１）の物理ページ＃０，＃２に対するスワップアウトが抑制されるように記述されている。
【００５８】
次に、図７を用いて、スワップアウトを抑制するためのスレッド（以下、スワップアウト抑制スレッドという）の処理フローについて説明する。このスワップアウト抑制スレッドは、ＵＩアプリケーション２０３の起動時にＯＳカーネルにより生成され、実行されるグログラムである。尚、図７では、論理ページテーブルに基づいたスワップアウト抑制スレッドの処理フローを例に挙げて説明する。
【００５９】
図７において、ＵＩアプリケーション２０３が起動すると、ＵＩアプリケーション２０３は、スワップアウト抑制スレッドを生成し、このスレッドの初期処理を実行する（ステップＳ２０１）。次に、起動したスワップアウト抑制スレッドは、外部から入力される実行タイミングまで動作を待機する（ステップＳ２０２）。尚、この際、実行タイミングを例えばウォッチドッグタイマ等の機構を用いて定期的に発生させるように構成しても良い。このウォッチドックタイマは、例えばタイミング制御部８４において実現される。
【００６０】
実行タイミングが入力されると、スワップアウト抑制スレッドは、プロセス（プロセスＩＤ＝１）の仮想空間上におけるレコードを論理ページテーブルから取出し（ステップＳ２０３）、このレコードにスワップアウト抑制対象である論理テーブルが含まれているか否かを確認する（ステップＳ２０４）。これを図５の論理ページテーブルを用いて具体的に説明する。シンボルＩＤ＝１であるシンボルがスワップアウト抑制対象であることを示す本説明では、プロセス（プロセスＩＤ＝１）に対応づけられたシンボル（シンボルＩＤ＝１）を格納するレコードに、スワップアウト抑制対象であることを示すスワップアウト抑制フラグ‘１’が格納されている。スワップアウト抑制スレッドは、論理ページテーブルから例えばラウンドロビン的に順次読み出したレコードにおけるスワップアウト抑制フラグに‘１’が格納されているかを判断することで、スワップアウト抑制対象であるか否かを判断できる。
【００６１】
取り出したレコードにスワップアウト抑制対象が含まれている場合（スワップアウト抑制フラグが‘１’である場合：ステップＳ２０５のＹｅｓ）、スワップアウト抑制スレッドは、取り出したレコードにおける先頭アドレスに基づいて該当する仮想アドレスへリードアクセスする（ステップＳ２０６）。尚、本説明の場合、論理ページ＃１，＃２の仮想アドレスである。また、論理ページ＃２のアドレスは、論理ページ＃１の先頭アドレスから固定である４Ｋバイト後の仮想アドレスとして求めることができる。
【００６２】
但し、ＬＲＵアルゴリズムでスワップアウトの対象を決定している場合では、リードアクセスする仮想アドレスは、開始論理ページから終了論理ページに含まれる仮想アドレスに限定されることなく、同一プロセス（プロセスＩＤ＝１）に含まれる論理ページの仮想アドレスであれば何れでもよい。これにより、このプロセスに含まれる論理ページの最終アクセス日時（図６参照）が更新される。即ち、上記動作により、スワップアウトされたくないプロセスの最終アクセス日時が更新されるため、これらがスワップアウトされないように制御することが可能となる。尚、定期的にスワップアウト抑制スレッドの処理が動作するような実行タイミングを設定することで、ＮＲＵアルゴリズムで一定期間アクセスされていないページがスワップアウトされる場合にも対処することが可能となる。
【００６３】
また、ステップＳ２０５の判定の結果、取り出したレコードにスワップアウト抑制対象が含まれていない場合（ステップＳ２０５のＮｏ）、スワップアウト抑制スレッドはステップＳ２０６を飛ばしてステップＳ２０７へ移行する。
【００６４】
ステップＳ２０７において、スワップアウト抑制スレッドは、直前のステップＳ２０３で取り出したレコードが論理ページテーブルにおける最終のレコードであるか否かを判定し、最終のレコードでない場合（ステップＳ２０７のＮｏ）、ステップＳ２０３へ帰還して、次のレコードを読み出し、以降の動作を繰り返す。また、ステップＳ２０７の判定の結果、最終のレコードである場合（ステップＳ２０７のＹｅｓ）、スワップアウト抑制スレッドは、自己の終了条件を満たしているか否かを判定し（ステップＳ２０８）、この終了条件を満たしている、即ち、スワップアウト抑制対象の論理ページの最終アクセス日時が的確にスワップアウト対象から除外されるように処理された場合（ステップＳ２０８のｙｅｓ）、処理を終了する。また、ステップＳ２０８の判断の結果、終了条件が満たされていない場合（ステップＳ２０８のＮｏ）、スワップアウト抑制スレッドは、ステップＳ２０２に帰還し、再度、全レコードを対象として上述した処理を実行する。
【００６５】
以上説明したように、本実施形態によれば、ＲＴＯＳと汎用ＯＳとのハイブリッド構成を取らないプラットホーム上においても、仮想記憶機能を利用して高信頼性と高安定性とを実現しつつ、高いリアルタイム性を保証することが可能になる。特にユーザモードで動作するアプリケーションレベルでスワップアウトを抑制することにより、ＯＳレベルでの変更を加えることなく、仮想記憶機能を利用しながらリアルタイム性を保証することが可能になる。
【００６６】
より詳細には、リアルタイム性の保証を阻害するユーザレベルでのアプリケーションのスワップアウトに対して、アプリケーションのプロセスの仮想空間上で動作できるスワップアウト抑制スレッドを定期的に動作させて該当する論理ページのいずれかのアドレスにリードアクセスさせて、この論理ページに対応する物理ページの最終アクセス日時を更新することで、結果的に所望する論理ページのスワップアウトを抑制することが可能となる。
【００６７】
また、上述では、スワップアウト抑制スレッドがユーザモードで動作するように構成されたが、このほかにも、例えばアプリケーションを起動するＯＳの処理に特定のフラグや引数を伴って起動した場合は、自動的にスワップ抑制スレッドを起動するように構成してもよい。更に、スワップアウト抑制スレッドを起動するときに、スワップアウトを抑制したい関数名など、シンボルが見つけられるものを引数に渡して起動することで、スワップアウト抑制スレッドの初期処理の中で、論理ページテーブル上でシンボルに該当する論理ページのスワップアウト抑制フラグを設定させるようにしてもよい。
【００６８】
また、本実施形態では、ユーザアプリケーションのプロセスの仮想空間上の何れかの論理ページに定期的にアクセスすることでスワップアウトを抑制することを実現したが、この論理ページに対応する実空間上の物理ページを特定し、この物理ページ内のいずれかの物理アドレスにスワップアウトの周期よりも短い周期で定期的にリードアクセスすることで、スワップアウトを抑制するように構成してもよい。このように構成した場合、スワップアウト抑制スレッドに相当するものが、カーネルの制御下で動作する（以下、これをカーネルモードで動作するという）スワップアウト抑制を行うためのデーモン（以下、スワップアウト抑制デーモンという）として実現される。スワップアウト抑制デーモンは、実空間上の物理ページテーブルの各物理ページのスワップアウト抑制フラグを見て、該当する物理ページ内のいずれかのアドレスにリードアクセスするか、この物理ページ内の最終アクセス日時を直接最新の日時に変更するように構成できる。尚、物理ページテーブル上のスワップアウト抑制フラグをセットする方法については、該当する論理ページ対応する該物理ページを参照してセットしてもよいし、このほか、プロセスレベルでスワップアウトの抑制の対象にしたい場合は、物理ページ上のプロセスＩＤから対応する物理ページを見つけてセットするように構成してもよい。
【００６９】
以上、説明した実施形態は本発明の好適な一実施形態にすぎず、本発明はその趣旨を逸脱しない限り種々変形して実施可能である。
【００７０】
【発明の効果】
以上説明したように、本発明によれば、高リアルタイム性と高信頼性と高安定性とを同時に得ることが可能で且つ開発が容易な情報処理装置、画像形成装置、スワップアウト制御方法、そのプログラム及びそのプログラムを記録した記録媒体を実現できる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態に係る画像形成装置１０の概略構成を示す外観図である。
【図２】図１に示す画像形成装置１０の内部構造を示すブロック図である。
【図３】図１及び図２に示す画像形成装置１０におけるユーザモードで動作するアプリケーションの処理を示すフローチャートである。
【図４】メモリ空間における仮想空間と実空間との関係を説明するための図である。
【図５】本発明の一実施形態による論理ページテーブルの構成を示す図である。
【図６】本発明の一実施形態による物理ページテーブルの構成を示す図である。
【図７】本発明の一実施形態におけるスワップアウト抑制スレッドの処理フローを示す図である。
【図８】従来技術１による画像形成装置１００の構成を示すブロック図である。
【図９】図８に示す画像形成装置１００において仮想記憶機能による作用を説明するための図である。
【図１０】従来技術２による画像形成装置２００の構成を示すブロック図である。
【符号の説明】
１０  画像形成装置                  １１  本体
７２  ＣＰＵ                        ７３  ＲＯＭ
７４  ＲＡＭ                        ７５  ＨＤＤ
７６  制御部                        ７７  仮想記憶管理部
７８  システムバス                  ７９  スキャナ部
８０  操作表示パネル                ８１  システム時計
８２  スワップアウト制御部          ８３  印字部
８４  タイミング制御部
【図１】
2004272479.tif 000003
【図２】
2004272479.tif 000004
【図３】
2004272479.tif 000005
【図４】
2004272479.tif 000006
【図５】
2004272479.tif 000007
【図６】
2004272479.tif 000008
【図７】
2004272479.tif 000009
【図８】
2004272479.tif 000010
【図９】
2004272479.tif 000011
【図１０】
2004272479.tif 000012