JP2005078419A - 情報処理装置及びファイル管理方法 - Google Patents

情報処理装置及びファイル管理方法 Download PDF

Info

Publication number
JP2005078419A
JP2005078419A JP2003308715A JP2003308715A JP2005078419A JP 2005078419 A JP2005078419 A JP 2005078419A JP 2003308715 A JP2003308715 A JP 2003308715A JP 2003308715 A JP2003308715 A JP 2003308715A JP 2005078419 A JP2005078419 A JP 2005078419A
Authority
JP
Japan
Prior art keywords
file
program
memory
read
file management
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.)
Pending
Application number
JP2003308715A
Other languages
English (en)
Inventor
Noriyuki Shioda
憲行 塩田
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2003308715A priority Critical patent/JP2005078419A/ja
Priority to US10/929,601 priority patent/US20050086450A1/en
Publication of JP2005078419A publication Critical patent/JP2005078419A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】 読み出し専用メモリ上のプログラムを仮想記憶機能を用いて実行するために必要な随時書き込み読み出しメモリの容量を削減できる情報処理装置及びファイル管理方法を提供することを目的とする。
【解決手段】 プログラムの実行に仮想記憶機能を用いる情報処理装置であって、読み出し専用メモリ3上のファイル31を管理するファイル管理機能と、ファイルに含まれるプログラムの読み出し専用メモリ3上の物理アドレスとプログラムの仮想アドレスとを対応付けたテーブルを生成するテーブル生成機能と、プログラムを実行するときに、プログラムの仮想アドレスに対応する読み出し専用メモリ3上の物理アドレスをテーブルから取得して、プログラムを読み出し専用メモリ3上で実行するプログラム実行機能とを有することにより上記課題を解決する。
【選択図】 図3

Description

