図面 (/)

技術 情報処理装置、プロセス管理方法およびプロセス管理プログラム

出願人 富士通株式会社
発明者 二宮温
出願日 2017年8月24日 (2年10ヶ月経過) 出願番号 2017-161226
公開日 2019年3月14日 (1年3ヶ月経過) 公開番号 2019-040343
状態 未査定
技術分野 階層構造のメモリシステム マルチプログラミング
主要キーワード 合計評価値 停止プロセス 連続停止 プロセス管理プログラム スワップ対象 使用サイズ 予定回数 プロセススケジューラ
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2019年3月14日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (14)

課題

並列に実行可能な複数のプロセスによるメモリ使用を効率化する。

解決手段

処理部11は、プロセッサ11a,11b,11cを含む。メモリ12は、並列に実行可能なプロセス14a,14b,14cに割り当てられたアドレス空間に含まれるページのうち一部のページのデータを記憶する。ストレージ装置13は、メモリ12に記憶されていないページのデータを退避する。処理部11は、プロセス14a,14b,14cについて単位時間に使用されたページの量を示すワーキングセットサイズ15a,15b,15cを取得する。処理部11は、ワーキングセットサイズ15a,15b,15cの合計が閾値を超える場合、一部のプロセス14cを選択して選択したプロセス14cを所定時間停止させる。処理部11は、停止中のプロセス14cに対応するページのデータがメモリ12からストレージ装置13に退避されるよう制御する。

概要

背景

RAM(Random Access Memory)などの主記憶としてのメモリとHDD(Hard Disk Drive)などの補助記憶としてのストレージ装置とを有する情報処理装置では、メモリの限られた記憶領域を活用する方法として仮想記憶を使用することが多い。仮想記憶では、CPU(Central Processing Unit)などのプロセッサが実行するプロセスに対して、物理的な記憶領域よりも大きな仮想的なアドレス空間を割り当てる。仮想記憶では、アドレス空間を固定長ページに分割して管理するページング方式が用いられることが多い。

実行中のプロセスについては、アドレス空間に含まれる複数のページのうちの一部のページがメモリに配置され、残りのページがストレージ装置に配置されることがある。プロセスが使用しようとする所望のページがメモリに配置されていない場合にはページフォールトが発生する。ページフォールトが発生すると、メモリに配置された一部のページをストレージ装置に退避するページアウトが行われ、ページアウトによって生じたメモリの空き領域に所望のページをストレージ装置から復元するページインが行われる。

ページアウトさせるページを選択するページ置換アルゴリズムでは、各プロセスのワーキングセットを考慮することがある。ワーキングセットは、あるプロセスに割り当てられたアドレス空間の中で当該プロセスによって単位時間に使用されたページの集合であり、最近使用されたページの集合や使用中のページの集合などと言うことができる。プロセスが広範囲のデータを使用するときはワーキングセットサイズが大きくなり、プロセスが狭い範囲のデータを繰り返し使用するときはワーキングセットサイズが小さくなる。ページ置換アルゴリズムは、短期的には同じページが反復使用されやすいという局所性から、ワーキングセットに属さないページを優先的にページアウトさせることがある。

なお、各プロセスのワーキングセットを判定する周期であるウィンドウサイズを、メモリの空き領域が多いときは長くし、メモリの空き領域が少ないときは短くする主記憶制御ステムが提案されている。また、ページサイズを変更した場合に各プロセスのメモリ割当量がどの様に変化するかを調査するメモリ割当量調査システムが提案されている。

概要

並列に実行可能な複数のプロセスによるメモリ使用を効率化する。処理部11は、プロセッサ11a,11b,11cを含む。メモリ12は、並列に実行可能なプロセス14a,14b,14cに割り当てられたアドレス空間に含まれるページのうち一部のページのデータを記憶する。ストレージ装置13は、メモリ12に記憶されていないページのデータを退避する。処理部11は、プロセス14a,14b,14cについて単位時間に使用されたページの量を示すワーキングセットサイズ15a,15b,15cを取得する。処理部11は、ワーキングセットサイズ15a,15b,15cの合計が閾値を超える場合、一部のプロセス14cを選択して選択したプロセス14cを所定時間停止させる。処理部11は、停止中のプロセス14cに対応するページのデータがメモリ12からストレージ装置13に退避されるよう制御する。

目的

本発明は、並列に実行可能な複数のプロセスによるメモリ使用を効率化する情報処理装置、プロセス管理方法およびプロセス管理プログラムを提供する

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

(分野番号表示ON)※整理標準化データをもとに当社作成

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

複数のプロセッサを含む処理部と、前記複数のプロセッサを用いて並列に実行可能な複数のプロセスに割り当てられたアドレス空間に含まれるページのうち一部のページのデータを記憶するメモリと、前記メモリに記憶されていないページのデータを退避するストレージ装置とを有し、前記処理部は、前記複数のプロセスそれぞれについて単位時間に使用されたページの量を示すワーキングセットサイズを取得し、前記複数のプロセスのワーキングセットサイズの合計が閾値を超える場合、前記複数のプロセスのうち一部のプロセスを選択して前記選択したプロセスを所定時間停止させ、停止中のプロセスに対応するページのデータが前記メモリから前記ストレージ装置に退避されるよう制御する、情報処理装置

請求項2

前記処理部は、前記所定時間毎に停止するプロセスの選択を繰り返し行い、前記停止するプロセスの選択では、前記複数のプロセスそれぞれの連続停止時間を取得し、前記連続停止時間が基準値を超えるプロセスの選択の優先度下げる、請求項1記載の情報処理装置。

請求項3

前記処理部は、停止するプロセスの候補それぞれについて、当該停止するプロセス以外のプロセスのワーキングセットサイズを合計した使用サイズを算出し、前記一部のプロセスの選択では、前記停止するプロセスの候補のうち前記使用サイズが前記閾値を超えない範囲で前記使用サイズが大きい候補の選択の優先度を上げる、請求項1記載の情報処理装置。

請求項4

前記一部のプロセスの選択では、前記複数のプロセスのうち実行中のプロセスであってワーキングセットサイズが大きいプロセスの選択の優先度を下げる、請求項1記載の情報処理装置。

請求項5

前記処理部は、前記複数のプロセスのワーキングセットサイズの変化を監視し、前記一部のプロセスの選択では、前記複数のプロセスのうちワーキングセットサイズの減少量が大きいプロセスの選択の優先度を上げる、請求項1記載の情報処理装置。

請求項6

前記閾値は、前記メモリの記憶容量または前記記憶容量に応じて決定される値である、請求項1記載の情報処理装置。

請求項7

コンピュータが実行するプロセス管理方法であって、前記コンピュータが有する複数のプロセッサを用いて並列に実行可能な複数のプロセスそれぞれについて、当該プロセスに割り当てられたアドレス空間に含まれるページのうち単位時間に使用されたページの量を示すワーキングセットサイズを取得し、前記複数のプロセスのワーキングセットサイズの合計が閾値を超える場合、前記複数のプロセスのうち一部のプロセスを選択して前記選択したプロセスを所定時間停止させ、停止中のプロセスに対応するページのデータが、前記コンピュータが有するメモリから前記コンピュータが有するストレージ装置に退避されるよう制御する、プロセス管理方法。

請求項8

