JPWO2011151963A1 - メモリ管理装置、メモリ管理方法、メモリ管理プログラム、メモリ管理プログラムを記録したコンピュータ読み取り可能な記録媒体及び集積回路 - Google Patents

メモリ管理装置、メモリ管理方法、メモリ管理プログラム、メモリ管理プログラムを記録したコンピュータ読み取り可能な記録媒体及び集積回路 Download PDF

Info

Publication number
JPWO2011151963A1
JPWO2011151963A1 JP2012518215A JP2012518215A JPWO2011151963A1 JP WO2011151963 A1 JPWO2011151963 A1 JP WO2011151963A1 JP 2012518215 A JP2012518215 A JP 2012518215A JP 2012518215 A JP2012518215 A JP 2012518215A JP WO2011151963 A1 JPWO2011151963 A1 JP WO2011151963A1
Authority
JP
Japan
Prior art keywords
memory
termination
process group
candidate
candidate process
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2012518215A
Other languages
English (en)
Other versions
JP5405663B2 (ja
Inventor
一臣 加藤
一臣 加藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2012518215A priority Critical patent/JP5405663B2/ja
Publication of JPWO2011151963A1 publication Critical patent/JPWO2011151963A1/ja
Application granted granted Critical
Publication of JP5405663B2 publication Critical patent/JP5405663B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0284Multiple user address space allocation, e.g. using different base addresses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)

Abstract

特定のメモリブロックの空き容量を可能な限り多く確保する。終了候補プロセス選択部(204)は、複数のプロセスを終了候補のプロセス群として複数のメモリブロックごとに選択し、終了プロセス決定部(206)は、選択された終了候補のプロセス群が、既に保持している終了候補のプロセス群に対して優先的に終了すべきであるか否かを判定し、プロセス群終了可否判定部(205)は、終了すべきであると判定された終了候補のプロセス群が終了可能であるか否かを判定し、終了プロセス決定部(206)は、保持している終了候補のプロセス群を、終了可能であると判定された終了候補のプロセス群に書き換え、全てのメモリブロックに対する終了候補のプロセス群の選択が終了すると、保持している終了候補のプロセス群を終了すべきプロセス群として決定する。

Description

