JP2005208785A - メモリ管理方法及び情報処理装置 - Google Patents

メモリ管理方法及び情報処理装置 Download PDF

Info

Publication number
JP2005208785A
JP2005208785A JP2004012591A JP2004012591A JP2005208785A JP 2005208785 A JP2005208785 A JP 2005208785A JP 2004012591 A JP2004012591 A JP 2004012591A JP 2004012591 A JP2004012591 A JP 2004012591A JP 2005208785 A JP2005208785 A JP 2005208785A
Authority
JP
Japan
Prior art keywords
task
memory
partition
memory partition
size
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.)
Pending
Application number
JP2004012591A
Other languages
English (en)
Inventor
Masashi Emura
真史 江村
Hisashi Yoshikawa
寿士 吉川
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2004012591A priority Critical patent/JP2005208785A/ja
Publication of JP2005208785A publication Critical patent/JP2005208785A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】 例えば情報処理装置の外部からプログラムをダウンロードする処理と、ダウンロードされたプログラムを実行する処理のように、メモリの割当てに関して競合する可能性が高くない2つのタスク間で、効率的にメモリ割当てを管理する。
【解決手段】 情報処理装置1の演算制御装置10において動作する特定記憶領域管理部15は、オペレーティングシステム11から移管を受けて、メモリ20に設けられた特定記憶領域21に属するメモリ区画のタスクA12又はタスクB13への割当てを管理する。タスクA12に対しては特定記憶領域21の先頭番地から昇順で、タスクB13に対しては同じく末尾番地から降順で区画を割当て、その間に維持される空き区画の位置をタスクA12のメモリ使用状況に応じて変化させることにより、タスクB13に対して割当て可能なメモリ区画のサイズを制御する。
【選択図】 図1

Description

