(58)【調査した分野】(Int.Cl.,DB名)
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明の目的は、複数のOS(Operating System)を動作させる構成において、仮想メモリの機能を有するOSが使用可能な二次記憶装置を有していない場合であっても、仮想メモリの機能を利用できる情報処理装置及び情報処理プログラムを提供することにある。
【課題を解決するための手段】
【0006】
本発明の一態様は、上記目的を達成するため、以下の情報処理装置及び情報処理プログラムを提供する。
【0007】
[1]仮想メモリの機能を有する第1のOSに基づいて動作する第1のCPUと、
第2のOSに基づいて動作する第2のCPUと、
前記第1のOSと前記第2のOSとの間での通信を制御する通信手段と、
前記第1のOSが
一次記憶装置として使用する第1の記憶領域と前記第2のOSが
一次記憶装置として使用する第2の記憶領域とを有するメモリとを備え、
前記第1のOSは、前記通信手段を介して前記第1の記憶領域
中の情報のうち使用されない情報を仮想メモリの情報として前記第2のOSに対し
て書き込みの要求を行うとともに、
書き込まれた前記仮想メモリの情報を書き戻すために前記第2のOS
に対して仮想メモリの情報の読み出しの要求を行う仮想ブロックデバイスを有し、
前記第2のOSは、前記仮想ブロックデバイスから書き込み及び読み出しの要求のあった
前記仮想メモリの情報を前記第2の記憶領域に書き込み及び前記第2の記憶領域から読み出する
ものであり、
前記第2の記憶領域は、前記第1の記憶領域と同一の前記メモリ上に設けられ、前記第1のOSの制限により直接使用不可能な領域である情報処理装置。
[
2]コンピュータを、
仮想メモリの機能を有する第1のOSにおいて、前記第1のOSが
一次記憶装置として使用する第1の記憶領域
中の情報のうち使用されない情報を仮想メモリの情報として前記第2のOSに対し
て書き込み
の要求を行うとともに、
書き込まれた前記仮想メモリの情報を書き戻すために前記第2のO
Sに対して
前記仮想メモリの情報の読み出しの要求を行う仮想ブロックデバイスとして機能させ、
前記第2のOSは、前記仮想ブロックデバイスから書き込み及び読み出しの要求のあった
前記仮想メモリの情報を、前記第2のOSが
一次記憶装置として使用する第2の記憶領域に書き込み及び前記第2の記憶領域から読み出しする
ものであり、
前記第2の記憶領域は、前記第1の記憶領域と同一の前記メモリ上に設けられ、前記第1のOSの制限により直接使用不可能な領域である情報処理プログラム。
【発明の効果】
【0008】
請求項1又は
2に係る発明によれば、複数のOSを動作させる構成において、仮想メモリの機能を有するOSが使用可能な二次記憶装置を有していない場合であっても、仮想メモリの機能を利用でき
、また、メモリ上の第1のOSの制限により直接使用不可能な領域を使用して、仮想メモリの機能を利用できる。
【発明を実施するための形態】
【0010】
[第1の実施の形態]
(情報処理装置の構成)
図1は、第1の実施の形態に係る情報処理装置の構成例を示すブロック図である。
【0011】
情報処理装置5は、各部を制御するとともに、各種のプログラムを実行する第1のCPU(Central Processing Unit)1と、第2のCPU2と、情報の書き込み及び読み出しが可能なRAM(Random Access Memory)等の揮発性の半導体メモリである記憶装置3とを備え、それぞれをシステムバスで接続した疎結合マルチプロセッサシステムである。
【0012】
情報処理装置5は、一例として、コピー、スキャン、プリント、FAX等の画像形成機能及びクラウド連携やウェブサービス等のネットワーク機能を有する装置であり、第1のCPU1及び第2のCPU2によって制御される図示しない光学走査機能部、印刷機能部、FAX機能部、通信部等を有する。
【0013】
第1のCPU1は、第2のOS2に比べてリアルタイム性の低い汎用OSである第1のOS1aとして機能する。汎用OSである第1のOS1aは、例えば、Linux(登録商標)であり、主にクラウド連携やウェブサービス等のネットワーク機能を実現する機能部を制御するために用いられる。
【0014】
また、第1のOS1aは、直接アクセス可能な一次記憶装置だけでなく、ブロックデバイスを介してアクセスする二次記憶装置を仮想的にメモリとして扱う仮想メモリの機能を有する。
【0015】
第2のCPU2は、リアルタイムOSである第2のOS2aとして機能する。リアルタイムOSである第2のOS2aは、例えば、ITRON(登録商標)やvxWorks(登録商標)であり、主にコピー、スキャン、プリント、FAX等の画像形成機能を実現する機能部を制御するために用いられる。なお、あるジョブの実行を要求された場合に当該ジョブを予め定められた時間以内で完了することをリアルタイム性といい、リアルタイムOSとは、リアルタイム性のあるOSをいう。
【0016】
なお、第1のOS1a及び第2のOS2aはそれぞれ図示しないROM等に格納されたプログラムが、それぞれ第1のCPU1及び第2のCPU2によって読み出されて実行されることで機能するものである。
【0017】
記憶装置3は、第1のOS1aが使用する第1の記憶領域31と、第2のOS2aが使用する第2の記憶領域32とを有し、第1のOS1aと第2のOS2aとが共有する記憶領域は有しないものとする。なお、記憶装置3は図中で単体を示しているが、複数であってもよく、第1の記憶領域31と第2の記憶領域32とをそれぞれ異なる記憶装置に設けてもよい。
【0018】
また、第1のOS1aは、第1の記憶領域31の情報をスワップアウトして書き込むことのできる仮想ブロックデバイス10を有する。仮想ブロックデバイス10に書き込まれた情報は後述するOS間通信手段11を介して第2のOS2aへ転送されて第2の記憶領域32に書き込まれる。また、第1のOS1aがスワップアウトした情報の書き戻し(スワップイン)を要求した場合は、第2の記憶領域32に書き込まれた情報はOS間通信手段11及び仮想ブロックデバイス10を介して第1の記憶領域31に書き込まれる。なお、仮想ブロックデバイス10は、例えば、デバイスファイルによって実現される。
【0019】
OS間通信手段11は、システムバスを介して第1のOS1aと第2のOS2aとの間の通信を制御する。なお、OS間の通信はメッセージの送受信によって行う。
【0020】
(情報処理装置の動作)
次に、本実施の形態の作用を、(1)基本動作、(2)スワップアウト動作、(3)スワップイン動作に分けて説明する。
【0021】
(1)基本動作
まず、第1のCPU1及び第2のCPU2は、要求を受け付けるとそれぞれ第1のOS1a及び第2のOS2aの機能に基づいて受け付けた要求を処理する。要求を処理する際、処理中の情報を第1の記憶領域31及び第2の記憶領域32に一時的に格納する。つまり、第1のCPU1及び第2のCPU2は、それぞれ第1の記憶領域31及び第2の記憶領域32を直接アクセス可能な一次記憶装置として利用する。
【0022】
第1のCPU1は、第1のOS1aが仮想メモリの機能を有しているため、第1の記憶領域31中の情報のうち当面の間使用されない情報を二次記憶装置に書き込む。以下、第2のOS2aが一次記憶装置として用いる第2の記憶領域32を、第1のOS1aが二次記憶装置として用いる際の動作について説明する。
【0023】
(2)スワップアウト動作
第1のOS1aは、スワップアウトする際、第1の記憶領域31の情報を仮想ブロックデバイス10に書き込む。
【0024】
仮想ブロックデバイス10は、書き込まれた情報を、OS間通信手段11を介して第2のOS2aへ転送する。
【0025】
第2のOS2aは、受信した情報を第2の記憶領域32に書き込む。
【0026】
これにより第1のOS1aは、仮想的にメモリ領域を拡大し、第1の記憶領域31に作られた空き領域に処理中の情報を格納することができる。
【0027】
(3)スワップイン動作
次に、第1のOS1aは、スワップアウトした第2の記憶領域32の情報を処理する段階になるとスワップインを仮想ブロックデバイス10に要求する。
【0028】
仮想ブロックデバイス10はOS間通信手段11を介して第2のOS2aにデータの読み出しを要求する。
【0029】
第2のOS2aは第2の記憶領域32の情報を読み出してOS間通信手段11を介して仮想ブロックデバイス10に送信する。
【0030】
仮想ブロックデバイス10は、受信した情報を第1の記憶領域31に書き込む。
【0031】
[第2の実施の形態]
第2の実施の形態は、第1のOS1aが32bitの仮想アドレス空間をサポートする場合について説明する。つまり、第1のOS1aは一次記憶装置のうち約3GBの記憶領域のみ利用可能であって、一次記憶装置が3GB以上の記憶容量を有していたとしても他の記憶領域を利用できない場合について説明する。
【0032】
(情報処理装置の構成)
図2は、第2の実施の形態に係る情報処理装置の構成例を示すブロック図である。
【0033】
情報処理装置5aは、第1のCPU1と、第2のCPU2と、記憶装置3aと、第2のOS2aが第2の記憶領域32aとして利用する記憶装置とを備え、それぞれをシステムバスで接続した疎結合マルチプロセッサシステムである。
【0034】
記憶装置3は、例えば、4GBの容量を有するRAMである。記憶装置3の記憶領域のうち、第1のOS1aが使用する第1の記憶領域31aは約3GBである。また、残りの1GBの第3の記憶領域32bは、第2のOS2aが使用可能とする。
【0035】
第2の記憶領域32aは、図中において記憶装置3と別構成とされているが同一の記憶装置内で別の記憶領域で用意されるものであってもよい。
【0036】
仮想ブロックデバイス10は、書き込まれた情報を、OS間通信手段11を介して第2のOS2aへ転送し、一例としてDMA(Direct Memory Access)によって、第2の記憶領域32aへのメモリコピーを伴わずに直接、第2の記憶領域32bに書き込む。また、第1のOS1aがスワップインを要求した場合は、第3の記憶領域32bに書き込まれた情報はOS間通信手段11及び仮想ブロックデバイス10を介して第1の記憶領域31aに書き込まれる。
【0037】
(情報処理装置の動作)
次に、本実施の形態の作用を、(1)基本動作、(2)スワップアウト動作、(3)スワップイン動作に分けて説明する。
【0038】
(1)基本動作
まず、第1のCPU1及び第2のCPU2は、要求を受け付けるとそれぞれ第1のOS1a及び第2のOS2aの機能に基づいて受け付けた要求を処理する。要求を処理する際、処理中の情報を第1の記憶領域31a及び第2の記憶領域32aに一時的に格納する。つまり、第1のCPU1及び第2のCPU2は、それぞれ第1の記憶領域31a及び第2の記憶領域32aを直接アクセス可能な一次記憶装置として利用する。
【0039】
第1のCPU1は、第1のOS1aが仮想メモリの機能を有しているため、第1の記憶領域31中の情報のうち当面の間使用されない情報を二次記憶装置に書き込む。以下、二次記憶装置として第2のOS2aが二次記憶装置として用いる第3の記憶領域32bを用いる際の動作について説明する。
【0040】
(2)スワップアウト動作
第1のOS1aは、スワップアウトする際、第1の記憶領域31aの情報を仮想ブロックデバイス10に書き込む。
【0041】
仮想ブロックデバイス10は、書き込まれた情報を、OS間通信手段11を介して第2のOS2aへ転送する。
【0042】
第2のOS2aは、受信した情報を第3の記憶領域32bに書き込む。
【0043】
これにより第1のOS1aは、仮想的にメモリ領域を拡大し、第1の記憶領域31aに作られた空き領域に処理中の情報を格納することができる。
【0044】
(3)スワップイン動作
次に、第1のOS1aは、スワップアウトした第3の記憶領域32bの情報を処理する段階になるとスワップインを仮想ブロックデバイス10に要求する。
【0045】
仮想ブロックデバイス10はOS間通信手段11を介して第2のOS2aにデータの読み出しを要求する。
【0046】
第2のOS2aは第3の記憶領域32bの情報を読み出してOS間通信手段11を介して仮想ブロックデバイス10に送信する。
【0047】
仮想ブロックデバイス10は、受信した情報を第1の記憶領域31aに書き込む。
【0048】
以上の動作により、第1のOS1aが記憶装置3aの記憶領域のうち、アクセスできない記憶領域である第3の記憶領域32bを仮想記憶領域として利用することができるようになる。
【0049】
また、記憶装置3aはRAMであるため、ハードディスク等を仮想メモリとして利用する場合と比較すると、OS間の通信を考慮しても処理が高速となる。
【0050】
[第3の実施の形態]
第3の実施の形態は、第2の実施の形態の構成に圧縮器を追加した場合について説明する。
【0051】
(情報処理装置の構成)
図3は、第3の実施の形態に係る情報処理装置の構成例を示すブロック図である。
【0052】
情報処理装置5bは、第1のCPU1と、第2のCPU2と、記憶装置3aと、第2のOS2aが第2の記憶領域32aとして利用する記憶装置とを備え、それぞれをシステムバスで接続した疎結合マルチプロセッサシステムである。
【0053】
また、情報処理装置5bは、情報のデータ量を圧縮する圧縮器21をさらに有し、圧縮器21は第2のOS2aが第3の記憶領域32bに書き込む情報を圧縮する。
【0054】
(情報処理装置の動作)
次に、本実施の形態の作用を、(1)スワップアウト動作、(2)スワップイン動作に分けて説明する。
【0055】
(1)スワップアウト動作
第1のOS1aは、スワップアウトする際、第1の記憶領域31aの情報を仮想ブロックデバイス10に書き込む。
【0056】
仮想ブロックデバイス10は、書き込まれた情報を、OS間通信手段11を介して第2のOS2aへ転送する。
【0057】
第2のOS2aは、受信した情報を圧縮器21で圧縮して第3の記憶領域32bに書き込む。
【0058】
(2)スワップイン動作
次に、第1のOS1aは、スワップアウトした第3の記憶領域32bの情報を処理する段階になるとスワップインを仮想ブロックデバイス10に要求する。
【0059】
仮想ブロックデバイス10はOS間通信手段11を介して第2のOS2aにデータの読み出しを要求する。
【0060】
第2のOS2aは第3の記憶領域32bの情報を読み出して解凍し、OS間通信手段11を介して仮想ブロックデバイス10に送信する。
【0061】
仮想ブロックデバイス10は、受信した情報を第1の記憶領域31aに書き込む。
【0062】
以上の動作により、第1のOS1aが記憶装置3aの記憶領域のうち、アクセスできない記憶領域である第3の記憶領域32bを仮想記憶領域として利用することができ、さらに圧縮器21によって圧縮したため仮想記憶領域により容量の大きい情報を格納することができるようになる。
【0063】
また、第3の記憶領域32bが第1のOS1aからアクセスできる領域であったとしても、上記動作により情報を圧縮することで、直接情報を格納する場合に比べてメモリの総使用量を抑えることができる。
【0064】
[他の実施の形態]
なお、本発明は、上記実施の形態に限定されず、本発明の趣旨を逸脱しない範囲で種々な変形が可能である。
【0065】
上記実施の形態で説明した上記動作の手順の入れ替え、削除、追加等は本発明の要旨を変更しない範囲内で可能である。