(57)【特許請求の範囲】
【請求項１】
プロセッサと、該プロセッサに結合された複数の画像入力手段と、該プロセッサに結合され仮想アドレス空間及び実アドレス空間を構成するとともにオペレーティングシステムが格納された記憶手段とを備え、該オペレーティングシステムが該プロセッサに対し各ジョブのプロセス毎の仮想アドレス空間を実アドレス空間にマッピングさせてマルチジョブを実行させる画像形成装置において、
該実アドレス空間は、実行中のプロセスについての各仮想アドレス空間内のデータ領域が、プロセス間で互いに異なるようにマッピングされるとともに該オペレーティングシステムのカーネルによりアクセスされる第１共有領域と、実行中の各ジョブの状態及び実行中の各ジョブの該第１共有領域内の確保状況が格納される第２共有領域とを有し、
各仮想アドレス空間内のプロセスは、互いに同一内容のジョブページ保証プログラムを備え、該ジョブページ保証プログラムは、該プロセッサに対し、各ジョブの該状態及び該確保状況に基づいて、そのジョブへの該第１共有領域内の非圧縮データ１頁分の割当記憶領域サイズを決定させて、このサイズの領域確保を該カーネルを介し要求させるとともに該確保状況を変更させ、ジョブの出力完了通知に応答して、このジョブに対する該第１共有領域内の割当領域解放を、該カーネルを介し要求させるとともに該確保状況を変更させる、
ことを特徴とする画像形成装置。
【請求項２】
該第１共有領域は、カーネルアドレス空間内のダイレクトメモリアクセスバッファ領域であることを特徴とする請求項１に記載の画像形成装置。
【請求項３】
該第２共有領域には、各ジョブの状態がそのジョブＩＤと対応させて書き込まれるジョブ状態データと、各ジョブの実行に必要な該第１共有領域内のサイズ及びこのジョブに割り当てられた該第１共有領域内のサイズがそのジョブＩＤと対応して書き込まれるメモリ管理データとが格納され、該状態には、該必要なサイズが割り当て済みであるか否かを示すデータが含まれ、
各ジョブページ保証プログラムは、該プロセッサに対し、そのジョブの生成に応答して、該ジョブについて該ジョブ状態データ及び該メモリ管理データにその内容を追加させ、該カーネルを介した該解放要求とともに、そのジョブについての該ジョブ状態データ及び該メモリ管理データの内容を削除させる、
ことを特徴とする請求項２に記載の画像形成装置。
【請求項４】
該ジョブ状態データは、ジョブの状態がそのジョブＩＤと対応させて格納されるデータブロックが、各ジョブについてリンクされるジョブリストであり、
該メモリ管理データは、ジョブに対し該第１共有領域内に割り当てられたサイズがそのジョブＩＤと対応して格納されるデータブロックが、各ジョブについてリンクされるメモリ管理リストである、
ことを特徴とする請求項３に記載の画像形成装置。
【請求項５】
該状態には、実行開始時点が早いほど高い優先順位が含まれ、
該ジョブページ保証プログラムは、該プロセッサに対し、そのジョブの優先順位が最も高い場合、該カーネルを介し該非圧縮データ１頁分の領域を該第１共有領域内に確保させ、そのジョブの優先順位が２番目である場合、該優先順位が３番目のジョブが生成された時に該カーネルを介し該第１共有領域内の余っているジョブ非圧縮データ１頁分以内の領域を確保させる、
ことを特徴とする請求項３又は４に記載の画像形成装置。
【請求項６】
該ジョブページ保証プログラムは、ダイナミックリンクライブラリに含まれていることを特徴とする請求項３乃至５のいずれか１つに記載の画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、各ジョブのプロセス毎の仮想アドレス空間を実アドレス空間にマッピングしてマルチジョブを実行する画像形成装置に係り、特に共有メモリの管理を行う画像形成装置に関する。
【背景技術】
【０００２】
この種の画像形成装置では、１つのＭＰＵでコピー、プリント、スキャン、ファクシミリなどの複数の機能を並列処理するために、マルチタスク処理が可能なオペレーティングシステムが用いられている。ＯＳのカーネル空間とプロセス空間とは互いに異なり、複数のプロセス空間もそれぞれ異なり、異なる空間の一方から他方をアクセスできないので、同じデータを異なる空間でアクセスするためには、アクセス前に、一方の空間から他方の空間へコピーを行う必要がある。
【０００３】
下記特許文献１には、画像形成装置においてメモリ管理手段が、ＵＳＢデバイスドライバが使用するカーネル空間内の領域とプロセスのＵＳＢインタフェースモジュールが使用するプロセス空間内の領域とを同一物理記憶領域に割り当てる構成が開示されている。
【０００４】
しかしながら、この特許文献１には、マルチプロセスにおけるプロセスとカーネルでのメモリ共有については、開示されていない。この場合、カーネルはプロセスからのメモリ獲得や解放の要求に応答するが、各プロセスが勝手にメモリ獲得要求をすると、メモリ獲得のためにジョブのウエイトが多くなり、マルチジョブを効率的に行うことができない。
【０００５】
また、下記特許文献２に開示されているように、各ジョブからのメモリ獲得要求に対し調停を行うミドルウェアをＯＳとアプリケーションの間に配置してプラットフォームを拡大すると、既存のソフトウェア資産を利用できなくなるとともに、階層が１つ増えるのでその構造が複雑になる。
【特許文献１】特開２００３−２４８６２６号公報
【特許文献２】特開２００２−０８４３８３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、上記問題点に鑑み、簡単な構成で、マルチプロセスにおける複数のプロセスとカーネルとの間の、それぞれ互いに異なる共有領域の該カーネルに対する獲得要求を適切に行うことにより、マルチジョブを効率的に行うことが可能な画像形成装置を提供することにある。
【課題を解決するための手段】
【０００７】
本発明の第１態様では、プロセッサと、該プロセッサに結合された複数の画像入力手段と、該プロセッサに結合され仮想アドレス空間及び実アドレス空間を構成するとともにオペレーティングシステムが格納された記憶手段とを備え、該オペレーティングシステムが該プロセッサに対し各ジョブのプロセス毎の仮想アドレス空間を実アドレス空間にマッピングさせてマルチジョブを実行させる画像形成装置において、
該実アドレス空間は、実行中のプロセスについての各仮想アドレス空間内のデータ領域が、プロセス間で互いに異なるようにマッピングされるとともに該オペレーティングシステムのカーネルによりアクセスされる第１共有領域と、実行中の各ジョブの状態及び実行中の各ジョブの該第１共有領域内の確保状況が格納される第２共有領域とを有し、
各仮想アドレス空間内のプロセスは、互いに同一内容のジョブページ保証プログラムを備え、該ジョブページ保証プログラムは、該プロセッサに対し、各ジョブの該状態及び該確保状況に基づいて、そのジョブへの該第１共有領域内の非圧縮データ１頁分の割当記憶領域サイズを決定させて、このサイズの領域確保を該カーネルを介し要求させるとともに該確保状況を変更させ、ジョブの出力完了通知に応答して、このジョブに対する該第１共有領域内の割当領域解放を、該カーネルを介し要求させるとともに該確保状況を変更させる。
【０００８】
本発明による画像形成装置の第２態様では、第１態様において、該第１共有領域は、カーネルアドレス空間内のダイレクトメモリアクセスバッファ領域である。
【発明の効果】
【０００９】
上記第１態様の構成によれば、実アドレス空間に、実行中のプロセスについての各仮想アドレス空間内のデータ領域がマッピングされとともにオペレーティングシステムのカーネルによりアクセスされる第１共有領域と、実行中の各ジョブの状態及び実行中の各ジョブの該第１共有領域内の確保状況が格納される第２共有領域とを有し、各仮想アドレス空間内のプロセスは、互いに同一内容のジョブページ保証プログラムを備え、該ジョブページ保証プログラムは、各ジョブの該状態及び該確保状況に基づいて、カーネルに対し要求する、そのジョブへの該第１共有領域内の非圧縮データ１頁分の割当記憶領域サイズを決定して、このサイズの領域確保を該カーネルに要求するとともに該確保状況を変更し、ジョブの出力完了通知に応答して、このジョブに対する該第１共有領域内の割当領域解放を該カーネルに要求するとともに該確保状況を変更するので、簡単な構成で、マルチプロセスにおける複数のプロセスとカーネルとの間の、それぞれ互いに異なる共有領域の該カーネルに対する獲得要求が適切に行われて、マルチジョブを効率的に行うことが可能となるという効果を奏する。
【００１０】
上記第２態様の構成によれば、該第１共有領域は、カーネルアドレス空間内のダイレクトメモリアクセスバッファ領域であるので、さらに、ダイレクトメモリアクセスによりカーネルアドレス空間内へ入力された画像データをプロセス空間内へコピーすることなく、該プロセスで処理することが、各プロセスについて可能になるという効果を奏する。
【００１１】
本発明の他の目的、構成及び効果は以下の説明から明らかになる。
【実施例１】
【００１２】
図６は、本発明の実施例１に係る画像形成装置１０の概略ブロック図である。
【００１３】
この画像形成装置１０では、ＭＰＵ１１、ＲＯＭ１２、ＤＲＡＭ１３、ダイレクトメモリアクセスコントローラ（ＤＭＡＣ）１４、不揮発性メモリ（ＮＶＲＡＭ）１５、インタフェース１６Ｉ〜２０Ｉ、ネットワークインタフェースＮＩＣ２１及びモデム２２の間がバス２３で結合され、インタフェース１６Ｉ〜２０Ｉにそれぞれハードディスクドライブ（ＨＤＤ）１６、オートシートフィーダ１７、スキャナ１８、プリンタ１９及び操作パネル２０が結合されている。
【００１４】
ＲＯＭ１２には、ブートストラップ及びＢＩＯＳが格納される。ＤＲＡＭ１３は、主メモリとして用いられる。ＮＶＲＡＭ１５は、例えばフラッシュメモリである。ＮＶＲＡＭ１５には初期設定値が格納され、その一部は操作パネル２０を操作して変更される。
【００１５】
ＨＤＤ１６には、図１に示す如く、オペレーティングシステム（ＯＳ）２５（多重仮想記憶方式でマルチジョブを実行可能にするカーネル２５ａを含む。）、ＯＳ２５の上層で動作するコピーアプリケーション２６、プリントアプリケーション２７、スキャナアプリケーション２８及びファクシミリアプリケーション２９、これらアプリケーション２６〜２９でその一部として用いられるジョブページ保証ライブラリ３０、並びに、ＯＳの下層で動作する各種デバイスドライバが格納されている。これらデバイスドライバには、スキャンエンジン１８ａ、プリントエンジン１９ａ、ネットワークインタフェース２１、モデム２２、ＤＲＡＭ１３及びＤＭＡＣ１４に対するものがある。ＨＤＤ１６は、データ格納用としても用いられる。
【００１６】
図６に戻って、スキャナ１８は、オートシートフィーダ１７と連動して画像入力を行うものであり、コピー及びファックス送信のジョブで用いられる。プリンタ１９は、プリントエンジン、定着器並びに用紙の給紙部、搬送部及び排紙部を備えており、印刷データとして供給されるビットマップデータに基づいてプリントエンジンの感光ドラムに静電潜像を形成し、これをトナーで現像し、用紙に転写し定着させた後に排紙する。操作パネル２０は例えば、タッチパネル及びハードウェアキーを備えており、設定情報又は指示を入力し、選択画面や設定画面などを表示させるためのものである。ＮＩＣ２１は、ネットワーク上の外部のホストコンピュータに接続されてプリントジョブに用いられる。モデム２２はファックス送受信用である。
【００１７】
ＤＭＡＣ１４は、アプリケーションからカーネル２５ａ及びデバイスドライバを介して供給される命令に応答して、スキャナインタフェース１８ＩからのスキャンデータをＤＲＡＭ１３に転送させ、ＤＲＡＭ１３内のデータをプリンタインタフェース１９Ｉに転送させ、ネットワークインタフェース２１からのプリントデータをＤＲＡＭ１３に転送させ、モデム２２とＤＲＡＭ１３との間でファクシミリの送信データ又は受信データを転送させる。
【００１８】
図４は、あるジョブを構成するプロセスの仮想アドレス空間（プロセス空間）Ｐ１Ｓと、他のジョブのプロセス空間Ｐ２Ｓと、これらの一部がマッピングされた実アドレス空間ＲＳとの関係を示す。
【００１９】
例えば、コピージョブ２６Ｊは、スキャンエンジン１８ａでの画像入力プロセスとプリントエンジン１９ａでの画像出力プロセスとを有し、プリントジョブ２７Ｊは、ＮＩＣ２１での画像入力プロセスとプリントエンジン１９ａでの画像出力プロセスとを有し、例えば、プロセス空間Ｐ１Ｓは、コピージョブ２６Ｊの画像入力プロセスのアドレス空間であり、プロセス空間Ｐ２Ｓは、プリントジョブ２７Ｊの画像入力プロセスである。
【００２０】
実アドレス空間ＰＳ内のＤＭＡバッファ領域１３１は、カーネル２５ａからＤＭＡデバイスドライバを介してＤＭＡＣ１４に命令が供給されることによりアクセスされ、また、カーネル２５ａからメモリドライバを介してＭＰＵ１１に命令が供給されることによりアクセスされる。後者のアクセスは、プロセス空間Ｐ１Ｓ内の入出力データファイルＩＯ  ＤＡＴＡ  ＦＩＬＥ１Ｉ及びプロセス空間Ｐ２Ｓ内の入出力データファイルＩＯ  ＤＡＴＡ  ＦＩＬＥ２を実アドレス空間ＲＳ内にマッピングすることにより可能となる。このマッピングにより、各プロセスに割り当てられた実アドレス空間ＲＳ内データ領域（不図示）へ、ＤＭＡバッファ領域１３１内のデータをコピーして処理する必要がないので、処理の高速化及びメモリ使用量の低減化が図られる。
【００２１】
しかしながら、各プロセスが勝手にカーネル２５ａに対しメモリ獲得要求をすると、ジョブのウエイトが多くなり、マルチジョブを効率的に行うことができない。また、各ジョブからのメモリ獲得要求に対し調停を行うミドルウェアを、ＯＳ２５とアプリケーションとの間に配置してプラットフォームを拡大すると、既存のソフトウェア資産を利用できなくなるとともに、階層が１つ増えるのでその構造が複雑になる。
【００２２】
そこで、本実施例では、図１に示すようにジョブページ保証ライブラリ（ＪＰＡ）３０を備え、アプリケーション２６〜２９のそれぞれでジョブページ保証ライブラリ３０を用い、各アプリケーション自体でＤＭＡバッファ領域１３１に対するメモリ管理を行うことにより、調整を図っている。各アプリケーションが、自他のジョブ状態及びＤＭＡバッファ領域１３１内の獲得状況を考慮してメモリ獲得の自己管理を行うことができるようにするために、各プロセス空間内に互いに同一内容のジョブリスト３１及びメモリ管理リスト３２を配置し、実アドレス空間ＲＳ内の共有領域内の同一領域にこれらをマッピングしている。
【００２３】
また、ジョブページ保証ライブラリ３０をダイナミックリンクライブラリ（ＤＬＬ）で構成することにより、プロセス空間Ｐ１Ｓ内及びプロセス空間Ｐ２Ｓ内で互いに異なる領域に配置されたＪＰＡが実アドレス空間ＲＳ上の同一領域にマッピングされ、これによりメモリ使用量が低減される。
【００２４】
ジョブページ保証ライブラリ３０は例えば、次のような関数を含んでいる。
【００２５】
（１）そのジョブで非圧縮データ１頁分を処理するのに必要な共有メモリ領域１３２内のサイズを計算する関数。
【００２６】
（２）ジョブリスト３１及びメモリ管理リスト３２を生成する関数。
【００２７】
（３）ジョブリスト３１及びメモリ管理リスト３２の内容に基づいて、そのジョブで獲得する非圧縮データ１頁分以内のメモリサイズを決定する関数。
【００２８】
（４）ジョブリスト３１及びメモリ管理リスト３２の内容に基づき、カーネル２５ａを介し、ＤＭＡバッファ領域１３１内の領域を獲得し、これに応じてジョブリスト３１及びメモリ管理リスト３２の内容を更新する関数。
【００２９】
（５）カーネル２５ａを介してＤＭＡバッファ領域１３１内の獲得済メモリ領域を解放するとともに、ジョブリスト３１及びメモリ管理リスト３２内のそのジョブのデータブロックを削除する関数。
【００３０】
ＤＭＡバッファ領域１３１内にデータ領域獲得が必要になるのは、スキャナ１８、ＮＩＣ２１又はモデム２２からの画像入力データをＤＭＡバッファ領域１３１内にＤＭＡ転送する場合である。そのデータは圧縮されていて圧縮率に変動があるが、非圧縮の１頁分を獲得しておけば、全頁の各々について繰り返し利用することにより、そのジョブの実行が確保される。例えば、スキャナ１８でＤＭＡバッファ領域１３１内に読み込んだ圧縮画像データを伸長させ、バンド単位でプリンタ１９へＤＭＡ転送させることにより、印刷ジョブを行う。
【００３１】
各ジョブは、その開始時に関数（１）〜（３）を実行し、定期的、例えば１００ｍｓｅｃ毎に関数（４）を実行し、ジョブ終了時、例えばコピージョブ２６Ｊにおけるプリントエンジン１９ａへのビットマップデータ供給終了時に、関数（５）を実行する。
【００３２】
このような構成により、図２に示すように、ジョブページ保証ライブラリ３０を、あたかも各アプリケーションから独立したミドルウェアのように機能させることが可能となる。すなわち、本実施例１によれば、ジョブページ保証ライブラリ３０が各ジョブからの要求に応答して、カーネル２５ａを介しＤＭＡバッファ領域１３１内に領域を適切に割り当てるのと、実質的に同じになる。
【００３３】
図３（Ａ）は、ジョブリスト３１の構成を示す。
【００３４】
ジョブリスト３１は、複数のデータブロックがポインタでリンクされたリスト構造である。ジョブが生成されると、このジョブは、そのＪＰＡを介してデータブロック３１１を生成し、次にこれと並列動作するジョブが生成されると、このジョブは、ＪＰＡを介して、データブロック３１１にリンクされたデータブロック３１２を生成する。
【００３５】
各データブロックは、次のデータブロックの先頭アドレスを指し示すポインタと、このデータブロックを生成したジョブのＩＤと、このジョブの種類（コピー、プリント等）と、このジョブの状態と、優先順位とのデータを備えている。
【００３６】
ジョブ状態は、それぞれ「初期」、「入力開始」及び「必要サイズ確保済」を示す０〜２で表され、このデータブロック作成時、すなわちそのジョブの開始時に、０にされ、このジョブの画像入力開始直前に１にされ、このジョブが必要サイズ確保済であると２にされる。優先順位は、原則として、実行開始時が早いジョブほど高く設定され、例外として、割込ジョブの優先順位が最も高くされる。なお、処理時間予測値が短いほど優先順位を高く設定するようにしてもよい。
【００３７】
図３（Ｂ）は、メモリ管理リスト３２の構成例を示す。
【００３８】
メモリ管理リスト３２は、ジョブリスト３１と同様に、複数のデータブロックがポインタでリンクされたリスト構造である。ジョブが生成されると、このジョブは、そのＪＰＡを介してデータブロック３２１を生成し（後述の獲得ページサイズなどは未記入）、次にこれと並列動作するジョブが生成されると、このジョブは、そのＪＰＡを介して、データブロック３２１にリンクされたデータブロック３２２を生成する（獲得ページサイズなどは未記入）。
【００３９】
各データブロックは、次のデータブロックの先頭アドレスを指し示すポインタと、このデータブロックを生成したジョブのＩＤと、このジョブの実行に必要な、ＤＭＡバッファ領域１３１内のジョブ非圧縮データ１頁分エリアサイズと、カーネル２５ａを介して獲得した、ＤＭＡバッファ領域１３１内のエリアサイズと、現在使用されている、ＤＭＡバッファ領域１３１内のエリアサイズとのデータを有している。これらのサイズはページ単位であり、１ページは例えば８ｋＢである。
【００４０】
ジョブに必要なＤＭＡバッファ領域１３１内のジョブ非圧縮データ１頁分のサイズは、ジョブ開始時に、そのジョブの種類と、その画像入力処理で設定されている原稿サイズやｄｐｉなどのパラメータとに基づいて決定される。
【００４１】
図５は、任意の１つのジョブにより実行される上記関数（４）の処理を示す概略フローチャートである。
【００４２】
（Ｓ０）ジョブリスト３１内のそのジョブ（このＪＰＡを実行するジョブ）のジョブ状態欄が「必要サイズ確保済」であれば図４の処理を終了する。
【００４３】
（Ｓ１）そのジョブＩＤについて、ジョブ優先順位が１位、２位及又は３位以下であれば、それぞれステップＳ２、Ｓ４及びＳ７へ進む。
【００４４】
（Ｓ２）優先順位が最も高いので、必要なサイズ（そのジョブの非圧縮データ１頁分）の領域をカーネル２５ａに対し要求することにより、この領域を獲得する。
【００４５】
（Ｓ３）ジョブリスト３１内のこのジョブのジョブ状態欄を「必要サイズ確保済」にし、さらにメモリ管理リスト３２内の獲得サイズにこの要求サイズを記入して、図４の処理を終了する。
【００４６】
（Ｓ４〜Ｓ６）メモリ管理リスト３２を調べて、ＤＭＡバッファ領域１３１内に獲得可能な領域があれば、その領域を獲得し、そのサイズを、メモリ管理リスト３２内のこのジョブの獲得サイズ欄に記入する。これにより必要なサイズを獲得できた場合には、ジョブリスト３１内のこのジョブのジョブ状態欄を「必要サイズ確保済」にして、図４の処理を終了する。メモリ管理リスト３２内からメモリを獲得できないが、ＦＡＸ受信のようにジョブの画像入力プロセスを実行させる必要がある場合には、ＤＭＡバッファ領域１３１外のメモリ領域を確保する。この場合、メモリへのデータ転送は、ＭＰＵ１１により行われる。
【００４７】
（Ｓ７）このジョブよりも優先順位の高いジョブが全て「要求サイズ獲得済」であれば、ステップＳ４へ進む。
【００４８】
なお、図５では複雑化をさけるため表現されていないが、優先順位３位のジョブが生成されたとき、ジョブリスト３１を参照し、優先順位２位のジョブがＤＭＡバッファ領域１３１内に非圧縮データ１頁分の領域を確保できておらず、かつ、ＤＭＡバッファ領域１３１内に余りの領域があれば、この優先順位２位のジョブに該余りの領域を確保させる。
【００４９】
本実施例によれば、実アドレス空間ＲＳ内に、実行中のプロセスについての各仮想アドレス空間内のデータ領域がマッピングされとともにオペレーティングシステム２５のカーネル２５ａによりアクセスされるＤＭＡバッファ領域１３１と、実行中の各ジョブの状態を示すジョブリスト３１及び実行中の各ジョブのＤＭＡバッファ領域１３１内の確保状況を示すジョブ管理リスト３２が格納される共有メモリ領域１３２とを有し、各仮想アドレス空間内のプロセスは、互いに同一内容のジョブページ保証ライブラリ（ＪＰＡ）を備え、このＪＰＡは、ジョブリスト３１及びジョブ管理リスト３２に基づいて、カーネル２５ａに対し要求する、そのジョブへのＤＭＡバッファ領域１３１内の非圧縮データ１頁分の割当サイズを決定して、このサイズの領域確保をカーネル２５ａに要求するとともにジョブ管理リスト３２の対応する内容を変更し、ジョブの出力完了通知に応答して、このジョブに対するＤＭＡバッファ領域１３１内の割当領域解放をカーネル２５ａに要求するとともにＤＭＡバッファ領域１３１内の対応する内容を変更するので、階層構造を複雑にするミドルウェアを備えることなく、簡単な構成で、マルチプロセスにおける複数のプロセスとカーネルとの間の、それぞれ互いに異なる共有領域の該カーネルに対する獲得要求が適切に行われて、マルチジョブを効率的に行うことが可能となるという効果を奏する。
【００５０】
カーネルアドレス空間内のＤＭＡバッファ領域１３１へダイレクトメモリアクセスにより入力された画像データをプロセス空間内へコピーすることなく、そのプロセスで処理することが、各プロセスについて可能になるという効果を奏する。
【図面の簡単な説明】
【００５１】
【図１】ハードディスクドライブに格納されたソフトウェアの階層構造を示すブロック図である。
【図２】図１中のジョブページ保証ライブラリ（ＪＰＡ）の入出力を示すブロック図である。
【図３】（Ａ）及び（Ｂ）はそれぞれジョブリスト及びメモリ管理リストの概略構成を示す図である。
【図４】あるジョブを構成するプロセスの仮想アドレス空間（プロセス空間）Ｐ１Ｓと、他のジョブのプロセス空間Ｐ２Ｓと、これらの一部がマッピングされた実アドレス空間ＲＳとの関係を示す図である。
【図５】ジョブリスト及びメモリ管理リストの内容に基づき、カーネルを介し、ＤＭＡバッファ領域内の領域を獲得し、これに応じてジョブリスト及びメモリ管理リストの内容を更新する関数の処理を示す概略フローチャートである。
【図６】本発明の実施例１に係る画像形成装置１０のハードウェア概略ブロック図である。
【符号の説明】
【００５２】
１０  画像形成装置
１１  ＭＰＵ
１２  ＲＯＭ
１３  ＤＲＡＭ
１３１  ＤＭＡバッファ領域
１３２  共有メモリ領域
１４  ＤＭＡＣ
１５  ＮＶＲＡＭ
１６  ハードディスクドライブ
１７  オートシートフィーダ
１８  スキャナ
１８ａ  スキャンエンジン
１９  プリンタ
１９ａ  プリントエンジン
２０  操作パネル
２１  ネットワークインタフェース
２２  モデム
２３  バス
２５  ＯＳ
２５ａ  カーネル
２６  コピーアプリケーション
２６Ｊ  コピージョブ
２７  プリントアプリケーション
２７Ｊ  プリントジョブ
２８  スキャナアプリケーション
２８Ｊ  スキャンジョブ
２９  ファクシミリアプリケーション
２９１Ｊ  ファックス送信ジョブ
２９２Ｊ  ファックス受信ジョブ
３０  ジョブページ保証ライブラリ
３１  ジョブリスト
３１１、３１２、３２１、３２２  データブロック
３２  メモリ管理リスト
【図１】
0004560493.tif 000002
【図２】
0004560493.tif 000003
【図３】
0004560493.tif 000004
【図４】
0004560493.tif 000005
【図５】
0004560493.tif 000006
【図６】
0004560493.tif 000007