本発明はメモリ管理方法及び情報処理装置に係り、特にマルチタスク処理における各タスクへのメモリ割当てを制御するメモリ管理方法及び当該方法を実施する情報処理装置に関する。
コンピュータが同時に複数のタスクを処理するいわゆるマルチタスク処理においては、メモリをはじめとするコンピュータのリソースを各タスクに適切に配分して割り当てることが重要であり、従来から多数の文献が著されている(例えば、非特許文献1又は非特許文献2参照。)。
一方で近年、Java(R)に代表されるように実行環境の相違を問わないプログラミング言語が普及してきた(例えば、非特許文献3参照。)。これらのプログラミング言語で記述されたプログラムは、ネットワークに接続された多様な種類のコンピュータのオペレーティング・システム(OS)上に形成される実行環境において共通にその機能を果たす点に特徴がある。例えばJava(R)の場合には、ソフトウェアで仮想的に作られたコンピュータであるJava(R)仮想マシン(Java(R) Virtual Machine、以下Java(R)VMという。)が、ネットワークに接続されたコンピュータ上にインタプリタ(実行環境の一種)として形成される。Java(R)言語で記述されたJava(R)プログラムは、制御プログラムによってサーバからネットワークを介して当該コンピュータにダウンロードされ、かつ、起動された後、Java(R)VM上で実行される。
この例に見るように、例えばJava(R)プログラムをダウンロード又は起動する制御プログラムとJava(R)VMとは、動作する時間帯が異なるという特徴があり、この特徴に着目したリソース(特にメモリ)割当ての効率化が可能であると考えられる。しかし、従来のマルチタスクに対するメモリ割当ての技術はこのようなケースを想定したものではなく、上記の特徴を生かした効率化を実現することはできないという問題があった。
P.B.Hansen、田中他訳「オペレーティング・システムの原理」、昭和51年6月、近代科学社、東京(第188、189、203ページ、図5.2、図5.12) 前川守「オペレーティング・システム」、昭和47年1月、日本評論社、東京(第218乃至220ページ、図5.17、図5.18) (社)電子情報通信学会編「エンサイクロペディア電子情報通信ハンドブック」、平成10年11月、オーム社、東京(第1075ページ)
従来のマルチタスクに対するメモリ割当ての技術は必ずしも実行環境を問わないプログラミング技術に適合したものではなく、例えばネットワークを通じたダウンロード等の制御動作とダウンロードされたプログラムの実行の時間差に着目した割当ての効率化を実現することができないという問題があった。
本発明は上記問題を解決するためになされたもので、実行環境を問わないプログラミング技術に適合したマルチタスクに対するメモリ割当ての効率化を実現することのできるメモリ管理方法及び当該方法を実施する情報処理装置を提供することを目的とする。
上記目的を達成するために、本発明のメモリ管理方法は、情報処理装置による処理において起動された第1のタスクが、前記情報処理装置が有するメモリのうち連続する番地から構成された一の領域の管理を前記情報処理装置において実行する管理タスクに対して、前記一の領域の先頭番地から昇順かつ連続的にサイズを指定して前記一の領域に属するメモリ区画の割当てを要求し、前記情報処理装置による処理において起動された第2のタスクが、前記管理タスクに対して、サイズを指定して前記一の領域に属するメモリ区画の割当てを要求し、前記管理タスクは、前記第1のタスク又は前記第2のタスクから要求されたサイズのメモリ区画が可能でないと判断したとき、前記第1のタスクに対してガーベジコレクションの実行を指示し、前記ガーベジコレクションの実行の結果に基づいて前記第1のタスクに割当て済みのメモリ区画を削減し、前記第1のタスクから要求されたサイズのメモリ区画があると判断したとき、前記第1のタスクの要求にしたがってメモリ区画を割当て、前記第2のタスクの要求に対して、前記一の領域の末尾番地から降順に要求されたサイズのメモリ区画があると判断したとき、前記第2のタスクの要求及び前記降順の番地の指定にしたがって降順にメモリ区画を割当て、前記第1のタスクによるガーベジコレクション実行の後に、前記第1のタスク又は前記第2のタスクから要求されたサイズのメモリ区画がないと判断したとき、前記第1のタスク又は前記第2のタスクに対して割当てができない旨を通知し、前記第2のタスクから前記割り当てたのと逆の順序でメモリ区画の開放を通知されたとき、前記開放を通知されたメモリ区画を開放することを特徴とする。
本発明によれば、一方のタスクが使用するメモリサイズに応じて他方のタスクへのメモリ割当てを加減することができるので、例えばプログラムのダウンロードの制御とダウンロードされたプログラムに基づくタスク処理のように2つのタスクの動作する時間帯が異なるような場合に、効率的にメモリを割り当てることができる。
以下、図面を参照して本発明の実施例を説明する。
以下、図1乃至図4を参照して、本発明の実施例1を説明する。図1は、本発明の実施例1に係る情報処理装置の構成を表す図である。図中の1は情報処理装置であり、演算制御装置10とメモリ20とを備えている。演算制御装置10及びメモリ20をリソースとして用いて、オペレーティングシステム(以下OSという。)11による処理が実行される。また、OS11はアプリケーション等の実行の単位であるタスクA12、タスクB13及びそれら以外のタスク(図1においては、タスクN14として一般的に表す。)を生成し、その実行を管理する。15は、後述するメモリ20の内部の特定記憶領域21からタスクA12及びタスクB13へのメモリ区画の割当てを管理する特定記憶領域管理部である。特定記憶領域管理部15は演算制御装置10において実行されるタスクの一つであり、OS11に含めて構成してもOS11とは別個に構成してもよい。
タスクA12及びタスクB13は、それぞれどのような種類のタスクであってもよいが、以下では一例として、タスクAがJava(R)VMの実行、タスクBが情報処理装置1の外部からのJava(R)プログラムのダウンロードの制御であるものとする。
一方、図中の20は情報処理装置1が備えるメモリである。メモリ20の内部には、Java(R)VMを実行するタスクA12及びJava(R)プログラムのダウンロード制御であるタスクB13のために割り当てられる特定記憶領域21が設けられている。この特定記憶領域21は、連続する番地から構成された一の領域であって、OS11によりメモリ20の内部に設けられるものである。
次に図2及び図3を参照して、タスクA12及びタスクB13に対する特定記憶領域21に属するメモリ区画の割当ての一例について説明する。図2は、特定記憶領域21に属するメモリ区画の割当て方法を表す図である。この図では、説明の便宜上特定記憶領域21の先頭番地を“1”とする。
特定記憶領域21の先頭番地“1”に始まり番地“a”で終わる区画“P”は、タスクA12に割り当てられている。番地“a+1” に始まり番地“b”で終わる区画“Q”も、タスクA12に割り当てられている。番地“b+1” に始まり番地“c”で終わる区画“R”は、タスクA12にもタスクB13にも割り当てられていない空き区画である。番地“c+1” に始まり番地“d”で終わる区画“S”は、タスクB13に割り当てられている。また、番地“d+1” に始まり番地“e”で終わる区画“T”も、タスクB13に割り当てられている。図3は、これらの区画、タスク及び番地の関係を表の形にして、特定記憶領域管理部15が保持しているものである。
タスクA12に対する区画“P”及び“Q”の割当ての時間的な先後関係は、区画“P”の割当てが先で、区画“Q”の割当てが後である。一方、タスクB13に対する区画“S”及び“T”の割当ての時間的な先後関係は、区画“T”の割当てが先で、区画“S”の割当てが後である。
タスクA12は特定記憶領域管理部15に対して、特定記憶領域21の先頭番地から順に(昇順で)かつ隙間のないようにサイズを指定して特定記憶領域21に属する区画の割当てを要求する。特定記憶領域管理部15は要求されたサイズの空き区画があると判断したとき、当該要求に基づいて区画の割当てを行う。したがって、タスクA12からの最初の要求に対して先頭番地“1”から始まり番地“a”で終わる区画“P”をまず割り当て、次の要求に対して番地“a+1”で始まり番地“b”で終わる区画“Q”を割り当てる。
特定記憶領域管理部15は、一方タスクB13から特定記憶領域21に属する区画のサイズを指定した割当て要求を受けて要求されたサイズの空き区画があるとき、特定記憶領域21の末尾番地から順に(降順で)区画の割り当てを行う。したがって、タスクB13からの最初の要求に対して末尾番地が“e”であり先頭番地が“d+1”である区画“T”をまず割り当て、次の要求に対して末尾番地が“d”であり先頭番地が“c+1”である区画“S”を割り当てる。
なお、タスクB13は、割り当てられた区画が不要になったときは割当ての順序とは逆の順序でそれらの区画を開放する旨を特定記憶領域管理部15に通知し、特定記憶領域管理部15がその通知された区画を開放する。
このように、タスクA12に対しては特定記憶領域21の先頭番地から昇順で隙間なく区画を割り当てると共に、タスクB13に対しては末尾番地から降順で区画を割り当て、空きの区間“R”が残るようにすれば、区画の割り当てに関するタスクA12とタスクB13間の競合を起こさない。この実施例においては、タスクA12がJava(R)VMの実行でありタスクB13がJapaプログラムダウンロードの制御であるから、同一の時刻に両タスクが必要とするメモリのサイズが共に大である可能性が低い。
そうすると、タスクB13であるJapaプログラムのダウンロードを実行中には区画“S”及び“T”のようにタスクB13が必要とする区画のサイズは相対的に大きく、他方タスクA12が使用する区画“P”や“Q”等のサイズは相対的に小さくて済む。したがって、空きの区間“R”が維持され、両タスク間の競合を避けられる可能性を高くすることができる。
逆に、タスクA12であるJava(R)VMの実行中には区画“P”や“Q”の必要とするサイズが相対的に大きくなるが、区画“S”や“T”の要求するサイズは相対的に小さくて済む。したがってこの場合にも、両タスク間の競合を避けられる可能性を高くすることができる。
次に図4を参照して、本発明の実施例1に係るメモリ管理方法について説明する。図4は、当該メモリ管理方法のフローチャートである。なお前提として、OS11によりタスクA12及びタスクB13が起動された状態にあるものとする。
処理を開始する(図4の“START”)と、OS11がメモリ20の内部に特定記憶領域21を設定し、特定記憶領域管理部15にその管理を移す(ステップS1)。この状態で、特定記憶領域管理部15はタスクA12から特定記憶領域21に属する区画の割当て要求、又はタスクB13から同じく区画の割当て若しくは開放の要求を受信する(ステップS2)。タスクA12又はタスクB13からどのような指定を伴う区画割当て要求がされるかについては、上述した通りである。特定記憶領域管理部15は、受信した要求が区画割当てに関するものか区画開放に関するものかを判断し(ステップS3)、割当て要求である場合(ステップS3の「割当て」)、特定記憶領域21の空き区画(図2の場合の区画“R”に相当。)のサイズが割当てに十分であるかどうかを判断する(ステップS4)。
その結果空き区画のサイズが十分でないと判断したとき(ステップS4の“NO”)は、特定記憶領域管理部15はタスクA12に対して、公知の方法によるガーベジコレクションの実行を指示する(ステップS5)。タスクAはガーベジコレクションを実行した後不要になったメモリ区画を特定記憶領域管理部15に通知し、特定記憶領域管理部15は当該区画をタスクAに対する割当て区画から削減する。特定記憶領域管理部15は、続いて特定記憶領域21の空き区画のサイズが十分であるかどうかを判断する(ステップS6)。
ガーベジコレクションを実行しても、なお割当て可能な空きが十分でないと判断したとき(ステップS6の“NO”)、特定記憶領域管理部15は区画の割当てを要求したタスクA12又はタスクB13に対して、「(割当て可能な)空き区画なし」を意味する通知を行う(ステップS7)。
一方、特定記憶領域管理部15は、ガーベジコレクションの前又は後において割当て可能な空きが十分であると判断したとき(ステップS4又はステップS6の“YES”)は、区画の割当てを要求したタスクA12又はタスクB13に対して、要求に基づき区画の割当てを行う(ステップS8)。
特定記憶領域管理部15は、この状態で再びステップS2の前に戻り、タスクA12又はタスクB13からの区画割当て要求を待つ。なお、特定記憶領域管理部15がタスクB13からメモリ区画の開放の要求を受信したとき(ステップS3の「開放」)は、当該不要になったメモリ区画を開放し(ステップS9)、ステップS2の前に戻る。その後の処理の終了は、任意のステップにおいてOS11からの制御により行われる。
以上の説明において、タスクAはJava(R)VMであるものとしたが、この他バイトコードで記述されたJava(R)プログラムの実行であっても差し支えない。また、タスクBはJava(R)プログラムのダウンロード制御であるものとしたが、この他Java(R)プログラムを起動するプログラムの実行であってもよい。
本発明の実施例1によれば、特定記憶領域21の空き区画をタスクA12の利用状況に応じて柔軟に確保することにより、タスクAとの競合の可能性が低いタスクBに対して効率的に空き区画を割り当てることができる。
本発明の実施例1に係る情報処理装置のブロック図。 本発明の実施例1に係るメモリ区画の割当て方法を表す図。 本発明の実施例1に係るメモリ区画ごとの割当て先タスク等を表す図。 本発明の実施例1に係るメモリ管理方法のフローチャート。
符号の説明
1 情報処理装置
10 演算制御装置
11 オペレーティングシステム
12 タスクA
13 タスクB
14 タスクN
15 特定記憶領域管理部
20 メモリ
21 特定記憶領域

