(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-28
(45)【発行日】2024-12-06
(54)【発明の名称】アプリケーションプログラム実行方法
(51)【国際特許分類】
G06F 9/445 20180101AFI20241129BHJP
【FI】
G06F9/445 150
(21)【出願番号】P 2021191667
(22)【出願日】2021-11-26
【審査請求日】2023-11-13
(73)【特許権者】
【識別番号】000006013
【氏名又は名称】三菱電機株式会社
(74)【代理人】
【識別番号】110002941
【氏名又は名称】弁理士法人ぱるも特許事務所
(72)【発明者】
【氏名】田村 大
【審査官】松平 英
(56)【参考文献】
【文献】特開2005-301801(JP,A)
【文献】特開2019-096271(JP,A)
【文献】米国特許出願公開第2021/0103446(US,A1)
【文献】佐伯 顕治 他,Tenderの資源再利用機能を利用した高速fork&exec処理の実現と評価,電子情報通信学会論文誌,日本,社団法人電子情報通信学会,2008年12月01日,第J91-D巻、第12号,pp. 2892-2903,[ISSN]1880-4535
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/00-8/38
8/60-8/77
9/44-9/445
9/451
(57)【特許請求の範囲】
【請求項1】
プロセッサと主記憶装置を備え、オペレーティングシステムにより、アプリケーションプログラムを、実行単位としてのプロセスを生成することにより実行するアプリケーションプログラム実行方法において、前記アプリケーションプログラムの実行時に使用したプロセスを前記アプリケーションプログラムの実行終了時に前記主記憶装置に保持し、保持されたプロセスを次のアプリケーションプログラム実行時に再度利用する
ために、
前記次のアプリケーションプログラム実行時にシステムコールを発行するステップ、システムコール発行後、前記保持されたプロセスが前記システムコールを発行したアプリケーションプログラムに利用可能であるか否かを探索するステップ、利用可能である場合に、再利用可能なプロセスを確保するステップ、前記再利用可能なプロセスの少なくともデータ領域およびプロセス管理用データの初期化を行うステップを備えたことを特徴とするアプリケーションプログラム実行方法。
【請求項2】
前記次のアプリケーションプログラムが、fork()である場合、前記データ領域および前記プロセス管理用データを初期化する代わりに少なくとも前記データ領域および前記プロセス管理用データをfork()を発行したプロセスより複写することを特徴とする請求項
1に記載のアプリケーションプログラム実行方法。
【請求項3】
前記次のアプリケーションプログラムが、execve()である場合、再利用プロセスの確保の後、前記再利用可能なプロセスとexecve()を発行したプロセスとを交換するために、前記execve()を発行したプロセスを再利用プロセスとして登録するステップを有することを特徴とする請求項
1に記載のアプリケーションプログラム実行方法。
【発明の詳細な説明】
【技術分野】
【0001】
本願はアプリケーションプログラム実行方法に関するものである。
【背景技術】
【0002】
オペレーティングシステム(以下OSと称す)が搭載された計算機システムにおいて、アプリケーションプログラム(以下APLと称す)を実行するとき、OSはAPLの実行単位であるプロセスを主記憶装置上に生成し、APLの実行状態を管理する。
【0003】
プロセスの生成処理において、プログラム読み込み、および論理アドレス空間の生成といった処理を実施する。プログラム読み込み処理は外部記憶装置上にアクセスする必要があり、論理アドレス空間の生成はページテーブル構造の作成が必要となるため、処理負荷が大きい。このため、多くのOSでは、プログラム読み込み処理に対してはバッファキャッシュの利用によるI/Oの削減を行い、論理アドレス空間の生成に対してはデマンドページング等の利用により処理負荷を削減している。
【0004】
APLの実行によるシステムの応答速度の影響を抑制するために採用される方式として、APLを予め実行して待機させておき、必要時に動作するようなシステム構成とする方式がある。この場合、APLの処理を変更するために、ソースコードの修正が必要であるが、ソースコードが入手できないAPLの実行では、適用困難である。
【0005】
そこで、APL実行時のプロセス生成にかかる処理時間を短縮するために、同一のAPLを複数回実行する環境において、複数個のプロセスを生成処理する際に、個々に作成するのではなく、プロセスを一つ作成した後にそのプロセスを任意の個数複製し、複数個のプロセス生成処理を実現することで、プロセス生成処理時間を短縮し、APLの実行を高速化する方法が知られている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0006】
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、特許文献1の方法であると、プロセス生成処理時間を短縮できるのは、同一APLから複数のプロセスを生成する場合のみに限定されるという課題があった。
【0008】
本願は上述のような問題を解決するためになされたもので、プロセスの生成状況に影響を受けることなく、プロセス生成処理時間を短縮できる計算機システム、およびOSを搭載する計算機システムにおけるAPL実行時の応答性能を向上させるAPL実行方法を提供することを目的とする。
【課題を解決するための手段】
【0010】
本願に開示されるアプリケーションプログラム実行方法は、プロセッサと主記憶装置を備え、オペレーティングシステムにより、アプリケーションプログラムを、実行単位としてのプロセスを生成することにより実行する方法であって、アプリケーションプログラムの実行時に使用したプロセスをアプリケーションプログラムの実行終了時に主記憶装置に保持し、保持されたプロセスを次のアプリケーションプログラム実行時に再度利用するために、次のアプリケーションプログラム実行時にシステムコールを発行するステップ、システムコール発行後、保持されたプロセスがシステムコールを発行したアプリケーションプログラムに利用可能であるか否かを探索するステップ、利用可能である場合に、再利用可能なプロセスを確保するステップ、再利用可能なプロセスの少なくともデータ領域およびプロセス管理用データの初期化を行うステップを備えたことを特徴とする。
【発明の効果】
【0011】
本願に開示されるAPL実行方法によれば、プロセスの生成状況に影響を受けることなく、プロセス生成処理時間を短縮でき、OSを搭載する計算機システムにおけるAPL実行時の応答性能を向上させることができる。
【図面の簡単な説明】
【0012】
【
図1】実施の形態1に係るAPL実行方法を説明する概念図である。
【
図2】実施の形態1に係る計算機のハードウエア構成の一例を示す図である。
【
図3】比較例に係るAPLのプロセス生成処理を説明する図である。
【
図4】実施の形態1に係るAPLの処理を説明する図である。
【
図5】実施の形態1に係るAPL実行時のプロセス生成処理を示すフローチャートである。
【
図6】実施の形態2に係るfork()システムコールの処理を説明する図である。
【
図7】実施の形態2に係るfork()システムコール実行時のプロセス生成処理を示すフローチャートである。
【
図8】実施の形態3に係るexecve()システムコールの処理を説明する図である。
【
図9】実施の形態3に係るexecve()システムコール実行時のプロセス生成処理を示すフローチャートである。
【発明を実施するための形態】
【0013】
以下、本願に係る計算機システムおよびAPL実行方法の好適な実施の形態について、図面を参照して説明する。なお、同一内容および相当部については同一符号を配し、その詳しい説明は省略する。以降の実施形態も同様に、同一符号を付した構成について重複した説明は省略する。
【0014】
実施の形態1.
図1は実施の形態1に係るAPL実行方法を説明する概念図である。APL実行を契機に以下に説明する主記憶装置202内に存在する再利用プロセス管理部100に対して再利用プロセス探索を行い、再利用できる再利用プロセス101が存在するか否かを確認する。再利用できる再利用プロセスが存在すれば再利用し、プロセス生成処理を省略することでAPL実行にかかる処理時間を短縮する。
【0015】
また、プロセスを再利用するために、APL実行終了時に、再利用プロセス管理部100に、再利用プロセス101を登録する。
【0016】
APLを実行するための計算機のハードウエア構成の一例を
図2に示す。計算機200は、プロセッサ201と、ランダムアクセスメモリ等の揮発性記憶装置(主記憶装置202)と、フラッシュメモリ等の不揮発性の補助記憶装置(外部記憶装置203)とを具備する。また、フラッシュメモリの代わりにハードディスクを具備してもよい。プロセッサ201は、外部記憶装置203にある実行形式のファイルを主記憶装置202に読み込む。これにより、プロセッサ201はファイル上のデータにアクセス可能となる。そして主記憶装置202上にプロセスを作成する。ここでの計算機200には、大規模計算機(サーバまたはラップトップなど)、マイコンなどを含む。
【0017】
比較例として、APL実行時のプロセスの生成を
図3(a)に示す。この例では、APLの実行を契機にOSはプロセスを生成し、APLの実行を管理する。プロセスを生成する場合は、次の手順で行う。
(1)APL実行のためのシステムコール発行
(2)外部記憶装置より、APLの実行形式ファイルを主記憶装置に読み込み
(3)プロセス管理用データの主記憶装置上の領域確保
(4)論理アドレス空間生成
(5)APLの各領域を論理アドレス空間へ対応付け
(6)各領域の初期化
(7)プロセスをスケジューラへ登録
【0018】
この比較例では、
図3(b)に示すように、APL実行を終了するとプロセスを削除する。従って、プロセスは再利用されることなく削除されるため、次のAPL実行時に削除したものと同じプロセスが必要な場合は、上記手順(1)~(7)の処理を再度行い、最初から生成する必要がある。
【0019】
図4は、実施の形態1のAPLの処理を説明する図である。既に実行しているAPL_X401が、APL実行用のシステムコールを発行し、APL_Y402を実行開始する場合とする。この時、APL_X401が発行するシステムコールには、APL_Y402を特定するための情報を付与しているものとする。APL_X401とAPL_Y402は同じ種類でも違う種類のAPLでも良い。
【0020】
図5は、実施の形態1におけるAPL実行時のプロセス生成処理を示すフローチャートである。APL実行用のシステムコールが発行後、再利用プロセス管理部100にアクセスし、利用可能な再利用プロセス101があるか探索する(ステップS501)。探索にて実行される処理は、実行しようとしているAPL(
図4におけるAPL_Y402)の種類の再利用プロセス101が存在するかどうかの確認である。例えば、再利用プロセス管理部100にAPL_X401の再利用プロセス101のみが存在している場合、APL_Y402の実行時には再利用による高速化はできない。
【0021】
利用可能な再利用プロセス101がある場合、該当する再利用プロセス101を再利用プロセス管理部100より確保する(ステップS502)。この際、確保した再利用プロセス101のメモリ領域の1つであるBSS(Block Started by Symbol)サイズは初期サイズと異なる場合があるため、初期サイズに変更する(ステップS503)。
【0022】
利用可能な再利用プロセスがない場合、外部記憶装置203から主記憶装置202上へのAPLの読み込み(ステップS504)、プロセス管理用データの主記憶装置202上の領域確保(ステップS505)、主記憶装置202上の論理アドレス空間の生成(ステップS506)、テキスト領域、データ領域、BSS領域、ユーザスタック領域の確保と論理アドレス空間への対応付け(ステップS507)、及びテキスト領域の初期化(ステップS508)を実施する。
【0023】
再利用プロセス101の利用の有無にかかわらず、データ領域、BSS領域の初期化、その他プロセス管理用データの初期化(ステップS509)とプロセススケジューラへの登録(ステップS510)を実施し、実行対象のAPLを実行開始する。
【0024】
以上のように、本実施の形態によれば、再利用プロセス管理部により、再利用プロセスの登録および探索をすることが可能となり、再利用プロセス管理部に管理されている再利用プロセスを用いることで、プロセス生成の時間を短縮することができる。
【0025】
実施の形態2.
図6は実施の形態2に係るシステムコールの処理を説明する図である。これは、汎用OSとして広く利用されるUNIX(登録商標)系統のOSのプロセス生成方法であるfork()システムコールを利用した場合である。fork()システムコールを使ったプロセス生成処理は、fork()を発行したAPL_Xのプロセス601から、新たにAPL_Xのプロセス602を複製する。
【0026】
図7は、実施の形態2におけるfork()システムコール実行時のプロセス生成処理を示すフローチャートである。fork()システムコールが発行後、再利用プロセス管理部100にアクセスし、利用可能な再利用プロセス101があるか確認する(ステップS501)。確認にて実行される処理は、fork()システムコールを発行したプロセスと同じ種類の再利用プロセスがあるか否かの確認である。利用可能な再利用プロセスがある場合、該当する再利用プロセスを再利用プロセス管理部より確保する(ステップS502)。この際、確保した再利用プロセスのBSSサイズは初期サイズと異なる場合があるため、初期サイズに変更する(ステップS503)。
【0027】
再利用可能な再利用プロセスが無い場合、fork()システムコール本来の処理を実施する。具体的には、プロセス管理用データの領域を主記憶装置202上に確保し(ステップS505)、論理アドレス空間の生成を行い(ステップS506)、データ領域、BSS領域、及びユーザスタック領域を主記憶装置202上に確保し、テキスト領域、データ領域、BSS領域、及びユーザスタック領域を論理アドレス空間に対応付ける(ステップS507)。なお、テキスト領域は、fork()を発行したプロセスと共有するため生成処理は行わない。
【0028】
その後、再利用プロセスの利用の有無にかかわらず、データ領域、BSS領域、その他プロセス管理用データを、fork()を発行したプロセスより複写し(ステップS701)、プロセススケジューラへの登録を実施し(ステップS510)、fork()により複製したAPLプロセスの実行を開始する。
【0029】
以上のように、本実施の形態によれば、再利用プロセス管理部に登録された、利用可能な再利用プロセスを使用することにより、fork()のプロセス生成の時間を短縮することができる。
【0030】
実施の形態3.
図8は、実施の形態3に係るシステムコールの処理を説明する図である。これは、実施の形態2同様、汎用OSとして広く利用されるUNIX系統のOSのプロセス生成方法であるfork()+execve()システムコールを利用した場合である。
【0031】
fork()+execve()システムコールを使ったプロセス生成処理は、fork()を発行したAPL_Xのプロセス(801)から、新たにAPL_Xのプロセス(802)を複製し、複製されたAPL_X(802)がexecve()を発行してAPL_X(802)を別の種類のAPLであるAPL_Y(803)に種類を変更する。なお、fork()の処理は実施の形態2で説明した方法により高速化できる。
【0032】
図9は、実施の形態3におけるexecve()システムコール実行時のプロセス生成処理を示すフローチャートである。fork()の処理は実施の形態2と同じであるため、省略する。
【0033】
execve()システムコールが発行後、再利用プロセス管理部100にアクセスし、利用可能な再利用プロセス101があるか確認する(ステップS501)。確認にて実行される処理は、execve()により実行するAPLの種類のプロセスが再利用プロセスとして再利用プロセス管理部100に保持されているか否かの確認である。
【0034】
利用可能な再利用プロセスがある場合、該当する再利用プロセス101を再利用プロセス管理部100より確保する(ステップS502)。次に、再利用プロセス101とexecve()を発行したプロセスを交換するために、execve()を発行したプロセスを再利用プロセス101として再利用プロセス管理部100に登録する(ステップS901)。次に、確保した再利用プロセスのBSS領域のサイズをAPLの初期サイズに変更する。
【0035】
再利用可能な再利用プロセス101が無い場合、execve()システムコールの本来の処理を実施する。具体的には、execve()システムコールで実行しようとしているAPLを読み込み(ステップS504)、execve()システムコールを発行したプロセスのテキスト領域、データ領域、及びBSS領域を論理空間アドレスからの対応付けを解除し(ステップS902)、読み込んだAPLのテキスト領域、データ領域、及びBSS領域を作成し、論理アドレス空間に対応付ける(ステップS903)。その後、テキスト領域の内容を初期化する(ステップS508)。
【0036】
その後、再利用プロセスの利用の有無にかかわらず、データ領域、BSS領域の初期化、その他プロセス管理用データの初期化を行い(ステップS509)、実行対象のAPLを実行開始する。
【0037】
以上のように、本実施の形態によれば、再利用プロセス管理部に登録された、利用可能な再利用プロセスを使用することにより、execve()のプロセス生成の時間を短縮することができる。さらに、fork()についても実施の形態2で説明した再利用プロセスを使用することで、fork()+execve()システムコールに対し、より短い時間でプロセスを生成することが可能となる。
【0038】
本願は、様々な例示的な実施の形態及び実施例が記載されているが、1つ、または複数の実施の形態に記載された様々な特徴、態様、及び機能は特定の実施の形態の適用に限られるのではなく、単独で、または様々な組み合わせで実施の形態に適用可能である。
従って、例示されていない無数の変形例が、本願明細書に開示される技術の範囲内において想定される。例えば、少なくとも1つの構成要素を変形する場合、追加する場合または省略する場合、さらには、少なくとも1つの構成要素を抽出し、他の実施の形態の構成要素と組み合わせる場合が含まれるものとする。
【符号の説明】
【0039】
100:再利用プロセス管理部、101:再利用プロセス、200:計算機、201:プロセッサ、202:主記憶装置、203:外部記憶装置。