コンピュータに、前記コンピュータが有する複数のプロセッサを用いて並列に実行可能な複数のプロセスそれぞれについて、当該プロセスに割り当てられたアドレス空間に含まれるページのうち単位時間に使用されたページの量を示すワーキングセットサイズを取得し、前記複数のプロセスのワーキングセットサイズの合計が閾値を超える場合、前記複数のプロセスのうち一部のプロセスを選択して前記選択したプロセスを所定時間停止させ、停止中のプロセスに対応するページのデータが、前記コンピュータが有するメモリから前記コンピュータが有するストレージ装置に退避されるよう制御する、処理を実行させるプロセス管理プログラム

技術分野

背景技術

0002

RAM(Random Access Memory)などの主記憶としてのメモリとHDD(Hard Disk Drive)などの補助記憶としてのストレージ装置とを有する情報処理装置では、メモリの限られた記憶領域を活用する方法として仮想記憶を使用することが多い。仮想記憶では、CPU(Central Processing Unit)などのプロセッサが実行するプロセスに対して、物理的な記憶領域よりも大きな仮想的なアドレス空間を割り当てる。仮想記憶では、アドレス空間を固定長ページに分割して管理するページング方式が用いられることが多い。

0003

実行中のプロセスについては、アドレス空間に含まれる複数のページのうちの一部のページがメモリに配置され、残りのページがストレージ装置に配置されることがある。プロセスが使用しようとする所望のページがメモリに配置されていない場合にはページフォールトが発生する。ページフォールトが発生すると、メモリに配置された一部のページをストレージ装置に退避するページアウトが行われ、ページアウトによって生じたメモリの空き領域に所望のページをストレージ装置から復元するページインが行われる。

0004

ページアウトさせるページを選択するページ置換アルゴリズムでは、各プロセスのワーキングセットを考慮することがある。ワーキングセットは、あるプロセスに割り当てられたアドレス空間の中で当該プロセスによって単位時間に使用されたページの集合であり、最近使用されたページの集合や使用中のページの集合などと言うことができる。プロセスが広範囲のデータを使用するときはワーキングセットサイズが大きくなり、プロセスが狭い範囲のデータを繰り返し使用するときはワーキングセットサイズが小さくなる。ページ置換アルゴリズムは、短期的には同じページが反復使用されやすいという局所性から、ワーキングセットに属さないページを優先的にページアウトさせることがある。

0005

なお、各プロセスのワーキングセットを判定する周期であるウィンドウサイズを、メモリの空き領域が多いときは長くし、メモリの空き領域が少ないときは短くする主記憶制御ステムが提案されている。また、ページサイズを変更した場合に各プロセスのメモリ割当量がどの様に変化するかを調査するメモリ割当量調査システムが提案されている。

先行技術

0006

特開昭59−207479号公報
特開平2−53150号公報

発明が解決しようとする課題

0007

近年、情報処理装置は複数のCPUや複数のCPUコアなどの複数のプロセッサを有することが多くなり、複数のプロセスを同時に実行することが可能となっている。同時に実行可能な複数のプロセスが存在する場合、情報処理装置が有する複数のプロセッサを活用して、できる限り並列度を上げるようスケジューリングを行うことが多い。

0008

しかし、プロセッサの数に合わせて並列に実行するプロセスを増やすと、複数のプロセッサから共有されるメモリの記憶領域が不足し、ページアウトとページインが頻繁に繰り返されるスラッシングが発生することがある。よって、メモリアクセスボトルネックとなって、かえってプロセスの実行効率が低下するおそれがある。

0009

1つの側面では、本発明は、並列に実行可能な複数のプロセスによるメモリ使用を効率化する情報処理装置、プロセス管理方法およびプロセス管理プログラムを提供することを目的とする。

課題を解決するための手段

0010

1つの態様では、複数のプロセッサを含む処理部と、複数のプロセッサを用いて並列に実行可能な複数のプロセスに割り当てられたアドレス空間に含まれるページのうち一部のページのデータを記憶するメモリと、メモリに記憶されていないページのデータを退避するストレージ装置とを有する情報処理装置が提供される。処理部は、複数のプロセスそれぞれについて単位時間に使用されたページの量を示すワーキングセットサイズを取得し、複数のプロセスのワーキングセットサイズの合計が閾値を超える場合、複数のプロセスのうち一部のプロセスを選択して選択したプロセスを所定時間停止させ、停止中のプロセスに対応するページのデータがメモリからストレージ装置に退避されるよう制御する。

0011

また、1つの態様では、コンピュータが実行するプロセス管理方法が提供される。また、1つの態様では、コンピュータに実行させるプロセス管理プログラムが提供される。

発明の効果

0012

1つの側面では、並列に実行可能な複数のプロセスによるメモリ使用が効率化される。

図面の簡単な説明

0013

第1の実施の形態の情報処理装置を説明する図である。
第2の実施の形態の情報処理装置のハードウェア例を示す図である。
情報処理装置の機能例を示すブロック図である。
第2の実施の形態のプロセス情報テーブルの例を示す図である。
各プロセスのワーキングセットサイズの変化例を示す図である。
第1の並列実行のRAM使用例を示す図である。
第2の並列実行のRAM使用例を示す図である。
スケジューリングの手順例を示すフローチャートである。
第2の実施の形態のプロセス選択の手順例を示すフローチャートである。
第3の並列実行のRAM使用例を示す図である。
科学技術計算におけるRAM使用量の変化例を示す図である。
第3の実施の形態のプロセス情報テーブルの例を示す図である。
第3の実施の形態のプロセス選択の手順例を示すフローチャートである。

実施例

0014

以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
第1の実施の形態を説明する。

0015

図1は、第1の実施の形態の情報処理装置を説明する図である。
第1の実施の形態の情報処理装置10は、複数のプロセッサを用いて複数のプロセスを同時に実行することができるコンピュータである。情報処理装置10は、クライアントコンピュータでもよいしサーバコンピュータでもよい。

0016

情報処理装置10は、処理部11、メモリ12およびストレージ装置13を有する。処理部11は、プロセッサ11a,11b,11cを含む複数のプロセッサを有する。複数のプロセッサは、例えば、複数のCPUまたは複数のCPUコアである。ただし、処理部11は、DSP(Digital Signal Processor)、ASIC(Application Specific IntegratedCircuit)、FPGA(Field Programmable Gate Array)などの他の電子回路を含んでもよい。メモリ12は、処理部11が有する複数のプロセッサから使用される共有メモリであり、主記憶装置として使用され得る。メモリ12は、例えば、RAMなどの揮発性半導体メモリである。ストレージ装置13は、メモリ12とは異なる記憶装置であり、補助記憶装置として使用され得る。ストレージ装置13は、例えば、HDDやSSD(Solid State Drive)などの不揮発性のストレージ装置である。

0017

情報処理装置10では、プロセス14a,14b,14cを含む複数のプロセスが起動されている。複数のプロセスは、処理部11が有する複数のプロセッサを用いて並列に実行することが可能である。例えば、プロセスの並列度を優先させる場合、プロセッサ11aがプロセス14aを実行し、プロセッサ11bがプロセス14bを実行し、プロセッサ11cがプロセス14cを実行することで、プロセス14a,14b,14cを同時実行することができる。プロセス14a,14b,14cそれぞれには、仮想的なアドレス空間が割り当てられる。アドレス空間は固定長のページに分割されている。すなわち、メモリ管理について仮想記憶およびページング方式が採用されている。