Claims (6)

  1. 情報処理装置による処理において起動された第1のタスクが、前記情報処理装置が有するメモリのうち連続する番地から構成された一の領域の管理を前記情報処理装置において実行する管理タスクに対して、前記一の領域の先頭番地から昇順かつ連続的にサイズを指定して前記一の領域に属するメモリ区画の割当てを要求し、
    前記情報処理装置による処理において起動された第2のタスクが、前記管理タスクに対して、サイズを指定して前記一の領域に属するメモリ区画の割当てを要求し、
    前記管理タスクは、前記第1のタスク又は前記第2のタスクから要求されたサイズのメモリ区画がないと判断したとき、前記第1のタスクに対してガーベジコレクションの実行を指示し、
    前記ガーベジコレクションの実行の結果に基づいて前記第1のタスクに割当て済みのメモリ区画を削減し、
    前記第1のタスクから要求されたサイズのメモリ区画があると判断したとき、前記第1のタスクの要求にしたがってメモリ区画を割当て、
    前記第2のタスクの要求に対して、前記一の領域の末尾番地から降順に要求されたサイズのメモリ区画があると判断したとき、前記第2のタスクの要求にしたがって降順にメモリ区画を割当て、
    前記第1のタスクによるガーベジコレクション実行の後に、前記第1のタスク又は前記第2のタスクから要求されたサイズのメモリ区画がないと判断したとき、前記第1のタスク又は前記第2のタスクに対して割当てができない旨を通知し、
    前記第2のタスクから前記割り当てたのと逆の順序でメモリ区画の開放を通知されたとき、前記開放を通知されたメモリ区画を開放する
    ことを特徴とするメモリ管理方法。
  2. 前記第1のタスクはインタプリタ、Java(R)仮想マシン又はバイトコードで記述されたJava(R)プログラムの実行であることを特徴とする請求項1に記載のメモリ管理方法。
  3. 前記第2のタスクはJava(R)プログラムをダウンロード又は起動するプログラムの実行であることを特徴とする請求項1に記載のメモリ管理方法。
  4. メモリと、
    前記メモリのうち連続する番地から構成された一の領域を管理する管理タスク並びに前記管理タスクに対して前記一の領域の先頭番地から昇順かつ連続的にサイズを指定して前記一の領域に属するメモリ区画の割当てを要求する第1のタスク及び前記管理タスクに対してサイズを指定して前記一の領域に属するメモリ区画の割当てを要求する第2のタスクを実行する手段とを備え、
    前記管理タスクは、前記第1のタスク又は前記第2のタスクから要求されたサイズのメモリ区画がないと判断したとき、前記第1のタスクに対してガーベジコレクションの実行を指示し、
    前記ガーベジコレクションの実行の結果に基づいて前記第1のタスクに割当て済みのメモリ区画を削減し、
    前記第1のタスクから要求されたサイズのメモリ区画があると判断したとき、前記第1のタスクの要求にしたがってメモリ区画を割当て、
    前記第2のタスクの要求に対して、前記一の領域の末尾番地から降順に要求されたサイズのメモリ区画があると判断したとき、前記第2のタスクの要求にしたがって降順にメモリ区画を割当て、
    前記第1のタスクによるガーベジコレクション実行の後に、前記第1のタスク又は前記第2のタスクから要求されたサイズのメモリ区画がないと判断したとき、前記第1のタスク又は前記第2のタスクに対して割当てができない旨を通知し、
    前記第2のタスクから前記割り当てたのと逆の順序でメモリ区画の開放を通知されたとき、前記開放を通知されたメモリ区画を開放する
    ことを特徴とする情報処理装置。
  5. 前記第1のタスクはインタプリタ、Java(R)仮想マシン又はバイトコードで記述されたJava(R)プログラムの実行であることを特徴とする請求項4に記載の情報処理装置。
  6. 前記第2のタスクはJava(R)プログラムをダウンロード又は起動するプログラムの実行であることを特徴とする請求項4に記載の情報処理装置。
