(57)【特許請求の範囲】
【請求項１】
仮想メモリの機能を有する第１のＯＳに基づいて動作する第１のＣＰＵと、
第２のＯＳに基づいて動作する第２のＣＰＵと、
前記第１のＯＳと前記第２のＯＳとの間での通信を制御する通信手段と、
前記第１のＯＳが一次記憶装置として使用する第１の記憶領域と前記第２のＯＳが一次記憶装置として使用する第２の記憶領域とを有するメモリとを備え、
前記第１のＯＳは、前記通信手段を介して前記第１の記憶領域中の情報のうち使用されない情報を仮想メモリの情報として前記第２のＯＳに対して書き込みの要求を行うとともに、書き込まれた前記仮想メモリの情報を書き戻すために前記第２のＯＳに対して仮想メモリの情報の読み出しの要求を行う仮想ブロックデバイスを有し、
前記第２のＯＳは、前記仮想ブロックデバイスから書き込み及び読み出しの要求のあった前記仮想メモリの情報を前記第２の記憶領域に書き込み及び前記第２の記憶領域から読み出するものであり、
前記第２の記憶領域は、前記第１の記憶領域と同一の前記メモリ上に設けられ、前記第１のＯＳの制限により直接使用不可能な領域である情報処理装置。
【請求項２】
コンピュータを、
仮想メモリの機能を有する第１のＯＳにおいて、前記第１のＯＳが一次記憶装置として使用する第１の記憶領域中の情報のうち使用されない情報を仮想メモリの情報として前記第２のＯＳに対して書き込みの要求を行うとともに、書き込まれた前記仮想メモリの情報を書き戻すために前記第２のＯＳに対して前記仮想メモリの情報の読み出しの要求を行う仮想ブロックデバイスとして機能させ、
前記第２のＯＳは、前記仮想ブロックデバイスから書き込み及び読み出しの要求のあった前記仮想メモリの情報を、前記第２のＯＳが一次記憶装置として使用する第２の記憶領域に書き込み及び前記第２の記憶領域から読み出しするものであり、
前記第２の記憶領域は、前記第１の記憶領域と同一の前記メモリ上に設けられ、前記第１のＯＳの制限により直接使用不可能な領域である情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及び情報処理プログラムに関する。
【背景技術】
【０００２】
従来の技術として、ネットワーク接続された他のコンピュータの空きメモリ領域を仮想記憶領域として利用する情報処理装置が提案されている（例えば、特許文献１参照）。
【０００３】
特許文献１に開示された情報処理装置は、一次記憶装置としてのメモリと、二次記憶装置としてのハードディスクとを有し、同様にメモリとハードディスクとを有する他のコンピュータとネットワークを介して接続され、他のコンピュータのメモリの空き記憶領域を仮想的な記憶領域として利用し、自己のメモリに記憶された情報のうち当面の間使用されない情報を当該仮想記憶領域に書き込む（スワップアウトする）。これにより、情報処理装置のハードディスクの空き記憶領域を仮想記憶領域として利用する場合に比べてデータの書き込み及び読み出しの速度を向上する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１１−１５７３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の目的は、複数のＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）を動作させる構成において、仮想メモリの機能を有するＯＳが使用可能な二次記憶装置を有していない場合であっても、仮想メモリの機能を利用できる情報処理装置及び情報処理プログラムを提供することにある。
【課題を解決するための手段】
【０００６】
本発明の一態様は、上記目的を達成するため、以下の情報処理装置及び情報処理プログラムを提供する。
【０００７】
［１］仮想メモリの機能を有する第１のＯＳに基づいて動作する第１のＣＰＵと、
第２のＯＳに基づいて動作する第２のＣＰＵと、
前記第１のＯＳと前記第２のＯＳとの間での通信を制御する通信手段と、
前記第１のＯＳが一次記憶装置として使用する第１の記憶領域と前記第２のＯＳが一次記憶装置として使用する第２の記憶領域とを有するメモリとを備え、
前記第１のＯＳは、前記通信手段を介して前記第１の記憶領域中の情報のうち使用されない情報を仮想メモリの情報として前記第２のＯＳに対して書き込みの要求を行うとともに、書き込まれた前記仮想メモリの情報を書き戻すために前記第２のＯＳに対して仮想メモリの情報の読み出しの要求を行う仮想ブロックデバイスを有し、
前記第２のＯＳは、前記仮想ブロックデバイスから書き込み及び読み出しの要求のあった前記仮想メモリの情報を前記第２の記憶領域に書き込み及び前記第２の記憶領域から読み出するものであり、
前記第２の記憶領域は、前記第１の記憶領域と同一の前記メモリ上に設けられ、前記第１のＯＳの制限により直接使用不可能な領域である情報処理装置。
［２］コンピュータを、
仮想メモリの機能を有する第１のＯＳにおいて、前記第１のＯＳが一次記憶装置として使用する第１の記憶領域中の情報のうち使用されない情報を仮想メモリの情報として前記第２のＯＳに対して書き込みの要求を行うとともに、書き込まれた前記仮想メモリの情報を書き戻すために前記第２のＯＳに対して前記仮想メモリの情報の読み出しの要求を行う仮想ブロックデバイスとして機能させ、
前記第２のＯＳは、前記仮想ブロックデバイスから書き込み及び読み出しの要求のあった前記仮想メモリの情報を、前記第２のＯＳが一次記憶装置として使用する第２の記憶領域に書き込み及び前記第２の記憶領域から読み出しするものであり、
前記第２の記憶領域は、前記第１の記憶領域と同一の前記メモリ上に設けられ、前記第１のＯＳの制限により直接使用不可能な領域である情報処理プログラム。
【発明の効果】
【０００８】
請求項１又は２に係る発明によれば、複数のＯＳを動作させる構成において、仮想メモリの機能を有するＯＳが使用可能な二次記憶装置を有していない場合であっても、仮想メモリの機能を利用でき、また、メモリ上の第１のＯＳの制限により直接使用不可能な領域を使用して、仮想メモリの機能を利用できる。
【図面の簡単な説明】
【０００９】
【図１】図１は、第１の実施の形態に係る情報処理装置の構成例を示すブロック図である。
【図２】図２は、第２の実施の形態に係る情報処理装置の構成例を示すブロック図である。
【図３】図３は、第３の実施の形態に係る情報処理装置の構成例を示すブロック図である。
【発明を実施するための形態】
【００１０】
［第１の実施の形態］
（情報処理装置の構成）
図１は、第１の実施の形態に係る情報処理装置の構成例を示すブロック図である。
【００１１】
情報処理装置５は、各部を制御するとともに、各種のプログラムを実行する第１のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１と、第２のＣＰＵ２と、情報の書き込み及び読み出しが可能なＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等の揮発性の半導体メモリである記憶装置３とを備え、それぞれをシステムバスで接続した疎結合マルチプロセッサシステムである。
【００１２】
情報処理装置５は、一例として、コピー、スキャン、プリント、ＦＡＸ等の画像形成機能及びクラウド連携やウェブサービス等のネットワーク機能を有する装置であり、第１のＣＰＵ１及び第２のＣＰＵ２によって制御される図示しない光学走査機能部、印刷機能部、ＦＡＸ機能部、通信部等を有する。
【００１３】
第１のＣＰＵ１は、第２のＯＳ２に比べてリアルタイム性の低い汎用ＯＳである第１のＯＳ１ａとして機能する。汎用ＯＳである第１のＯＳ１ａは、例えば、Ｌｉｎｕｘ（登録商標）であり、主にクラウド連携やウェブサービス等のネットワーク機能を実現する機能部を制御するために用いられる。
【００１４】
また、第１のＯＳ１ａは、直接アクセス可能な一次記憶装置だけでなく、ブロックデバイスを介してアクセスする二次記憶装置を仮想的にメモリとして扱う仮想メモリの機能を有する。
【００１５】
第２のＣＰＵ２は、リアルタイムＯＳである第２のＯＳ２ａとして機能する。リアルタイムＯＳである第２のＯＳ２ａは、例えば、ＩＴＲＯＮ（登録商標）やｖｘＷｏｒｋｓ（登録商標）であり、主にコピー、スキャン、プリント、ＦＡＸ等の画像形成機能を実現する機能部を制御するために用いられる。なお、あるジョブの実行を要求された場合に当該ジョブを予め定められた時間以内で完了することをリアルタイム性といい、リアルタイムＯＳとは、リアルタイム性のあるＯＳをいう。
【００１６】
なお、第１のＯＳ１ａ及び第２のＯＳ２ａはそれぞれ図示しないＲＯＭ等に格納されたプログラムが、それぞれ第１のＣＰＵ１及び第２のＣＰＵ２によって読み出されて実行されることで機能するものである。
【００１７】
記憶装置３は、第１のＯＳ１ａが使用する第１の記憶領域３１と、第２のＯＳ２ａが使用する第２の記憶領域３２とを有し、第１のＯＳ１ａと第２のＯＳ２ａとが共有する記憶領域は有しないものとする。なお、記憶装置３は図中で単体を示しているが、複数であってもよく、第１の記憶領域３１と第２の記憶領域３２とをそれぞれ異なる記憶装置に設けてもよい。
【００１８】
また、第１のＯＳ１ａは、第１の記憶領域３１の情報をスワップアウトして書き込むことのできる仮想ブロックデバイス１０を有する。仮想ブロックデバイス１０に書き込まれた情報は後述するＯＳ間通信手段１１を介して第２のＯＳ２ａへ転送されて第２の記憶領域３２に書き込まれる。また、第１のＯＳ１ａがスワップアウトした情報の書き戻し（スワップイン）を要求した場合は、第２の記憶領域３２に書き込まれた情報はＯＳ間通信手段１１及び仮想ブロックデバイス１０を介して第１の記憶領域３１に書き込まれる。なお、仮想ブロックデバイス１０は、例えば、デバイスファイルによって実現される。
【００１９】
ＯＳ間通信手段１１は、システムバスを介して第１のＯＳ１ａと第２のＯＳ２ａとの間の通信を制御する。なお、ＯＳ間の通信はメッセージの送受信によって行う。
【００２０】
（情報処理装置の動作）
次に、本実施の形態の作用を、（１）基本動作、（２）スワップアウト動作、（３）スワップイン動作に分けて説明する。
【００２１】
（１）基本動作
まず、第１のＣＰＵ１及び第２のＣＰＵ２は、要求を受け付けるとそれぞれ第１のＯＳ１ａ及び第２のＯＳ２ａの機能に基づいて受け付けた要求を処理する。要求を処理する際、処理中の情報を第１の記憶領域３１及び第２の記憶領域３２に一時的に格納する。つまり、第１のＣＰＵ１及び第２のＣＰＵ２は、それぞれ第１の記憶領域３１及び第２の記憶領域３２を直接アクセス可能な一次記憶装置として利用する。
【００２２】
第１のＣＰＵ１は、第１のＯＳ１ａが仮想メモリの機能を有しているため、第１の記憶領域３１中の情報のうち当面の間使用されない情報を二次記憶装置に書き込む。以下、第２のＯＳ２ａが一次記憶装置として用いる第２の記憶領域３２を、第１のＯＳ１ａが二次記憶装置として用いる際の動作について説明する。
【００２３】
（２）スワップアウト動作
第１のＯＳ１ａは、スワップアウトする際、第１の記憶領域３１の情報を仮想ブロックデバイス１０に書き込む。
【００２４】
仮想ブロックデバイス１０は、書き込まれた情報を、ＯＳ間通信手段１１を介して第２のＯＳ２ａへ転送する。
【００２５】
第２のＯＳ２ａは、受信した情報を第２の記憶領域３２に書き込む。
【００２６】
これにより第１のＯＳ１ａは、仮想的にメモリ領域を拡大し、第１の記憶領域３１に作られた空き領域に処理中の情報を格納することができる。
【００２７】
（３）スワップイン動作
次に、第１のＯＳ１ａは、スワップアウトした第２の記憶領域３２の情報を処理する段階になるとスワップインを仮想ブロックデバイス１０に要求する。
【００２８】
仮想ブロックデバイス１０はＯＳ間通信手段１１を介して第２のＯＳ２ａにデータの読み出しを要求する。
【００２９】
第２のＯＳ２ａは第２の記憶領域３２の情報を読み出してＯＳ間通信手段１１を介して仮想ブロックデバイス１０に送信する。
【００３０】
仮想ブロックデバイス１０は、受信した情報を第１の記憶領域３１に書き込む。
【００３１】
［第２の実施の形態］
第２の実施の形態は、第１のＯＳ１ａが３２ｂｉｔの仮想アドレス空間をサポートする場合について説明する。つまり、第１のＯＳ１ａは一次記憶装置のうち約３ＧＢの記憶領域のみ利用可能であって、一次記憶装置が３ＧＢ以上の記憶容量を有していたとしても他の記憶領域を利用できない場合について説明する。
【００３２】
（情報処理装置の構成）
図２は、第２の実施の形態に係る情報処理装置の構成例を示すブロック図である。
【００３３】
情報処理装置５ａは、第１のＣＰＵ１と、第２のＣＰＵ２と、記憶装置３ａと、第２のＯＳ２ａが第２の記憶領域３２ａとして利用する記憶装置とを備え、それぞれをシステムバスで接続した疎結合マルチプロセッサシステムである。
【００３４】
記憶装置３は、例えば、４ＧＢの容量を有するＲＡＭである。記憶装置３の記憶領域のうち、第１のＯＳ１ａが使用する第１の記憶領域３１ａは約３ＧＢである。また、残りの１ＧＢの第３の記憶領域３２ｂは、第２のＯＳ２ａが使用可能とする。
【００３５】
第２の記憶領域３２ａは、図中において記憶装置３と別構成とされているが同一の記憶装置内で別の記憶領域で用意されるものであってもよい。
【００３６】
仮想ブロックデバイス１０は、書き込まれた情報を、ＯＳ間通信手段１１を介して第２のＯＳ２ａへ転送し、一例としてＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）によって、第２の記憶領域３２ａへのメモリコピーを伴わずに直接、第２の記憶領域３２ｂに書き込む。また、第１のＯＳ１ａがスワップインを要求した場合は、第３の記憶領域３２ｂに書き込まれた情報はＯＳ間通信手段１１及び仮想ブロックデバイス１０を介して第１の記憶領域３１ａに書き込まれる。
【００３７】
（情報処理装置の動作）
次に、本実施の形態の作用を、（１）基本動作、（２）スワップアウト動作、（３）スワップイン動作に分けて説明する。
【００３８】
（１）基本動作
まず、第１のＣＰＵ１及び第２のＣＰＵ２は、要求を受け付けるとそれぞれ第１のＯＳ１ａ及び第２のＯＳ２ａの機能に基づいて受け付けた要求を処理する。要求を処理する際、処理中の情報を第１の記憶領域３１ａ及び第２の記憶領域３２ａに一時的に格納する。つまり、第１のＣＰＵ１及び第２のＣＰＵ２は、それぞれ第１の記憶領域３１ａ及び第２の記憶領域３２ａを直接アクセス可能な一次記憶装置として利用する。
【００３９】
第１のＣＰＵ１は、第１のＯＳ１ａが仮想メモリの機能を有しているため、第１の記憶領域３１中の情報のうち当面の間使用されない情報を二次記憶装置に書き込む。以下、二次記憶装置として第２のＯＳ２ａが二次記憶装置として用いる第３の記憶領域３２ｂを用いる際の動作について説明する。
【００４０】
（２）スワップアウト動作
第１のＯＳ１ａは、スワップアウトする際、第１の記憶領域３１ａの情報を仮想ブロックデバイス１０に書き込む。
【００４１】
仮想ブロックデバイス１０は、書き込まれた情報を、ＯＳ間通信手段１１を介して第２のＯＳ２ａへ転送する。
【００４２】
第２のＯＳ２ａは、受信した情報を第３の記憶領域３２ｂに書き込む。
【００４３】
これにより第１のＯＳ１ａは、仮想的にメモリ領域を拡大し、第１の記憶領域３１ａに作られた空き領域に処理中の情報を格納することができる。
【００４４】
（３）スワップイン動作
次に、第１のＯＳ１ａは、スワップアウトした第３の記憶領域３２ｂの情報を処理する段階になるとスワップインを仮想ブロックデバイス１０に要求する。
【００４５】
仮想ブロックデバイス１０はＯＳ間通信手段１１を介して第２のＯＳ２ａにデータの読み出しを要求する。
【００４６】
第２のＯＳ２ａは第３の記憶領域３２ｂの情報を読み出してＯＳ間通信手段１１を介して仮想ブロックデバイス１０に送信する。
【００４７】
仮想ブロックデバイス１０は、受信した情報を第１の記憶領域３１ａに書き込む。
【００４８】
以上の動作により、第１のＯＳ１ａが記憶装置３ａの記憶領域のうち、アクセスできない記憶領域である第３の記憶領域３２ｂを仮想記憶領域として利用することができるようになる。
【００４９】
また、記憶装置３ａはＲＡＭであるため、ハードディスク等を仮想メモリとして利用する場合と比較すると、ＯＳ間の通信を考慮しても処理が高速となる。
【００５０】
［第３の実施の形態］
第３の実施の形態は、第２の実施の形態の構成に圧縮器を追加した場合について説明する。
【００５１】
（情報処理装置の構成）
図３は、第３の実施の形態に係る情報処理装置の構成例を示すブロック図である。
【００５２】
情報処理装置５ｂは、第１のＣＰＵ１と、第２のＣＰＵ２と、記憶装置３ａと、第２のＯＳ２ａが第２の記憶領域３２ａとして利用する記憶装置とを備え、それぞれをシステムバスで接続した疎結合マルチプロセッサシステムである。
【００５３】
また、情報処理装置５ｂは、情報のデータ量を圧縮する圧縮器２１をさらに有し、圧縮器２１は第２のＯＳ２ａが第３の記憶領域３２ｂに書き込む情報を圧縮する。
【００５４】
（情報処理装置の動作）
次に、本実施の形態の作用を、（１）スワップアウト動作、（２）スワップイン動作に分けて説明する。
【００５５】
（１）スワップアウト動作
第１のＯＳ１ａは、スワップアウトする際、第１の記憶領域３１ａの情報を仮想ブロックデバイス１０に書き込む。
【００５６】
仮想ブロックデバイス１０は、書き込まれた情報を、ＯＳ間通信手段１１を介して第２のＯＳ２ａへ転送する。
【００５７】
第２のＯＳ２ａは、受信した情報を圧縮器２１で圧縮して第３の記憶領域３２ｂに書き込む。
【００５８】
（２）スワップイン動作
次に、第１のＯＳ１ａは、スワップアウトした第３の記憶領域３２ｂの情報を処理する段階になるとスワップインを仮想ブロックデバイス１０に要求する。
【００５９】
仮想ブロックデバイス１０はＯＳ間通信手段１１を介して第２のＯＳ２ａにデータの読み出しを要求する。
【００６０】
第２のＯＳ２ａは第３の記憶領域３２ｂの情報を読み出して解凍し、ＯＳ間通信手段１１を介して仮想ブロックデバイス１０に送信する。
【００６１】
仮想ブロックデバイス１０は、受信した情報を第１の記憶領域３１ａに書き込む。
【００６２】
以上の動作により、第１のＯＳ１ａが記憶装置３ａの記憶領域のうち、アクセスできない記憶領域である第３の記憶領域３２ｂを仮想記憶領域として利用することができ、さらに圧縮器２１によって圧縮したため仮想記憶領域により容量の大きい情報を格納することができるようになる。
【００６３】
また、第３の記憶領域３２ｂが第１のＯＳ１ａからアクセスできる領域であったとしても、上記動作により情報を圧縮することで、直接情報を格納する場合に比べてメモリの総使用量を抑えることができる。
【００６４】
［他の実施の形態］
なお、本発明は、上記実施の形態に限定されず、本発明の趣旨を逸脱しない範囲で種々な変形が可能である。
【００６５】
上記実施の形態で説明した上記動作の手順の入れ替え、削除、追加等は本発明の要旨を変更しない範囲内で可能である。
【符号の説明】
【００６６】
１     第１のＣＰＵ
１ａ   第１のＯＳ
２     第２のＣＰＵ
２ａ   第２のＯＳ
３、３ａ、３ｂ       記憶装置
５、５ａ、５ｂ       情報処理装置
１０   仮想ブロックデバイス
１１   ＯＳ間通信手段
２１   圧縮器
３１、３１ａ  第１の記憶領域
３２、３２ａ  第２の記憶領域
３２ｂ 第３の記憶領域
【図１】
0006380084.tif 000002
【図２】
0006380084.tif 000003
【図３】
0006380084.tif 000004