本発明は、複数のプログラムが動作可能な情報処理装置において、複数のプログラムが消費するメモリを管理するメモリ管理装置、メモリ管理方法、メモリ管理プログラム、メモリ管理プログラムを記録したコンピュータ読み取り可能な記録媒体及び集積回路に関するものである。特に、情報処理装置おいて、メモリの空き容量とプログラムとに何らかの関係付けがある場合に、プログラムが消費するメモリの解放を適切に行うメモリ管理装置、メモリ管理方法、メモリ管理プログラム、メモリ管理プログラムを記録したコンピュータ読み取り可能な記録媒体及び集積回路に関するものである。
従来、複数のプログラムが動作可能な情報処理システム、すなわちマルチタスク又はマルチプロセスで動作可能な情報処理システムにおいて、動作するプログラムを終了させることによりプログラムが消費していたメモリを解放し、情報処理システムが備えるメモリの空き容量を確保する技術があった。
例えば、特許文献1には、従来のメモリ解放の仕組みとして、プログラムに設定されている実行優先度やそのプログラムが消費しているメモリサイズに基づき、終了させるプログラムを選択する技術が開示されている。
具体的には、オペレーティングシステム(OS)は、情報処理システムのメモリの空き容量が所定の値以下になると、メインメモリ解放プロセスを実行可能状態にする。例えば、新規にプログラムをプロセスとして起動しようとした際に、メモリの空き容量が不足するような場合に、メインメモリ解放プロセスが動作する。
メインメモリ解放プロセスは、OSが管理するプロセス管理情報を参照し、メインメモリに展開されているプロセスの中から優先度が低いプロセスを選択し、選択したプロセスが消費していたメモリを解放させる。これにより、優先度の低いプロセスが実行されていることにより、優先度の高いプロセスが新規に起動できないという事態を回避できる。
しかしながら、従来の構成では、OSが管理するプロセス管理情報に各プロセスの使用メモリ量は記憶されているが、各プロセスがメモリ内のどこを使用しているかは把握できない。電力供給をブロック単位で別々に管理できるメモリがある。このようなメモリは、例えば、メモリのチップごとに、あるいはメモリ内部のバンクごとに電力を供給することが可能である。一般に、動的なメモリ割り当てを行う情報処理システムでは、動作するプロセスに対して、複数のメモリチップ又は複数のメモリバンクなどの複数のメモリブロックにまたがって使用メモリ領域を割り当てる。従来の構成では、各プロセスがメモリ内のどこを使用しているかを把握できない。そのため、選択したプロセスを終了させた場合に、メモリ内の各領域がどの程度解放されるかを把握できない。
従来技術では、新規にプロセスを起動する際にメモリが不足した場合、優先度の低いプロセスに割り当てられているメモリを解放し、すぐに解放したメモリが利用されることを想定している。そのため、プロセスがどのメモリブロックを使用しているかについては知る必要がなかった。
しかしながら、情報処理装置の省電力モードを実現するために、複数のメモリチップ又は複数のメモリバンクなどの複数のメモリブロックのうちいくつかのメモリブロックへの電力供給を切りたい場合がある。メモリブロックへの電力供給を切る場合、そのメモリブロック上のデータは消去されるため、適切な手順でそのデータを待避させる必要がある。
また、画像データを圧縮又は伸張するコーデックなどでは、メモリ内の連続した領域を使用することが望まれる。しかしながら、上記のように、1つのプロセスに対して複数のメモリブロックの領域が割り当てられている場合、当該プロセスを終了させたとしても、各メモリブロック内の領域がそれぞれ解放されることになり、連続した領域を確保することが困難となる。
また、近年の情報処理装置において、各プロセスとメモリの空き容量とを関連付け、メモリの空き容量に応じて終了させることが可能なプロセスを規定している場合がある。従来の構成では、情報処理システムのメモリの消費状況を把握することができない。そのため、終了させるために選択したプロセスが現在の情報処理システムのメモリの消費状況により本当に終了させることが可能かどうかを判断することができない。
特開2000−215099号公報
本発明は、上記の問題を解決するためになされたもので、特定のメモリブロックの空き容量を可能な限り多く確保することができるメモリ管理装置、メモリ管理方法、メモリ管理プログラム、メモリ管理プログラムを記録したコンピュータ読み取り可能な記録媒体及び集積回路を提供することを目的とするものである。
本発明の一局面に係るメモリ管理装置は、複数のメモリブロックを含むメモリを管理するメモリ管理装置であって、複数のプロセスを動作可能な情報処理システムで使用される前記プロセスに割り当てられている複数のメモリブロックの割り当てサイズを、前記プロセスごとにメモリブロック単位で管理するプロセス割り当てメモリ管理部と、前記複数のメモリブロック全体のメモリ空き容量を管理するシステムメモリ管理部と、前記メモリを解放するためのメモリ解放要求を前記情報処理システムから受け取ると、前記プロセス割り当てメモリ管理部によって管理されている前記割り当てサイズに基づき、前記複数のメモリブロックごとに割り当てられている複数のプロセスを割り当てサイズが大きい順に抽出し、抽出した複数のプロセスを終了候補のプロセス群として前記複数のメモリブロックごとに選択する終了候補プロセス選択部と、前記終了候補プロセス選択部によって選択された終了候補のプロセス群が、既に保持している終了候補のプロセス群に対して優先的に終了すべきであるか否かを判定する優先終了判定部と、前記終了候補プロセス選択部によって選択され、かつ前記優先終了判定部によって優先的に終了すべきであると判定された終了候補のプロセス群の順序を優先度に応じて並べ替え、前記システムメモリ管理部によって管理されている前記複数のメモリブロック全体のメモリ空き容量に基づいて、当該並べ替えた終了候補のプロセス群が終了可能であるか否かを判定するプロセス群終了可否判定部と、保持している終了候補のプロセス群を、前記プロセス群終了可否判定部によって終了可能であると判定された前記終了候補のプロセス群に書き換え、全てのメモリブロックに対する終了候補のプロセス群の選択が終了すると、保持している終了候補のプロセス群を終了すべきプロセス群として決定する終了プロセス決定部とを備える。
この構成によれば、複数のプロセスを動作可能な情報処理システムで使用されるプロセスに割り当てられている複数のメモリブロックの割り当てサイズが、プロセスごとにメモリブロック単位で管理される。また、複数のメモリブロック全体のメモリ空き容量が管理される。メモリを解放するためのメモリ解放要求を情報処理システムから受け取ると、管理されている割り当てサイズに基づき、複数のメモリブロックごとに割り当てられている複数のプロセスが割り当てサイズが大きい順に抽出され、抽出された複数のプロセスが終了候補のプロセス群として複数のメモリブロックごとに選択される。次に、選択された終了候補のプロセス群が、既に保持している終了候補のプロセス群に対して優先的に終了すべきであるか否かが判定される。優先的に終了すべきであると判定された終了候補のプロセス群の順序が優先度に応じて並べ替えられ、管理されている複数のメモリブロック全体のメモリ空き容量に基づいて、当該並べ替えられた終了候補のプロセス群が終了可能であるか否かが判定される。保持している終了候補のプロセス群が、終了可能であると判定された終了候補のプロセス群に書き換えられ、全てのメモリブロックに対する終了候補のプロセス群の選択が終了すると、保持している終了候補のプロセス群が終了すべきプロセス群として決定される。
本発明によれば、複数のメモリブロックごとに終了候補のプロセス群が選択され、選択された終了候補のプロセス群が終了可能であるか否かが判定され、終了可能であると判定されたプロセス群が終了されるので、特定のメモリブロックの空き容量を可能な限り多く確保することができる。
本発明の実施の形態における情報処理装置の構成を示す図である。 本発明の実施の形態におけるメモリ管理装置の構成を示すブロック図である。 本発明の実施の形態におけるプロセス割り当てメモリ管理部が管理するメモリ割り当て情報の一例を示す図である。 本発明の実施の形態におけるシステムメモリ管理部が管理するメモリ空き容量情報の一例を示す図である。 本発明の実施の形態における終了候補プロセス選択部の処理の一例を示す第1のフローチャートである。 本発明の実施の形態における終了候補プロセス選択部の処理の一例を示す第2のフローチャートである。 本発明の実施の形態におけるプロセス群終了可否判定部が管理する終了可否判定条件の一例を示す図である。 本発明の実施の形態におけるプロセス群終了可否判定部の処理の一例を示す第1のフローチャートである。 本発明の実施の形態におけるプロセス群終了可否判定部の処理の一例を示す第2のフローチャートである。 本発明の実施の形態における終了プロセス決定部の処理の一例を示す第1のフローチャートである。 本発明の実施の形態における終了プロセス決定部の処理の一例を示す第2のフローチャートである。 終了候補プロセス選択部からプロセス選択終了通知を受け取った場合の終了プロセス決定部の処理の一例を示すフローチャートである。
以下、本発明の実施の形態について、図面を参照しながら説明する。尚、以下の実施の形態は、本発明を具体化した一例であって、本発明の技術的範囲を限定する性格のものではない。
図1は、本発明の実施の形態における情報処理装置の構成を示す図である。この情報処理装置100は、それ自体としてユーザの使用に供することもできるが、様々な電気機器に組み込まれてもよい。情報処理装置100の一例は、代表的にはPC(Personal Computer;パーソナルコンピュータあるいはパソコン)等の汎用のコンピュータである。なお、情報処理装置100は、PDA(Personal Digital Assistance)又は携帯電話機等の携帯通信端末でもよい。さらに、情報処理装置100は、テレビ、ハードディスクレコーダー、DVD又はブルーレイディスクなどに情報を記録する各種ディスクレコーダー、DVD又はブルーレイディスクなどから情報を再生する各種ディスクプレイヤー、又はカーナビゲーションシステムなどであってもよい。
情報処理装置100は、プロセッサ1、メモリ装置2、通信装置34、入力装置40、表示装置45、タイマ回路51及び割り込みコントローラ55を備えている。プロセッサ1は、代表的には、CPU(Central Processing Unit;中央演算処理装置)、メディア処理用又はグラフィック処理用のプロセッサ、又はDSP(Digital Signal Processor)などの演算処理装置である。プロセッサ1、メモリ装置2、通信装置34、入力装置40、表示装置45、タイマ回路51及び割り込みコントローラ55は、バスライン50を通じて互いに接続されている。また、必要に応じて、バスライン50には、ハードディスク装置25及び読取装置32を接続することが可能となっている。ハードディスク装置25、読取装置32、入力装置40及び表示装置45は、それぞれ、I/F(インタフェース)26、35、41及び46を介してバスライン50に接続される。
プロセッサ1は、単一のプロセッサで構成されても良く、複数のプロセッサで構成されてもよい。一例として、情報処理装置100は、複数のプロセッサ11、12、13、・・・を有する。
メモリ装置2は、ROM(Read Only Memory)21及びRAM(Random Access Memory)22を備えている。ROM21は、プロセッサ1の動作を規定するコンピュータプログラム及びデータを記憶している。コンピュータプログラム及びデータは、ハードディスク装置25に記憶させることもできる。
プロセッサ1は、ROM21又はハードディスク装置25が格納するコンピュータプログラム及びデータを、必要に応じてRAM22に書き込みつつ、コンピュータプログラムが規定する処理を実行する。RAM22は、プロセッサ1が処理を実行するのに伴って発生するデータを一時的に記憶する媒体としても機能する。ROM21には、フラッシュROMのように書き込みが可能で、電源を切っても記憶内容を保持できる不揮発性のメモリ及び記憶媒体も含まれる。RAM22には、電源を切ると記憶内容が保持されない揮発性のメモリ及び記憶媒体が含まれる。
ハードディスク装置25は、内蔵する不図示のハードディスクへ、コンピュータプログラム及びデータを書き込むとともに、ハードディスクからコンピュータプログラム及びデータを読み出す。読取装置32は、例えば、CD、DVD又はメモリカードなどの記録媒体31に記録されたコンピュータプログラム又はデータを読み取る。通信装置34は、電話回線、ネットワーク線、無線又は赤外線通信等の通信回線33を通じて、外部と自身との間で、コンピュータプログラム又はデータを交換する。
入力装置40は、ユーザの操作によりデータ等の入力を受け付ける。入力装置40は、例えば、PDAに配列されたキーボード、携帯電話機に配列された入力ボタン、着脱自在のマウス、又は着脱自在のキーボードである。表示装置45は、データ及び画像等を画面に表示したり、データ等を音声で出力したりする。表示装置45は、例えばLCD(Liguid Crystal Display;液晶表示器)、ブラウン管、又はスピーカである。
タイマ回路51は、一定の周期でタイマ割り込み信号を出力する。割り込みコントローラ55は、タイマ回路51、入力装置40、プロセッサ1、ネットワークデバイスとしての通信装置34、ハードディスク装置25及び読取装置32等から送られる割り込み要求信号を、プロセッサ1へ中継する。各装置からの割り込み要求には優先度が付けられている。割り込みコントローラ55は、同時に複数の装置から割り込みが発生した場合には、それらの要求を優先度に応じて調停する機能を有している。
以上のように、情報処理装置100は、コンピュータとして構成されている。上記コンピュータプログラムは、ROM21、ハードディスク装置25、又は不図示のフレキシブルディスク及びCD−ROM等の記録媒体31を通じて供給することも、通信回線33等の伝送媒体を通じて供給することも可能である。例えば、コンピュータ読み取り可能な記録媒体31(CD−ROM)に記録されたコンピュータプログラムは、情報処理装置100に接続された読取装置32を介して、読み出すことができる。また、RAM22又はハードディスク装置25は、読み出したコンピュータプログラムを格納することができる。
ROM21からコンピュータプログラムが供給される場合には、当該ROM21を情報処理装置100に搭載することにより、プロセッサ1は上記コンピュータプログラムに従った処理を実行可能となる。通信回線33等の伝送媒体を通じて供給されるコンピュータプログラムは、通信装置34を通じて受信され、例えば、RAM22又はハードディスク装置25に格納される。伝送媒体は、有線の伝送媒体に限られず、無線の伝送媒体であってもよい。また、伝送媒体は通信線路のみでなく、通信線路を中継する中継装置、例えばルータも含む。
通常、このメモリ管理機能の実体はメモリ装置2又はハードディスク装置25に格納され、プロセッサ1と協働して実行することにより、メモリ管理装置10を実現している。なお、メモリ管理装置10は、少なくとも1つのプロセッサと、メモリ装置とで構成される。また、情報処理システムは、少なくとも1つのプロセッサと、メモリ装置とで構成される。情報処理システムは、複数のプロセスを実行する。複数のプロセスには、メモリ装置2の所定の領域が割り当てられており、情報処理システムは、当該所定の領域を利用して複数のプロセスを実行する。
図2は、本発明の実施の形態におけるメモリ管理装置の構成を示すブロック図である。メモリ管理装置10は、プロセッサ1と外部メモリとが協同して動作することにより実現される。外部メモリとしては、典型的には、図1に示すメモリ装置2に含まれるROM21又はRAM22、ハードディスク装置25、又は読取装置32によって読み出される記録媒体31が挙げられる。
メモリ管理装置10は、メモリ割り当て部201、プロセス割り当てメモリ管理部202、システムメモリ管理部203、終了候補プロセス選択部204、プロセス群終了可否判定部205、終了プロセス決定部206及び選択プロセス終了部207を備える。
メモリ割り当て部201は、情報処理システムからメモリ割り当て要求を受け取ると、情報処理システムが管理しているメモリ(典型的にはRAM22)の空き領域をプロセスに割り当てる。プロセス又はタスクは、プログラムの実行単位の呼び方の一つである。プロセスは、メモリ割り当て部201により割り当てられたメモリを、各プロセスの実行コード又はデータを格納するために使用する。
RAM22は、電力供給の管理を個別に実施できる複数のメモリブロックから構成されてもよい。例えば、RAM22は、電力供給の管理を個別に実施できる複数のメモリチップであってもよい。また、RAM22は、単一のメモリチップであってもよく、電力供給の管理を個別に実施できる複数のメモリブロック単位でチップ内を構成してもよい。すなわち、複数のメモリブロックは、それぞれ個別に電力供給され、メモリブロックごとに、電力供給のオン/オフを切り替えることができる。
メモリ割り当て部201は、プロセスにメモリを割り当てると、どのプロセスに対して割り当てたかを表す情報、どのメモリブロックに割り当てたかを表す情報、及び各メモリブロックに割り当てたサイズを表す情報をプロセス割り当てメモリ管理部202に通知する。また、メモリ割り当て部201は、どのメモリブロックに割り当てたかを表す情報、及び各メモリブロックに割り当てたサイズを表す情報をシステムメモリ管理部203に通知する。
プロセス割り当てメモリ管理部202は、複数のプロセスを動作可能な情報処理システムで使用されるプロセスに割り当てられている複数のメモリブロックの割り当てサイズを、プロセスごとに各メモリブロック単位で管理する。プロセス割り当てメモリ管理部202は、各メモリブロックにどれだけのサイズが割り当てられているかを表すメモリ割り当て情報をプロセスごとに記憶している。プロセス割り当てメモリ管理部202は、メモリ割り当て部201から前述するメモリ割り当てに関する情報(どのプロセスに対して割り当てたかを表す情報、どのメモリブロックに割り当てたかを表す情報、及び各メモリブロックに割り当てたサイズを表す情報)を取得すると、該当するプロセスのメモリ割り当て情報を更新する。
システムメモリ管理部203は、複数のメモリブロック全体のメモリ空き容量及び複数のメモリブロックのそれぞれのメモリ空き容量を管理する。システムメモリ管理部203は、複数のメモリブロック全体のメモリ空き容量及び複数のメモリブロックのメモリ空き容量を記憶している。システムメモリ管理部203は、メモリ割り当て部201から前述するメモリ割り当てに関する情報(どのメモリブロックに割り当てたかを表す情報、及び各メモリブロックに割り当てたサイズを表す情報)を取得すると、取得した情報に基づいて複数のメモリブロック全体のメモリ空き容量及び各メモリブロックのメモリ空き容量を更新する。
終了候補プロセス選択部204は、メモリを解放するためのメモリ解放要求を情報処理システムから受け取ると動作する。メモリ解放要求は、情報処理システムが要求するメモリ空き容量を含み、複数のメモリブロックで構成されるメモリ全体から所定の空き容量を確保するための要求である。
終了候補プロセス選択部204は、情報処理システムから要求されたメモリ空き容量を確保するために、終了候補のプロセスを選択する。終了候補プロセス選択部204は、複数のメモリブロックのうち、特定のメモリブロックから可能な限り多くの領域が解放できるように、終了候補のプロセスを選択する。そのために、終了候補プロセス選択部204は、各プロセスが現在どのメモリブロックにどの程度のサイズが割り当てられているかを表す情報を、プロセス割り当てメモリ管理部202から取得する。
終了候補プロセス選択部204は、メモリを解放するためのメモリ解放要求を情報処理システムから受け取ると、プロセス割り当てメモリ管理部202によって管理されている割り当てサイズに基づき、複数のメモリブロックごとに割り当てられている複数のプロセスを割り当てサイズが大きい順に抽出し、抽出した複数のプロセスを終了候補のプロセス群として複数のメモリブロックごとに選択する。
終了候補プロセス選択部204は、各メモリブロックに対して、終了候補のプロセスを選択し、プロセス群終了可否判定部205に渡す。終了候補プロセス選択部204は、選択した複数のプロセスが現在の情報処理システムの状況下で終了可能か否かをプロセス群終了可否判定部205に問い合わせる。
プロセス群終了可否判定部205は、終了候補プロセス選択部204から複数のプロセスを受け取ると、現在のメモリ空き容量に関する情報をシステムメモリ管理部203から受け取る。また、プロセス群終了可否判定部205は、情報処理システムで規定されているメモリ空き容量と各プロセスの終了可否の条件とに基づいて、終了候補プロセス選択部204から受け取ったプロセスの終了順序を調整する。
プロセス群終了可否判定部205は、終了候補プロセス選択部204によって選択された終了候補のプロセス群を取得すると、システムメモリ管理部203から複数のメモリブロック全体のメモリ空き容量を取得し、複数のメモリブロック全体のメモリ空き容量の条件と、当該条件で終了可能なプロセスとの関係に基づき、終了候補のプロセス群を終了させる順序に並べ替え、当該並べ替えたプロセス群を終了可能であるか否かを判定する。プロセス群終了可否判定部205は、終了可否の判定結果情報を終了候補プロセス選択部204に通知し、終了させることができないプロセスが存在する場合には当該終了させることができないプロセスをさらに終了候補プロセス選択部204に通知する。
終了候補プロセス選択部204は、選択したプロセス群が全て終了可能であるとプロセス群終了可否判定部205から通知を受け取ると、選択したプロセス群と、メモリ割り当て情報とを終了プロセス決定部206に渡す。その後、終了候補プロセス選択部204は、残りの他のメモリブロックに関しても同様に終了候補のプロセスを選択する。
終了プロセス決定部206は、終了候補プロセス選択部204から終了候補のプロセス群とメモリ割り当て情報とを受け取ると、受け取った終了候補のプロセス群が、これまでに終了候補プロセス選択部204から受け取った別のメモリブロックに対する終了候補のプロセス群に対して優先的に終了すべきであるか否かを判定し、当該終了候補のプロセス群を終了候補とすべきか否かを表す通知を終了候補プロセス選択部204に送信する。終了プロセス決定部206は、終了候補プロセス選択部204から全ての各メモリブロックに対して終了プロセス群を得ると、最終的に候補として残ったプロセス群を終了させるプロセスと決定し、選択プロセス終了部207に通知する。
終了プロセス決定部206は、終了候補プロセス選択部204によって選択された終了候補のプロセス群が、既に保持している終了候補のプロセス群に対して優先的に終了すべきであるか否かを判定する。
また、終了プロセス決定部206は、終了候補プロセス選択部204によって選択された終了候補のプロセス群を終了することにより確保できるメモリブロックの空き容量と、既に保持している終了候補のプロセス群を終了することにより確保できるメモリブロックの空き容量との大小関係に基づいて、終了候補プロセス選択部204によって選択された終了候補のプロセス群が、既に保持している終了候補のプロセス群に対して優先的に終了すべきであるか否かを判定する。
また、終了プロセス決定部206は、終了候補プロセス選択部204によって選択された終了候補のプロセス群を構成する複数のプロセスのプロセス数と、既に保持している終了候補のプロセス群を構成する複数のプロセスのプロセス数との大小関係に基づいて、終了候補プロセス選択部204によって選択された終了候補のプロセス群が、既に保持している終了候補のプロセス群に対して優先的に終了すべきであるか否かを判定する。
また、プロセス群終了可否判定部205は、終了候補プロセス選択部204によって選択され、かつ終了プロセス決定部206によって優先的に終了すべきであると判定された終了候補のプロセス群の順序を優先度に応じて並べ替え、システムメモリ管理部203によって管理されている複数のメモリブロック全体のメモリ空き容量に基づいて、当該並べ替えた終了候補のプロセス群が終了可能であるか否かを判定する。
また、プロセス群終了可否判定部205は、プロセスごとに予め設定されている優先度レベルに基づいて、終了候補プロセス選択部204によって選択された終了候補のプロセス群を構成する複数のプロセスを並べ替える。
さらに、終了プロセス決定部206は、保持している終了候補のプロセス群を、プロセス群終了可否判定部205によって終了可能であると判定された終了候補のプロセス群に書き換え、全てのメモリブロックに対する終了候補のプロセス群の選択が終了すると、保持している終了候補のプロセス群を終了すべきプロセス群として決定する。
選択プロセス終了部207は、終了すべきプロセス群を終了プロセス決定部206から受け取ると、情報処理システムに対して該当するプロセスに対して終了する命令を送信し、情報処理システムが該当するプロセスを終了させる。これにより、終了させたプロセスが元々使用していたメモリが解放されて、情報処理システムから要求されていたメモリ空き容量が確保される。
なお、本実施の形態において、プロセス割り当てメモリ管理部202がプロセス割り当てメモリ管理部の一例に相当し、システムメモリ管理部203がシステムメモリ管理部の一例に相当し、終了候補プロセス選択部204が終了候補プロセス選択部の一例に相当し、終了プロセス決定部206が優先終了判定部及び終了プロセス決定部の一例に相当し、プロセス群終了可否判定部205がプロセス群終了可否判定部の一例に相当する。
図3は、本発明の実施の形態におけるプロセス割り当てメモリ管理部が管理するメモリ割り当て情報の一例を示す図である。図3では、第1のプロセスA、第2のプロセスB及び第3のプロセスCの3つのプロセスのメモリ割り当て情報301,302,303を例示している。
メモリ割り当て情報301,302,303は、プロセス識別情報311、割り当てサイズ情報312及び合計サイズ情報315を含む。ここでは、第1のプロセスAのメモリ割り当て情報301を取り上げて説明する。
プロセス割り当てメモリ管理部202は、どのプロセスのメモリ割り当て情報であるかを識別するためのプロセス識別情報311を管理する。また、プロセス割り当てメモリ管理部202は、複数のメモリブロックのそれぞれに割り当てられている割り当てサイズを表す割り当てサイズ情報312,313,314を、プロセスごとに管理する。また、プロセス割り当てメモリ管理部202は、プロセスに割り当てているメモリ領域の合計サイズを表す合計サイズ情報315を管理する。なお、図3は、あくまで管理形態の一例に過ぎず、プロセスの数及びメモリブロックの数は、図3に示す数の限りではない。
プロセス割り当てメモリ管理部202は、メモリ割り当て部201からメモリ割り当てに関する情報を受け取ると、該当するプロセスのメモリ割り当て情報に該当するメモリブロックの割り当てサイズ情報と合計サイズ情報とを更新する。例えば、プロセス割り当てメモリ管理部202が、図3に示すメモリ割り当て情報を有しており、メモリ割り当て部201から、第1のプロセスAに対して第3のメモリブロックに1MBを割り当てたという情報を受け取った場合について説明する。
この場合、プロセス割り当てメモリ管理部202は、該当する第1のプロセスAのメモリ割り当て情報301に含まれる第3のメモリブロックに対応する割り当てサイズ情報314の割り当てサイズに1MBを加算する。これにより、割り当てサイズ情報314は、0MBから1MBに変更される。さらに、第1のプロセスAのメモリ割り当て情報301に含まれる合計サイズ情報315の合計サイズに1MBを加算する。これにより、合計サイズ情報315は、3MBから4MBに変更される。
なお、仮想アドレス空間を持つ情報処理システムの場合、プロセスの仮想アドレス空間にメモリ領域を割り当てても、物理メモリを消費していない状況が起こりうる。そのため、メモリ割り当て部201が、物理メモリをプロセスに割り当てるタイミング、すなわち本当に物理メモリを消費するタイミングで、プロセス割り当てメモリ管理部202及びシステムメモリ管理部203にメモリ割り当て情報を通知してもよい。
プロセス割り当てメモリ管理部202は、終了候補プロセス選択部204から要求されると、図3に例示するメモリ割り当て情報に基づいて、各プロセスが現在どのメモリブロックにどの程度のサイズが割り当てられているかを表す情報を、終了候補プロセス選択部204に渡す。
図4は、本発明の実施の形態におけるシステムメモリ管理部が管理するメモリ空き容量情報の一例を示す図である。メモリ空き容量情報401は、複数のメモリブロック全体のメモリ空き容量411、及び各メモリブロックのメモリ空き容量412を含む。
システムメモリ管理部203は、プロセス群終了可否判定部205から複数のメモリブロック全体のメモリ空き容量を要求されると、メモリ空き容量情報401に基づいて、複数のメモリブロック全体のメモリ空き容量411をプロセス群終了可否判定部205に渡す。また、システムメモリ管理部203は、終了プロセス決定部206から各メモリブロックのメモリ空き容量を要求されると、メモリ空き容量情報401に基づいて、各メモリブロックのメモリ空き容量412を終了プロセス決定部206に渡す。
図5及び図6は、本発明の実施の形態における終了候補プロセス選択部の処理の一例を示すフローチャートである。
まず、終了候補プロセス選択部204は、情報処理システムからプロセス終了によりメモリを解放するメモリ解放要求を受け取る(ステップS1)。一例として、情報処理システムからNバイトのサイズのメモリ領域を解放するように要求されたとする。
次に、終了候補プロセス選択部204は、プロセス割り当てメモリ管理部202からメモリ割り当て情報を取得する(ステップS2)。これにより、終了候補プロセス選択部204は、メモリブロックごとに終了候補のプロセスを選択するために必要なメモリ割り当て情報を取得することができる。
以後、終了候補プロセス選択部204は、特定のメモリブロックから可能な限りメモリ領域を解放するために、メモリブロックごとに終了候補のプロセスを選択し、選択したプロセスを評価する。
次に、終了候補プロセス選択部204は、存在する複数のメモリブロックのうち未選択のメモリブロック、すなわち終了候補のプロセスを選択していないメモリブロックが存在するか否かを判断する(ステップS3)。通常、終了候補プロセス選択部204がまだどのメモリブロックに対しても終了すべきプロセスを選択していない場合、未選択のメモリブロックは必ず存在する。
終了候補のプロセスを選択していないメモリブロックが存在すると判断された場合(ステップS3でYES)、終了候補プロセス選択部204は、未選択のメモリブロックを一つ選択する(ステップS4)。終了候補プロセス選択部204は、選択したメモリブロックから可能な限りメモリ領域を解放できるように、終了させるべきプロセスを選択する処理に移る。
次に、終了候補プロセス選択部204は、未選択のプロセスの中から、ステップS4で選択したメモリブロックにおける割り当てサイズが最も大きいプロセスを選択する(ステップS5)。例えば、終了候補プロセス選択部204がプロセス割り当てメモリ管理部202から図3に示すメモリ割り当て情報を取得し、かつ第1のメモリブロックがステップS4で選択された場合について説明する。この場合、終了候補プロセス選択部204は、未選択の第1〜3のプロセスのうち、第1のメモリブロックにおける割り当てサイズが最も大きい第3のプロセスCを選択する。
次に、終了候補プロセス選択部204は、ステップS5で選択したプロセスをメモリブロックに対して終了すべきプロセス群に加える。また、終了候補プロセス選択部204は、これまでに選択したプロセスの合計割り当てサイズの総計に、ステップS5で選択したプロセスの合計割り当てサイズを加算する(ステップS6)。
次に、終了候補プロセス選択部204は、これまでに選択した各プロセスの合計割り当てサイズの総計が、ステップS1で要求されたNバイト以上であるか否かを判定する(ステップS7)。選択した各プロセスの合計割り当てサイズの総計が、Nバイトより小さいと判定された場合(ステップS7でNO)、ステップS5の処理に戻り、終了候補プロセス選択部204は、次の未選択のプロセスを選択する。選択した各プロセスの合計割り当てサイズの総計が、Nバイト以上にならない状態で、未選択のプロセスがなくなった場合、すなわち、情報処理システムから要求されたメモリサイズを解放できない場合、終了候補プロセス選択部204は処理を中断し、情報処理システムにエラーを返す必要がある。本説明では、終了候補プロセス選択部204の主要な機能を説明するため、図5及び図6に示すフローチャートの中でエラー処理を図示しない。
選択した各プロセスの合計割り当てサイズの総計が、Nバイト以上であると判定された場合(ステップS7でYES)、終了候補プロセス選択部204は、選択したメモリブロックに関する情報と、選択したプロセス群に関する情報とを終了プロセス決定部206に渡す(ステップS8)。終了プロセス決定部206は、今回選択したメモリブロックに対して選択されたプロセス群と、今回選択したメモリブロックと同じメモリブロックに対してこれまでに選択されたプロセス群とを比較して、今回選択したメモリブロックに対して選択されたプロセス群が、終了候補になりうるか否かを確認する。なお、終了プロセス決定部206における処理については後述する。具体的には、終了候補プロセス選択部204は、どのメモリブロックを選択したのかという情報と、どのプロセス群を選択したのかという情報とを、終了プロセス決定部206に渡す。
次に、終了候補プロセス選択部204は、渡したプロセス群が終了候補になるか否かを表す情報を終了プロセス決定部206から受け取り、受け取った情報に基づいて、渡したプロセス群が終了候補になるか否かを判断する(ステップS9)。ここで、渡したプロセス群が終了候補にならないと判断された場合(ステップS9でNO)、終了候補プロセス選択部204は、ステップS4で選択したメモリブロックに対して選択されたプロセス群を破棄し、ステップS3の処理に戻る。
一方、渡したプロセス群が終了候補になると判断された場合(ステップS9でYES)、終了候補プロセス選択部204は、選択した順序がわかる形式でプロセス群をプロセス群終了可否判定部205に渡す(ステップS10)。これにより、選択したプロセス群が本当に終了可能かどうかを、プロセス群終了可否判定部205に問い合わせる処理に移る。なお、プロセス群終了可否判定部205における処理については後述する。
次に、終了候補プロセス選択部204は、渡したプロセス群に終了不可のプロセスがあるか否かを表す情報をプロセス群終了可否判定部205から受け取り、受け取った情報に基づいて、選択したプロセス群の中に終了不可のプロセスがあるか否かを判断する(ステップS11)。選択したプロセス群の中に終了不可のプロセスがないと判断された場合(ステップS11でNO)、終了候補プロセス選択部204は、選択したメモリブロックを表す情報と、選択が確定したプロセス群を表す情報とを、選択が確定したことを表す通知とともに終了プロセス決定部206に渡し(ステップS12)、ステップS3の処理に戻る。
一方、渡したプロセス群に終了不可のプロセスがあると判断された場合(ステップS11でYES)、終了候補プロセス選択部204は、選択したプロセス群の中から、終了不可のプロセスを除外し(ステップS13)、ステップS3の処理に戻る。
ステップS3において、全てのメモリブロックに対する処理が済み、終了候補のプロセスを選択していないメモリブロックが存在しないと判断された場合(ステップS3でNO)、終了候補プロセス選択部204は、終了プロセス決定部206に終了候補のプロセスの選択が終了したことを表すプロセス選択終了通知を送信し(ステップS14)、処理を完了する。
次に、プロセス群終了可否判定部205が管理するメモリ空き容量と各プロセスの終了可否の条件とについて説明する。図7は、本発明の実施の形態におけるプロセス群終了可否判定部が管理する終了可否判定条件の一例を示す図である。プロセス群終了可否判定部205は、あるプロセスを終了することが可能か否かを、メモリ空き容量とメモリ空き容量に応じたプロセスの優先度レベルとで規定している。これは、終了させるプロセスに重要度を付け、またメモリ空き容量によりシステム上の緊急度を把握し、緊急度が高い場合にのみ重要度が高いプロセスを終了させることができるように制御するためである。
例えば、図7に示す例では、プロセス群終了可否判定部205は、複数のメモリブロック全体のメモリ空き容量の条件611と、終了可能なプロセスの優先度レベルの条件612とを対応付けた終了可能レベル管理情報601と、プロセスの優先度レベル値と、優先度レベル値に該当するプロセスとを対応付けたプロセスレベル管理情報602とを記憶している。終了可否判定条件は、終了可能レベル管理情報601とプロセスレベル管理情報602とを含む。図7の例では、優先度レベルの値が小さいものほど優先度が高い、すなわち終了条件が厳しいことを示している。
終了可能レベル管理情報601のメモリ空き容量の条件611には、複数のメモリブロック全体のメモリ空き容量の条件を段階的に設定することが可能であり、優先度レベルの条件612には、メモリ空き容量の条件に合致した際に終了させることができるプロセスの優先度レベルの条件を設定することが可能である。
具体的に一例を挙げて説明すると、現在の複数のメモリブロック全体のメモリ空き容量が3MB(MegaByte:メガバイト)であった場合、終了可能レベル管理情報601に従うと、当該メモリ空き容量は、“4MB以下”というメモリ空き容量の条件611に合致し(図7の項目621)、終了可能なプロセスの優先度レベルは“レベル2以上”となる。プロセスレベル管理情報602によると、優先度レベルがレベル2以上のプロセスは、第2のプロセスB、第3のプロセスC、第4のプロセスD及び第5のプロセスEである。したがって、終了可能なプロセスは、第2のプロセスB、第3のプロセスC、第4のプロセスD及び第5のプロセスEであり、第1のプロセスAは終了不可となる。
なお、図7に示す終了可能レベル管理情報601及びプロセスレベル管理情報602の構成は例示に過ぎず、複数のメモリブロック全体のメモリ空き容量に応じて終了可能なプロセスを管理できる情報であればよい。
次に、プロセス群終了可否判定部205の処理について説明する。図8及び図9は、本発明の実施の形態におけるプロセス群終了可否判定部の処理の一例を示すフローチャートである。
まず、プロセス群終了可否判定部205は、選択されたプロセス群に関する情報を、終了候補プロセス選択部204から受け取る(ステップS21)。
次に、プロセス群終了可否判定部205は、図7に例示する終了可否判定条件を取得する(ステップS22)。
次に、プロセス群終了可否判定部205は、終了候補プロセス選択部204によって選択されたプロセス群を優先度が高い順、すなわち終了条件が厳しい順に並べ替える(ステップS23)。その際、複数のプロセスの終了条件が同じである場合は、プロセス群終了可否判定部205は、終了候補プロセス選択部204から取得したプロセスの順序で保持すればよい。
一例を挙げて説明すると、例えば、プロセス群終了可否判定部205が、プロセス群終了可否判定部205から{第2のプロセスB、第4のプロセスD、第3のプロセスC及び第1のプロセスA}というプロセス群を取得し、図7に例示するような終了可否判定条件を有する場合、プロセス群終了可否判定部205は、プロセス群を{第1のプロセスA、第3のプロセスC、第2のプロセスB及び第4のプロセスD}という順序に並べ替える。
次に、プロセス群終了可否判定部205は、システムメモリ管理部203から現在の複数のメモリブロック全体のメモリ空き容量を取得する(ステップS24)。次に、プロセス群終了可否判定部205は、プロセス割り当てメモリ管理部202からメモリ割り当て情報を取得する(ステップS25)。その後、プロセス群終了可否判定部205は、ステップS23で並べ替えたプロセス群を順に終了可能か否かを確認する処理に移る。
次に、プロセス群終了可否判定部205は、プロセス群のうち未選択のプロセスが存在するか否かを判断する(ステップS26)。未選択のプロセスが存在すると判断された場合(ステップS26でYES)、プロセス群終了可否判定部205は、プロセス群の中から未選択のプロセスのうちの先頭のプロセスを選択する(ステップS27)。次に、プロセス群終了可否判定部205は、ステップS24で取得した複数のメモリブロック全体のメモリ空き容量と、ステップS22で取得した終了可否判定条件とに基づいて、選択したプロセスが終了可能であるか否かを判定する(ステップS28)。
選択したプロセスが終了可能であると判定された場合(ステップS28でYES)、プロセス群終了可否判定部205は、現在保持しているメモリ空き容量の値に、選択したプロセスのメモリ割り当てサイズを加算し更新する(ステップS29)。このように、プロセス群終了可否判定部205は、選択したプロセスを終了した場合に変化するメモリ空き容量を記憶する。選択したプロセスのメモリ割り当てサイズは、ステップS25で取得した各プロセスに対するメモリ割り当て情報から取得すればよい。その後、プロセス群の残りのプロセスに対して終了可能であるか否かを判定するために、ステップS26の処理に戻り処理を継続する。
一方、選択したプロセスが終了可能でないと判定された場合(ステップS28でNO)、プロセス群終了可否判定部205は、選択したプロセスが終了不可であることを記憶する(ステップS30)。その後、プロセス群の残りのプロセスに対して終了可能であるか否かを判定するために、ステップS26の処理に戻り処理を継続する。
ステップS26において、ステップS21で取得したプロセス群の全てのプロセスに対して終了可能であるか否かを判定することにより、未選択のプロセスが存在しないと判断された場合(ステップS26でNO)、プロセス群終了可否判定部205は、プロセス群の中に終了不可のプロセスが存在するか否かを判断する(ステップS31)。
ここで、終了不可のプロセスが存在しないと判断された場合(ステップS31でNO)、プロセス群終了可否判定部205は、終了不可のプロセスが存在しないことを終了候補プロセス選択部204に通知する(ステップS32)。一方、終了不可のプロセスが存在すると判断された場合(ステップS31でYES)、プロセス群終了可否判定部205は、終了不可のプロセスを表す情報と、終了不可のプロセスが存在することとを終了候補プロセス選択部204に通知する(ステップS32)。
以上の動作により、プロセス群終了可否判定部205は、終了候補プロセス選択部204により選択されたプロセス群の中から、優先度が高いプロセスが終了候補として選択されるのを回避することができる。
例えば、ステップS22で図7に例示する終了可否判定条件を取得し、かつステップS24で取得したメモリ空き容量が0.5MBであり、かつ終了候補プロセス選択部204から取得したプロセス群が{第2のプロセスB、第3のプロセスC及び第1のプロセスA}であったとする。この場合、選択された順番通りに第2のプロセスBを先に終了すると、第2のプロセスBに割り当てられているメモリ領域の合サイズが6MBであるため(図3のメモリ割り当て情報302)、複数のメモリブロック全体のメモリ空き容量は6.5MBになる。この場合、次の第3のプロセスC及び第1のプロセスAを終了しようとしても、図7の終了可否判定条件に基づくと、優先度レベル3以上のプロセスのみが終了可能になり、優先度レベル2である第3のプロセスC及び優先度レベル1である第1のプロセスAは終了できなくなる。
しかしながら、プロセス群終了可否判定部205は、ステップS23において、図7に例示する終了可否判定条件に基づき、{第2のプロセスB、第3のプロセスC及び第1のプロセスA}という順番で終了されるプロセス群を{第1のプロセスA、第3のプロセスC及び第2のプロセスB}という順番に並べ替える。この場合、現在のメモリ空き容量が0.5MBなので、図7の終了可否判定条件に基づくと、レベル1以上のプロセスのみが終了可能になり、ステップS28で第1のプロセスAを終了可能であると判定することができる。
また、第1のプロセスAに割り当てられているメモリ領域の合サイズが3MBであるため(図3のメモリ割り当て情報301)、ステップS29で複数のメモリブロック全体のメモリ空き容量は3.5MBとなる。複数のメモリブロック全体のメモリ空き容量が3.5MBであるで、図7の終了可否判定条件に基づくと、レベル2以上のプロセスが終了可能になり、次に選択する第3のプロセスCを終了可能であると判定することができる。
最後に、第3のプロセスCに割り当てられているメモリ領域の合サイズが4MBであるため(図3のメモリ割り当て情報303)、ステップS29で複数のメモリブロック全体のメモリ空き容量は7.5MBとなる。複数のメモリブロック全体のメモリ空き容量が7.5MBであるで、図7の終了可否判定条件に基づくと、レベル3以上のプロセスが終了可能になり、次に選択する第2のプロセスBを終了可能であると判定することができる。
以上の例で示す通り、終了候補プロセス選択部204により選択されたプロセス群{第2のプロセスB、第3のプロセスC及び第1のプロセスA}では、第2のプロセスBのみ終了可能であった。しかしながら、プロセス群終了可否判定部205の動作により、終了可否判定条件に基づいてプロセス群の順序を並べ替えることにより、全てのプロセスを終了させることができる。
次に、終了プロセス決定部206の処理について説明する。図10及び図11は、本発明の実施の形態における終了プロセス決定部の処理の一例を示すフローチャートである。
まず、終了プロセス決定部206は、選択されたメモリブロックを表す情報と、選択されたプロセス群を表す情報とを終了候補プロセス選択部204から受け取る(ステップS31)。なお、図6のステップS12で選択が確定したことを表す通知が付与された場合、終了プロセス決定部206は、選択されたメモリブロックを表す情報と、選択されたプロセス群を表す情報と、選択が確定したことを表す通知とを、終了候補プロセス選択部204から受け取る。
終了候補プロセス選択部204から選択が確定したことが通知された場合、当該通知と共に送信されたプロセス群は、現在終了プロセス決定部206が保持しているプロセス群より優先して終了すべきと判断することができる。したがって、終了プロセス決定部206は、受け取ったプロセス群が選択確定したプロセス群であるか否かを判断する(ステップS42)。受け取ったプロセス群が選択確定したプロセス群であると判断された場合(ステップS42でYES)、終了プロセス決定部206は、終了候補プロセス選択部204から受け取ったメモリブロックとプロセス群とを終了候補として保持する(ステップS43)。
一方、受け取ったプロセス群が選択確定したプロセス群でないと判断された場合(ステップS42でNO)、終了プロセス決定部206は、すでにメモリブロックと終了候補のプロセス群とを保持しているか否かを判断する(ステップS44)。ここで、メモリブロックと終了候補のプロセス群とを保持していないと判断された場合(ステップS44でNO)、比較すべきプロセス群が存在しないので、終了プロセス決定部206は、終了候補プロセス選択部204から受け取ったメモリブロックとプロセス群とを終了候補として保持する(ステップS43)。
一方、すでにメモリブロックと終了候補のプロセス群とを保持していると判断された場合(ステップS44でYES)、終了プロセス決定部206は、終了候補プロセス選択部204から受け取ったプロセス群のプロセス数が、保持しているプロセス群のプロセス数以下であるか否かを判断する(ステップS45)。終了候補プロセス選択部204から受け取ったプロセス群のプロセス数が、保持しているプロセス群のプロセス数以下ではないと判断された場合、すなわち受け取ったプロセス群のプロセス数が、保持しているプロセス群のプロセス数より多いと判断された場合(ステップS45でNO)、終了プロセス決定部206は、受け取ったプロセス群が終了候補にならないことを終了候補プロセス選択部204に通知する(ステップS46)。
一方、終了候補プロセス選択部204から受け取ったプロセス群のプロセス数が、保持しているプロセス群のプロセス数以下であると判断された場合(ステップS45でYES)、終了プロセス決定部206は、システムメモリ管理部203から各メモリブロックの空き容量を取得する(ステップS47)。
次に、終了プロセス決定部206は、プロセス割り当てメモリ管理部202から各プロセスのメモリ割り当て情報を取得する(ステップS48)。
次に、終了プロセス決定部206は、ステップS47及びステップS48で取得した情報に基づき、終了候補プロセス選択部204から受け取ったプロセス群を終了した場合に確保できる該当メモリブロックの空き容量を算出する(ステップS49)。
具体的には、終了プロセス決定部206は、ステップS48で取得したメモリ割り当て情報に基づいて、終了候補プロセス選択部204から受け取ったメモリブロックに対する、終了候補プロセス選択部204から受け取ったプロセス群の各プロセスの割り当てサイズを算出する。また、終了プロセス決定部206は、ステップS47で取得した各メモリブロックのメモリ空き容量に基づいて、終了候補プロセス選択部204から受け取ったメモリブロックの空き容量を算出する。終了プロセス決定部206は、終了候補プロセス選択部204から受け取ったメモリブロックのメモリ空き容量と、終了候補プロセス選択部204から受け取ったプロセス群の各プロセスのメモリブロックへの割り当てサイズとを合計することにより、終了候補プロセス選択部204から受け取ったプロセス群を終了した場合に確保できる該当メモリブロックの空き容量を算出することができる。
ここで、終了候補プロセス選択部204から受け取ったプロセス群を終了した場合に確保できる該当メモリブロックの空き容量を算出する一例について、図3及び図4を用いて説明する。例えば、図10のステップS41で、終了候補プロセス選択部204から受け取ったメモリブロックが、第2のメモリブロックであり、終了候補プロセス選択部204から受け取ったプロセス群が、第1のプロセスA及び第3のプロセスCであったとする。
この場合、図3のプロセス割り当てメモリ管理部202のメモリ割り当て情報の例から、第2のメモリブロックには、第1のプロセスAが3MB、第3のプロセスCが1MB割り当てられている。図4のシステムメモリ管理部203のメモリ空き容量情報の例から、第2のメモリブロックのメモリ空き容量は、1MBである。したがって、終了候補プロセス選択部204から受け取ったプロセス群(第1のプロセスA及び第3のプロセスC)を終了した場合に確保できる該当メモリブロック(第2のメモリブロック)の空き容量は、合計5MBとなる。
次に、終了プロセス決定部206は、現在終了候補として保持しているプロセス群を終了した場合に確保できる該当メモリブロックの空き容量を算出する(ステップS50)。空き容量の算出手順は、ステップS49で実施した手順と同様である。なお、ステップS50で扱う該当メモリブロックとは、以前、現在終了候補として保持しているプロセス群を受け取った時に終了候補プロセス選択部204から受け取ったメモリブロックのことであり、ステップS49で扱ったメモリブロックとは異なる。
ここで、現在終了候補として保持しているプロセス群を終了した場合に確保できる該当メモリブロックの空き容量を算出する一例について、図3及び図4を用いて説明する。例えば、保持しているメモリブロックが、第1のメモリブロックであり、保持しているプロセス群が、第3のプロセスC及び第2のプロセスBであったとする。
この場合、図3のプロセス割り当てメモリ管理部202のメモリ割り当て情報の例から、第1のメモリブロックには、第3のプロセスCが3MB、第2のプロセスBが1MB割り当てられている。また、図4のシステムメモリ管理部203のメモリ空き容量情報の例から、第1のメモリブロックのメモリ空き容量は、2MBである。したがって、現在終了候補として保持しているプロセス群(第3のプロセスC及び第2のプロセスB)を終了した場合に確保できる該当メモリブロック(第1のメモリブロック)の空き容量は、合計6MBとなる。
次に、終了プロセス決定部206は、終了候補プロセス選択部204から受け取ったプロセス群を終了した場合に確保できる空き容量が、保持している終了候補のプロセス群を終了した場合に確保できる空き容量より大きいか否かを判定する(ステップS51)。前述の例では、終了候補プロセス選択部204から受け取ったプロセス群を終了すると、第2のメモリブロックの空き容量が5MBになり、現在保持しているプロセス群を終了すると、第1のメモリブロックの空き容量が6MBになる。そのため、保持しているプロセス群を終了した場合に確保できる空き容量が、受け取ったプロセス群を終了した場合に確保できる空き容量より大きくなる。
終了候補プロセス選択部204から受け取ったプロセス群を終了した場合に確保できる空き容量が、保持している終了候補のプロセス群を終了した場合に確保できる空き容量以下であると判定された場合(ステップS51でNO)、終了プロセス決定部206は、受け取ったプロセス群が終了候補にならないことを終了候補プロセス選択部204に通知する(ステップS46)。
一方、終了候補プロセス選択部204から受け取ったプロセス群を終了した場合に確保できる空き容量が、保持している終了候補のプロセス群を終了した場合に確保できる空き容量より大きいと判定された場合(ステップS51でYES)、終了プロセス決定部206は、受け取ったプロセス群が終了候補になることを終了候補プロセス選択部204に通知する(ステップS52)。
以上の動作により、終了プロセス決定部206は、終了候補プロセス選択部204から受け取った複数のメモリブロックのうち、可能な限り大きく解放できる特定のメモリブロックを保持することができる。また、終了プロセス決定部206は、特定のメモリブロックを可能な限り大きく解放させる終了候補のプロセス群を保持することができる。
次に、終了候補プロセス選択部204からプロセス選択終了通知を受け取った場合の終了プロセス決定部206の処理について説明する。図12は、終了候補プロセス選択部からプロセス選択終了通知を受け取った場合の終了プロセス決定部の処理の一例を示すフローチャートである。
まず、終了プロセス決定部206は、終了候補プロセス選択部204から、終了候補のプロセスの選択が終了したことを表すプロセス選択終了通知を受け取る(ステップS61)。次に、終了プロセス決定部206は、現在保持しているプロセス群を終了対象のプロセス群に決定する(ステップS62)。次に、終了プロセス決定部206は、決定した終了対象のプロセス群を選択プロセス終了部207に渡す(ステップS63)。
選択プロセス終了部207は、終了プロセス決定部206から終了対象のプロセス群を受け取ると、情報処理システムで定められた所定の手続きにより、各プロセスが使用しているメモリブロック及び各プロセスが確保している各種リソースを解放させ、終了対象の各プロセスを終了させる。
次に、終了プロセス決定部206は、現在保持しているメモリブロックとプロセス群とを消去し(ステップS64)、処理を終了する。
以上の動作により、本実施の形態のメモリ管理装置は、特定のメモリブロックに可能な限り多くの空き領域を作ることが可能になるため、特定のメモリブロックに対する電力供給を切るためのデータ退避のコストが小さくなり、省電力状態に移行しやすくなる。
また、特定のメモリブロックに可能な限り多くの空き領域を作ることが可能になるため、特定のメモリブロック内に連続した空き領域を確保することができる。そのため、画像データを圧縮又は伸張するコーデックなどにおいて、特定のメモリブロック内の連続した空き領域を使用することができる。
なお、図2に示すメモリ管理装置の各機能ブロックは、典型的にはプロセッサと外部メモリとの協同で処理されるプログラムとして実現されるが、集積回路であるLSIで実現してもよい。これらの各機能ブロックは個別に1チップ化されても良いし、一部又は全てを含むように1チップ化されても良い。ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI又はウルトラLSIと呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。
本実施の形態に係るメモリ管理装置は、プロセッサとメモリ装置とを備えた情報処理装置であれば、あらゆる電子機器、情報機器、AV(Audio Visual)機器、通信機器及び家電機器にも適用可能であり、例えば、PC(パーソナルコンピュータ)、携帯情報端末(携帯電話、スマートフォン及びPDA(Personal Digital Assistant)など)、テレビ、ハードディスクレコーダー、DVD及びブルーレイディスクなどを用いた各種ディスクレコーダー、DVD及びブルーレイディスクなどを用いた各種ディスクプレイヤー、及びカーナビゲーションシステムなどにも応用できる。
なお、前述の説明はあらゆる点において本発明の例示に過ぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。
なお、上述した具体的実施形態には以下の構成を有する発明が主に含まれている。
本発明の一局面に係るメモリ管理装置は、複数のメモリブロックを含むメモリを管理するメモリ管理装置であって、複数のプロセスを動作可能な情報処理システムで使用される前記プロセスに割り当てられている複数のメモリブロックの割り当てサイズを、前記プロセスごとにメモリブロック単位で管理するプロセス割り当てメモリ管理部と、前記複数のメモリブロック全体のメモリ空き容量を管理するシステムメモリ管理部と、前記メモリを解放するためのメモリ解放要求を前記情報処理システムから受け取ると、前記プロセス割り当てメモリ管理部によって管理されている前記割り当てサイズに基づき、前記複数のメモリブロックごとに割り当てられている複数のプロセスを割り当てサイズが大きい順に抽出し、抽出した複数のプロセスを終了候補のプロセス群として前記複数のメモリブロックごとに選択する終了候補プロセス選択部と、前記終了候補プロセス選択部によって選択された終了候補のプロセス群が、既に保持している終了候補のプロセス群に対して優先的に終了すべきであるか否かを判定する優先終了判定部と、前記終了候補プロセス選択部によって選択され、かつ前記優先終了判定部によって優先的に終了すべきであると判定された終了候補のプロセス群の順序を優先度に応じて並べ替え、前記システムメモリ管理部によって管理されている前記複数のメモリブロック全体のメモリ空き容量に基づいて、当該並べ替えた終了候補のプロセス群が終了可能であるか否かを判定するプロセス群終了可否判定部と、保持している終了候補のプロセス群を、前記プロセス群終了可否判定部によって終了可能であると判定された前記終了候補のプロセス群に書き換え、全てのメモリブロックに対する終了候補のプロセス群の選択が終了すると、保持している終了候補のプロセス群を終了すべきプロセス群として決定する終了プロセス決定部とを備える。
本発明の他の局面に係るメモリ管理方法は、複数のメモリブロックを含むメモリを管理するメモリ管理方法であって、複数のプロセスを動作可能な情報処理システムで使用される前記プロセスに割り当てられている複数のメモリブロックの割り当てサイズを、前記プロセスごとにメモリブロック単位で管理するプロセス割り当てメモリ管理ステップと、前記複数のメモリブロック全体のメモリ空き容量を管理するシステムメモリ管理ステップと、前記メモリを解放するためのメモリ解放要求を前記情報処理システムから受け取ると、前記プロセス割り当てメモリ管理ステップにおいて管理されている前記割り当てサイズに基づき、前記複数のメモリブロックごとに割り当てられている複数のプロセスを割り当てサイズが大きい順に抽出し、抽出した複数のプロセスを終了候補のプロセス群として前記複数のメモリブロックごとに選択する終了候補プロセス選択ステップと、前記終了候補プロセス選択ステップにおいて選択された終了候補のプロセス群が、既に保持している終了候補のプロセス群に対して優先的に終了すべきであるか否かを判定する優先終了判定ステップと、前記終了候補プロセス選択ステップにおいて選択され、かつ前記優先終了判定ステップにおいて優先的に終了すべきであると判定された終了候補のプロセス群の順序を優先度に応じて並べ替え、前記システムメモリ管理ステップにおいて管理されている前記複数のメモリブロック全体のメモリ空き容量に基づいて、当該並べ替えた終了候補のプロセス群が終了可能であるか否かを判定するプロセス群終了可否判定ステップと、保持している終了候補のプロセス群を、前記プロセス群終了可否判定ステップにおいて終了可能であると判定された前記終了候補のプロセス群に書き換え、全てのメモリブロックに対する終了候補のプロセス群の選択が終了すると、保持している終了候補のプロセス群を終了すべきプロセス群として決定する終了プロセス決定ステップとを含む。
本発明の他の局面に係るメモリ管理プログラムは、複数のメモリブロックを含むメモリを管理するメモリ管理プログラムであって、複数のプロセスを動作可能な情報処理システムで使用される前記プロセスに割り当てられている複数のメモリブロックの割り当てサイズを、前記プロセスごとにメモリブロック単位で管理するプロセス割り当てメモリ管理部と、前記複数のメモリブロック全体のメモリ空き容量を管理するシステムメモリ管理部と、前記メモリを解放するためのメモリ解放要求を前記情報処理システムから受け取ると、前記プロセス割り当てメモリ管理部によって管理されている前記割り当てサイズに基づき、前記複数のメモリブロックごとに割り当てられている複数のプロセスを割り当てサイズが大きい順に抽出し、抽出した複数のプロセスを終了候補のプロセス群として前記複数のメモリブロックごとに選択する終了候補プロセス選択部と、前記終了候補プロセス選択部によって選択された終了候補のプロセス群が、既に保持している終了候補のプロセス群に対して優先的に終了すべきであるか否かを判定する優先終了判定部と、前記終了候補プロセス選択部によって選択され、かつ前記優先終了判定部によって優先的に終了すべきであると判定された終了候補のプロセス群の順序を優先度に応じて並べ替え、前記システムメモリ管理部によって管理されている前記複数のメモリブロック全体のメモリ空き容量に基づいて、当該並べ替えた終了候補のプロセス群が終了可能であるか否かを判定するプロセス群終了可否判定部と、保持している終了候補のプロセス群を、前記プロセス群終了可否判定部によって終了可能であると判定された前記終了候補のプロセス群に書き換え、全てのメモリブロックに対する終了候補のプロセス群の選択が終了すると、保持している終了候補のプロセス群を終了すべきプロセス群として決定する終了プロセス決定部としてコンピュータを機能させる。
本発明の他の局面に係るメモリ管理プログラムを記録したコンピュータ読み取り可能な記録媒体は、複数のメモリブロックを含むメモリを管理するメモリ管理プログラムを記録したコンピュータ読み取り可能な記録媒体であって、複数のプロセスを動作可能な情報処理システムで使用される前記プロセスに割り当てられている複数のメモリブロックの割り当てサイズを、前記プロセスごとにメモリブロック単位で管理するプロセス割り当てメモリ管理部と、前記複数のメモリブロック全体のメモリ空き容量を管理するシステムメモリ管理部と、前記メモリを解放するためのメモリ解放要求を前記情報処理システムから受け取ると、前記プロセス割り当てメモリ管理部によって管理されている前記割り当てサイズに基づき、前記複数のメモリブロックごとに割り当てられている複数のプロセスを割り当てサイズが大きい順に抽出し、抽出した複数のプロセスを終了候補のプロセス群として前記複数のメモリブロックごとに選択する終了候補プロセス選択部と、前記終了候補プロセス選択部によって選択された終了候補のプロセス群が、既に保持している終了候補のプロセス群に対して優先的に終了すべきであるか否かを判定する優先終了判定部と、前記終了候補プロセス選択部によって選択され、かつ前記優先終了判定部によって優先的に終了すべきであると判定された終了候補のプロセス群の順序を優先度に応じて並べ替え、前記システムメモリ管理部によって管理されている前記複数のメモリブロック全体のメモリ空き容量に基づいて、当該並べ替えた終了候補のプロセス群が終了可能であるか否かを判定するプロセス群終了可否判定部と、保持している終了候補のプロセス群を、前記プロセス群終了可否判定部によって終了可能であると判定された前記終了候補のプロセス群に書き換え、全てのメモリブロックに対する終了候補のプロセス群の選択が終了すると、保持している終了候補のプロセス群を終了すべきプロセス群として決定する終了プロセス決定部としてコンピュータを機能させるメモリ管理プログラムを記録する。
本発明の他の局面に係る集積回路は、複数のメモリブロックを含むメモリを管理する集積回路であって、複数のプロセスを動作可能な情報処理システムで使用される前記プロセスに割り当てられている複数のメモリブロックの割り当てサイズを、前記プロセスごとにメモリブロック単位で管理するプロセス割り当てメモリ管理回路と、前記複数のメモリブロック全体のメモリ空き容量を管理するシステムメモリ管理回路と、前記メモリを解放するためのメモリ解放要求を前記情報処理システムから受け取ると、前記プロセス割り当てメモリ管理回路によって管理されている前記割り当てサイズに基づき、前記複数のメモリブロックごとに割り当てられている複数のプロセスを割り当てサイズが大きい順に抽出し、抽出した複数のプロセスを終了候補のプロセス群として前記複数のメモリブロックごとに選択する終了候補プロセス選択回路と、前記終了候補プロセス選択回路によって選択された終了候補のプロセス群が、既に保持している終了候補のプロセス群に対して優先的に終了すべきであるか否かを判定する優先終了判定回路と、前記終了候補プロセス選択回路によって選択され、かつ前記優先終了判定回路によって優先的に終了すべきであると判定された終了候補のプロセス群の順序を優先度に応じて並べ替え、前記システムメモリ管理回路によって管理されている前記複数のメモリブロック全体のメモリ空き容量に基づいて、当該並べ替えた終了候補のプロセス群が終了可能であるか否かを判定するプロセス群終了可否判定回路と、保持している終了候補のプロセス群を、前記プロセス群終了可否判定回路によって終了可能であると判定された前記終了候補のプロセス群に書き換え、全てのメモリブロックに対する終了候補のプロセス群の選択が終了すると、保持している終了候補のプロセス群を終了すべきプロセス群として決定する終了プロセス決定回路とを備える。
これらの構成によれば、複数のプロセスを動作可能な情報処理システムで使用されるプロセスに割り当てられている複数のメモリブロックの割り当てサイズが、プロセスごとにメモリブロック単位で管理される。また、複数のメモリブロック全体のメモリ空き容量が管理される。メモリを解放するためのメモリ解放要求を情報処理システムから受け取ると、管理されている割り当てサイズに基づき、複数のメモリブロックごとに割り当てられている複数のプロセスが割り当てサイズが大きい順に抽出され、抽出された複数のプロセスが終了候補のプロセス群として複数のメモリブロックごとに選択される。次に、選択された終了候補のプロセス群が、既に保持している終了候補のプロセス群に対して優先的に終了すべきであるか否かが判定される。優先的に終了すべきであると判定された終了候補のプロセス群の順序が優先度に応じて並べ替えられ、管理されている複数のメモリブロック全体のメモリ空き容量に基づいて、当該並べ替えられた終了候補のプロセス群が終了可能であるか否かが判定される。保持している終了候補のプロセス群が、終了可能であると判定された終了候補のプロセス群に書き換えられ、全てのメモリブロックに対する終了候補のプロセス群の選択が終了すると、保持している終了候補のプロセス群が終了すべきプロセス群として決定される。
したがって、複数のメモリブロックごとに終了候補のプロセス群が選択され、選択された終了候補のプロセス群が終了可能であるか否かが判定され、終了可能であると判定されたプロセス群が終了されるので、特定のメモリブロックの空き容量を可能な限り多く確保することができる。
また、上記のメモリ管理装置において、前記優先終了判定部は、前記終了候補プロセス選択部によって選択された前記終了候補のプロセス群を終了することにより確保できるメモリブロックの空き容量と、既に保持している終了候補のプロセス群を終了することにより確保できるメモリブロックの空き容量との大小関係に基づいて、前記終了候補プロセス選択部によって選択された前記終了候補のプロセス群が、既に保持している終了候補のプロセス群に対して優先的に終了すべきであるか否かを判定することが好ましい。
この構成によれば、選択された終了候補のプロセス群を終了することにより確保できるメモリブロックの空き容量と、既に保持している終了候補のプロセス群を終了することにより確保できるメモリブロックの空き容量との大小関係に基づいて、選択された終了候補のプロセス群が、既に保持している終了候補のプロセス群に対して優先的に終了すべきであるか否かが判定される。
したがって、選択された終了候補のプロセス群を終了することにより確保できるメモリブロックの空き容量と、既に保持している終了候補のプロセス群を終了することにより確保できるメモリブロックの空き容量との大小関係を判断することによって、選択された終了候補のプロセス群と、既に保持している終了候補のプロセス群とのうちのどちらを優先的に終了させるかを決定することができる。
また、上記のメモリ管理装置において、前記優先終了判定部は、前記終了候補プロセス選択部によって選択された前記終了候補のプロセス群を構成する複数のプロセスのプロセス数と、既に保持している終了候補のプロセス群を構成する複数のプロセスのプロセス数との大小関係に基づいて、前記終了候補プロセス選択部によって選択された前記終了候補のプロセス群が、既に保持している終了候補のプロセス群に対して優先的に終了すべきであるか否かを判定することが好ましい。
この構成によれば、選択された前記終了候補のプロセス群を構成する複数のプロセスのプロセス数と、既に保持している終了候補のプロセス群を構成する複数のプロセスのプロセス数との大小関係に基づいて、選択された終了候補のプロセス群が、既に保持している終了候補のプロセス群に対して優先的に終了すべきであるか否かが判定される。
したがって、選択された前記終了候補のプロセス群を構成する複数のプロセスのプロセス数と、既に保持している終了候補のプロセス群を構成する複数のプロセスのプロセス数との大小関係を判断することによって、選択された終了候補のプロセス群と、既に保持している終了候補のプロセス群とのうちのどちらを優先的に終了させるかを決定することができる。
また、上記のメモリ管理装置において、前記プロセス群終了可否判定部は、プロセスごとに予め設定されている優先度レベルに基づいて、前記終了候補プロセス選択部によって選択された終了候補のプロセス群を構成する複数のプロセスを並べ替えることが好ましい。
この構成によれば、プロセスごとに予め設定されている優先度レベルに基づいて、選択された終了候補のプロセス群を構成する複数のプロセスが並べ替えられるので、終了候補のプロセス群の順序を優先度に応じて並べ替えることができる。
また、上記のメモリ管理装置において、前記複数のメモリブロックは、それぞれ個別に電力供給されることが好ましい。
この構成によれば、複数のメモリブロックは、それぞれ個別に電力供給されるので、最も空き容量の大きいメモリブロックに供給される電力を遮断することにより、省電力化を実現することができる。
なお、発明を実施するための形態の項においてなされた具体的な実施態様または実施例は、あくまでも、本発明の技術内容を明らかにするものであって、そのような具体例にのみ限定して狭義に解釈されるべきものではなく、本発明の精神と特許請求事項との範囲内で、種々変更して実施することができるものである。
本発明に係るメモリ管理装置、メモリ管理方法、メモリ管理プログラム、メモリ管理プログラムを記録したコンピュータ読み取り可能な記録媒体及び集積回路は、特定のメモリブロックの空き容量を可能な限り多く確保することができ、複数のメモリブロックを含むメモリを管理するメモリ管理装置、メモリ管理方法、メモリ管理プログラム、メモリ管理プログラムを記録したコンピュータ読み取り可能な記録媒体及び集積回路として有用である。