0018

メモリ12は、プロセス14a,14b,14cに割り当てられたアドレス空間に含まれるページのうち一部のページのデータを記憶する。ストレージ装置13は、メモリ12に記憶されていないページのデータを記憶する。メモリ12とストレージ装置13との間ではページの入れ替えが行われ得る。あるプロセスが実行中であり当該プロセスが使用しようとするページがメモリ12に存在しない場合、ページフォールトが発生する。すると、メモリ12上の何れかのページのデータをストレージ装置13に退避するページアウトと、所望のページのデータをメモリ12に読み込むページインが行われる。

0019

ただし、停止中のプロセスのページはメモリ12に配置されていなくてもよく、停止中のプロセスの全ページをストレージ装置13に退避しておくことも可能である。あるプロセスを実行状態から停止状態切り替えた場合、その時点でメモリ12に配置されている当該プロセスのページ全てをストレージ装置13に退避させるスワップアウトを行ってもよい。また、あるプロセスを停止状態から実行状態に切り替えた場合、スワップアウトされた当該プロセスのページをメモリ12に復元するスワップインを行ってもよい。

0020

処理部11は、メモリ12を効率的に使用できるように以下のようなプロセス管理を行う。以下のプロセス管理は、処理部11が有する何れかのプロセッサを用いて実行されてもよく、OSに含まれるプロセススケジューラにより実行されてもよい。

0021

処理部11は、並列に実行可能な複数のプロセスそれぞれについてワーキングセットサイズを取得する。ワーキングセットサイズは、直近の単位時間に使用されたページの量を示す。例えば、処理部11は、プロセス14aに対応するワーキングセットサイズ15aと、プロセス14bに対応するワーキングセットサイズ15bと、プロセス14cに対応するワーキングセットサイズ15cを取得する。複数のプロセスそれぞれのワーキングセットサイズは、例えば、OSに含まれるプロセス管理部から取得できる。

0022

処理部11は、複数のプロセスのワーキングセットサイズを合計した合計ワーキングセットサイズを算出する。例えば、処理部11は、プロセス14a,14b,14cに対応するワーキングセットサイズ15a,15b,15cを合計する。処理部11は、合計ワーキングセットサイズが閾値を超えない場合、全てのプロセスを同時に実行することを許容する。一方、処理部11は、合計ワーキングセットサイズが閾値を超える場合、一部のプロセスを選択して当該選択したプロセスを所定時間停止させる。閾値は、メモリ12の記憶容量に基づいて決定されてもよい。例えば、閾値をメモリ12の記憶容量とすることや、閾値をメモリ12の記憶容量の110%とすることなどが考えられる。

0023

上記のように、停止中のプロセスのページは再実行されるまでストレージ装置13に退避しておくことができる。例えば、停止するプロセスとしてプロセス14cが選択され、メモリ12に存在するプロセス14cのページがストレージ装置13に退避される。並列に実行されるプロセスの数は、処理部11が有するプロセッサの数より少なくてもよい。

0024

処理部11は、停止するプロセスの選択を所定時間毎に繰り返し行ってもよい。また、処理部11は、実行するプロセスの合計ワーキングセットサイズが閾値を超えないように、停止するプロセスを選択してもよい。また、処理部11は、実行するプロセスの合計ワーキングセットサイズが閾値に近くなるように、停止するプロセスを選択してもよい。また、処理部11は、スワップアウトするプロセスのワーキングセットサイズが小さくなるように、停止するプロセスを選択してもよい。また、処理部11は、各プロセスのワーキングセットサイズの変化を監視し、ワーキングセットサイズが減少したプロセスを優先的に停止させてもよい。また、処理部11は、特定のプロセスの連続停止時間が過大にならないように、停止するプロセスを選択してもよい。

0025

第1の実施の形態の情報処理装置10によれば、複数のプロセッサを用いて並列に実行可能な複数のプロセスそれぞれのワーキングセットサイズが取得され、合計ワーキングセットサイズが算出される。合計ワーキングセットサイズが閾値を超える場合、一部のプロセスが選択されて当該選択されたプロセスが所定時間停止される。

0026

情報処理装置10が有するプロセッサの数に応じてプロセスの同時実行数を最大まで上げてしまうと、メモリ12の記憶領域が不足してメモリアクセスが非効率になることがある。特に、実行中のプロセスのワーキングセットサイズの合計が一定水準を超えると、ページアウトとページインが頻繁に繰り返されるスラッシングの発生が急激に増える。これに対し、第1の実施の形態の情報処理装置10では、メモリ12の記憶領域が不足しているときは、プロセスの同時実行数を減らすことでスラッシングの発生が抑制され、メモリアクセスが効率化される。これにより、並列に実行可能な複数のプロセスが全て終了するまでのトータルの実行時間を短縮できる。また、メモリ12の記憶領域が不足していないときは、全てのプロセッサを活用してプロセスの同時実行数を増やすことができ、ワーキングセットサイズの変化に応じて並列度を柔軟に変更することができる。

0027

なお、第1の実施の形態の情報処理装置10は、科学技術計算のようなバッチ処理に特に有用である。バッチ処理では、ユーザとリアルタイム対話することは求められておらず、最終結果が出力される前の途中状態は問題とならない。バッチ処理では、起動から終了までの経過時間を短縮できればよいため、実行途中での一時停止実行順序の入れ替えなどによってプロセスの実行効率を改善することが可能となる。

0028

[第2の実施の形態]
次に、第2の実施の形態を説明する。
図2は、第2の実施の形態の情報処理装置のハードウェア例を示す図である。

0029

第2の実施の形態の情報処理装置100は、CPU101a,101b,101c,101d、RAM102、HDD103、画像信号処理部104、入力信号処理部105、媒体リーダ106および通信インタフェース107を有する。なお、CPU101a,10b,101cは、第1の実施の形態のプロセッサ11a,11b,11cに対応する。RAM102は、第1の実施の形態のメモリ12に対応する。HDD103は、第1の実施の形態のストレージ装置13に対応する。

0030

CPU101a,101b,101c,101dは、プログラム命令を実行するプロセッサである。CPU101は、HDD103に記憶されたプログラムやデータの少なくとも一部をRAM102にロードし、プログラムを実行する。CPU101a,101b,101c,101dは、同一または異なるプログラムから起動される複数のプロセスを並列に実行することができる。複数のプロセスを並列に実行するにあたり、CPU101a,101b,101c,101dはRAM102を共有する。なお、CPU101a,101b,101c,101dは、同一パッケージ内のCPUコアであってもよい。

0031

RAM102は、CPU101a,101b,101c,101dが実行するプログラムやCPU101a,101b,101c,101dが演算に用いるデータを一時的に記憶する揮発性の半導体メモリである。なお、情報処理装置100は、RAM以外の種類のメモリを備えてもよく、複数個のメモリを備えてもよい。

0032

HDD103は、OSやミドルウェアアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性のストレージ装置である。なお、情報処理装置100は、フラッシュメモリやSSDなどの他の種類のストレージ装置を備えてもよく、複数の不揮発性のストレージ装置を備えてもよい。

0033