本発明は、情報処理装置及びファイル管理方法に係り、特に仮想記憶機能を用いる情報処理装置及びその情報処理装置で利用するファイル管理方法に関する。
例えばパソコン等の情報処理装置では、プログラムやデータを格納するためにファイルという単位を用いる。また、情報処理装置ではファイルをディレクトリと呼ばれる場所に格納して管理している。なお、ファイルを格納するディレクトリは、ファイルと同じ扱いを受ける。したがって、ファイルとディレクトリとは再起的なツリー構造(階層構造)となる。図14(1)〜(3)のようなツリー構造のファイルの格納場所は、ファイルシステムと呼ばれる。
通常、ファイルシステムはハードディスク装置(以下、HDDという)等の外部記憶装置に格納されている。一台の外部記憶装置の容量には限界があるため、情報処理装置ではファイルシステム内のディレクトリに、他のファイルシステムを接続する機能を提供している。このような接続処理は、マウントと呼ばれる。また、他のファイルシステムを接続する接続先のディレクトリは、マウントポイントと呼ばれる。情報処理装置ではマウントを繰り返すことにより、ツリー構造を保持したまま図14(1)〜(3)のファイルシステムを図15のように拡張することができる。
ファイルシステムを利用する情報処理装置は、ファイルシステムのツリー構造の起点として一つのファイルシステムが予め設定されている。ツリー構造の起点として設定されているファイルシステムは、特にルートファイルシステムと呼ばれている。
ファイルシステムを構築する際に、複数のファイルシステムをマウントする場合、情報処理装置は起動処理の途中で各ファイルシステムをマウントするマウントポイントを指定する必要がある。起動処理の途中でユーザがマウントポイントを手入力で指定することは現実的でないため、情報処理装置は、予め用意されているファイルシステムとそのファイルシステムのマウントポイントとを記述した定義ファイルをルートファイルシステムに格納している。
情報処理装置は、起動処理の途中で定義ファイルをルートファイルシステムから読み出し、その定義ファイルに記述されているファイルシステムとそのファイルシステムのマウントポイントとの関係に基づき、マウントポイントにファイルシステムをマウントすることで図15のようにファイルシステム全体を構築している。
ところで、ファイルシステムを格納する外部記憶装置として一般的に使用されているHDDは、衝撃に弱い,消費電力が多い,外形寸法が大きい,寿命もそれほど長くない等の欠点があり、組込み型の情報処理装置での使用に不向きな特性を持っている。このようなHDDの特性のため、組込み型の情報処理装置ではファイルシステムを読み出し専用メモリ(以下、ROMという)に格納していることが多い。
ファイルシステムをHDD等の外部記憶装置に格納する場合、中央処理装置(以下、CPUという)は外部記憶装置内のデータを直接には読み出し又は書き込みすることができない。そこで、CPUは外部記憶装置内のデータが随時書き込み読み出しメモリ(以下、RAMという)にコピーされたあと、RAM上のデータを読み出し又は書き込みする。CPUにより書き込みがされたRAM上のデータは、外部記憶装置に書き戻される。また、外部記憶装置内のプログラムを実行する場合、少なくともCPUがアクセスするデータは外部記憶装置でなくRAM上に無ければならない。
一方、ファイルシステムをROMに格納する場合、従来の情報処理装置ではファイルシステムをHDD等の外部記憶装置に格納した場合に用いられている操作インターフェースとの互換性を重視して、ROM上のデータをRAMにコピーしてから実行することが多かった。
また、パソコン等の情報処理装置では、マルチプロセスを実現するオペレーティングシステム(以下、OSという)が、例えば仮想記憶機能を用いてアドレス管理を行い、各プロセスごとに別の仮想アドレス空間を提供する。仮想記憶機能では、他のプロセスのアクセスからメモリを保護するためにページングの手法を用いている。ページングとは、プロセスに提供した仮想アドレス空間と物理メモリのある物理メモリ空間とをプロセッサにより決められる所定サイズのページに区切り、仮想アドレス空間内のページと物理アドレス空間内のページとの対応関係を管理することで、仮想アドレスを物理アドレスに変換する手法をいう。
ページングの手法では、仮想アドレス空間のページと物理アドレス空間のページとの対応関係をページテーブルと呼ばれる変換表を用いて管理している。ページテーブルは、仮想アドレス空間を持つプロセスごとに必要となる。ページングの手法を用いる場合、全てのメモリアクセスに対して仮想アドレスを物理アドレスに変換するアドレス変換が必要となるため、実行速度の点からハードウェアによるサポートが必須であった。このアドレス変換は、プロセッサのメモリ管理部(以下、MMUという)により行われ、その対応がプロセッサごとに異なっている。
例えば一のプロセッサのMMUでは、制御レジスタにページテーブルの物理アドレスをセットしておくことにより、メモリアクセスを行うときに自動的にメモリ上にあるページテーブルを検索して物理アドレスへの変換を行う。この場合、プロセスを切り替えるときに別のページテーブルの物理アドレスが制御レジスタにセットされる。
また、他のプロセッサのMMUではページテーブルを自動的に検索することはなく、トランスレーション・ルックアサイド・バッファ(以下、TLBという)と呼ばれるプロセッサ内の変換テーブルのみを検索して物理アドレスへの変換を行う。この場合、メモリアクセスを行いたい仮想アドレス用のエントリがTLBにないときにTLB例外エラーが発生し、このTLB例外エラーのハンドラによりソフトウェア的にページテーブルが検索される。そして、その検索結果に基づくエントリがTLBに追加される。
さらに、デマンドページングと呼ばれる手法を用いるMMUでは、プロセスの実行に必要なデータを含むページのみをファイルシステムから読み出して物理メモリに書き込んだあと、ページテーブルを書き換えることによって、物理メモリをプロセスの仮想アドレスにマップする。
特許文献1には、ファイルシステムをROMに格納した場合の技術内容が開示されている。また、特許文献2には、仮想記憶機能に関する技術内容が開示されている。
特開2002−259190号公報 特開平7−160583号公報
組込み型の情報処理装置では、ファイルシステムをHDD等の外部記憶装置でなくROMに格納していることが多い。図16に示すように、CPUはRAMの場合と同様、ROMの物理アドレス空間を確認できるので、ROM上のプログラムを直接実行することもできる。しかしながら、従来の情報処理装置ではファイルシステムをROMに格納する場合であっても、ファイルシステムを外部記憶装置に格納した場合に用いられている操作インターフェースとの互換性を重視して、ROM上のプログラムをRAMにコピーしてから実行することが多かった。
したがって、従来の情報処理装置ではファイルシステムをROMに格納している場合であってもROM上のプログラムをRAM上にコピーしてから実行するため、ROM上のプログラムを直接実行する場合と比べて、プログラムのサイズだけ余分にRAMの容量が必要であった。この結果、従来の情報処理装置ではファイルシステムをROMに格納している場合であってもRAMの容量を削減することができないという問題があった。
本発明は、上記の点に鑑みなされたもので、読み出し専用メモリ上のプログラムを仮想記憶機能を用いて実行するために必要な随時書き込み読み出しメモリの容量を削減できる情報処理装置及びファイル管理方法を提供することを目的とする。
そこで、上記課題を解決するため、本発明は、プログラムの実行に仮想記憶機能を用いる情報処理装置であって、読み出し専用メモリ上のファイルを管理するファイル管理機能と、前記ファイルに含まれるプログラムの読み出し専用メモリ上の物理アドレスと前記プログラムの仮想アドレスとを対応付けたテーブルを生成するテーブル生成機能と、前記プログラムを実行するときに、前記プログラムの仮想アドレスに対応する読み出し専用メモリ上の物理アドレスを前記テーブルから取得して、前記プログラムを読み出し専用メモリ上で実行するプログラム実行機能とを有することを特徴とする。
また、本発明は、プログラムの実行に仮想記憶機能を用いる情報処理装置のファイル管理方法であって、読み出し専用メモリ上のファイルに含まれるプログラムの読み出し専用メモリ上の物理アドレスと前記プログラムの仮想アドレスとを対応付けたテーブルを生成するテーブル生成段階と、前記プログラムの仮想アドレスに対応する読み出し専用メモリ上の物理アドレスを前記テーブルから取得して、前記プログラムを読み出し専用メモリ上で実行するプログラム実行段階とを有することを特徴とする。
本発明では、プログラムの読み出し専用メモリ上の物理アドレスとプログラムの仮想アドレスとを対応付けたテーブルを生成し、プログラムの仮想アドレスに対応する読み出し専用メモリ上の物理アドレスをテーブルから取得して、プログラムを読み出し専用メモリ上で実行することにより、外部記憶装置に格納したプログラムを実行する場合の操作インターフェースとの互換性を保ったまま、読み出し専用メモリから随時書き込み読み出しメモリに複写されるプログラムのサイズを減少させることができる。この結果、随時書き込み読み出しメモリの容量を削減できる。
本発明によれば、読み出し専用メモリ上のプログラムを仮想記憶機能を用いて実行するために必要な随時書き込み読み出しメモリの容量を削減できる。
次に、本発明を実施するための最良の形態を、以下の実施例に基づき図面を参照しつつ説明していく。
図1は、本発明の情報処理装置の一例のハードウェア構成図である。図1の情報処理装置は、CPU1,RAM2,ROM3,HDD4が、バス5を介して接続されている。なお、図1の情報処理装置は最低限必要と思われる構成を表しているが、キーボードやマウス等の入力装置やディスプレイ等の表示装置を含む構成であってもよい。また、バス5は単純なバスであってもよいし、バスブリッジを介した構成のバスであってもよい。
図2は、HDDをファイルシステムの格納場所として使用した場合のプログラム起動時の状態について説明する一例の図である。HDD4には、ファイルシステム(以下、HDDファイルシステムという)が格納されている。HDDファイルシステム上のファイル15をプログラムとして起動すると、そのプログラムを実行する環境(以下、プロセスという)が作成される。プロセスには、プロセス毎に異なる仮想アドレス空間10が割り当てられる。
仮想アドレス空間10の指定アドレスには、プログラムのコード領域11,データ領域12,初期化データ領域13及びスタック領域14が仮想的にマップされる。仮想的なマップとは、実際に物理メモリを割り当てるのではなく、仮想アドレス空間の仮想アドレスにCPU1がアクセスした時点で、実際のデータを保持する物理メモリを割り当てるように設定することを言う。
なお、コード領域11はプログラムの実行コードが格納される領域である。データ領域12は、初期値を持ったデータが格納される領域である。初期化データ領域13は、0に初期化されているデータが格納される領域である。スタック領域14は、プログラムの実行時にスタックとして使用される領域である。
仮想アドレス空間10にコード領域11が仮想的にマップされている状態でCPU1がコード領域11をアクセスすると、ページ例外が発生し、ページ例外ハンドラが起動される。ページ例外ハンドラは、アクセスされた仮想アドレスに対応するプログラムのコードをページ単位でHDDファイルシステム上のコード領域17から読み出して、別に確保したRAM2上のコード領域19に書き込む。
更に、ページ例外ハンドラはRAM2の物理アドレスと仮想アドレス空間10の仮想アドレスとの対応をページテーブルにセットし、ページ例外処理を終了する。ページ例外処理が成された後、CPU1は実行を再開し、コード領域11をアクセスすることで、アクセスされた仮想アドレスに対応する物理アドレスからプログラムのコードを読み出し、そのコードを実行する。
なお、初期化データ領域13及びスタック領域14には、RAM2が仮想的にマップされている。この初期化データ領域13及びスタック領域14へのCPU1のアクセスがあると、ページ例外ハンドラによりページ単位でRAM2が割り当てられる。
図2はHDD4をファイルシステムの格納場所として使用した場合の例であるが、ファイルシステムの格納場所としてROM3を使用すると、RAM2に書き込むことなくROM3の物理アドレスからプログラムのコードを読み出すことができる。そこで、本発明ではページ例外ハンドラの処理を後述するように変更することで、HDDファイルシステム上のプログラムを実行する場合の操作インターフェースとの互換性を保ったまま、ROM3上のプログラムを実行する。
図3は、ROMをファイルシステムの格納場所として使用した場合のプログラム起動時の状態について説明する第1実施例の図である。ROM3には、ファイルシステム(以下、ROMファイルシステムという)が格納されている。ROMファイルシステム上のファイル31をプログラムとして起動すると、そのプログラム用のプロセスが作成される。プロセスには、プロセス毎に異なる仮想アドレス空間10が割り当てられる。
仮想アドレス空間10の指定アドレスには、図2の場合と同様に、プログラムのコード領域11,データ領域12,初期化データ領域13及びスタック領域14が仮想的にマップされる。なお、コード領域11には、ROMファイルシステム上のコード領域33が仮想的にマップされる。データ領域12には、ROMファイルシステム上のデータ領域34が仮想的にマップされる。
仮想アドレス空間10にコード領域11が仮想的にマップされている状態でCPU1がコード領域11にアクセスすると、ページ例外が発生し、ページ例外ハンドラが起動される。ページ例外ハンドラは、ROMファイルシステム上のコード領域33のうち、CPU1によりアクセスされた仮想アドレスに対応する部分の物理アドレスを求める。
更に、ページ例外ハンドラはROM3の物理アドレスと仮想アドレス空間10の仮想アドレスとの対応をページテーブルにセットし、ページ例外処理を終了する。ページ例外処理が成された後、CPU1は処理を再開し、コード領域11をアクセスすることで、アクセスされた仮想アドレスに対応するROM3上の物理アドレスからプログラムのコードを読み出し、そのコードを実行する。
なお、CPU1がデータ領域12にアクセスした場合は、コード領域11にアクセスした場合と同様、ページ例外ハンドラによりページテーブルの内容が変更され、アクセスされた仮想アドレスに対応するROM3上の物理アドレスへの直接アクセスが行われる。
図3の実施例では、データ領域12のデータの内容を書き換えることができないという制約がつくことになるが、ROM3上のコード領域33,データ領域34をRAM2上にコピーして実行する場合と比べて、RAM2のメモリ容量を大幅に削減できる。
図4は、ROMをファイルシステムの格納場所として使用した場合のプログラム起動時の状態について説明する第2実施例の図である。ROM3には、ROMファイルシステムが格納されている。ROMファイルシステム上のファイル31をプログラムとして起動すると、そのプログラム用のプロセスが作成される。プロセスには、プロセス毎に異なる仮想アドレス空間10が割り当てられる。
仮想アドレス空間10の指定アドレスには、図2の場合と同様に、プログラムのコード領域11,データ領域12,初期化データ領域13及びスタック領域14が仮想的にマップされる。なお、コード領域11には、ROMファイルシステム上のコード領域33が仮想的にマップされる。また、データ領域12には、ROMファイルシステム上のデータ領域34をコピーしたRAM上のデータ領域41が、ページテーブルに最初からセットされる形で直接的にマップされる。
この状態でCPU1がコード領域11にアクセスする場合の処理は、図3と同様であるため説明を省略する。一方、CPU1がデータ領域12にアクセスする場合の処理は、図3と異なる。CPU1は、アクセスしたデータ領域12の仮想アドレスに対応するRAM2の物理アドレスをページテーブルから取得し、ROMファイルシステム上のデータ領域34をコピーしたRAM2上のデータ領域41に直接アクセスする。
図4の実施例では、データ領域34へのアクセスにデータ領域34のサイズと同じだけのRAM2のメモリ容量を必要とするという制約がつくことになるが、データ領域34のデータの内容を書き換えることができ、ROM3上のコード領域33,データ領域34をRAM2上にコピーして実行する場合と比べて、RAM2のメモリ容量を削減できる。
図5は、ROMをファイルシステムの格納場所として使用した場合のプログラム起動時の状態について説明する第3実施例の図である。ROM3には、ROMファイルシステムが格納されている。ROMファイルシステム上のファイル31をプログラムとして起動すると、そのプログラム用のプロセスが作成される。プロセスには、プロセス毎に異なる仮想アドレス空間10が割り当てられる。
仮想アドレス空間10の指定アドレスには、図2の場合と同様に、プログラムのコード領域11,データ領域12,初期化データ領域13及びスタック領域14が仮想的にマップされる。なお、コード領域11には、ROMファイルシステム上のコード領域33が仮想的にマップされる。データ領域12には、ROMファイルシステム上のデータ領域34が仮想的にマップされる。
この状態でCPU1がコード領域11にアクセスする場合の処理は、図3と同様であるため説明を省略する。一方、CPU1がデータ領域12にアクセスすると、図3と同様にページ例外が発生し、ページ例外ハンドラが起動されるが、このページ例外ハンドラの処理が図3の場合と異なる。
まず、CPU1がデータ領域12から読み出す処理をした場合について説明する。CPU1がデータ領域12からデータを読み出す処理をした場合、ページ例外ハンドラはROMファイルシステム上のデータ領域34のうち、CPU1によりアクセスされた仮想アドレスに対応する部分の物理アドレスを求める。
更に、ページ例外ハンドラはROM3の物理アドレスと仮想アドレス空間10の仮想アドレスとの対応をページテーブルにセットし、ページ例外処理を終了する。ページ例外処理が成された後、CPU1は処理を再開し、データ領域12をアクセスすることで、アクセスされた仮想アドレスに対応するROM3上の物理アドレスに直接アクセスしてデータを読み出す。
次に、CPU1がデータ領域12に書き込む処理をした場合について説明する。CPU1がデータ領域12にデータを書き込む処理をした場合、ページ例外ハンドラはRAM2上の領域を1ページ分確保する。次に、ページ例外ハンドラはアクセスされた仮想アドレスに対応するデータをページ単位でROMファイルシステム上のデータ領域34から読み出して、確保したRAM2上の領域に書き込む。
例えばCPU1がアクセスした仮想アドレスがデータ領域12のデータA12aであったとすると、ページ例外ハンドラはデータ領域12のデータA12aに対応するデータA34aをページ単位でROMファイルシステム上のデータ領域34から読み出して、確保したRAM2上の領域51aに書き込む。
更に、ページ例外ハンドラはデータAが書き込まれた領域51aの物理アドレスと仮想アドレス空間10の仮想アドレスとの対応をページテーブルにセットし、ページ例外処理を終了する。
この状態でデータ領域12のデータA12aにアクセスすると、CPU1はデータA12aの仮想アドレスに対応するRAM2の物理アドレスをページテーブルから取得し、ROMファイルシステム上のデータA34aをコピーしたRAM2上のデータAにアクセスする。CPU1がアクセスした仮想アドレスがデータ領域12のデータB12bであった場合は、CPU1がアクセスした仮想アドレスがデータ領域12のデータA12aであった場合と同様であるので説明を省略する。この後、CPU1がデータA12aからの読み出しを行った場合には、ROM3上のデータA34aでなく、ページテーブルによりマップされている領域51aのデータAが読み出される。
図5で説明した処理は、「copy on write」として知られている。「copy on write」は、従来、複数のプロセスにより共有されたデータを書き換える際に適用されていた。図5の実施例では、「copy on write」を書き換え不可能なROMファイルシステム上のファイルに応用したものである。
図5の実施例では、プログラムの実行時に書き換え指示のあった部分をページ単位でRAM2上にコピーする為、データ領域34のデータの内容をRAM2上で書き換えることができ、ROM3上のコード領域33,データ領域34をRAM2上にコピーして実行する場合と比べて、RAM2のメモリ容量を削減できる。
以下、上述した図3〜図5の第1〜第3実施例を実現するカーネルの構成および処理について説明していく。図6は、第1〜第3実施例を実現するカーネルの一実施例の構成図である。なお、図6のユーザプロセス61及びカーネル100は、本発明の情報処理装置により起動される。
ユーザプロセス61は、HDDファイルシステムやROMファイルシステム上のファイルをプログラムとして起動することで作成されたプロセスである。カーネル100は、例えばUNIX(登録商標)などのOSの中核部分である。
図6のカーネル100は、プロセス管理部110,仮想記憶処理部120,ファイルシステム130,ドライバ140を含むように構成される。プロセス管理部110は、exec()処理部111を含む。また、仮想記憶処理部120はvmmap121,ページテーブル122,vmmap処理部123,ページ例外処理部124を含む。また、ファイルシステム130はVFS/VNODEインターフェース131,ROMFS132,FFS133,NFS134,FAT135,ISO9660 136を含む。また、ドライバ140はHDDドライバ141,ネットワークドライバ142,CD−ROMドライバ143などを含む。
仮想記憶処理部120のvmmap121は、プロセスの仮想アドレス空間がどのように使用されているかを保存している。ページテーブル122は、プロセスの仮想アドレスと物理アドレスとの対応を管理している。なお、ページテーブル122はCPU1から直接参照される場合もある。また、プロセスごとに仮想アドレス空間の構成や、仮想アドレスと物理アドレスとの対応が異なっているため、vmmap121及びページテーブル122はプロセスごとに管理されている。
ファイルシステム130のROMFS132は、ROM3を使用する読み出し専用のROMファイルシステムである。FFS133は、HDD4を使用する読み出し書き込み可能なファーストファイルシステムである。なお、本実施例ではファーストファイルシステムをHDDファイルシステムと呼んでいる。また、NFS134はネットワークを介した別の機器上のファイルにアクセス可能なネットワークファイルシステムである。FAT135及びISO9660 136も、ファイルシステムの一例である。
次に、本発明の理解を容易とする為、HDDファイルシステム上のファイルを実行するときのカーネルの処理について図7を参照しつつ説明する。図7は、HDDファイルシステム上のファイルを実行するときにカーネルが行う処理の一例のシーケンス図である。
ステップS1では、ユーザプロセス61が、例えばHDDファイルシステム上のファイル15を指定してexec()を実行する。ユーザプロセス61からexec()を受信するとステップS2に進み、プロセス管理部110のexec()処理部111はexec()で指定されているファイル15のヘッダ16を読み込み、コードおよびデータをどの仮想アドレスにマップするかを決定する。exec()処理部111は、決定した内容をvmmap処理部123に送信する。
ステップS3に進み、vmmap処理部123はファイル名,オフセットからなるファイル情報とマップすべき仮想アドレスとを、ユーザプロセス61のvmmap121に登録する。ステップS4に進み、exec()処理部111はコードのスタートアドレスからの命令実行を指示する。
ステップS5に進み、ユーザプロセス61はコードのスタートアドレスに基づき、最初の命令を実行しようとするが、ページテーブル122に該当するエントリがセットされていないため、ページ例外が発生する。ページ例外が発生すると、ページ例外ハンドラとしてのページ例外処理部124はステップS6に進み、RAM2上にコード領域19を確保する。
ページ例外処理部124は、vmmap121に登録されているファイル情報に基づきファイル名およびオフセットを指定し、ファイルシステム130にデータの読み出しを依頼する。ステップS7に進み、ファイルシステム130はページ例外処理部124からの依頼に基づき、各ファイルシステムに共通のgetpage()処理を行う。ファイルシステム130は指定されたファイルからデータを読み出し、RAM2上に確保したコード領域19にデータを書き込む。
ステップS9に進み、ページ例外処理部124はデータが書き込まれたRAM2の物理アドレスをユーザプロセス61の仮想アドレスにマップするため、ユーザプロセス61のページテーブル122にRAM2の物理アドレスと仮想アドレス空間10の仮想アドレスとの対応を表すエントリを追加し、ページ例外処理を終了する。
ページ例外から復帰すると、ユーザプロセス61はステップS10に進み、コードのスタートアドレスに基づき、最初の命令を実行する。このとき、ページテーブル122に該当するエントリがセットされているため、ページ例外は発生しない。このような処理の繰り返しにより、ユーザプロセス61が実行される。
次に、ROMファイルシステム上のファイルを実行するときのカーネルの処理について図8を参照しつつ説明する。図8は、ROMファイルシステム上のファイルを実行するときにカーネルが行う処理の一例のシーケンス図である。
ステップS11では、ユーザプロセス61が、例えばROMファイルシステム上のファイル31を指定してexec()を実行する。ユーザプロセス61からexec()を受信するとステップS12に進み、プロセス管理部110のexec()処理部111はexec()で指定されているファイル31のヘッダ32を読み込み、コードおよびデータをどの仮想アドレスにマップするかを決定する。exec()処理部111は、決定した内容をvmmap処理部123に送信する。
ステップS13に進み、vmmap処理部123はファイル名,オフセットからなるファイル情報とマップすべき仮想アドレスとを、ユーザプロセス61のvmmap121に登録する。ステップS14に進み、exec()処理部111はコードのスタートアドレスからの命令実行を指示する。
ステップS15に進み、ユーザプロセス61はコードのスタートアドレスに基づき、最初の命令を実行しようとするが、ページテーブル122に該当するエントリがセットされていないため、ページ例外が発生する。ページ例外が発生すると、ページ例外処理部124はステップS16に進み、該当するファイルがROMファイルシステム上か他のファイルシステム上かを後述するように判断して処理を切り分ける。ここでは、該当するファイルがROMファイルシステム上と判断した場合の処理について説明する。
該当するファイルがROMファイルシステム上にあると判断した場合、ページ例外処理部124は、vmmap121に登録されているファイル情報に基づきファイル名およびオフセットを指定し、該当するファイルのROM3上の物理アドレスをファイルシステム130に要求する。
ステップS17に進み、ファイルシステム130はページ例外処理部124からの要求に基づき、指定されたファイルのROM3上の物理アドレスを計算する。ステップS18に進み、ページ例外処理部124は計算したROM3上の物理アドレスをユーザプロセス61の仮想アドレスにマップするため、ユーザプロセス61のページテーブル122にROM3の物理アドレスと仮想アドレス空間10の仮想アドレスとの対応を表すエントリを追加し、ページ例外処理を終了する。
ページ例外から復帰すると、ユーザプロセス61はステップS19に進み、コードのスタートアドレスに基づき、最初の命令を実行する。このとき、ページテーブル122に該当するエントリがセットされているため、ページ例外は発生しない。このような処理の繰り返しにより、ユーザプロセス61が実行される。
図8のシーケンス図では、ページ例外処理部124でRAM2上に新たな領域を確保する必要がないため、図7のシーケンス図の処理と比べてRAM2のメモリ容量を大幅に削減できる。
更に、ROMファイルシステム上のファイルを実行するときのカーネルの処理について図9を参照しつつ説明する。図9は、ROMファイルシステム上のファイルを実行するときにカーネルが行う処理の他の一例のシーケンス図である。
ステップS21では、ユーザプロセス61が、例えばROMファイルシステム上のファイル31を指定してexec()を実行する。ユーザプロセス61からexec()を受信するとステップS22に進み、プロセス管理部110のexec()処理部111はexec()で指定されているファイル31のヘッダ32を読み込み、コードおよびデータをどの仮想アドレスにマップするかを決定する。exec()処理部111は、決定した内容をvmmap処理部123に送信する。
ステップS23に進み、vmmap処理部123はファイル名,オフセットからなるファイル情報とマップすべき仮想アドレスとを、ユーザプロセス61のvmmap121に登録する。ステップS24に進み、exec()処理部111はコードのスタートアドレスからの命令実行を指示する。
ステップS25に進み、ユーザプロセス61はコードのスタートアドレスに基づき、最初の命令を実行しようとするが、ページテーブル122に該当するエントリがセットされていないため、ページ例外が発生する。ページ例外が発生すると、ページ例外処理部124はステップS26に進み、該当するファイルがROMファイルシステム上か他のファイルシステム上かを後述するように判断して処理を切り分ける。ここでは、該当するファイルがROMファイルシステム上と判断した場合の処理について説明する。
該当するファイルがROMファイルシステム上にあると判断した場合、ページ例外処理部124は、vmmap121に登録されているファイル情報に基づきファイル名およびオフセットを指定し、該当するファイルのROM3上の物理アドレスをファイルシステム130に要求する。
ステップS27に進み、ファイルシステム130はページ例外処理部124からの要求に基づき、指定されたファイルのROM3上の物理アドレスを計算する。ステップS28に進み、ページ例外処理部124は計算したROM3上の物理アドレスをユーザプロセス61の仮想アドレスにマップするため、ユーザプロセス61のページテーブル122にROM3の物理アドレスと仮想アドレス空間10の仮想アドレスとの対応を表すエントリを追加し、ページ例外処理を終了する。
ページ例外から復帰すると、ユーザプロセス61はステップS29に進み、コードのスタートアドレスに基づき、最初の命令を実行する。このとき、ページテーブル122に該当するエントリがセットされているため、ページ例外は発生しない。
ステップS30に進み、ユーザプロセス61は新しいページへのデータの書き込みを実行しようとする。このとき、ページテーブル122に該当するエントリがセットされていないため、ページ例外が発生する。ページ例外が発生すると、ページ例外処理部124はステップS31に進み、RAM2上に例えばデータ領域51aを確保する。
ページ例外処理部124は、vmmap121に登録されているファイル情報に基づきファイル名およびオフセットを指定し、ファイルシステム130にデータの読み出しを依頼する。ステップS32に進み、ファイルシステム130はページ例外処理部124からの依頼に基づき指定されたファイルのROM3上の物理アドレスを計算する。そして、ファイルシステム130は計算されたROM3上の物理アドレスからデータを読み出し、RAM2上に確保した例えばデータ領域51aにデータを書き込む。
ステップS33に進み、ページ例外処理部124はデータが書き込まれたRAM2の物理アドレスをユーザプロセス61の仮想アドレスにマップするため、ユーザプロセス61のページテーブル122にRAM2の物理アドレスと仮想アドレス空間10の仮想アドレスとの対応を表すエントリを追加し、ページ例外処理を終了する。
ページ例外から復帰すると、ユーザプロセス61はステップS34に進み、データの書き込みを実行する。このとき、ページテーブル122に該当するエントリがセットされているため、ページ例外は発生しない。
ステップS35に進み、ユーザプロセス61は新しいページからのデータの読み出しを実行しようとする。このとき、ページテーブル122に該当するエントリがセットされていないため、ページ例外が発生する。ページ例外が発生すると、ページ例外処理部124はステップS36に進み、該当するファイルがROMファイルシステム上か他のファイルシステム上かを後述するように判断して処理を切り分ける。ここでは、該当するファイルがROMファイルシステム上と判断した場合の処理について説明する。
該当するファイルがROMファイルシステム上にあると判断した場合、ページ例外処理部124は、vmmap121に登録されているファイル情報に基づきファイル名およびオフセットを指定し、該当するファイルのROM3上の物理アドレスをファイルシステム130に要求する。
ステップS37に進み、ファイルシステム130はページ例外処理部124からの要求に基づき、指定されたファイルのROM3上の物理アドレスを計算する。ステップS38に進み、ページ例外処理部124は計算したROM3上の物理アドレスをユーザプロセス61の仮想アドレスにマップするため、ユーザプロセス61のページテーブル122にROM3の物理アドレスと仮想アドレス空間10の仮想アドレスとの対応を表すエントリを追加し、ページ例外処理を終了する。
ページ例外から復帰すると、ユーザプロセス61はステップS39に進み、データの読み出しを実行する。このとき、ページテーブル122に該当するエントリがセットされているため、ページ例外は発生しない。
図9のシーケンス図では、ページ例外処理部124で書き込み要求のあった領域をROM3上からRAM2上にコピーするため、その領域のデータの内容を書き換えることができると共に、図7のシーケンス図の処理と比べてRAM2のメモリ容量を削減することができる。なお、図4の実施例はROM3上のデータ領域34について、図9のシーケンスのステップS31〜S33の処理をプログラムの起動時に行った例である。
次に、ページ例外処理部124で行われる該当するファイルがROMファイルシステム上か他のファイルシステム上かを判断する処理について説明する。カーネル100の内部では、ファイルおよびファイルと同じ扱いを受けるディレクトリ(以下、ファイルと総称する)がvnodeによって管理されている。1つのvnodeは、1個のファイルに対応して作成される。なお、vnodeは対応するファイルが使用されなくなった後、所定期間経過後に捨てられる。
vnodeには、ファイルを使用するためにカーネル100が必要とする各種情報が保存されている。図10は、vnodeについて説明するための一例の構造図である。図10のvnodeは、ファイルを操作するために必要な各ファイルシステムに共通の情報150,ファイルがどのファイルシステムに属しているかを表すファイルシステムのタイプ151,ファイルを操作するためのファイル操作関数群152,ファイルが属するファイルシステム依存の情報153を含むように構成される。vnodeに関する情報は、例えばファイルシステム130が保持している。
したがって、ページ例外処理部124で行われる該当するファイルがROMファイルシステム上か他のファイルシステム上かを判断する処理は、該当するファイルのvnodeを検索し、vnodeのファイルシステムのタイプ151を参照することで行うことができる。
次に、exec()処理部111で指定されたファイルのvnodeを作成する処理の詳細について説明する。まず、第1の処理では、ファイル名を辿るためのvnodeを獲得し、そのvnodeを現在のvnodeとする。例えばフルパスで指定されたファイルの場合、システムのルートディレクトリのvnodeを獲得する。また、相対パスで指定されたファイルの場合、カレントディレクトリのvnodeを獲得する。
第2の処理では、ファイル名に次のコンポーネント(/と/との間の名前)がない場合に、現在のvnodeを求めるファイルに対するvnodeと判断する。次のコンポーネントがあれば、第3の処理に進み、ファイル名の次のコンポーネントを現在のvnodeのディレクトリから読み出し、そのファイルに対応するvnodeを作成または検索して現在のvnodeとする。
そして、第4の処理に進み、現在のvnodeの上に別のファイルシステムがマウントされていないか否かを確認する。別のファイルシステムがマウントされている場合は、図11のようなマウントテーブルからマウント先のファイルシステムのルートvnodeを獲得し、現在のvnodeとする。第4の処理の後、第2の処理に戻り処理を続ける。
カーネル100の内部では、マウントテーブルにより各ファイルシステムがどのディレクトリにマウントされているかが管理されている。マウント処理時に、マウント元のディレクトリのvnodeとマウント先のファイルシステムのルートvnodeとが図11のようなマウントテーブルに登録される。
図11は、マウントテーブルについて説明するための一例の構造図である。図11のマウントテーブルは、ファイルシステムを操作するためのファイルシステム操作関数群160,マウント元のディレクトリのvnode161,マウント先のルートvnode162,マウント先およびファイルシステムから独立した内部情報163,ファイルシステム依存の内部情報164を含むように構成される。
上記の第1の処理から第5の処理により求めたvnodeは、プロセスごとの情報を保存するプロセス構造体に保存される。exec()処理部111では、vnodeに保存されているファイル操作関数群152の中のファイル読み出し関数を用いてファイルのヘッダを読み出す。実行ファイルのヘッダにはコード領域,データ領域に関するファイル上のオフセットと長さが格納されている。また、実行ファイルのヘッダにはコード領域およびデータ領域をプロセスの仮想アドレス空間上のどこにマップすればよいかという情報も格納されている。
vmmap121には、vnode,開始オフセット,サイズ,仮想アドレス,仮想アドレスのサイズ,仮想アドレスマップの保護情報の組がコード,データ及びスタック領域に対してそれぞれ登録されている。
次に、前述したデータの読み出し時のページ例外処理について詳細に説明する。ページ例外が発生すると、ページ例外処理部124はCPU1の制御レジスタからページ例外の発生した仮想アドレスを取得する。次に、ページ例外処理部124は現在実行中のプロセスのvmmap121からページ例外が発生した仮想アドレスを検索し、vmmap121に登録されている値を取得する。
ページ例外処理部124は、vmmap121から取得したvnodeが有効なら、そのvnodeからファイルシステムのタイプを取得する。ファイルシステムのタイプがromfsであった場合、その領域の先頭からのオフセットとvnodeを指定してファイルシステム操作関数のget_addr()を呼び出す。romfsファイルシステムのget_addr()では、指定されたvnode上のオフセットに対するROM上の物理アドレスを計算してページ例外処理部124に返す。ページ例外処理部124は、プロセスのページテーブルエントリの例外が起こったページテーブルエントリに、返された物理アドレスを書き込み禁止属性を付けてセットした後、ページ例外から復帰する。
ファイルシステムのタイプがromfs以外であった場合、RAM2上に1ページ分の物理メモリ領域を確保し、その領域の先頭からのオフセットとvnodeを指定してファイルシステム操作関数のget_page()を呼び出す。romfsファイルシステムのget_page()では、デバイスから1ページ分のデータを読み出し、確保した物理メモリ領域に書き込む。ページ例外処理部124は、プロセスのページテーブルエントリの例外が起こったページテーブルエントリに、データを書き込んだページの物理アドレスを書き込み禁止属性を付けてセットした後、ページ例外から復帰する。
次に、前述したデータの書き込み時のページ例外処理について詳細に説明する。ページ例外が発生すると、ページ例外処理部124はCPU1の制御レジスタからページ例外の発生した仮想アドレスを取得する。次に、ページ例外処理部124は現在実行中のプロセスのvmmap121からページ例外が発生した仮想アドレスを検索し、vmmap121に登録されている値を取得する。
ページ例外処理部124は、vmmap121から取得したvnodeが有効なら、そのvnodeからファイルシステムのタイプを取得する。RAM2上に1ページ分の物理メモリ領域を確保し、その領域の先頭からのオフセットとvnodeを指定してファイルシステム操作関数のget_page()を呼び出す。romfsファイルシステムのget_page()では、デバイスから1ページ分のデータを読み出し、確保した物理メモリ領域に書き込む。ページ例外処理部124は、プロセスのページテーブルエントリの例外が起こったページテーブルエントリに、データを書き込んだページの物理アドレスを書き込み可能属性を付けてセットした後、ページ例外から復帰する。
本発明のファイル管理方法は、例えば図12及び図13の融合機に適用できる。図12は、本発明による融合機の一実施例の構成図である。融合機とは、プリンタ,コピー,ファクシミリおよびスキャナなどの各装置の機能を1つの筐体内に収納した画像処理装置のことである。
融合機201は、ソフトウェア群202と,融合機起動部203と,ハードウェア資源204とを含むように構成される。融合機起動部203は融合機1の電源投入時に最初に実行され、アプリケーション層205およびプラットフォーム206を起動する。例えば融合機起動部203は、アプリケーション層205およびプラットフォーム206のプログラムをHDDなどから読み出し、読み出した各プログラムをメモリ領域に転送して起動する。
ハードウェア資源204は、スキャナ211と,プロッタ212と,ファクシミリなどのその他のハードウェアリソース213とを含む。また、ソフトウェア群202は、UNIX(登録商標)などのOS上に起動されているアプリケーション層205とプラットフォーム206とを含む。
アプリケーション層205は、プリンタ,コピー,ファックスおよびスキャナなどの画像形成にかかるユーザサービスにそれぞれ固有の処理を行うプログラムを含む。アプリケーション層205は、プリンタアプリ221と,コピーアプリ222と,ファックスアプリ223と,スキャナアプリ224と,ネットファイルアプリ225とを含む。なお、ネットファイルアプリ225はネットワークファイル用アプリケーションであり、融合機201にネットワークを介して接続されるネットワーク機器とのデータ通信を管理するものである。
また、プラットフォーム206は、アプリケーション層205からの処理要求を解釈してハードウェア資源204の獲得要求を発生するコントロールサービス層209と、1つ以上のハードウェア資源204の管理を行ってコントロールサービス層209からの獲得要求を調停するシステムリソースマネージャ(以下、SRMという)239と、SRM239からの獲得要求に応じてハードウェア資源204の管理を行うハンドラ層210とを含む。
コントロールサービス層209は、ネットワークコントロールサービス(以下、NCSという)231,デリバリーコントロールサービス(以下、DCSという)232,オペレーションパネルコントロールサービス(以下、OCSという)233,ファックスコントロールサービス(以下、FCSという)234,エンジンコントロールサービス(以下、ECSという)235,メモリコントロールサービス(以下、MCSという)236,ユーザインフォメーションコントロールサービス(以下、UCSという)237,システムコントロールサービス(以下、SCSという)238など、一つ以上のサービスモジュールを含むように構成されている。
なお、プラットフォーム206は予め定義されている関数により、アプリケーション層205からの処理要求を受信するAPI253を有するように構成されている。OSは、アプリケーション層205およびプラットフォーム206の各ソフトウェアをプロセスとして並列実行する。
NCS231のプロセスは、ネットワーク側から各プロトコルによって受信したデータを各アプリケーションに振り分けたり、各アプリケーションからのデータをネットワーク側に送信する際の仲介を行う。例えばNCS231は、融合機にネットワークを介して接続されるネットワーク機器とのデータ通信を制御する。
DCS232のプロセスは、融合機に蓄積されている文書データの配送などの制御を行う。OCS233のプロセスは、オペレータと本体制御との間の情報伝達手段となるオペレーションパネルの制御を行う。FCS234のプロセスは、アプリケーション層205からPSTNまたはISDN網を利用したファックス送受信,バックアップ用のメモリで管理されている各種ファックスデータの登録/引用,ファックス読み取り,ファックス受信印刷などを行うためのAPIを提供する。
ECS235のプロセスは、スキャナ211,プロッタ212,ハードウェアリソース213などのエンジン部の制御を行う。MCS236のプロセスは、メモリの取得および解放,HDDの利用,画像データの圧縮および伸張などのメモリ制御を行う。UCS237のプロセスは、ユーザ情報の管理を行うものである。
SCS238のプロセスは、アプリケーション管理,操作部制御,システム画面表示,LED表示,ハードウェア資源管理,割り込みアプリケーション制御などの処理を行う。SRM239のプロセスは、SCS238と共にシステムの制御およびハードウェア資源204の管理を行うものである。例えばSRM239のプロセスは、スキャナ211およびプロッタ212などのハードウェア資源204を利用する上位層からの獲得要求に従って調停を行い、実行制御する。
具体的に、SRM239のプロセスは獲得要求されたハードウェア資源204が利用可能であるか(他の獲得要求により利用されていないかどうか)を判定し、利用可能であれば獲得要求されたハードウェア資源204が利用可能である旨を上位層に通知する。また、SRM239のプロセスは上位層からの獲得要求に対してハードウェア資源204を利用するためのスケジューリングを行い、要求内容(例えば、プリンタエンジンによる紙搬送と作像動作,メモリ確保,ファイル生成など)を直接実施している。
また、ハンドラ層210は後述するファックスコントロールユニット(以下、FCUという)の管理を行うファックスコントロールユニットハンドラ(以下、FCUHという)240と、プロセスに対するメモリの割り振り及びプロセスに割り振ったメモリの管理を行うイメージメモリハンドラ(以下、IMHという)241とを含む。
SRM239およびFCUH240は、予め定義されている関数によりハードウェア資源204に対する処理要求を送信するエンジンI/F254を利用して、ハードウェア資源204に対する処理要求を行う。
図12の構成により、融合機201は各アプリケーションで共通的に必要な処理をプラットフォーム206で一元的に処理することができる。次に、融合機201のハードウェア構成について説明する。
図13は、本発明による融合機の一実施例のハードウェア構成図である。融合機201は、コントローラ260と,オペレーションパネル270と,FCU280と,USBデバイス290と,IEEE1394デバイス300と,エンジン部310とを含む。
また、コントローラ260は、CPU261と,システムメモリ(MEM−P)262と,ノースブリッジ(以下、NBという)263と,サウスブリッジ(以下、SBという)264と,ASIC266と,ローカルメモリ(MEM−C)267と,HDD268およびネットワークインターフェースコントローラ269とを含む。
オペレーションパネル270は、コントローラ260のASIC266に接続されている。また、FCU280,USBデバイス290,IEEE1394デバイス300およびエンジン部310は、コントローラ260のASIC266にPCIバスで接続されている。
コントローラ260は、ASIC266にローカルメモリ267,HDD268およびネットワークインターフェースコントローラ269などが接続されると共に、CPU261とASIC266とがCPUチップセットのNB263を介して接続されている。このように、NB263を介してCPU261とASIC266とを接続することにより、CPU261のインターフェースが公開されていない場合に対応する。
なお、ASIC266とNB263とはPCIバスを介して接続されているのでなく、AGP(Accelerated Graphics Port)65を介して接続されている。このように、図12のアプリケーション層205やプラットフォーム206を形成する一つ以上のプロセスを実行制御するため、ASIC266とNB263とを低速のPCIバスでなくAGP265を介して接続し、パフォーマンスの低下を防いでいる。
CPU261は、融合機201の全体制御を行うものである。CPU261は、NCS231,DCS232,OCS233,FCS234,ECS235,MCS236,UCS237,SCS238,SRM239,FCUH240およびIMH241をOS上にそれぞれプロセスとして起動して実行させると共に、アプリケーション層205を形成するプリンタアプリ221,コピーアプリ222,ファックスアプリ223,スキャナアプリ224,ネットファイルアプリ225を起動して実行させる。
NB263は、CPU261,システムメモリ262,SB264およびASIC266を接続するためのブリッジである。システムメモリ262は、融合機201の描画用メモリなどとして用いるメモリである。SB264は、NB263とROM,PCIバス,周辺デバイスとを接続するためのブリッジである。また、ローカルメモリ267はコピー用画像バッファ,符号バッファとして用いるメモリである。
ASIC266は、画像処理用のハードウェア要素を有する画像処理用途向けのICである。HDD268は、画像データの蓄積,文書データの蓄積,プログラムの蓄積,フォントデータの蓄積,フォームの蓄積などを行うためのストレージである。ネットワークインターフェースコントローラ269は、ネットワークを介して接続されているネットワーク機器とMACアドレスなどを用いて通信する。また、オペレーションパネル270は、オペレータからの入力操作を受け付けると共に、オペレータに向けた表示を行う操作部である。
本発明は上記の実施例に限定されるものではなく、本発明の範囲内で種々の変形や変更が可能である。
本発明の情報処理装置の一例のハードウェア構成図である。 HDDをファイルシステムの格納場所として使用した場合のプログラム起動時の状態について説明する一例の図である。 ROMをファイルシステムの格納場所として使用した場合のプログラム起動時の状態について説明する第1実施例の図である。 ROMをファイルシステムの格納場所として使用した場合のプログラム起動時の状態について説明する第2実施例の図である。 ROMをファイルシステムの格納場所として使用した場合のプログラム起動時の状態について説明する第3実施例の図である。 第1〜第3実施例を実現するカーネルの一実施例の構成図である。 HDDファイルシステム上のファイルを実行するときにカーネルが行う処理の一例のシーケンス図である。 ROMファイルシステム上のファイルを実行するときにカーネルが行う処理の一例のシーケンス図である。 ROMファイルシステム上のファイルを実行するときにカーネルが行う処理の他の一例のシーケンス図である。 vnodeについて説明するための一例の構造図である。 マウントテーブルについて説明するための一例の構造図である。 本発明による融合機の一実施例の構成図である。 本発明による融合機の一実施例のハードウェア構成図である。 ファイルシステムの一例を説明するための図である。 ファイルシステムのマウントについて説明するための図である。 CPUからみた物理アドレス空間の一例を表した図である。
符号の説明
1 CPU
2 RAM
3 ROM
4 HDD
5 バス
10 仮想アドレス空間
61 ユーザプロセス
100 カーネル
110 プロセス管理部
120 仮想記憶処理部
122 ページテーブル
124 ページ例外処理部
130 ファイルシステム
132 ROMFS
133 FFS
140 ドライバ
201 融合機
202 ソフトウェア群
203 融合機起動部
204 ハードウェア資源
205 アプリケーション層
206 プラットフォーム
209 コントロールサービス層
210 ハンドラ層
261 CPU
262 システムメモリ(MEM−P)
267 ローカルメモリ(MEM−C)
268 ハードディスク装置(HDD)
270 オペレーションパネル
280 ファックスコントロールユニット(FCU)
290 USBデバイス
300 IEEE1394デバイス
310 エンジン部