Claims (9)

  1. 複数のメモリブロックを含むメモリを管理するメモリ管理装置であって、
    複数のプロセスを動作可能な情報処理システムで使用される前記プロセスに割り当てられている複数のメモリブロックの割り当てサイズを、前記プロセスごとにメモリブロック単位で管理するプロセス割り当てメモリ管理部と、
    前記複数のメモリブロック全体のメモリ空き容量を管理するシステムメモリ管理部と、
    前記メモリを解放するためのメモリ解放要求を前記情報処理システムから受け取ると、前記プロセス割り当てメモリ管理部によって管理されている前記割り当てサイズに基づき、前記複数のメモリブロックごとに割り当てられている複数のプロセスを割り当てサイズが大きい順に抽出し、抽出した複数のプロセスを終了候補のプロセス群として前記複数のメモリブロックごとに選択する終了候補プロセス選択部と、
    前記終了候補プロセス選択部によって選択された終了候補のプロセス群が、既に保持している終了候補のプロセス群に対して優先的に終了すべきであるか否かを判定する優先終了判定部と、
    前記終了候補プロセス選択部によって選択され、かつ前記優先終了判定部によって優先的に終了すべきであると判定された終了候補のプロセス群の順序を優先度に応じて並べ替え、前記システムメモリ管理部によって管理されている前記複数のメモリブロック全体のメモリ空き容量に基づいて、当該並べ替えた終了候補のプロセス群が終了可能であるか否かを判定するプロセス群終了可否判定部と、
    保持している終了候補のプロセス群を、前記プロセス群終了可否判定部によって終了可能であると判定された前記終了候補のプロセス群に書き換え、全てのメモリブロックに対する終了候補のプロセス群の選択が終了すると、保持している終了候補のプロセス群を終了すべきプロセス群として決定する終了プロセス決定部とを備えるメモリ管理装置。
  2. 前記優先終了判定部は、前記終了候補プロセス選択部によって選択された前記終了候補のプロセス群を終了することにより確保できるメモリブロックの空き容量と、既に保持している終了候補のプロセス群を終了することにより確保できるメモリブロックの空き容量との大小関係に基づいて、前記終了候補プロセス選択部によって選択された前記終了候補のプロセス群が、既に保持している終了候補のプロセス群に対して優先的に終了すべきであるか否かを判定する請求項1記載のメモリ管理装置。
  3. 前記優先終了判定部は、前記終了候補プロセス選択部によって選択された前記終了候補のプロセス群を構成する複数のプロセスのプロセス数と、既に保持している終了候補のプロセス群を構成する複数のプロセスのプロセス数との大小関係に基づいて、前記終了候補プロセス選択部によって選択された前記終了候補のプロセス群が、既に保持している終了候補のプロセス群に対して優先的に終了すべきであるか否かを判定する請求項1又は2記載のメモリ管理装置。
  4. 前記プロセス群終了可否判定部は、プロセスごとに予め設定されている優先度レベルに基づいて、前記終了候補プロセス選択部によって選択された終了候補のプロセス群を構成する複数のプロセスを並べ替える請求項1〜3のいずれかに記載のメモリ管理装置。
  5. 前記複数のメモリブロックは、それぞれ個別に電力供給される請求項1〜4のいずれかに記載のメモリ管理装置。
  6. 複数のメモリブロックを含むメモリを管理するメモリ管理方法であって、
    複数のプロセスを動作可能な情報処理システムで使用される前記プロセスに割り当てられている複数のメモリブロックの割り当てサイズを、前記プロセスごとにメモリブロック単位で管理するプロセス割り当てメモリ管理ステップと、
    前記複数のメモリブロック全体のメモリ空き容量を管理するシステムメモリ管理ステップと、
    前記メモリを解放するためのメモリ解放要求を前記情報処理システムから受け取ると、前記プロセス割り当てメモリ管理ステップにおいて管理されている前記割り当てサイズに基づき、前記複数のメモリブロックごとに割り当てられている複数のプロセスを割り当てサイズが大きい順に抽出し、抽出した複数のプロセスを終了候補のプロセス群として前記複数のメモリブロックごとに選択する終了候補プロセス選択ステップと、
    前記終了候補プロセス選択ステップにおいて選択された終了候補のプロセス群が、既に保持している終了候補のプロセス群に対して優先的に終了すべきであるか否かを判定する優先終了判定ステップと、
    前記終了候補プロセス選択ステップにおいて選択され、かつ前記優先終了判定ステップにおいて優先的に終了すべきであると判定された終了候補のプロセス群の順序を優先度に応じて並べ替え、前記システムメモリ管理ステップにおいて管理されている前記複数のメモリブロック全体のメモリ空き容量に基づいて、当該並べ替えた終了候補のプロセス群が終了可能であるか否かを判定するプロセス群終了可否判定ステップと、
    保持している終了候補のプロセス群を、前記プロセス群終了可否判定ステップにおいて終了可能であると判定された前記終了候補のプロセス群に書き換え、全てのメモリブロックに対する終了候補のプロセス群の選択が終了すると、保持している終了候補のプロセス群を終了すべきプロセス群として決定する終了プロセス決定ステップとを含むメモリ管理方法。
  7. 複数のメモリブロックを含むメモリを管理するメモリ管理プログラムであって、
    複数のプロセスを動作可能な情報処理システムで使用される前記プロセスに割り当てられている複数のメモリブロックの割り当てサイズを、前記プロセスごとにメモリブロック単位で管理するプロセス割り当てメモリ管理部と、
    前記複数のメモリブロック全体のメモリ空き容量を管理するシステムメモリ管理部と、
    前記メモリを解放するためのメモリ解放要求を前記情報処理システムから受け取ると、前記プロセス割り当てメモリ管理部によって管理されている前記割り当てサイズに基づき、前記複数のメモリブロックごとに割り当てられている複数のプロセスを割り当てサイズが大きい順に抽出し、抽出した複数のプロセスを終了候補のプロセス群として前記複数のメモリブロックごとに選択する終了候補プロセス選択部と、
    前記終了候補プロセス選択部によって選択された終了候補のプロセス群が、既に保持している終了候補のプロセス群に対して優先的に終了すべきであるか否かを判定する優先終了判定部と、
    前記終了候補プロセス選択部によって選択され、かつ前記優先終了判定部によって優先的に終了すべきであると判定された終了候補のプロセス群の順序を優先度に応じて並べ替え、前記システムメモリ管理部によって管理されている前記複数のメモリブロック全体のメモリ空き容量に基づいて、当該並べ替えた終了候補のプロセス群が終了可能であるか否かを判定するプロセス群終了可否判定部と、
    保持している終了候補のプロセス群を、前記プロセス群終了可否判定部によって終了可能であると判定された前記終了候補のプロセス群に書き換え、全てのメモリブロックに対する終了候補のプロセス群の選択が終了すると、保持している終了候補のプロセス群を終了すべきプロセス群として決定する終了プロセス決定部としてコンピュータを機能させるメモリ管理プログラム。
  8. 複数のメモリブロックを含むメモリを管理するメモリ管理プログラムを記録したコンピュータ読み取り可能な記録媒体であって、
    複数のプロセスを動作可能な情報処理システムで使用される前記プロセスに割り当てられている複数のメモリブロックの割り当てサイズを、前記プロセスごとにメモリブロック単位で管理するプロセス割り当てメモリ管理部と、
    前記複数のメモリブロック全体のメモリ空き容量を管理するシステムメモリ管理部と、
    前記メモリを解放するためのメモリ解放要求を前記情報処理システムから受け取ると、前記プロセス割り当てメモリ管理部によって管理されている前記割り当てサイズに基づき、前記複数のメモリブロックごとに割り当てられている複数のプロセスを割り当てサイズが大きい順に抽出し、抽出した複数のプロセスを終了候補のプロセス群として前記複数のメモリブロックごとに選択する終了候補プロセス選択部と、
    前記終了候補プロセス選択部によって選択された終了候補のプロセス群が、既に保持している終了候補のプロセス群に対して優先的に終了すべきであるか否かを判定する優先終了判定部と、
    前記終了候補プロセス選択部によって選択され、かつ前記優先終了判定部によって優先的に終了すべきであると判定された終了候補のプロセス群の順序を優先度に応じて並べ替え、前記システムメモリ管理部によって管理されている前記複数のメモリブロック全体のメモリ空き容量に基づいて、当該並べ替えた終了候補のプロセス群が終了可能であるか否かを判定するプロセス群終了可否判定部と、
    保持している終了候補のプロセス群を、前記プロセス群終了可否判定部によって終了可能であると判定された前記終了候補のプロセス群に書き換え、全てのメモリブロックに対する終了候補のプロセス群の選択が終了すると、保持している終了候補のプロセス群を終了すべきプロセス群として決定する終了プロセス決定部としてコンピュータを機能させるメモリ管理プログラムを記録したコンピュータ読み取り可能な記録媒体。
  9. 複数のメモリブロックを含むメモリを管理する集積回路であって、
    複数のプロセスを動作可能な情報処理システムで使用される前記プロセスに割り当てられている複数のメモリブロックの割り当てサイズを、前記プロセスごとにメモリブロック単位で管理するプロセス割り当てメモリ管理回路と、
    前記複数のメモリブロック全体のメモリ空き容量を管理するシステムメモリ管理回路と、
    前記メモリを解放するためのメモリ解放要求を前記情報処理システムから受け取ると、前記プロセス割り当てメモリ管理回路によって管理されている前記割り当てサイズに基づき、前記複数のメモリブロックごとに割り当てられている複数のプロセスを割り当てサイズが大きい順に抽出し、抽出した複数のプロセスを終了候補のプロセス群として前記複数のメモリブロックごとに選択する終了候補プロセス選択回路と、
    前記終了候補プロセス選択回路によって選択された終了候補のプロセス群が、既に保持している終了候補のプロセス群に対して優先的に終了すべきであるか否かを判定する優先終了判定回路と、
    前記終了候補プロセス選択回路によって選択され、かつ前記優先終了判定回路によって優先的に終了すべきであると判定された終了候補のプロセス群の順序を優先度に応じて並べ替え、前記システムメモリ管理回路によって管理されている前記複数のメモリブロック全体のメモリ空き容量に基づいて、当該並べ替えた終了候補のプロセス群が終了可能であるか否かを判定するプロセス群終了可否判定回路と、
    保持している終了候補のプロセス群を、前記プロセス群終了可否判定回路によって終了可能であると判定された前記終了候補のプロセス群に書き換え、全てのメモリブロックに対する終了候補のプロセス群の選択が終了すると、保持している終了候補のプロセス群を終了すべきプロセス群として決定する終了プロセス決定回路とを備える集積回路。