JP2004012591A 2004-01-21 2004-01-21 メモリ管理方法及び情報処理装置 Pending JP2005208785A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004012591A JP2005208785A (ja) 2004-01-21 2004-01-21 メモリ管理方法及び情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004012591A JP2005208785A (ja) 2004-01-21 2004-01-21 メモリ管理方法及び情報処理装置

Publications (1)

Publication Number Publication Date
JP2005208785A true JP2005208785A (ja) 2005-08-04

Family

ID=34898912

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004012591A Pending JP2005208785A (ja) 2004-01-21 2004-01-21 メモリ管理方法及び情報処理装置

Country Status (1)

Country Link
JP (1) JP2005208785A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1752904A2 (en) 2005-07-19 2007-02-14 Kabushiki Kaisha Toshiba Information processing apparatus and authentication processing method
WO2017002174A1 (ja) * 2015-06-29 2017-01-05 三菱電機株式会社 無線機、中継機、通信システムおよび識別子割当方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1752904A2 (en) 2005-07-19 2007-02-14 Kabushiki Kaisha Toshiba Information processing apparatus and authentication processing method
WO2017002174A1 (ja) * 2015-06-29 2017-01-05 三菱電機株式会社 無線機、中継機、通信システムおよび識別子割当方法
JPWO2017002174A1 (ja) * 2015-06-29 2018-01-18 三菱電機株式会社 無線機、中継機、通信システムおよび識別子割当方法

