(57)【要約】【課題】スワップの効率化を図る。【解決手段】複数のプログラム３２のうちの１つのプログラムが先行して実行されているときに、或るイベントが発生して上記１つのプログラムがアイドリング状態に移行されて他のプログラムが新たに起動され、メモリ４の主記憶領域４１ａの記憶領域を使用しようとしたときに、その記憶容量が不足しているときに、スワップ対象のデータそのもの、又はスワップ対象のデータとプログラム記憶媒体３からメモリ４の主記憶領域４１Ａにデータを展開した元のデータとの差分のどちらをスワップさせるかを，予め記憶しておいた判定情報に基づいて行う。【選択図】図１
2009217394.tif 000002
【特許請求の範囲】
【請求項１】
並行して実行される複数の処理毎に当該処理対応の記憶領域を第１の記憶手段に確保し、確保された前記記憶領域に第２の記憶手段のデータを読み出して複数の前記処理の各々を順次遂行して行く際に、複数の前記処理のうちの任意の処理が開始されて当該処理で確保しようとする前記第１の記憶手段の前記記憶領域に不足が生ずるとき、先行する処理で確保された前記記憶領域のデータを第３の記憶手段にスワップさせる情報処理システムのデータスワップ方法であって、
前記スワップ対象のデータと前記第２の記憶手段のデータとの差分をスワップさせるか又は前記スワップ対象のデータをスワップさせるかを判断し、
該判断の結果に基づいて前記差分又は前記スワップ対象のデータを前記第３の記憶手段にスワップさせることを特徴とする情報処理システムのデータスワップ方法。
【請求項２】
並行して実行される複数の処理毎に当該処理対応の記憶領域を第１の記憶手段に確保し、確保された前記記憶領域に第２の記憶手段のデータを読み出して複数の前記処理の各々を順次遂行して行く際に、複数の前記処理のうちの任意の処理が開始されて当該処理で確保しようとする前記第１の記憶手段の前記記憶領域に不足が生ずるとき、先行する処理で確保された前記記憶領域のデータを第３の記憶手段にスワップさせる情報処理システムのデータスワップ方法であって、
前記スワップ対象のデータと前記第２の記憶手段のデータとの差分をスワップさせるか又は前記スワップ対象のデータをスワップさせるかの判定情報を予め第４の記憶手段に記憶し、
前記任意の処理の開始時に前記第４の記憶手段から前記判定情報を読み出し、
読み出された前記判定情報に基づいて前記差分又は前記スワップ対象の前記データを前記第３の記憶手段にスワップさせることを特徴とする情報処理システムのデータスワップ方法。
【請求項３】
並行して実行される複数の処理毎に当該処理対応の記憶領域を第１の記憶手段に確保し、確保された前記記憶領域に第２の記憶手段のデータを読み出して複数の前記処理の各々を順次遂行して行く際に、複数の前記処理のうちの任意の処理が開始されて当該処理で確保しようとする前記第１の記憶手段の前記記憶領域に不足が生ずるとき、先行する処理で確保された前記記憶領域のデータを第３の記憶手段にスワップさせる情報処理システムのデータスワップ方法であって、
前記スワップ対象の前記記憶領域についてのデータ量判別情報を第５の記憶手段に記憶し、
記憶された前記データ量判別情報を読み出し、
読み出された前記データ量判別情報に基づいて前記スワップ対象のデータと前記第２の記憶手段のデータとの差分又は前記スワップ対象の前記データを前記第３の記憶手段に対してスワップさせることを特徴とする情報処理システムのデータスワップ方法。
【請求項４】
前記判定情報は、前記処理についての事前の解析から得られる情報であることを特徴とする請求項２記載の情報処理システムのデータスワップ方法。
【請求項５】
前記事前の解析は、動的解析であることを特徴とする請求項４記載の情報処理システムのデータスワップ方法。
【請求項６】
前記事前の解析は、静的解析であることを特徴とする請求項４記載の情報処理システムのデータスワップ方法。
【請求項７】
前記データ量判別情報は、セクション情報であることを特徴とする請求項３記載の情報処理システムのデータスワップ方法。
【請求項８】
並行して実行される複数の処理毎に当該処理対応の記憶領域を第１の記憶手段に確保し、確保された前記記憶領域に第２の記憶手段のデータを読み出して複数の前記処理の各々を順次遂行して行く際に、複数の前記処理のうちの任意の処理が開始されて当該処理で確保しようとする前記第１の記憶手段の前記記憶領域に不足が生ずるとき、先行する処理で確保された前記記憶領域のデータを第３の記憶手段にスワップさせる情報処理システムであって、
前記スワップ対象のデータと前記第２の記憶手段のデータとの差分をスワップさせるか又は前記スワップ対象のデータをスワップさせるかを判断する判断手段と、
該判断手段の判断結果に基づいて前記差分又は前記スワップ対象のデータを前記第３の記憶手段にスワップさせるスワップ制御手段とを備えることを特徴とする情報処理システム。
【請求項９】
並行して実行される複数の処理毎に当該処理対応の記憶領域を第１の記憶手段に確保し、確保された前記記憶領域に第２の記憶手段のデータを読み出して複数の前記処理の各々を順次遂行して行く際に、複数の前記処理のうちの任意の処理が開始されて当該処理で確保しようとする前記第１の記憶手段の前記記憶領域に不足が生ずるとき、先行する処理で確保された前記記憶領域のデータを第３の記憶手段にスワップさせる情報処理システムであって、
前記スワップ対象のデータと前記第２の記憶手段のデータとの差分をスワップさせるか又は前記スワップ対象のデータをスワップさせるかの判定情報を予め記憶する第４の記憶手段と、
前記任意の処理の開始時に前記第４の記憶手段から前記判定情報を読み出す読み出し手段と、
該読み出し手段によって読み出された前記判定情報に基づいて前記差分又は前記スワップ対象の前記データを前記第３の記憶手段にスワップさせるスワップ制御手段とを備えることを特徴とする情報処理システム。
【請求項１０】
並行して実行される複数の処理毎に当該処理対応の記憶領域を第１の記憶手段に確保し、確保された前記記憶領域に第２の記憶手段のデータを読み出して複数の前記処理の各々を順次遂行して行く際に、複数の前記処理のうちの任意の処理が開始されて当該処理で確保しようとする前記第１の記憶手段の前記記憶領域に不足が生ずるとき、先行する処理で確保された前記記憶領域のデータを第３の記憶手段にスワップさせる情報処理システムであって、
前記スワップ対象の前記記憶領域についてのデータ量判別情報を記憶する第５の記憶手段と、
前記データ量判別情報を読み出す読み出し手段と、
該読み出し手段によって読み出された前記データ量判別情報に基づいて前記スワップ対象のデータと前記第２の記憶手段のデータとの差分又は前記スワップ対象の前記データを前記第３の記憶手段に対してスワップさせるスワップ制御手段とを備えることを特徴とする情報処理システム。
【請求項１１】
前記判定情報は、前記処理についての事前の解析から得られる情報であることを特徴とする請求項９記載の情報処理システム。
【請求項１２】
前記事前の解析は、動的解析であることを特徴とする請求項１１記載の情報処理システム。
【請求項１３】
前記事前の解析は、静的解析であることを特徴とする請求項１１記載の情報処理システム。
【請求項１４】
前記データ量判別情報は、セクション情報であることを特徴とする請求項１０記載の情報処理システム。
【請求項１５】
コンピータに請求項１乃至請求項７記載の情報処理システムのデータスワップ方法を実行させることを特徴とする制御プログラム。
【請求項１６】
コンピータに請求項８乃至請求項１４記載の情報処理システムの制御を行わせることを特徴とする制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、情報処理システムのデータスワップ方法及び情報処理システム並びにその制御プログラムに関し、詳しくはデータスワップの効率化に有用な情報処理システムのデータスワップ方法及び情報処理システム並びにその制御プログラムに関する。
【背景技術】
【０００２】
従来から、コンピュータシステム等の情報処理システムでは、そのシステムを稼動させる複数のプログラムのうちの或るプログラムが使用しようとする主記憶領域に不足が生ずるとき、先行して実行されている他のプログラムで使用していた記憶領域のデータを外部記憶装置等に移す（スワップさせる）処理（以下、従来技術という）が採用されている。そのスワップは、プロセッサのメモリ保護の単位で行われている。
その例が、例えば、特許文献１乃至特許文献３等に示されている。
【特許文献１】特開２０００−２００２１９号公報
【特許文献２】特開２００３−２６３３６６号公報
【特許文献３】特開平０５−１５８７８２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
上記従来技術や特許文献１乃至特許文献３に記載される技術は、プログラム処理でメモリ容量に不足が生ずるときのスワップは、スワップ対象のデータをそっくり他の記憶手段に移すものである。
したがって、システムリソースが限られている、すなわち、磁気ディスク等の大容量の外部記憶装置を装備しないシステム、例えば、携帯電話機では、メモリをより有効に使用する必要がある。
また、スワップ先の記憶手段として、書き換え回数に制限があるフラッシュデバイスを採用すると、製品寿命に影響が出てしまう。
【０００４】
この発明は、上述の事情に鑑みてなされたもので、データの効率的なスワップを達成することのできる情報処理システムのデータスワップ方法及び情報処理システム並びにその制御プログラムを提供することを目的としている。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、この発明の第１の構成は、並行して実行される複数の処理毎に当該処理対応の記憶領域を第１の記憶手段に確保し、確保された上記記憶領域に第２の記憶手段のデータを読み出して複数の上記処理の各々を順次遂行して行く際に、複数の上記処理のうちの任意の処理が開始されて当該処理で確保しようとする上記第１の記憶手段の上記記憶領域に不足が生ずるとき、先行する処理で確保された上記記憶領域のデータを第３の記憶手段にスワップさせる情報処理システムのデータスワップ方法に係り、上記スワップ対象のデータと上記第２の記憶手段のデータとの差分をスワップさせるか又は上記スワップ対象のデータをスワップさせるかを判断し、その判断結果に基づいて上記差分又は上記スワップ対象のデータを上記第３の記憶手段にスワップさせることを特徴としている。
【０００６】
この発明の第２の構成は、並行して実行される複数の処理毎に当該処理対応の記憶領域を第１の記憶手段に確保し、確保された上記記憶領域に第２の記憶手段のデータを読み出して複数の上記処理の各々を順次遂行して行く際に、複数の上記処理のうちの任意の処理が開始されて当該処理で確保しようとする上記第１の記憶手段の上記記憶領域に不足が生ずるとき、先行する処理で確保された上記記憶領域のデータを第３の記憶手段にスワップさせる情報処理システムに係り、上記スワップ対象のデータと上記第２の記憶手段のデータとの差分をスワップさせるか又は上記スワップ対象のデータをスワップさせるかを判断する判断手段と、該判断手段の判断結果に基づいて上記差分又は上記スワップ対象のデータを上記第３の記憶手段にスワップさせるスワップ制御手段とを備えることを特徴としている。
【発明の効果】
【０００７】
この発明によれば、新たに実行される処理で使用したい記憶領域が不足するときに、上記スワップ対象のデータと上記第２の記憶手段のデータとの差分又は上記スワップ対象のデータのいずれかをスワップさせるようにしたので、差分を取る演算量の削減、処理コストの低減等を達成しつつ、スワップ対象のデータのスワップを行い得てスワップの効率化を達成することができる。
【発明を実施するための最良の形態】
【０００８】
この発明は、並行して実行される複数の処理毎に当該処理対応の記憶領域を第１の記憶手段に確保し、確保された記憶領域に第２の記憶手段のデータを読み出して複数の処理の各々を順次遂行して行く際に、複数の処理のうちの任意の処理が開始されて当該処理で確保しようとする第１の記憶手段の記憶領域に不足が生ずるとき、先行する処理で確保されている記憶領域のデータを第３の記憶手段にスワップさせるのに、スワップ対象のデータと第２の記憶手段のデータとの差分をスワップさせるか又はスワップ対象のデータをスワップさせるかを判断することと、その判断結果に基づいて差分又はスワップ対象のデータを第３の記憶手段にスワップさせることとを含んで構成される。
【実施形態１】
【０００９】
図１は、この発明の実施形態１である情報処理システムの構成を示す図、また、図２は、同情報処理システムにおけるスワップ処理の説明図である。
この実施形態の情報処理システム１は、複数のプログラムの逐次的実行において、先行するプログラムに続いて実行されるプログラムで使用したい記憶領域に不足が生ずるときのスワップ対象データを所定の条件に応じて決まる態様でスワップするシステムに係り、図１に示すように、ＣＰＵ（Central Processing Ｕnit）２と、プログラム記憶媒体３と、メモリ４と、スワップ用低速メモリ５とから概略構成されている。
【００１０】
ＣＰＵ２は、ＣＰＵコア２１と、メモリマネージメントユニット（Memory Management Ｕnit）（以下、ＭＭＵという）２２と、入出力インタフェース（入出力Ｉ／Ｆ）２３と、メモリインタフェース（メモリＩ／Ｆ）２４とを有して構成されている。
ＣＰＵコア２１は、後述するプログラム記憶媒体３のＯＳ（Operation System）記憶領域３１ａに記憶されているＯＳ及び各プログラムの処理を行う処理部である。ＭＭＵ２２は、ＣＰＵコア２１と、入出力Ｉ／Ｆ２３と、メモリＩ／Ｆ２４との間で所要の情報を送受する送受信部で、ＯＳがＣＰＵコア２１で実行されるときＭＭＵ２２を介してＣＰＵコア２１、メモリ４及びスワップ用メモリ５に仮想記憶システムが形成される。この仮想記憶システムにおいて、スワップが行われるが、スワップされる記憶領域のサイズは、ＣＰＵ２１によるメモリ保護単位で行われる。
入出力Ｉ／Ｆ２３は、ＭＭＵ２２とプログラム記憶媒体３との間で情報を送受するインターフェース部であり、メモリＩ／Ｆ２４は、ＭＭＵ２２とメモリ４との間で情報を送受するインターフェース部である。
【００１１】
プログラム記憶媒体３は、ＯＳ記憶領域３１ａと、プログラム記憶領域３２ａと、ファイル記憶領域３３ａとを有して構成されている。ＯＳ記憶領域３１ａには情報処理システム１全体の制御機能及び仮想記憶機能を備えるＯＳ３１が記憶され、プログラム記憶領域３２ａには、情報処理システム１に各種処理を生ぜしめる複数のプログラム３２が記憶される。
【００１２】
ファイル記憶領域３３ａには、スワップが必要となったとき、スワップ対象データの差分又はスワップデータのいずれをスワップさせるかの判定情報等の各種ファイル３３が記憶される。判定情報は、プログラムの実行前の静的解析若しくは事前実行での動的解析によって得られる情報である。
メモリ４は、上記仮想記憶システムの主記憶領域４１ａで、情報処理システム１が動作状態となると、ＣＰＵコア２１のプロセス空間として用いられ、スワップ用低速メモリ５は、上記仮想記憶システムのスワップ領域として用いられる。
【００１３】
次に、図１及び図２を参照して、この実施形態の動作について説明する。
情報処理システム１を稼動させるのに先立って、上述の判定情報を取得してプログラム記憶媒体３のファイル記憶領域３３ａに予め記憶させる。
そして、情報処理システム１が稼動され、ＯＳ記憶領域３１ａからＯＳ３１がＣＰＵコア２１によってメモリ４の主記憶領域４１ａのＯＳ作業領域に読み出されて情報処理システム１が動作状態に入ると、ＯＳ３１は、プログラム記憶領域３２ａのプログラム３２をメモリ４の主記憶領域上に展開する。この展開作業自体は、決まった手順で行われるため、何度でも同じ内容を展開可能である。
この展開を行う際に、ＯＳ３１は、主記憶領域４１ａに展開された内容がプログラム記憶媒体３のどのプログラム３２若しくはファイル３３から展開されたものであるかを識別情報を付して主記憶領域４１ａに記憶しておく（その具体例は後述する）。
【００１４】
これについて、図２を参照して説明すると、プログラム記憶媒体３の複数のプログラム３２のうちのプログラムａｂｃには、初期値０のｂｓｓ領域３２１と、初期値ありのｒｗ−ｄａｔａ領域３２２と、固定値のｒｏ−ｄａｔａ領域３２３と、ｔｅｘｔ領域３２４とが存在するとする。ｂｓｓ領域３２２は、アドレス及びサイズ情報のみで実体は無い場合が多い。
そのプログラムａｂｃが実行されて主記憶領域４１ａの変更できないｒｏ領域４１に展開されたものはプログラムａｂｃのうちのｒｏ−ｄａｔａ領域３２３及びｔｅｘｔ領域３２４から、また、変更可能なｒｗ領域４２に展開されたものはプログラムａｂｃのうちのｂｓｓ領域３２１及びｒｗ−ｄａｔａ領域３２２から生成されたものであることをその各々に識別情報を付して主記憶領域４１ａに記憶しておく。
【００１５】
情報処理システム１がこのような動作状態になり、複数のプログラム３２が順次起動されてその実行が行われるときに、何らかのイベント（例えば、プログラムの割り込み）が発生して先行して実行されていたプログラムａｂｃがアイドリング状態へ移行され、新たなプログラムｄｅｆが起動されたとき、当該プログラムによって使用し得る主記憶領域４１ａの記憶領域が不足していると、先行して実行されていたプログラムａｂｃが使用していた主記憶領域４１ａの記憶領域のデータがスワップ対象となり、その記憶領域のデータがスワップ用低速メモリ５のスワップ領域にスワップされる。そのスワップは、次のようにして行われる。
【００１６】
上述のように、起動されたプログラムｄｅｆの実行において当該プログラムが使用しようとする主記憶領域４１ａの記憶領域に不足があり、先行して実行されていたプログラムａｂｃによって既に使用していた主記憶領域４１ａの記憶領域、例えば、ｒｗ領域４２のデータがスワップ対象となったとする。
そのｒｗ領域４２が、プログラム記憶媒体３のプログラム領域３２の各プログラムの起動に先立って、ＯＳによってプログラムａｂｃのｂｓｓ３２１及びｒｗ−ｄａｔａ３２２から生成されたものであることを、起動されたプログラムｄｅｆは、ｒｗ領域４２に記憶されている識別情報から認識する。
【００１７】
そのｒｗ領域４２は、先行して実行されていたプログラムａｂｃによって更新されている可能性がある。そこで、ｒｗ領域４２のデータのスワップ用低速メモリ５へのスワップに際して、プログラム記憶媒体３のファイル記憶領域２２に予め記憶されている判定情報を読み出してその判定情報に基づいたスワップ対象のデータのスワップを行う。
【００１８】
例えば、判定情報が、スワップ対象となったｒｗ領域４２のデータとプログラムａｂｃのｂｓｓ３２１及びｒｗ−ｄａｔａ３２２との差分が大きいとか、或るいはその差分は小さいが更新頻度が高い等であることを示しているならば、上記差分についてのスワップでなく、スワップ対象データ自体をスワップ用低速メモリ５へスワップさせる。主記憶領域４１ａ内のｒｗ領域４２のｂｓｓ４２１及びｒｗ−ｄａｔａ４２２は、スワップ用低速メモリ５にあるスワップ領域５１ａ内のｂｓｓ５１１及びｒｗ−ｄａｔａ５１２にスワップされる。
逆であるならば、上記差分についてのスワップを生じさせる。
【００１９】
何らかのイベントの発生により、アイドリング状態にあったプログラムａｂｃが起動され、そのプログラムａｂｃの実行に際してスワップされたｒｗ領域４２のデータが必要になったとき、先ず、プログラムａｂｃのｂｓｓ３２１及びｒｗ−ｄａｔａ３２２をプログラム記憶媒体３から主記憶領域４１ａの確保されている記憶領域に展開する一方、スワップ用低速メモリ５にスワップして置いた差分データ又はスワップ対象データをスワップ用低速メモリ５から主記憶領域４１ａのワーキング領域に読み出す。
そして、展開されたデータと主記憶領域４１ａのワーキング領域に読み出されたデータとに基づいて、プログラムａｂｃにおいて使用していたｒｗ領域４２のデータを復元する。
【００２０】
このように、この実施形態の構成によれば、新たに起動されたプログラムで使用したい主記憶領域の記憶領域が不足するときのスワップを予め取得した判定情報に基づいて行うようにしたので、差分を取る演算量の削減、処理コストの低減等を達成しつつ、スワップ対象のデータのスワップを行い得てスワップの効率化を達成することができる。
【実施形態２】
【００２１】
図３は、この発明の実施形態２である情報処理システムの構成を示す図である。
この実施形態の構成が、実施形態１のそれと大きく異なる点は、スワップ対象データの判定にセクション情報を用いるようにした点である。
すなわち、この実施形態の情報処理システム１Ａは、図３に示すように、プログラム記憶媒体３Ａに記憶されるプログラム３２Ａが使用する記憶領域についてのセクション情報に基づいてスワップ対象データの判定を行うように構成したことにその特徴部分がある。
セクション情報には、そのセクション内に入っているデータ量を示す情報が設定されている。
この構成以外のこの実施例の構成は、実施例１と同じであるので、同一の構成部分には同一の参照符号を付して、その逐一の説明は省略する。
【００２２】
次に、図３を参照して、この実施形態の動作について説明する。
この実施形態においても、情報処理システム１Ａで複数のプログラム３２Ａが並行して実行されるが、そのうちの第１のプログラムが実行されるとき、第１のプログラムの各プログラム部分から生成された内容が主記憶領域４１ａ内に確保される記憶領域に記憶される。その記憶領域に記憶される内容が該内容に対応する上記プログラム部分から生成されたものであることを当該記憶領域に識別情報を付して記憶しておく。例えば、第１のプログラムの第１のプログラム部分から生成された第１の内容が、主記憶領域４１ａ内の第１の記憶領域に記憶されたとすると、その識別情報は、上記第１の記憶領域に記憶される。
【００２３】
上述のように、情報処理システム１Ａで複数のプログラムが並行して実行されているときに、何らかのイベント（例えば、プログラムの割り込み）が発生して先行して実行されている第１のプログラムがアイドリング状態に移行され、発生したイベント対応の第２のプログラムが起動されたとき、当該プログラムによって使用し得る主記憶領域４１ａの記憶領域が不足していると、先行して実行されていた第１のプログラムが使用していた主記憶領域４１ａの記憶領域のデータがスワップ対象となり、その記憶領域のデータがスワップ用低速メモリ５のスワップ領域にスワップされる。そのスワップは、次のようにして行われる。
【００２４】
上述のように、起動された第２のプログラムの実行において当該プログラムが使用しようとする主記憶領域４１ａの記憶領域に不足があり、先行して実行されていた第１のプログラムによって既に使用していた主記憶領域４１ａの第１の記憶領域のデータがスワップ対象となったとする。
その第１の記憶領域には、プログラム記憶媒体３のプログラム領域３２ａの各プログラムの起動に先立って、ＯＳによって第１のプログラムの第１のプログラム部分から生成されたものであることを示す識別情報が主記憶領域４１ａに記憶されているから、起動された第２のプログラムは、第１の記憶領域に記憶されているデータが上記第1のプログラム部分から生成されたものであることを上記識別情報から認識する。
【００２５】
その第1の記憶領域は、先行して実行されていた第1のプログラムによって更新されている可能性がある。そこで、第1の記憶領域のデータのスワップ用低速メモリ５へのスワップに際して、第1の記憶領域に係るセクション情報を第1の記憶領域から読み出してそのセクション情報に基づいたスワップ対象のデータのスワップを行う。
【００２６】
例えば、第1の記憶領域のデータ量が少ないことをセクション情報が示しているならば、スワップ対象となった第1の記憶領域のデータと該データに対応する第1のプログラムの第1のプログラム部分との差分を取らずにスワップ対象のデータをそのままスワップさせる。
逆に、セクション情報がデータ量の多いことを示しているときには、上記差分をスワップさせる。
【００２７】
何らかのイベントの発生により、アイドリング状態にあった第1のプログラムが起動され、そのプログラムの実行に際してスワップされた上記第1の記憶領域のデータが必要になったとき、先ず、第1のプログラムの第1のプログラム部分をプログラム記憶媒体３から主記憶領域４１ａの確保されている記憶領域に展開する一方、スワップ用低速メモリ５にスワップして置いた差分データ又はスワップ対象データをスワップ用低速メモリ５から主記憶領域４１ａのワーキング領域に読み出す。
そして、展開されたデータと主記憶領域４１ａのワーキング領域に読み出されたデータとに基づいて、第1のプログラムにおいて使用していた第1の記憶領域のデータを復元する。
【００２８】
このように、この実施形態の構成によれば、新たに起動されたプログラムで使用したい主記憶領域の記憶領域が不足するときのスワップをスワップ対象の記憶領域についてのセクション情報に基づいて行うようにしたので、差分を取る演算量の削減、処理コストの低減等を達成しつつ、スワップ対象のデータのスワップを行い得てスワップの効率化を達成することができる。
【実施形態３】
【００２９】
この実施形態は、実施形態１及び実施形態２と同様、主記憶領域に記憶領域の不足が生ずるときに行われるスワップにおいて、スワップ対象のデータと該データの生成に用いられた原データとの差をスワップさせるか又はスワップ対象のデータをそのままスワップさせるかの判定を次のように構成したことにその特徴部分がある。
プログラムを試行的に実行し、ページを比較する。その比較により、ページの殆どが変更されるページについての判定情報を予め格納しておく。
そして、プログラムの実際の実行において、スワップが必要になったとき、上記判定情報に基づいて、そのページについては、実施形態１又は実施形態２と同様の差分を取らずにスワップを行う。上記判定情報がその逆を示しているならば、上記差分のスワップを行う。
この実施形態においても、実施形態１や実施形態２と同様の効果が得られる。
【実施形態４】
【００３０】
この実施形態は、実施形態１乃至実施形態３と同様、主記憶領域に記憶領域の不足が生ずるときに行われるスワップにおける判定を次のように構成したことにその特徴部分がある。
プログラムを試行的に実行し、スワップ関するプロファイルを作成する。具体的にはスワップイン、スワップアウトするページの統計を取る。その統計データから頻繁にスワップイン、スワップアウトするページについての判定情報を予め格納しておく。
そして、プログラムの実際の実行において、スワップが必要になったとき、上記判定情報に基づいて、そのページについては、実施形態１乃至実施形態３と同様の差分を取らずにスワップを行う。上記判定情報がその逆を示しているならば、上記差分のスワップを行う。
この実施形態においても、実施形態１乃至実施形態３と同様の効果が得られる。
【実施形態５】
【００３１】
この実施形態は、実施形態１乃至実施形態４と同様、主記憶領域に記憶領域の不足が生ずるときに行われるスワップにおける判定を次のように構成したことにその特徴部分がある。
静的解析の下では使用される記憶領域であるとするものでも、実際にプログラムを実行させるときには殆ど使われないことが判明することがある。例えば、動作不良のときの異常系処理等の場合である。
このような記憶領域についての判定情報を予め格納しておく。
そして、プログラムの実際の実行において、スワップが必要になったとき、上記判定情報に基づいて、その記憶領域については、実施形態１乃至実施形態４と同様の差分を取ってその差分のスワップを行う。上記判定情報がその逆を示しているならば、上記差分を取らずにスワップ対象データのスワップを行う。
この実施形態においても、実施形態１乃至実施形態４と同様の効果が得られる。
【実施形態６】
【００３２】
この実施形態は、実施形態１乃至実施形態５と同様、主記憶領域に記憶領域の不足が生ずるときに行われるスワップにおける判定を次のように構成したことにその特徴部分がある。
静的解析では、例えば、数箇所の関数からしか呼ばれない記憶領域でも、実際にプログラムを実行させると最初にすべて書き換える動作があるので、そのことを予め検出しておき、検出される記憶領域についての判定情報を予め格納しておく。
そして、プログラムの実際の実行において、スワップが必要になったとき、上記判定情報に基づいて、その記憶領域については、実施形態１乃至実施形態４と同様差分を取らずにスワップ対象のデータのスワップを行う。上記判定情報がその逆を示しているならば、上記差分を取ってその差分のスワップを行う。
この実施形態においても、実施形態１乃至実施形態５と同様の効果が得られる。
【００３３】
以上、この発明の実施形態を、図面を参照して詳述してきたが、この発明の具体的な構成は、これらの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計の変更等があってもそれらはこの発明に含まれる。
例えば、実施形態１乃至実施形態６では、データのスワップ先をスワップ用低速メモリとする例について説明したが、スワップ先をその他の記憶手段、例えば、内部メモリやプログラム記憶媒体等としてもよい。
【産業上の利用可能性】
【００３４】
ここに開示している情報処理システムのスワップ方法及び情報処理システムは、情報を取り扱う各種産業分野の処理装置で利用し得る。
【図面の簡単な説明】
【００３５】
【図１】この発明の実施形態１である情報処理システムの構成を示す図である。
【図２】同情報処理システムにおけるスワップ処理の説明図である。
【図３】この発明の実施形態２である情報処理システムの構成を示す図である。
【符号の説明】
【００３６】
１、１Ａ      情報処理システム
３      プログラム記憶媒体（第２の記憶手段、第４の記憶手段）
４      メモリ（第１の記憶手段、第５の記憶手段）
５      スワップ用低速メモリ（第３の記憶手段）
２１      ＣＰＵコア（判断手段の一部、読み出し手段の一部、スワップ制御手段の一部）
３１      ＯＳ（スワップ制御手段の一部）
３２      プログラム（判断手段の残部、読み出し手段の残部、スワップ制御手段の残部）
【図１】
2009217394.tif 000003
【図２】
2009217394.tif 000004
【図３】
2009217394.tif 000005