Claims (21)

  1. プログラムの実行に仮想記憶機能を用いる情報処理装置であって、
    読み出し専用メモリ上のファイルを管理するファイル管理機能と、
    前記ファイルに含まれるプログラムの読み出し専用メモリ上の物理アドレスと前記プログラムの仮想アドレスとを対応付けたテーブルを生成するテーブル生成機能と、
    前記プログラムを実行するときに、前記プログラムの仮想アドレスに対応する読み出し専用メモリ上の物理アドレスを前記テーブルから取得して、前記プログラムを読み出し専用メモリ上で実行するプログラム実行機能と
    を有することを特徴とする情報処理装置。
  2. 前記テーブル生成機能は、前記ファイルに含まれる一のプログラムのうち、書き換えの可能性のある部分を随時書き込み読み出しメモリに複写して、前記書き換えの可能性のある部分の随時書き込み読み出しメモリ上の物理アドレスと前記書き換えの可能性のある部分の仮想アドレスとを対応付けたテーブルを生成することを特徴とする請求項1記載の情報処理装置。
  3. 前記テーブル生成機能は、前記ファイルに含まれる一のプログラムのうち、書き換えの可能性のない部分の読み出し専用メモリ上の物理アドレスと前記書き換えの可能性のない部分の仮想アドレスとを対応付けたテーブルを生成することを特徴とする請求項2記載の情報処理装置。
  4. 前記ファイルに含まれる一のプログラムのうち、前記書き換えの可能性のある部分は、ファイルのデータ領域であり、前記書き換えの可能性のない部分は、ファイルのコード領域であることを特徴とする請求項3記載の情報処理装置。
  5. 前記テーブル生成機能は、前記ファイルに含まれる一のプログラムのうち、書き換え指示のあった部分をページ単位で随時書き込み読み出しメモリに複写して、前記書き換え指示のあった部分の随時書き込み読み出しメモリ上の物理アドレスと前記書き換えの指示のあった部分の仮想アドレスとを対応付けたテーブルを生成することを特徴とする請求項1記載の情報処理装置。
  6. 前記テーブル生成機能は、前記ファイルに含まれる一のプログラムのうち、書き換え指示のない部分の読み出し専用メモリ上の物理アドレスと前記書き換え指示のない部分の仮想アドレスとを対応付けたテーブルを生成することを特徴とする請求項5記載の情報処理装置。
  7. 前記テーブル生成機能は、前記プログラムを実行するときに発生したページ例外に基づき、前記プログラムが、読み出し専用メモリ上のファイルを管理するファイル管理機能により管理されているか否かを判定し、前記読み出し専用メモリ上のファイルを管理するファイル管理機能により管理されているときに、前記テーブルを作成することを特徴とする請求項1記載の情報処理装置。
  8. 前記プログラムが、読み出し専用メモリ上のファイルを管理するファイル管理機能により管理されているか否かの判定は、オペレーティングシステムの有するvnodeにより行われることを特徴とする請求項7記載の情報処理装置。
  9. 前記テーブル生成機能は、前記プログラムが、前記随時書き込み読み出しメモリ上のファイルを管理するファイル管理機能により管理されているときに、前記ファイルに含まれるプログラムの随時書き込み読み出しメモリ上の物理アドレスと前記プログラムの仮想アドレスとを対応付けたテーブルを生成することを特徴とする請求項7記載の情報処理装置。
  10. 前記プログラム実行機能は、前記プログラムを実行するとき、前記プログラムの仮想アドレスに対応する読み出し専用メモリ上の物理アドレスが前記テーブルに登録されていなければ、ページ例外を発生することを特徴とする請求項7記載の情報処理装置。
  11. 画像形成処理で使用されるハードウェア資源と、前記ハードウェア資源を用いて画像形成に係る処理を行う1つ以上のプログラムとを有することを特徴とする請求項1乃至10何れか一項記載の情報処理装置。
  12. プログラムの実行に仮想記憶機能を用いる情報処理装置のファイル管理方法であって、
    読み出し専用メモリ上のファイルに含まれるプログラムの読み出し専用メモリ上の物理アドレスと前記プログラムの仮想アドレスとを対応付けたテーブルを生成するテーブル生成段階と、
    前記プログラムの仮想アドレスに対応する読み出し専用メモリ上の物理アドレスを前記テーブルから取得して、前記プログラムを読み出し専用メモリ上で実行するプログラム実行段階と
    を有することを特徴とするファイル管理方法。
  13. 前記テーブル生成段階は、前記ファイルに含まれる一のプログラムのうち、書き換えの可能性のある部分を随時書き込み読み出しメモリに複写して、前記書き換えの可能性のある部分の随時書き込み読み出しメモリ上の物理アドレスと前記書き換えの可能性のある部分の仮想アドレスとを対応付けたテーブルを生成することを特徴とする請求項12記載のファイル管理方法。
  14. 前記テーブル生成段階は、前記ファイルに含まれる一のプログラムのうち、書き換えの可能性のない部分の読み出し専用メモリ上の物理アドレスと前記書き換えの可能性のない部分の仮想アドレスとを対応付けたテーブルを生成することを特徴とする請求項13記載のファイル管理方法。
  15. 前記ファイルに含まれる一のプログラムのうち、前記書き換えの可能性のある部分は、ファイルのデータ領域であり、前記書き換えの可能性のない部分は、ファイルのコード領域であることを特徴とする請求項14記載のファイル管理方法。
  16. 前記テーブル生成段階は、前記ファイルに含まれる一のプログラムのうち、書き換え指示のあった部分をページ単位で随時書き込み読み出しメモリに複写して、前記書き換え指示のあった部分の随時書き込み読み出しメモリ上の物理アドレスと前記書き換えの指示のあった部分の仮想アドレスとを対応付けたテーブルを生成することを特徴とする請求項12記載のファイル管理方法。
  17. 前記テーブル生成段階は、前記ファイルに含まれる一のプログラムのうち、書き換え指示のない部分の読み出し専用メモリ上の物理アドレスと前記書き換え指示のない部分の仮想アドレスとを対応付けたテーブルを生成することを特徴とする請求項16記載のファイル管理方法。
  18. 前記テーブル生成段階は、前記プログラムを実行するときに発生したページ例外に基づき、前記プログラムが、読み出し専用メモリ上のファイルを管理するファイル管理機能により管理されているか否かを判定し、前記読み出し専用メモリ上のファイルを管理するファイル管理機能により管理されているときに、前記テーブルを作成することを特徴とする請求項12記載のファイル管理方法。
  19. 前記プログラムが、読み出し専用メモリ上のファイルを管理するファイル管理機能により管理されているか否かの判定は、オペレーティングシステムの有するvnodeにより行われることを特徴とする請求項18記載のファイル管理方法。
  20. 前記テーブル生成段階は、前記プログラムが、前記随時書き込み読み出しメモリ上のファイルを管理するファイル管理機能により管理されているときに、前記ファイルに含まれるプログラムの随時書き込み読み出しメモリ上の物理アドレスと前記プログラムの仮想アドレスとを対応付けたテーブルを生成することを特徴とする請求項18記載のファイル管理方法。
  21. 前記プログラム実行段階は、前記プログラムを実行するとき、前記プログラムの仮想アドレスに対応する読み出し専用メモリ上の物理アドレスが前記テーブルに登録されていなければ、ページ例外を発生することを特徴とする請求項18記載のファイル管理方法。