画像信号処理部104は、情報処理装置100に接続されたディスプレイ111に画像を出力する。ディスプレイ111としては、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、プラズマディスプレイ有機EL(OEL:Organic Electro-Luminescence)ディスプレイなどを用いることができる。

0034

入力信号処理部105は、情報処理装置100に接続された入力デバイス112から入力信号受け付ける。入力デバイス112としては、マウスタッチパネルタッチパッドトラックボールキーボードリモートコントローラなどを用いることができる。また、情報処理装置100に複数の種類の入力デバイスが接続されてもよい。

0035

媒体リーダ106は、記録媒体113に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体113として、例えば、磁気ディスク光ディスク光磁気ディスク(MO:Magneto-Optical disk)、半導体メモリなどを使用できる。磁気ディスクには、フレキシブルディスクFD:Flexible Disk)やHDDが含まれる。光ディスクには、CD(Compact Disc)やDVD(Digital Versatile Disc)が含まれる。媒体リーダ106は、例えば、記録媒体113から読み取ったプログラムやデータをRAM102やHDD103などの他の記録媒体に格納する。なお、記録媒体113は可搬型記録媒体であってもよく、プログラムやデータの配布に用いられることがある。また、記録媒体113やHDD103を、コンピュータ読み取り可能な記録媒体と言うことがある。

0036

通信インタフェース107は、ネットワーク114を介して他の情報処理装置と通信を行うインタフェースである。通信インタフェース107は、スイッチやルータなどの有線通信装置に接続される有線通信インタフェースでもよいし、基地局やアクセスポイントなどの無線通信装置に接続される無線通信インタフェースでもよい。

0037

ところで、情報処理装置100は、RAM102の記憶領域の管理に仮想記憶およびページング方式を用いる。CPU101a,101b,101c,101dが実行可能なプロセスそれぞれに対して仮想的なアドレス空間が割り当てられ、各プロセスのアドレス空間が固定長のページに分割される。複数のプロセスのアドレス空間の合計は、RAM102の記憶容量を超えてもよい。主記憶装置であるRAM102に配置することができないページについては、補助記憶装置であるHDD103に退避される。

0038

RAM102とHDD103との間では、ページの入れ替えが適宜行われる。何れかのCPUで実行中のプロセスについては少なくとも一部のページがRAM102に配置される。実行中のプロセスが使用しようとするページがRAM102に存在しないページフォールトが発生すると、RAM102に配置された何れかのページをHDD103に退避するページアウトが行われる。そして、ページアウトによって生じた空き領域を用いて、HDD103からRAM102に所望のページを復元するページインが行われる。

0039

また、停止中のプロセスについては全てのページをHDD103に退避しておくことができる。実行状態から停止状態に切り替えるプロセスについては、その時点でRAM102に配置されている全てのページをHDD103に退避するスワップアウトが行われる。その後に停止状態から実行状態に切り替えるプロセスについては、スワップアウトしたページをHDD103からRAM102に復元するスワップインが行われる。

0040

また、ページの入れ替えでは、各プロセスのワーキングセットが考慮される。ワーキングセットは、直近の所定時間に当該プロセスによって使用されたページの集合である。以下では、ワーキングセットの大きさをワーキングセットサイズと言うことがあり、複数のプロセスのワーキングセットサイズの合計を合計ワーキングセットサイズと言うことがある。ワーキングセットサイズは、プロセスによって異なることがあり、同じプロセスであっても時間の経過に伴って変化することがある。実行中のプロセスについては、短期的には同じページが反復して使用されやすいという局所性から、ワーキングセットに属するページがページアウトされずにRAM102に残っていることが好ましい。

0041

情報処理装置100は、RAM102とHDD103との間のページの入れ替えを抑制してRAM102を効率的に使用できるように、実行すべきプロセス(実行対象プロセス)と停止すべきプロセス(スワップ対象プロセス)を継続的に判定する。

0042

図3は、情報処理装置の機能例を示すブロック図である。
情報処理装置100は、スケジューリング制御部121、プロセス制御部122、スワップ制御部123、プロセス管理部124、メモリ使用効率最適化部125および制御情報記憶部126を有する。スケジューリング制御部121、プロセス制御部122、スワップ制御部123、プロセス管理部124およびメモリ使用効率最適化部125は、例えば、プログラムモジュールを用いて実装される。制御情報記憶部126は、例えば、RAM102またはHDD103の記憶領域を用いて実装される。

0043

なお、スケジューリング制御部121、プロセス制御部122、スワップ制御部123、プロセス管理部124およびメモリ使用効率最適化部125は、OS内のスケジューラとして実装してもよい。OS内のスケジューラは、例えば、CPU101a,101b,101c,101dの何れかのCPUを用いて実行される。

0044

スケジューリング制御部121は、所定時間毎にメモリ使用効率最適化部125に、次のスワップ対象プロセスを問い合わせる。スケジューリング制御部121は、現在実行中のプロセスと現在停止中のプロセスを特定し、メモリ使用効率最適化部125からの回答に基づいて、次の実行対象プロセスと次のスワップ対象プロセスを特定する。

0045

そして、スケジューリング制御部121は、実行状態から停止状態に移行するプロセスを特定し、プロセス制御部122に当該プロセスの停止を指示し、スワップ制御部123に当該プロセスのスワップアウトを指示する。また、スケジューリング制御部121は、停止状態から実行状態に移行するプロセスを特定し、スワップ制御部123に当該プロセスのスワップインを指示し、プロセス制御部122に当該プロセスの再開を指示する。

0046

プロセス制御部122は、スケジューリング制御部121からの指示に応じて、CPU101a,101b,101c,101dが実行するプロセスを切り替える。プロセス制御部122は、あるプロセスの停止が指示されると、当該プロセスの実行情報をRAM102上で退避する。実行情報の退避は、当該プロセスを実行するCPU内のプログラムカウンタなどのレジスタ情報をRAM102に退避することを含み得る。また、プロセス制御部122は、あるプロセスの再開が指示されると、当該プロセスの実行情報をRAM102上で復元して何れかのCPUに当該プロセスを実行させる。実行情報の復元は、当該プロセスを実行すべきCPUにレジスタ情報をロードすることを含み得る。

0047

スワップ制御部123は、スケジューリング制御部121からの指示に応じて、RAM102とHDD103との間のスワップ処理を行う。スワップ制御部123は、あるプロセスのスワップアウトが指示されると、RAM102に配置されたページのうち当該プロセスに対応する全てのページのデータをHDD103に移動する。また、スワップ制御部123は、あるプロセスのスワップインが指示されると、スワップアウトで退避された当該プロセスのデータをHDD103からRAM102に読み出して復元する。

0048

プロセス管理部124は、情報処理装置100で起動されてまだ終了していないプロセスの状態を管理する。プロセス管理部124は、プロセスを識別するプロセスID、プロセスの状態(実行状態または停止状態)、連続停止時間を示すスワップ時間、ワーキングセットなどを管理する。プロセス管理部124は、メモリ使用効率最適化部125からの問い合わせに応じて、プロセスID、状態、スワップ時間、ワーキングセットサイズなどのプロセス情報をメモリ使用効率最適化部125に回答する。

0049

