(57)【要約】【課題】確保されたメモリ領域を用いてアプリケーションが所定の機能を実行する情報処理装置であって、バッファオーバーランが発生しづらい環境を容易に提供することのできる情報処理装置等を提供する。【解決手段】確保されたメモリ領域を用いてアプリケーションがデータ処理を行う情報処理装置が、バッファオーバーランの発生情報であってバッファオーバーランを発生させたアプリケーションの識別情報を含む情報を記憶する記憶手段と、アプリケーションからメモリ領域の確保を要求された際に、当該アプリケーションの識別情報を取得し、当該識別情報を用いて記憶手段に記憶される発生情報を取得し、当該取得した発生情報に基づいて、確保するメモリ領域の容量を決定して当該メモリ領域を確保し、バッファオーバーランを発生した際に、記憶手段に発生情報を記憶させる、メモリ管理手段と、を有する。【選択図】  図２
2011221785.tif 000002
【特許請求の範囲】
【請求項１】
確保されたメモリ領域を用いてアプリケーションがデータ処理を行うことにより所定の機能を実現する情報処理装置であって、
前記アプリケーションが上記メモリ領域を越えてメモリにアクセスするバッファオーバーランの発生情報であって、前記バッファオーバーランを発生させた前記アプリケーションの識別情報を含む情報を記憶する記憶手段と、
前記アプリケーションから前記メモリ領域の確保を要求された際に、当該アプリケーションの識別情報を取得し、当該識別情報を用いて前記記憶手段に記憶される当該アプリケーションが発生させた前記バッファオーバーランの発生情報を取得し、当該取得した発生情報に基づいて、前記確保するメモリ領域の容量を決定して当該メモリ領域を確保し、
前記アプリケーションが前記バッファオーバーランを発生させた際に、前記記憶手段に前記発生情報を記憶させる、メモリ管理手段と、を有する
ことを特徴とする画像処理装置。
【請求項２】
請求項１において、
前記メモリ管理手段は、前記取得した発生情報が過去に前記バッファオーバーランを発生させたことを示す場合には、前記要求で前記アプリケーションから示される容量よりも大きい容量を前記確保するメモリ領域の容量として決定する
ことを特徴とする画像処理装置。
【請求項３】
請求項２において、
前記メモリ管理手段は、前記過去に発生させたバッファオーバーランの回数に従って、前記決定する容量を増やす
ことを特徴とする画像処理装置。
【請求項４】
確保されたメモリ領域を用いてアプリケーションがデータ処理を行うことにより所定の機能を実現する情報処理装置におけるメモリ管理方法であって、
前記情報処理装置に、制御手段と、前記アプリケーションが上記メモリ領域を越えてメモリにアクセスするバッファオーバーランの発生情報であって、前記バッファオーバーランを発生させた前記アプリケーションの識別情報を含む情報を記憶する記憶手段と、が備えられ、
前記制御手段が、前記アプリケーションから前記メモリ領域の確保を要求された際に、当該アプリケーションの識別情報を取得し、当該識別情報を用いて前記記憶手段に記憶される当該アプリケーションが発生させた前記バッファオーバーランの発生情報を取得し、当該取得した発生情報に基づいて、前記確保するメモリ領域の容量を決定して当該メモリ領域を確保する工程と、
前記制御手段が、前記アプリケーションが前記バッファオーバーランを発生させた際に、前記記憶手段に前記発生情報を記憶させる工程と、を有する
ことを特徴とするメモリ管理方法。
【請求項５】
確保されたメモリ領域を用いてアプリケーションがデータ処理を行うことにより所定の機能を実現する情報処理装置に、メモリ管理処理を実行させるメモリ管理プログラムであって、
前記情報処理装置に、前記アプリケーションが上記メモリ領域を越えてメモリにアクセスするバッファオーバーランの発生情報であって、前記バッファオーバーランを発生させた前記アプリケーションの識別情報を含む情報が記憶され、
前記アプリケーションから前記メモリ領域の確保を要求された際に、当該アプリケーションの識別情報を取得し、当該識別情報を用いて前記記憶手段に記憶される当該アプリケーションが発生させた前記バッファオーバーランの発生情報を取得し、当該取得した発生
情報に基づいて、前記確保するメモリ領域の容量を決定して当該メモリ領域を確保する工程と、
前記アプリケーションが前記バッファオーバーランを発生させた際に、前記記憶手段に前記発生情報を記憶させる工程と、を前記情報処理装置に実行させる
ことを特徴とするメモリ管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、確保されたメモリ領域を用いてアプリケーションが所定の機能を実行する情報処理装置等に関し、特に、上記メモリ領域を越えてメモリにアクセスしてしまうバッファオーバーランが発生しづらい環境を容易に提供することのできる情報処理装置等に関する。
【背景技術】
【０００２】
汎用コンピューターや他の装置と協働する専用コンピューターなどにおいては、所定の機能を実現するためにプログラムによる各種アプリケーションが用いられている。かかるアプリケーションは、通常、プログラムの指示に従ったＣＰＵの動作で実行され、その際にはコンピューターが備えるメモリにデータを書き込んで処理を実行する。
【０００３】
そして、その用いるメモリの領域は、アプリケーションがコンピューターのＯＳ（オペレーティングシステム）に要求することによって確保される。その後、アプリケーションは、ＯＳによって割当てられたそのメモリ領域を利用して所定の処理を実行するが、例外的に、割当てられたメモリ領域の境を越えてメモリにアクセスしてしまう場合（ここでは、バッファオーバーランと呼ぶ）が発生する。このような状況が発生した場合には、プログラムが暴走してしまう虞もあるため、通常は、アプリケーションの処理を停止するなどの対応がなされる。
【０００４】
例えば、プリンターのコントローラー部においては、プログラム（アプリケーション）に基づく各種の処理がなされるが、扱う画像データが予想外のデータ量になってしまった場合などにこのバッファオーバーランが発生し得る。特に、可変長のデータとして取り扱う処理において発生する虞がある。
【０００５】
また、下記特許文献１では、関連技術として、ガベージ・コレクション対応環境において、メモリ使用状況を管理することについて示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−１５７１３１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述したバッファオーバーランが発生した場合、従来は、そのアプリケーションのプログラムに不具合があるとして、一般にはそのプログラムを修正するという対応が取られていた。かかるプログラムの修正は、通常の場合、ユーザーができるものではなく、また、そのプログラムの提供者にとっても、そのような状況が発生した環境や条件を特定するなどの解析が大変な作業となるため、すぐに問題を解決するのは難しかった。従って、当該アプリケーションを利用するユーザーにとっては不便であった。
【０００８】
そこで、本発明の目的は、確保されたメモリ領域を用いてアプリケーションが所定の機能を実行する情報処理装置であって、メモリ領域を越えてメモリにアクセスしてしまうバッファオーバーランが発生しづらい環境を容易に提供することのできる情報処理装置、等を提供することである。
【課題を解決するための手段】
【０００９】
上記の目的を達成するために、本発明の一つの側面は、確保されたメモリ領域を用いてアプリケーションがデータ処理を行うことにより所定の機能を実現する情報処理装置が、前記アプリケーションが上記メモリ領域を越えてメモリにアクセスするバッファオーバーランの発生情報であって、前記バッファオーバーランを発生させた前記アプリケーションの識別情報を含む情報を記憶する記憶手段と、前記アプリケーションから前記メモリ領域の確保を要求された際に、当該アプリケーションの識別情報を取得し、当該識別情報を用いて前記記憶手段に記憶される当該アプリケーションが発生させた前記バッファオーバーランの発生情報を取得し、当該取得した発生情報に基づいて、前記確保するメモリ領域の容量を決定して当該メモリ領域を確保し、前記アプリケーションが前記バッファオーバーランを発生させた際に、前記記憶手段に前記発生情報を記憶させる、メモリ管理手段と、を有する、ことである。
【００１０】
また、上記の発明において、好ましい態様は、前記メモリ管理手段は、前記取得した発生情報が過去に前記バッファオーバーランを発生させたことを示す場合には、前記要求で前記アプリケーションから示される容量よりも大きい容量を前記確保するメモリ領域の容量として決定する、ことを特徴とする。
【００１１】
更に、上記の発明において、好ましい態様は、前記メモリ管理手段は、前記過去に発生させたバッファオーバーランの回数に従って、前記決定する容量を増やす、ことを特徴とする。
【００１２】
上記の目的を達成するために、本発明の別の側面は、確保されたメモリ領域を用いてアプリケーションがデータ処理を行うことにより所定の機能を実現する情報処理装置におけるメモリ管理方法において、前記情報処理装置に、制御手段と、前記アプリケーションが上記メモリ領域を越えてメモリにアクセスするバッファオーバーランの発生情報であって、前記バッファオーバーランを発生させた前記アプリケーションの識別情報を含む情報を記憶する記憶手段と、が備えられ、前記制御手段が、前記アプリケーションから前記メモリ領域の確保を要求された際に、当該アプリケーションの識別情報を取得し、当該識別情報を用いて前記記憶手段に記憶される当該アプリケーションが発生させた前記バッファオーバーランの発生情報を取得し、当該取得した発生情報に基づいて、前記確保するメモリ領域の容量を決定して当該メモリ領域を確保する工程と、前記制御手段が、前記アプリケーションが前記バッファオーバーランを発生させた際に、前記記憶手段に前記発生情報を記憶させる工程と、を有する、ことである。
【００１３】
上記の目的を達成するために、本発明の更に別の側面は、確保されたメモリ領域を用いてアプリケーションがデータ処理を行うことにより所定の機能を実現する情報処理装置に、メモリ管理処理を実行させるメモリ管理プログラムにおいて、前記情報処理装置に、前記アプリケーションが上記メモリ領域を越えてメモリにアクセスするバッファオーバーランの発生情報であって、前記バッファオーバーランを発生させた前記アプリケーションの識別情報を含む情報が記憶され、前記アプリケーションから前記メモリ領域の確保を要求された際に、当該アプリケーションの識別情報を取得し、当該識別情報を用いて前記記憶手段に記憶される当該アプリケーションが発生させた前記バッファオーバーランの発生情報を取得し、当該取得した発生情報に基づいて、前記確保するメモリ領域の容量を決定して当該メモリ領域を確保する工程と、前記アプリケーションが前記バッファオーバーランを発生させた際に、前記記憶手段に前記発生情報を記憶させる工程と、を前記情報処理装置に実行させる、ことである。
【００１４】
本発明の更なる目的及び、特徴は、以下に説明する発明の実施の形態から明らかになる。
【図面の簡単な説明】
【００１５】
【図１】本発明を適用した情報処理装置を備えるプリンターの実施の形態例に係る構成図である。
【図２】コントローラー部３におけるアプリケーションの動作を説明するための構成図である。
【図３】メモリ管理モジュールＭＭによる処理の手順を例示したフローチャートである。
【発明を実施するための形態】
【００１６】
以下、図面を参照して本発明の実施の形態例を説明する。しかしながら、かかる実施の形態例が、本発明の技術的範囲を限定するものではない。なお、図において、同一又は類似のものには同一の参照番号又は参照記号を付して説明する。
【００１７】
図１は、本発明を適用した情報処理装置を備えるプリンターの実施の形態例に係る構成図である。図１に示すコントローラー部３が本発明を適用した情報処理装置であり、当該装置で行われるアプリケーションの処理においてバッファオーバーランが発生した場合にはそれを記録し、そのアプリケーションからのメモリ確保の要求時には、当該記録に基づいて、要求された容量よりも増やした容量を確保するようにして、バッファオーバーランが発生しづらい環境を提供しようとするものである。
【００１８】
図１に示すように、本プリンター２は、ホストコンピューター１からの印刷要求に従って印刷を実行する一般的なプリンターであり、そのコントローラー部３が、本発明を適用した情報処理装置の一例である。
【００１９】
ホストコンピューター１は、プリンター２に印刷指示をするプリンター２のホスト装置であり、パーソナルコンピューター等で構成される。図示していないが、ホストコンピューター１は、一般的なコンピューターと同様のハードウェア構成を備えており、ＣＰＵ、ＲＡＭ、ＲＯＭ、ハードディスク、表示装置、入力装置等が備えられる。
【００２０】
また、ホストコンピューター１には、上記印刷指示の機能を担うドライバーが備えられ、ユーザーから印刷要求を受けた場合には、各種の印刷条件を含む印刷ジョブデータを生成してプリンター２へ送信する。なお、当該ドライバーは、処理を指示するプログラムと当該プログラムに従って処理を実行する制御装置（上記ＣＰＵ等）などで構成される。
【００２１】
プリンター２は、コントローラー部３と印刷実行部４を備える。コントローラー部３は、上記印刷ジョブデータを受信すると、当該データに含まれる画像データに対して各種の処理を実行し、印刷実行部４に転送するデータを生成する。また、コントローラー部３は、ユーザーインターフェース（図示せず）などプリンター２の各部を制御する。
【００２２】
コントローラー部３には、図１に示すように、Ｉ／Ｆ１１、ＣＰＵ１２、ＲＯＭ１３、ＲＡＭ１４、ＮＶＲＡＭ１５、エンジンＩ／Ｆ１６等が備えられる。Ｉ／Ｆ１１は、ホストコンピューター１との通信を司る部分である。ＣＰＵ１２は、ＲＯＭ１３等に格納されるプログラムに従ってコントローラー部３が行なう各種の処理を実行する。ＲＡＭ１４は、印刷対象画像のデータ等を一時的に保持するメモリである。ＮＶＲＡＭ１５は、不揮発性のメモリであり、プリンター２の電源がオフになっても記憶しておくべき情報を格納する。ここには、後述するバッファオーバーランの履歴情報（発生情報）が記憶される。エンジンＩ／Ｆ１６は、最終的に印刷実行部４へ転送するデータを整えてデータを送出する部分である。
【００２３】
なお、上記ＣＰＵ１２がプログラムに従って実行する各機能が、当該コントローラー部
３における各アプリケーションの機能であり、言い換えれば、プログラムによって実行される各機能は、コントローラー部３に備えられる各アプリケーションによって実行され、各アプリケーションは、ＣＰＵ１２とＲＯＭ１３等に格納される対応したプログラムから構成される。そして、各アプリケーションは、処理実行の際にＲＡＭ１４の割当てられた領域を用いる。
【００２４】
印刷実行部４は、上記転送されるデータに基づいて印刷媒体に印刷を実行する部分である。
【００２５】
図２は、コントローラー部３におけるアプリケーションの動作を説明するための構成図である。図２においては、上記アプリケーションによるメモリアクセスに関連する部分についてそれらの機能構成を示している。
【００２６】
オペレーティングシステムＯＳは、コンピューターにおける一般的なＯＳであり、主に、Ｉ／Ｏ管理、メモリ管理などを司る。オペレーティングシステムＯＳは、ＣＰＵ１２とＲＯＭ１３に格納されるプログラム等で構成される。
【００２７】
メモリ管理モジュールＭＭは、本コントローラー部３の特徴部分であり、各アプリケーションＡＰからのメモリアクセスを仲介する機能を担う。具体的な処理内容は後述するが、アプリケーションＡＰがバッファオーバーランを起こした場合には、それをＮＶＲＡＭ１５に記録し、アプリケーションＡＰからメモリ確保の要求を受けた場合には、当該記録に基づいて過去のバッファオーバーランの履歴からメモリ確保量を決定してオペレーティングシステムＯＳにメモリ確保の要求を行なう。なお、メモリ管理モジュールＭＭは、ＣＰＵ１２とＲＯＭ１３に格納されるプログラム等で構成される。
【００２８】
アプリケーションＡＰは、上述したコントローラー部３のアプリケーションであり、メモリＭＥを用いて各機能を実行する。例えば、印刷対象画像を画素単位の画像データにする展開処理等の機能を担う。
【００２９】
メモリＭＥは、ここでは上記ＲＡＭ１４であり、アプリケーションＡＰが処理を実行する際に、オペレーティングシステムＯＳがここにそのための領域を割当て、その領域にデータが書き込まれる。
【００３０】
以上説明したような構成を有する本プリンター２では、上述のように、コントローラー部３でのメモリ確保に特徴があり、以下、その具体的な内容について説明する。図３は、メモリ管理モジュールＭＭによる処理の手順を例示したフローチャートである。ここでは、アプリケーションＡＰからメモリ確保の要求を受けた際の一連の処理内容について説明する。
【００３１】
アプリケーションＡＰが処理を実行する際には、メモリＭＥに自分が使用する所定容量の領域を確保する必要があるので、その旨の要求をメモリ管理モジュールＭＭに行う。当該要求は、従来装置においてはＯＳに対してなされるが、ここでは、メモリ確保を仲介するメモリ管理モジュールＭＭに対してなされるように当該アプリケーションＡＰのプログラムで定められている。また、要求される確保量も当該アプリケーションＡＰのプログラムで決定される。
【００３２】
当該要求が出されると、その要求をメモリ管理モジュールＭＭが受信する（図３のステップＳ１）。この際、メモリ管理モジュールＭＭは、当該受信した情報から要求されたメモリ確保量の情報を取得すると共に、要求元のアプリケーションＡＰの識別情報（アプリケーションＩＤ）を取得する。当該アプリケーションＩＤは、他のアプリケーションＡＰ
と当該アプリケーションＡＰを区別できる情報であり、上記要求に含まれていても良いし、そのアプリケーションＡＰのプログラムがロードされたメモリＭＥ上のアドレスが固定であればそのアドレスをアプリケーションＩＤとして取得しても良い。
【００３３】
次に、メモリ管理モジュールＭＭは、ＮＶＲＡＭ１５に記憶された上記バッファオーバーランの履歴情報（発生情報）を参照する（ステップＳ２）。当該バッファオーバーランの履歴情報は、後述するメモリ管理モジュールＭＭの処理により、バッファオーバーランが発生する度に記録されるものであり、少なくとも、バッファオーバーランを起こしたアプリケーションＡＰの上記アプリケーションＩＤを含み、時系列に記録される。従って、当該履歴情報を参照することで、今回メモリ確保要求をしてきたアプリケーションＡＰが過去に起こしたバッファオーバーランの回数を知ることができる。なお、当該履歴情報に、バッファオーバーランを発生した日時の情報を含めても良い。
【００３４】
メモリ管理モジュールＭＭは、上記履歴情報の参照により、上記取得した要求元のアプリケーションＡＰのアプリケーションＩＤから、当該アプリケーションＡＰの履歴情報を抽出（取得）し、当該アプリケーションＡＰが起こした過去のバッファオーバーランの回数を取得する。
【００３５】
次に、メモリ管理モジュールＭＭは、当該取得した回数に基づいてオペレーティングシステムＯＳに要求するメモリ確保量を決定する（ステップＳ３）。当該メモリ確保量の決定は、過去にバッファオーバーランを起こしている場合に、すなわち、当該取得した回数が１以上である場合に、アプリケーションＡＰから要求された上述の確保量よりも大きい量になるように行う。具体的には、いくつかの方法で行うことができるが、一例としては、過去のバッファオーバーランの回数が多いほど要求するメモリ確保量を多くする様に行う。この場合、例えば、上記回数が０であれば、アプリケーションＡＰから要求されたとおりの確保量に決定し、上記回数が１であれば、アプリケーションＡＰから要求された確保量の１．５倍に決定し、上記回数が２であれば、更にその１．５倍に決定し、以降、同様に、回数が増える度に同じ倍率で増やす様に決定する。あるいは、上記回数が増える度に、アプリケーションＡＰから要求された確保量の所定割合（例えば、５０％）の量が増えるように決定する。
【００３６】
また、他の方法としては、上記取得された回数が０であれば、アプリケーションＡＰから要求されたとおりの確保量に決定し、上記回数が１以上であれば、いずれの場合にも、アプリケーションＡＰから要求された確保量を所定割合で増加させた量に決定する。この場合には、上記履歴情報として、過去にバッファオーバーランを起こしたアプリケーションＡＰについてはそのアプリケーションＩＤを１回記録しておけば良い。
【００３７】
また、上記履歴情報において所定期間以上前の情報は、上記回数に入れないようにしても良い。すなわち、一定期間以上前に発生した古いバッファオーバーランの記録は考慮しないようにしても良い。これは、当該アプリケーションＡＰのプログラムについて修正が行なわれており、そのような古い情報がその時点での当該プログラムの状態を示すものではなくなっている可能性があるからである。
【００３８】
その後、メモリ管理モジュールＭＭは、当該決定したメモリ量の確保をオペレーティングシステムＯＳに対して行なう（ステップＳ４）。当該要求を受けてオペレーティングシステムＯＳは、メモリＭＥに要求された量の領域を割り当てる処理を実行し、その領域が確保されるとその旨をメモリ管理モジュールＭＭに通知する。
【００３９】
当該通知を受信したメモリ管理モジュールＭＭは、そのメモリ確保の結果を上記要求元のアプリケーションＡＰに通知する（ステップＳ５）。この際、オペレーティングシステ
ムＯＳから確保した領域のアドレスが通知されるので、そのアドレスを当該アプリケーションＡＰに知らせる。
【００４０】
なお、オペレーティングシステムＯＳが要求された量のメモリを割り当てできない場合には、エラーとして処理がなされ、当該メモリ確保要求の一連の処理も終了する。
【００４１】
上記通知の後、上記要求元のアプリケーションＡＰは、メモリが確保されたので、実際の処理を開始し、確保されたメモリ領域を用いるべくメモリアクセスを行なう。このメモリアクセスも、本コントローラー部３では、メモリ管理モジュールＭＭを介して行われるので、メモリ管理モジュールＭＭに対して要求がなされるようにプログラムされている。
【００４２】
メモリ管理モジュールＭＭは、当該メモリアクセス要求を受けると（ステップＳ６のＹｅｓ）、上述した場合と同様の方法で要求元のアプリケーションＡＰのアプリケーションＩＤを取得し、その後、要求されたメモリアクセスを実施する（ステップＳ７）。すなわち、メモリＭＥの割り当てられた領域にデータを書き込む。
【００４３】
ここで、メモリ管理モジュールＭＭは、当該メモリアクセスによるバッファオーバーランの発生（ステップＳ８）、メモリ解放の指示（ステップＳ９）、あるいは、次のメモリアクセス要求（ステップＳ６）を待つ。
【００４４】
もし当該メモリアクセスによるバッファオーバーランの発生があった場合には（ステップＳ８のＹｅｓ）、そのことがオペレーティングシステムＯＳによって検知され、メモリ管理モジュールＭＭは、当該発生したバッファオーバーランについて上記履歴情報に記録する（ステップＳ１１）。具体的には、ＮＶＲＡＭ１５にアクセスして、上記要求元の上記取得したアプリケーションＩＤを所定の情報と共に記録する。なお、オペレーティングシステムＯＳによって上記バッファオーバーランが検知された場合には、割り込み処理として処理がメモリ管理モジュールＭＭに移行するように予め設定されている。具体的には、割り込みベクターテーブルの当該箇所にメモリ管理モジュールＭＭのプログラムのアドレスが設定されている。
【００４５】
この場合には、その後、アプリケーションＡＰによる処理が停止され、メモリ管理モジュールＭＭによる当該メモリ確保の一連の処理が終了する。
【００４６】
また、もしバッファオーバーランの発生せずに次のメモリアクセス要求を受けた場合には（ステップＳ８のＮｏ及びＳ９のＮｏ、Ｓ６のＹｅｓ）、上述したステップＳ７の処理から実行される。
【００４７】
また、もし上記アクセス要求をしたアプリケーションＡＰからメモリ解放の要求を受けた場合には（ステップＳ９のＹｅｓ）、メモリ管理モジュールＭＭは、メモリＭＥの上記割り当てられた領域を解放する。なお、上記解放要求もメモリ管理モジュールＭＭになされるようにアプリケーションＡＰにおいてプログラムされている。かかる解放処理がなされると、メモリ管理モジュールＭＭによる当該メモリ確保の一連の処理が終了する。
【００４８】
以上説明したように、メモリ管理モジュールＭＭによるメモリ確保の処理がアプリケーションＡＰから要求がなされる度に実行される。
【００４９】
このように本実施の形態例に係るコントローラー部３では、アプリケーションＡＰからメモリ確保の要求がなされた場合に、メモリ管理モジュールＭＭが、そのアプリケーションＡＰによって過去にバッファオーバーランが発生している場合には、要求された容量よりも大きい容量のメモリ領域を確保するようにし、また、そのようなメモリ確保を行なう
ために、バッファオーバーランが発生した場合には、その記録を残すようにする。従って、アプリケーションＡＰが用いられる場合に、過去にバッファオーバーランを起こしたアプリケーションＡＰの場合には、メモリ管理モジュールＭＭによって自動的に確保するメモリ容量が増えるように調整され、バッファオーバーランを起こす可能性が低くなる。よって、アプリケーションが停止してしまう回数も減り、ユーザー利便性が向上する。また、そのアプリケーションＡＰのプログラム修正を直ぐに行なわなくてもバッファオーバーランに対する対処が可能となる。また、過去のバッファオーバーランの回数により、確保するメモリ容量を順次増やすことにより、さらに、バッファオーバーランを起こす可能性が低くなる。
【００５０】
なお、上記実施形態では、メモリ管理モジュールＭＭをソフトウェアで実現したが、当該モジュールと同様の機能またはその機能の一部を、ＭＭＵ等のハードウェアで実現しても良い。
【００５１】
なお、上記実施形態では、本発明を適用した情報処理装置がプリンター内のコントローラー部であったが、本発明は汎用コンピューターなど他の情報処理装置に適用することができる。パーソナルコンピューターなど多目的で用いられる汎用の環境に適用する場合には、上記メモリ管理モジュールＭＭと同様のモジュールを起動させた際に、バッファオーバーランが起こった際の割り込み処理として当該モジュールに処理が移行するように、当該モジュールが設定を書き換えるようにすることによって、上記実施形態と同様の処理を実行することができる。また、アプリケーション側では、当該モジュールを用いるものについては、メモリ確保要求、メモリアクセス要求を当該モジュールに対して行うようにプログラムし、当該モジュールを用いないアプリケーションについては、従来通り、ＯＳに対してメモリ確保要求等を行うようにする。
【００５２】
本発明の保護範囲は、上記の実施の形態に限定されず、特許請求の範囲に記載された発明とその均等物に及ぶものである。
【符号の説明】
【００５３】
１  ホストコンピューター、  ２  プリンター、  ３  コントローラー部、  ４  印刷実行部、  １１  Ｉ／Ｆ、  １２  ＣＰＵ（制御手段）、  １３  ＲＯＭ、  １４  ＲＡＭ、  １５  ＮＶＲＡＭ（記憶手段）、  １６  エンジンＩ／Ｆ、  ＯＳ  オペレーティングシステム、  ＭＭ  メモリ管理モジュール（メモリ管理手段）、  ＡＰ  アプリケーション、  ＭＥ  メモリ
【図１】
2011221785.tif 000003
【図２】
2011221785.tif 000004
【図３】
2011221785.tif 000005