JP2003308715A 2003-09-01 2003-09-01 情報処理装置及びファイル管理方法 Pending JP2005078419A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2003308715A JP2005078419A (ja) 2003-09-01 2003-09-01 情報処理装置及びファイル管理方法
US10/929,601 US20050086450A1 (en) 2003-09-01 2004-08-31 Information processing apparatus and file management method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003308715A JP2005078419A (ja) 2003-09-01 2003-09-01 情報処理装置及びファイル管理方法

Publications (1)

Publication Number Publication Date
JP2005078419A true JP2005078419A (ja) 2005-03-24

Family

ID=34411113

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003308715A Pending JP2005078419A (ja) 2003-09-01 2003-09-01 情報処理装置及びファイル管理方法

Country Status (2)

Country Link
US (1) US20050086450A1 (ja)
JP (1) JP2005078419A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008015725A (ja) * 2006-07-05 2008-01-24 Alpine Electronics Inc 情報処理装置およびプログラム起動方法
JP2008077144A (ja) * 2006-09-19 2008-04-03 Ricoh Co Ltd 仮想化システム、メモリ管理方法及び制御プログラム

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100755701B1 (ko) * 2005-12-27 2007-09-05 삼성전자주식회사 내장형 시스템을 위한 요구 페이징 장치 및 방법
US8281105B2 (en) * 2010-01-20 2012-10-02 Hitachi, Ltd. I/O conversion method and apparatus for storage system
JP5862408B2 (ja) * 2012-03-27 2016-02-16 富士通株式会社 エミュレーション装置、及びエミュレーションプログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3666258B2 (ja) * 1997-08-28 2005-06-29 セイコーエプソン株式会社 プリンタ
JP3370978B2 (ja) * 1999-09-10 2003-01-27 株式会社ソニー・コンピュータエンタテインメント エンタテインメント装置および情報処理装置
JP3510575B2 (ja) * 1999-09-10 2004-03-29 シャープ株式会社 現像装置および画像形成装置
JP2001117766A (ja) * 1999-10-22 2001-04-27 Nec Corp マスクromのパッチ機能を備えた情報処理装置
DE10127198A1 (de) * 2001-06-05 2002-12-19 Infineon Technologies Ag Vorrichtung und Verfahren zum Ermitteln einer physikalischen Adresse aus einer virtuellen Adresse unter Verwendung einer hierarchischen Abbildungsvorschrift mit komprimierten Knoten
US7020758B2 (en) * 2002-09-18 2006-03-28 Ortera Inc. Context sensitive storage management
JP4063153B2 (ja) * 2003-06-17 2008-03-19 コニカミノルタビジネステクノロジーズ株式会社 画像形成装置および画像形成条件の表示方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008015725A (ja) * 2006-07-05 2008-01-24 Alpine Electronics Inc 情報処理装置およびプログラム起動方法
JP2008077144A (ja) * 2006-09-19 2008-04-03 Ricoh Co Ltd 仮想化システム、メモリ管理方法及び制御プログラム