メモリ使用効率最適化部125は、スケジューリング制御部121から問い合わせを受けると、プロセス管理部124からプロセス情報を取得する。そして、メモリ使用効率最適化部125は、取得したプロセス情報に基づいて、次の所定時間に停止状態にしておくべきプロセスであるスワップ対象プロセスを決定し、決定したスワップ対象プロセスをスケジューリング制御部121に回答する。なお、第2の実施の形態ではメモリ使用効率最適化部125は、スワップ対象プロセスをスケジューリング制御部121に通知しているが、実行対象プロセスをスケジューリング制御部121に通知するようにしてもよい。

0050

制御情報記憶部126は、メモリ使用効率最適化部125がスワップ対象プロセスを決定する過程で使用する制御情報を記憶する。
図4は、第2の実施の形態のプロセス情報テーブルの例を示す図である。

0051

プロセス情報テーブル127は、上記の制御情報記憶部126に記憶される。プロセス情報テーブル127は、プロセス管理部124からメモリ使用効率最適化部125に提供されたプロセス情報を記憶する。プロセス情報テーブル127は、プロセスID、状態、スワップ時間およびワーキングセットの項目を有する。

0052

プロセスIDの項目には、プロセスの識別子が登録される。状態の項目には、実行状態を示す「RUN」または停止状態を示す「SWAP」が登録される。スワップ時間の項目には、プロセスが連続で停止状態(SWAP状態)にある時間が登録される。ワーキングセットの項目には、プロセスのワーキングセットサイズが登録される。

0053

次に、プロセススケジューリングの問題点について説明する。
図5は、各プロセスのワーキングセットサイズの変化例を示す図である。
ここでは、プロセスA,B,Cの3つのプロセスが同時に起動された場合を考える。CPU101a,101b,101cを活用すれば、これら3つのプロセスを並列に実行することも可能である。例えば、CPU101aがプロセスAを実行し、CPU101bがプロセスBを実行し、CPU101cがプロセスCを実行することも可能である。ただし、RAM102は3つのプロセスで共有されることになる。

0054

プロセスA,B,Cをそれぞれ単独で実行した場合、プロセスA,B,Cは何れも所定の時間幅Δtをもつ期間T1〜T10を通じて終了する。期間Tiは、時刻(i−1)×Δtから時刻i×Δtまでの期間を表す。以下では、プロセスAのi番目の期間のワーキングセットサイズをAiと表記し、プロセスBのi番目の期間のワーキングセットサイズをBiと表記し、プロセスCのi番目の期間のワーキングセットサイズをCiと表記する。なお、ワーキングセットを特定する単位時間であるウィンドウサイズと期間T1〜T10の時間幅Δtとは同じでもよいし異なってもよい。

0055

グラフ131は、プロセスAのワーキングセットサイズの変化を表す。A1=6GiB、A2=6GiB、A3=5GiB、A4=5GiB、A5=2GiB、A6=2GiB、A7=2GiB、A8=3GiB、A9=4GiB、A10=1GiBである。

0056

グラフ132は、プロセスBのワーキングセットサイズの変化を表す。B1=1GiB、B2=1GiB、B3=1GiB、B4=4GiB、B5=7GiB、B6=7GiB、B7=9GiB、B8=2GiB、B9=2GiB、B10=2GiBである。

0057

グラフ133は、プロセスCのワーキングセットサイズの変化を表す。C1=3GiB、C2=5GiB、C3=5GiB、C4=5GiB、C5=9GiB、C6=8GiB、C7=1GiB、C8=1GiB、C9=1GiB、C10=1GiBである。なお、1GiB(ギビバイト)は1×230バイトである。

0058

図6は、第1の並列実行のRAM使用例を示す図である。
ここでは、CPU101a,101b,101cを用いて上記のプロセスA,B,Cを同時に実行する場合を考える。また、RAM102の物理的な記憶容量が10GiBであるとする。この場合、プロセスA,B,Cのワーキングセットサイズを合計した合計ワーキングセットサイズの変化は、グラフ134のようになる。

0059

番目の期間の合計ワーキングセットサイズはA1+B1+C1=10GiBである。2番目の期間の合計ワーキングセットサイズはA2+B2+C2=12GiBである。3番目の期間の合計ワーキングセットサイズはA3+B3+C3=11GiBである。4番目の期間の合計ワーキングセットサイズはA4+B4+C4=14GiBである。5番目の期間の合計ワーキングセットサイズはA5+B5+C5=18GiBである。

0060

6番目の期間の合計ワーキングセットサイズはA6+B6+C6=17GiBである。7番目の期間の合計ワーキングセットサイズはA7+B7+C7=12GiBである。8番目の期間の合計ワーキングセットサイズはA8+B8+C8=6GiBである。9番目の期間の合計ワーキングセットサイズはA9+B9+C9=7GiBである。10番目の期間の合計ワーキングセットサイズはA10+B10+C10=4GiBである。

0061

上記のように、2番目の期間から7番目の期間では、合計ワーキングセットサイズがRAM102の物理的な記憶容量を超えている。このため、プロセスA,B,Cのワーキングセット全体をRAM102に維持することができず、ページフォールトの発生頻度が増えてしまう。よって、ページアウトとページインを繰り返すスラッシングが発生してHDD103へのアクセスが増加し、実質的なメモリアクセス速度が低下してしまう。

0062

この場合、プロセスA,B,Cは3個のCPUを用いて同時に実行されるものの、メモリアクセスの遅延によって、各プロセスを単独で実行した場合の実行時間10×Δtよりも顕著に長い実行時間を要することになる。すなわち、RAM102の記憶容量が少ない場合、同時実行プロセス数を最大まで上げてしまうと実行時間が長くなることがある。

0063

図7は、第2の並列実行のRAM使用例を示す図である。
ここでは、ラウンドロビン方式によりプロセスA,B,Cのうちの1つのプロセスを交代で停止させ、同時実行プロセス数を2個に制限する場合を考える。1番目の期間ではプロセスA,Bを実行させてプロセスCを停止させる。2番目の期間ではプロセスB,Cを実行させてプロセスAを停止させる。3番目の期間ではプロセスA,Cを実行させてプロセスBを停止させる。以降、全てのプロセスが終了するまでこれを繰り返す。この場合、合計ワーキングセットサイズの変化はグラフ135のようになる。

0064

1番目の期間の合計ワーキングセットサイズはA1+B1=7GiBである。2番目の期間の合計ワーキングセットサイズはB2+C1=4GiBであり、このときのスワップアウト量はA1=6GiBである。3番目の期間の合計ワーキングセットサイズはA2+C2=11GiB、スワップアウト量はB2=1GiBである。4番目の期間の合計ワーキングセットサイズはA3+B3=6GiB、スワップアウト量はC2=5GiBである。5番目の期間の合計ワーキングセットサイズはB4+C3=9GiB、スワップアウト量はA3=5GiBである。

0065

6番目の期間の合計ワーキングセットサイズはA4+C4=10GiB、スワップアウト量はB4=4GiBである。7番目の期間の合計ワーキングセットサイズはA5+B5=9GiB、スワップアウト量はC4=5GiBである。8番目の期間の合計ワーキングセットサイズはB6+C5=16GiB、スワップアウト量はA5=2GiBである。9番目の期間の合計ワーキングセットサイズはA6+C6=10GiB、スワップアウト量はB6=7GiBである。10番目の期間の合計ワーキングセットサイズはA7+B7=11GiB、スワップアウト量はC6=8GiBである。