JP2012518215A 2010-05-31 2011-03-31 メモリ管理装置、メモリ管理方法、メモリ管理プログラム、メモリ管理プログラムを記録したコンピュータ読み取り可能な記録媒体及び集積回路 Active JP5405663B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012518215A JP5405663B2 (ja) 2010-05-31 2011-03-31 メモリ管理装置、メモリ管理方法、メモリ管理プログラム、メモリ管理プログラムを記録したコンピュータ読み取り可能な記録媒体及び集積回路

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2010124410 2010-05-31
JP2010124410 2010-05-31
PCT/JP2011/001946 WO2011151963A1 (ja) 2010-05-31 2011-03-31 メモリ管理装置、メモリ管理方法、メモリ管理プログラム、メモリ管理プログラムを記録したコンピュータ読み取り可能な記録媒体及び集積回路
JP2012518215A JP5405663B2 (ja) 2010-05-31 2011-03-31 メモリ管理装置、メモリ管理方法、メモリ管理プログラム、メモリ管理プログラムを記録したコンピュータ読み取り可能な記録媒体及び集積回路

Publications (2)

Publication Number Publication Date
JPWO2011151963A1 true JPWO2011151963A1 (ja) 2013-07-25
JP5405663B2 JP5405663B2 (ja) 2014-02-05