Similar Documents

Publication Publication Date Title
EP1837762B1 (en) Scheduling method, scheduling device, and multiprocessor system
JP5597196B2 (ja) プロセス内のスケジューラインスタンス
US20090165003A1 (en) System and method for allocating communications to processors and rescheduling processes in a multiprocessor system
JP2007026094A (ja) 実行装置およびアプリケーションプログラム
KR100791296B1 (ko) 멀티 코어 시스템에서 협력적 스케줄링을 제공하는 장치 및방법
JP7100154B2 (ja) プロセッサコアのスケジューリング方法、装置、端末及び記憶媒体
JP5445669B2 (ja) マルチコアシステムおよび起動方法
US8291426B2 (en) Memory allocators corresponding to processor resources
CN115167996A (zh) 调度方法及装置、芯片、电子设备及存储介质
JP2007188523A (ja) タスク実行方法およびマルチプロセッサシステム
JP4862056B2 (ja) 仮想計算機管理機構及び仮想計算機システムにおけるcpu時間割り当て制御方法
JP2013182502A (ja) リソース配分システム、リソース配分方法、及びリソース配分プログラム
JP2005208785A (ja) メモリ管理方法及び情報処理装置
JP3893136B2 (ja) 組込みコンピュータ制御プログラム、そのプログラムを記録した記録媒体、及び組込みシステム
JP2010272072A (ja) メモリ管理装置
JP2007249635A (ja) データ転送装置及びデータ転送方法
JP5641128B2 (ja) マルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法、およびマルチコアプロセッサシステムの制御プログラム
JP4017005B2 (ja) 演算装置
JP2022539956A (ja) メモリ管理方法及び関連製品
KR20150048028A (ko) 데이터 전송 관리 방법
JP2008276322A (ja) 情報処理装置、情報処理システムおよび情報処理方法
JP2003186686A (ja) リソース制御装置、方法及び記憶媒体
JP2000293476A (ja) Pciデバイスへのリソース割当方式及びその方法
WO2022220143A1 (ja) 演算装置、プログラムの動作方法
JP7047906B2 (ja) 入出力処理割り当て制御装置、入出力処理割り当て制御システム、入出力処理割り当て制御方法、及び、入出力処理割り当て制御プログラム

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Effective date: 20050606

Free format text: JAPANESE INTERMEDIATE CODE: A7424