0066

11番目の期間の合計ワーキングセットサイズはB8+C7=3GiB、スワップアウト量はA7=2GiBである。12番目の期間の合計ワーキングセットサイズはA8+C8=4GiB、スワップアウト量はB8=2GiBである。13番目の期間の合計ワーキングセットサイズはA9+B9=6GiB、スワップアウト量はC8=1GiBである。14番目の期間の合計ワーキングセットサイズはB10+C9=3GiB、スワップアウト量はA9=4GiBである。15番目の期間の合計ワーキングセットサイズはA10+C10=2GiBである。

0067

このように、ラウンドロビン方式により同時実行プロセス数を機械的に2個に制限しても、合計ワーキングセットサイズがRAM102の記憶容量を大きく超えてしまうことがあり、依然としてスラッシングが発生し得る。一方で、合計ワーキングセットサイズがRAM102の記憶容量を大きく下回っても、同時実行プロセス数が2個のままであり、RAM102の空き領域が大きくなってしまうことがある。また、各プロセスは機械的に3回に1回スワップ対象プロセスになるため、スワップアウト量が大きくなってHDD103へのアクセスが増加し、スワップ処理の負荷が高くなる。

0068

そこで、第2の実施の形態の情報処理装置100は、各プロセスの直近のワーキングセットサイズに基づいて、一部のプロセスを停止させるか否かを動的に判定する。また、情報処理装置100は、一部のプロセスを停止させる場合、メモリを効率的に使用できるように適切なプロセスをスワップ対象プロセスとして選択する。スワップ対象プロセスの選択にあたっては、RAM102の空き領域が少なくなること、スワップアウト量が少なくなること、連続停止時間が極端に長いプロセスを生じさせないことなどが考慮される。

0069

次に、情報処理装置100の処理手順について説明する。
図8は、スケジューリングの手順例を示すフローチャートである。
以下の処理は所定の時間幅Δt周期で繰り返し実行される。

0070

(S10)スケジューリング制御部121は、メモリ使用効率最適化部125に対して、スワップ対象プロセスの選択を要求する。
(S11)メモリ使用効率最適化部125は、情報処理装置100で起動されてまだ終了していないプロセスそれぞれのワーキングセットサイズと状態(RUN状態またはSWAP状態)を、プロセス管理部124から取得する。また、メモリ使用効率最適化部125は、各プロセスのスワップ時間をプロセス管理部124から取得する。ただし、スワップ時間は、後でスワップ時間を参照するときに取得してもよい。

0071

(S12)メモリ使用効率最適化部125は、ステップS11で取得した情報に基づいてスワップ対象プロセスを選択する。プロセス選択の手順は後述する。
(S13)メモリ使用効率最適化部125は、ステップS12で選択したスワップ対象プロセスをスケジューリング制御部121に通知する。ただし、メモリ使用効率最適化部125は、実行対象プロセスをスケジューリング制御部121に通知してもよい。

0072

(S14)スケジューリング制御部121は、ステップS13の通知に基づいて、スワップアウトするプロセス、すなわち、RUN状態からSWAP状態に変更すべきプロセスを判定する。また、スケジューリング制御部121は、スワップインするプロセス、すなわち、SWAP状態からRUN状態に変更すべきプロセスを判定する。

0073

(S15)スケジューリング制御部121は、スワップアウトするプロセスをプロセス制御部122に通知する。プロセス制御部122は、スワップアウトするプロセスを中断させ、当該プロセスの中断時の状況を示す実行情報をRAM102に保存する。例えば、プロセス制御部122は、当該プロセスを実行するCPU内のプログラムカウンタなどのレジスタ情報をRAM102に保存する。

0074

(S16)スケジューリング制御部121は、スワップアウトするプロセスをスワップ制御部123に通知する。スワップ制御部123は、RAM102に配置されているページの中からスワップアウトするプロセスに対応するページを検索する。スワップ制御部123は、検索されたページのデータ全てをHDD103に退避させ、検索されたページが配置されていたRAM102の記憶領域を解放する。

0075

(S17)スケジューリング制御部121は、スワップインするプロセスをスワップ制御部123に通知する。スワップ制御部123は、スワップインするプロセスに対応するページであって当該プロセスのスワップアウト時に退避されたページをHDD103から検索する。スワップ制御部123は、検索されたページのデータをHDD103からRAM102の空き領域に読み出し、検索されたページをRAM102に復元する。

0076

(S18)スケジューリング制御部121は、スワップインするプロセスをプロセス制御部122に通知する。プロセス制御部122は、スワップインするプロセスを実行させるCPUを選択する。プロセス制御部122は、当該プロセスの中断時の状況を示す実行情報をRAM102から抽出し、抽出した実行情報を復元して、選択したCPUに当該プロセスの実行を再開させる。例えば、プロセス制御部122は、プログラムカウンタなどのレジスタ情報を、選択したCPUに読み込ませる。

0077

図9は、第2の実施の形態のプロセス選択の手順例を示すフローチャートである。
以下の処理は上記のステップS12で実行される。
(S20)メモリ使用効率最適化部125は、全プロセスの集合から実行対象プロセスの集合の候補を求める。求める候補は、全プロセスの集合に対するべき集合に相当する。例えば、プロセスA,B,Cが存在する場合、{A}、{B}、{C}、{A,B}、{A,C}、{B,C}、{A,B,C}の7個の候補が算出される。

0078

(S21)メモリ使用効率最適化部125は、ステップS20で求めた各候補について、実行対象プロセスのワーキングセットサイズを合計した合計ワーキングセットサイズを算出する。そして、メモリ使用効率最適化部125は、各候補について、合計ワーキングセットサイズをRAM102の記憶容量で割った「メモリ使用効率」を算出する。

0079

(S22)メモリ使用効率最適化部125は、全プロセスの中からスワップ時間が3×Δt以上である長停止プロセスを検索する。長停止プロセスは、3期間以上連続でスワップ対象プロセスとして選択されているプロセスである。

0080

(S23)メモリ使用効率最適化部125は、ステップS22で検索された長停止プロセスが次の期間では実行対象プロセスとして選択されるようにする。すなわち、メモリ使用効率最適化部125は、ステップS20で求めた候補の中から、長停止プロセスを実行対象プロセスとして含まない候補を除外する。例えば、メモリ使用効率最適化部125は、プロセスA,B,CのうちプロセスAが長停止プロセスである場合、候補を{A}、{A,B}、{A,C}、{A,B,C}の4個に絞り込む。

0081

(S24)メモリ使用効率最適化部125は、ステップS20で求めた各候補について、RUN状態からSWAP状態に遷移することになるプロセスを特定し、特定したプロセスのワーキングセットサイズの合計をスワップアウト量として算出する。算出するスワップアウト量は、スワップ処理においてRAM102からHDD103に転送されるデータの量の予想値である。なお、第2の実施の形態ではHDD103のアクセス負荷指標としてスワップアウト量を用いているが、スワップイン量を用いてもよく、スワップアウト量とスワップイン量の合計を用いてもよい。

0082