Family

ID=45066357

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012518215A Active JP5405663B2 (ja) 2010-05-31 2011-03-31 メモリ管理装置、メモリ管理方法、メモリ管理プログラム、メモリ管理プログラムを記録したコンピュータ読み取り可能な記録媒体及び集積回路

Country Status (4)

Country Link
US (1) US8601232B2 (ja)
JP (1) JP5405663B2 (ja)
CN (1) CN102473136B (ja)
WO (1) WO2011151963A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103914322A (zh) * 2013-01-05 2014-07-09 腾讯科技(深圳)有限公司 终端加速方法及终端
US20150095603A1 (en) * 2013-09-30 2015-04-02 Samsung Electronics Co., Ltd. Method and device for clearing process in electronic device
CN107203477A (zh) * 2017-06-16 2017-09-26 深圳市万普拉斯科技有限公司 内存分配方法、装置、电子设备及可读存储介质
JP6662819B2 (ja) * 2017-08-10 2020-03-11 ファナック株式会社 制御システム
JP6968016B2 (ja) * 2018-03-22 2021-11-17 キオクシア株式会社 ストレージデバイスおよびコンピュータシステム
JP7103167B2 (ja) * 2018-11-02 2022-07-20 京セラドキュメントソリューションズ株式会社 画像処理装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09212416A (ja) 1995-11-30 1997-08-15 Toshiba Corp 計算機システムおよび計算機システムの電力管理方法
US6038571A (en) * 1996-01-31 2000-03-14 Kabushiki Kaisha Toshiba Resource management method and apparatus for information processing system of multitasking facility
JP2000293386A (ja) * 1999-04-12 2000-10-20 Hitachi Ltd メモリ管理方式
JP2005011434A (ja) 2003-06-19 2005-01-13 Mitsubishi Electric Corp ダイナミックメモリ制御装置及びこれを用いた携帯端末
JP2005196343A (ja) 2004-01-05 2005-07-21 Mitsubishi Electric Corp メモリ管理装置及びメモリ管理方法及びプログラム
JP2005301801A (ja) 2004-04-14 2005-10-27 Nec Corp 情報処理装置、メモリ管理装置、およびプログラム
KR100608012B1 (ko) * 2004-11-05 2006-08-02 삼성전자주식회사 데이터 백업 방법 및 장치
JP4690783B2 (ja) * 2005-06-08 2011-06-01 株式会社日立製作所 ボリューム管理システムおよびその方法
JP4839749B2 (ja) 2005-09-20 2011-12-21 日本電気株式会社 コンピュータ、携帯端末装置、電力制御方法、電力制御プログラム
JP5406363B2 (ja) * 2009-10-27 2014-02-05 株式会社日立製作所 プール領域の一部の領域を動的にデータ格納領域として割り当てる記憶制御装置及び記憶制御方法
JP5531091B2 (ja) * 2009-11-19 2014-06-25 株式会社日立製作所 計算機システム及びその負荷均等化制御方法
US20110191447A1 (en) * 2010-01-29 2011-08-04 Clarendon Foundation, Inc. Content distribution system