Also Published As

Publication number Publication date
US20050086450A1 (en) 2005-04-21

Similar Documents

Publication Publication Date Title
US7055015B2 (en) Information processing apparatus in which processes can reduce overhead of memory access and efficiently share memory
JP5213539B2 (ja) 画像処理装置及び画像処理装置のメモリ管理方法
US7895373B2 (en) Electronic device for data access management
US7715028B2 (en) Card type memory, image forming apparatus, and starting method therefor
US20150126288A1 (en) Information processing device, program, and recording medium
US7911639B2 (en) Image forming device
JP4101004B2 (ja) 画像形成装置
EP1308793B1 (en) Image forming device having a memory assignment unit
JP2003316646A (ja) 画像形成装置及びメモリ管理方法
EP2878348B1 (en) Information processing device, data structure of game data, program, and recording medium
JP2005078419A (ja) 情報処理装置及びファイル管理方法
JP2003196110A (ja) 画像形成装置
JP4263920B2 (ja) 情報処理装置及びメモリ管理方法
JP4394387B2 (ja) 画像処理装置およびメモリディスク管理方法
JP4136397B2 (ja) 画像形成装置及びメモリ管理方法
JP5166955B2 (ja) 情報処理装置、情報処理方法、及び、情報処理プログラム
JP4128467B2 (ja) 画像形成装置及びメモリマップ方法
JP4918276B2 (ja) 情報処理装置および情報処理方法
JP4128468B2 (ja) 情報処理装置及びメモリマップ方法
JP2010124236A (ja) 画像形成装置、画像データ転送方法、及びプログラム
JP2005202890A (ja) 画像形成装置、ハードディスク管理方法
JP3865242B2 (ja) ユーザ情報管理方法および情報処理装置
JP3857654B2 (ja) 画像形成装置,ユーザ情報管理方法,ユーザ情報管理プログラムおよび記録媒体
JP2001022640A (ja) メモリ管理方法
JP2009070208A (ja) 画像処理装置およびメモリ確保方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051013

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080304

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080520

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080718

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080902

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081031

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20081216