(S25)メモリ使用効率最適化部125は、ステップS23で絞り込まれた候補のうち、ステップS21で算出したメモリ使用効率が110%を超える候補を除外する。これにより、スラッシングが発生する可能性の高い候補が除外される。なお、メモリ使用効率の閾値として100%など他の値を用いてもよく、ユーザが指定してもよい。

0083

(S26)メモリ使用効率最適化部125は、ステップS25で絞り込まれた候補をメモリ使用効率が高い順にソートし、メモリ使用効率が高い方から3つの候補を抽出する。なお、抽出する候補の数は変更することが可能である。また、ステップS25で絞り込まれた候補が少ない場合には全ての候補を抽出してもよい。また、メモリ使用効率が所定の閾値を超える候補を全て抽出するようにしてもよい。

0084

(S27)メモリ使用効率最適化部125は、ステップS26で抽出した候補のうち、ステップS24で算出したスワップアウト量が最小の候補を選択する。
(S28)メモリ使用効率最適化部125は、ステップS27で選択した候補から、スワップ対象プロセスの集合を求める。スワップ対象プロセスの集合は、選択した候補が示す実行対象プロセスの集合に対する補集合に相当する。

0085

図10は、第3の並列実行のRAM使用例を示す図である。
ここでは、図5のプロセスA,B,Cを図9の方法に従ってスケジューリングする場合を考える。この場合、合計ワーキングセットサイズの変化はグラフ136のようになる。

0086

1番目の期間の合計ワーキングセットサイズはA1+B1+C1=10GiBである。2番目の期間の合計ワーキングセットサイズはA2+C2=11GiBであり、スワップアウト量はB2=1GiBである。3番目の期間の合計ワーキングセットサイズはA3+C3=10GiBである。4番目の期間の合計ワーキングセットサイズはA4+C4=10GiBである。5番目の期間の合計ワーキングセットサイズはB2+C5=10GiBであり、スワップアウト量はA5=2GiBである。

0087

6番目の期間の合計ワーキングセットサイズはB3+C6=9GiBである。7番目の期間の合計ワーキングセットサイズはA5+B4+C7=7GiBである。8番目の期間の合計ワーキングセットサイズはA6+B5+C8=10GiBである。9番目の期間の合計ワーキングセットサイズはA7+B6+C9=10GiBである。10番目の期間の合計ワーキングセットサイズはB7+C10=10GiBであり、スワップアウト量はA8=3GiBである。11番目の期間の合計ワーキングセットサイズはA8+B8=5GiBである。12番目の期間の合計ワーキングセットサイズはA9+B9=6GiBである。13番目の期間の合計ワーキングセットサイズはA10+B10=3GiBである。

0088

このように、各時点のワーキングセットサイズに応じて同時実行プロセス数を可変にすることで、合計ワーキングセットサイズがRAM102の記憶容量を大きく超えることが抑制されると共に、RAM102の空き領域が削減される。また、できる限り同じプロセスが連続で実行されることでスワップアウト量が小さくなると共に、少数回のスワップ処理によって連続停止時間が極端に長いプロセスが生じないようになっている。

0089

第2の実施の形態の情報処理装置100によれば、時間幅Δt周期で各プロセスの最新のワーキングセットサイズが取得され、ワーキングセットサイズに応じて次のΔt時間における実行対象プロセスと停止対象プロセスとが決定される。

0090

このとき、実行対象プロセスの合計ワーキングセットサイズが閾値を超えないようにすることで、スラッシングを抑制しメモリアクセスを効率化できる。また、実行対象プロセスの合計ワーキングセットサイズが閾値を超えない範囲で大きくなるようにすることで、リソース使用率を向上させて実行時間を短縮することができる。また、スワップアウト量が小さくなるようにすることで、HDD103へのアクセスを抑制しページ置換オーバヘッドを削減することができる。また、連続停止時間が長いプロセスについてはスワップインを行うことで、複数のプロセスの間の公平を図ることができる。このように、メモリアクセスが効率化され、複数のプロセス全てが終了するまでの実行時間を短縮できる。

0091

なお、第2の実施の形態ではプロセス単位で実行と停止の制御を行ったが、ジョブ単位で実行と停止の制御を行うことも可能である。ジョブは、プロセスよりも大きい処理単位であり、1つのアプリケーションソフトウェアとして機能するために協調して動作する一連のプロセスの集合である。この場合、OS内またはOS外のジョブスケジューラが、各ジョブに含まれるプロセスのワーキングセットサイズに基づいて、実行対象ジョブとスワップ対象ジョブとを判定することが考えられる。

0092

[第3の実施の形態]
次に、第3の実施の形態を説明する。第2の実施の形態との違いを中心に説明し、第2の実施の形態と同様の内容については説明を省略することがある。

0093

第3の実施の形態は、スワップ対象プロセスの選択方法が第2の実施の形態と異なる。第3の実施の形態のプロセス選択方法は、科学技術計算を行う情報処理装置に特に有用である。第3の実施の形態の情報処理装置は、図2,3に示した第2の実施の形態の情報処理装置100と同様のモジュール構成によって実現することができる。以下では、図2,3と同様の符号を用いて第3の実施の形態を説明する。

0094

図11は、科学技術計算におけるRAM使用量の変化例を示す図である。
複数の情報処理装置を使用する科学技術計算では、図11に示すような手順で計算が行われることが多い。ステージ1では、データ保持用のメモリ領域が獲得される。ステージ2では、通信用のメモリ領域が獲得される。ステージ3では、情報処理装置の間で通信が行われる。ステージ4では、ステージ2で獲得した通信用のメモリ領域が解放される。ステージ5では、演算用のメモリ領域が獲得される。ステージ6では、ステージ3で受信したデータおよびステージ5で獲得した演算用のメモリ領域を用いて、演算が行われる。なお、ステージ2〜7は2回以上繰り返し実行されることがある。すなわち、ステージ7の次にステージ2に戻って、ステージ2〜7が再度実行されることがある。ステージ7では、ステージ5で獲得した演算用のメモリ領域が解放される。ステージ8では、ステージ1で獲得したデータ用のメモリ領域が解放される。

0095

この場合におけるメモリ使用量の変化はグラフ137のようになる。ステージ1ではメモリ使用量が増加する。ステージ2ではメモリ使用量が更に増加する。ステージ3ではメモリ使用量はあまり変化しない。ステージ4ではメモリ使用量が減少する。ステージ5ではメモリ使用量が再度増加する。ステージ6ではメモリ使用量はあまり変化しない。ステージ7ではメモリ使用量が減少する。ステージ8ではメモリ使用量が更に減少する。

0096

グラフ137に示すように科学技術計算では、メモリ使用量が大きく減少した後にメモリ使用量が再び大きく増加することがある。すなわち、科学技術計算を行うプロセスでは、ワーキングセットサイズが大きく減少した後にワーキングセットサイズが再び大きく増加することがある。このため、科学技術計算を行うプロセスのスワップアウトは、ワーキングセットサイズの減少量が大きいときに行った方が、スワップアウト量が小さくなるため好ましい。第3の実施の形態は、このような科学技術計算の性質を利用する。

0097