Also Published As

Publication number Publication date
US20120124320A1 (en) 2012-05-17
CN102473136A (zh) 2012-05-23
JP5405663B2 (ja) 2014-02-05
CN102473136B (zh) 2014-12-31
WO2011151963A1 (ja) 2011-12-08
US8601232B2 (en) 2013-12-03

Similar Documents

Publication Publication Date Title
JP5405663B2 (ja) メモリ管理装置、メモリ管理方法、メモリ管理プログラム、メモリ管理プログラムを記録したコンピュータ読み取り可能な記録媒体及び集積回路
CA2795489C (en) Opportunistic multitasking
WO2007020735A1 (ja) 競合解決装置
JP2006351004A (ja) 携帯端末機のメモリ管理方法
KR102100458B1 (ko) 메모리를 관리하기 위한 방법 및 그 전자 장치
JP2007026094A (ja) 実行装置およびアプリケーションプログラム
US20140149984A1 (en) Information processing apparatus, information processing method, and computer readable medium
CN104104705B (zh) 分布式存储系统的接入方法和设备
US11431182B2 (en) Resource statistics collection method and apparatus and terminal
CN103201720B (zh) 虚拟计算机控制装置、虚拟计算机控制方法以及集成电路
JP5184268B2 (ja) 情報処理装置及びプログラム
JP2009020555A (ja) スワップ処理装置
JP2012221217A (ja) メモリ管理装置、メモリ管理方法、および、制御プログラム
JP2014048834A (ja) 情報処理装置、コピー制御プログラム、およびコピー制御方法
JP6166758B2 (ja) 情報処理システム、情報処理方法、および情報処理プログラム
US20220353874A1 (en) Method and Apparatus for Maximizing a Number of Connections That Can Be Executed from a Mobile Application
JP2012032896A (ja) 情報処理装置、メモリ容量制御方法及びメモリ容量制御プログラム
CN112905344A (zh) 一种存储系统中的资源调度方法、装置、设备及介质
JP2010009265A (ja) スワップ装置及びスワップ処理方法
AU2013205570A1 (en) Opportunistic multitasking

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130724

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131008

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131030

R150 Certificate of patent or registration of utility model

Ref document number: 5405663

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S131 Request for trust registration of transfer of right

Free format text: JAPANESE INTERMEDIATE CODE: R313133

SZ02 Written request for trust registration

Free format text: JAPANESE INTERMEDIATE CODE: R313Z02

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250