図12は、第3の実施の形態のプロセス情報テーブルの例を示す図である。
プロセス情報テーブル128は、制御情報記憶部126に記憶される。プロセス情報テーブル128は、プロセス管理部124からメモリ使用効率最適化部125に提供されたプロセス情報に基づいて、メモリ使用効率最適化部125によって更新される。プロセス情報テーブル128は、プロセスID(a)、優先度(b)、状態(c)、実行回数(d)、残予定回数(e)、連続実行回数(f)、ワーキングセット現在値(g)、ワーキングセット最大値(h)、ワーキングセット変化量(i)および評価値(j)を有する。

0098

プロセスIDの項目には、プロセスの識別子が登録される。優先度の項目には、プロセスの優先度を示す数値が登録される。数値が大きいほど優先度が高いことを示す。状態の項目には、実行状態を示す「RUN」または停止状態を示す「SWAP」が登録される。

0099

実行回数の項目には、実行対象プロセスとして選択された回数が登録される。実行回数と時間幅Δtの積が実行時間を意味する。残予定回数の項目には、プロセスが終了するまでに実行対象プロセスとして選択されるべき回数が登録される。残予定回数と時間幅Δtの積が残り実行予定時間を意味する。各プロセスの実行予定時間は、ユーザが情報処理装置100にジョブを投入するときに指定される。メモリ使用効率最適化部125は、指定された実行予定時間を時間幅Δtで割ることで、残予定回数の初期値を算出できる。連続実行回数の項目には、連続で実行対象プロセスとして選択された回数が登録される。連続実行回数と時間幅Δtの積が連続実行時間を意味する。スワップ対象プロセスとして選択されると、連続実行回数は0に初期化される。

0100

ワーキングセット現在値の項目には、最新のワーキングセットサイズが登録される。ワーキングセット最大値の項目には、実行対象プロセスとして選択されてからのワーキングセットサイズのうち最大のワーキングセットサイズが登録される。スワップ対象プロセスとして選択されると、ワーキングセット最大値は0に初期化される。ワーキングセット変化量の項目には、Δt時間前からのワーキングセットサイズの変化量、すなわち、最新のワーキングセットサイズとΔt時間前のワーキングセットサイズとの差が登録される。ワーキングセットサイズが増加していればワーキングセット変化量は正の値となり、減少していればワーキングセット変化量は負の値となる。スワップ対象プロセスとして選択されると、ワーキングセット変化量は0に初期化される。

0101

評価値の項目には、後述する方法によって算出された数値が登録される。評価値が高いほど、スワップ対象プロセスとして好ましいプロセスであることを示している。
図13は、第3の実施の形態のプロセス選択の手順例を示すフローチャートである。

0102

以下の処理は前述のステップS12で実行される。
(S30)メモリ使用効率最適化部125は、プロセス管理部124から取得したプロセス情報に基づいて、プロセス情報テーブル128の各プロセスの状態cを更新する。

0103

(S31)メモリ使用効率最適化部125は、プロセス情報テーブル128において、状態が「RUN」である実行中プロセスそれぞれについて、実行回数dを1増加させ、残予定回数eを1減少させ、連続実行回数fを1増加させる。

0104

(S32)メモリ使用効率最適化部125は、プロセス管理部124から取得したプロセス情報に基づいて、プロセス情報テーブル128の各プロセスのワーキングセット現在値g、ワーキングセット最大値h、ワーキングセット変化量iを更新する。ワーキングセット現在値gは、最新のワーキングセットサイズとする。ワーキングセット最大値hは、最新のワーキングセットサイズが現在の値より大きい場合に、最新のワーキングセットサイズに上書きされる。ワーキングセット変化量iは、最新のワーキングセットサイズと更新前のワーキングセット現在値gとの差とする。

0105

(S33)メモリ使用効率最適化部125は、次のようにしてパラメータE,H,Iの値を算出する。残予定回数eが5以下である場合はE=1とし、残予定回数eが5より大きい場合はE=0とする。Hの値はワーキングセット最大値hとワーキングセット変化量iを用いて、H=i−h/iと算出する。ワーキングセット変化量iが0より小さい場合はI=1とし、ワーキングセット変化量iが0以上である場合はI=0とする。

0106

(S34)メモリ使用効率最適化部125は、プロセス情報テーブル128に登録された各プロセスについて、優先度bと実行回数dと連続実行回数fとワーキングセット現在値gとパラメータE,H,Iを用いて、評価値jを算出する。j=(d−50×E+10×f+10×g+20×H+10×I)/bとする。

0107

評価値jが大きいプロセスが、スワップ対象プロセスとして選択されやすくなる。ここで、優先度bが大きいほど評価値jは小さくなるため、優先度の高いプロセスが実行対象プロセスになりやすい。また、実行回数dが大きいほど評価値jは大きくなるため、実行回数の少ないプロセスが実行対象プロセスになりやすい。また、パラメータEの値が大きいほど評価値jは小さくなるため、残り実行予定時間が短いプロセスが実行対象プロセスになりやすい。また、連続実行回数fが大きいほど評価値jは大きくなるため、連続実行時間が長いプロセスがスワップ対象プロセスになりやすい。また、パラメータH,Iの値が大きいほど評価値jは大きくなるため、ワーキングセットサイズが大きく減少しているプロセスがスワップ対象プロセスになりやすい。

0108

(S35)メモリ使用効率最適化部125は、全プロセスの集合から実行対象プロセスの集合の候補を求める。求める候補は、全プロセスの集合に対するべき集合に相当する。例えば、プロセスA,B,Cが存在する場合、{A}、{B}、{C}、{A,B}、{A,C}、{B,C}、{A,B,C}の7個の候補が算出される。

0109

(S36)メモリ使用効率最適化部125は、ステップS35で求めた各候補について、ワーキングセット最大値hを合計した合計ワーキングセット最大値を算出する。
(S37)メモリ使用効率最適化部125は、ステップS35で求めた候補のうち、ステップS36で算出した合計ワーキングセット最大値がRAM102の記憶容量を超える候補を除外する。これにより、スラッシングが発生する可能性の高い候補が除外される。

0110

(S38)メモリ使用効率最適化部125は、ステップS37で絞り込んだ各候補について、実行対象プロセスの集合に対する補集合であるスワップ対象プロセスを特定する。そして、メモリ使用効率最適化部125は、各候補について、スワップ対象プロセスの評価値jを合計した合計評価値を算出する。

0111

(S39)メモリ使用効率最適化部125は、ステップS37で絞り込んだ候補のうち、ステップS38で算出した合計評価値が最大の候補を選択する。メモリ使用効率最適化部125は、選択した候補に対応するスワップ対象プロセスの集合を採用する。

0112

(S40)メモリ使用効率最適化部125は、プロセス情報テーブル128において、スワップ対象プロセスの連続実行回数f、ワーキングセット最大値h、ワーキングセット変化量iおよび評価値jを0に初期化する。

0113

第3の実施の形態の情報処理装置によれば、第2の実施の形態と同様の効果が得られる。更に、第3の実施の形態では、科学技術計算の特性を利用して、各プロセスについて精度の高い評価値を算出することができる。よって、メモリアクセスが効率化されるように、スワップ対象プロセスを適切に選択することができる。

0114

10情報処理装置
11 処理部
11a,11b,11cプロセッサ
12メモリ
13ストレージ装置
14a,14b,14c プロセス
15a,15b,15cワーキングセットサイズ

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

(分野番号表示ON)※整理標準化データをもとに当社作成

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い技術

関連性が強い 技術一覧

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