JPH08153037A - シーケンシャル領域におけるデータ管理方式 - Google Patents
シーケンシャル領域におけるデータ管理方式Info
- Publication number
- JPH08153037A JPH08153037A JP31767894A JP31767894A JPH08153037A JP H08153037 A JPH08153037 A JP H08153037A JP 31767894 A JP31767894 A JP 31767894A JP 31767894 A JP31767894 A JP 31767894A JP H08153037 A JPH08153037 A JP H08153037A
- Authority
- JP
- Japan
- Prior art keywords
- area
- user
- data
- sequential
- block
- 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
Links
Abstract
(57)【要約】
【目的】 シーケンシャル領域におけるデータ領域の割
当て/解放の高速化および効率化を図る。 【構成】 シーケンシャル領域10内に、各ユーザプロ
グラムに使用されるデータ領域の集合であるユーザ利用
領域11と、ユーザ利用領域11がどのようにユーザプ
ログラムに使用されているかを示す情報(使用状態)を
保持するユーザ利用領域管理テーブル12とが設けられ
る。データ領域管理手段2は、ユーザ利用領域11を複
数の種類のサイズの複数のブロックに分割し、ユーザ利
用領域11におけるブロック単位の使用状態をユーザ利
用領域管理テーブル12によって管理する。
当て/解放の高速化および効率化を図る。 【構成】 シーケンシャル領域10内に、各ユーザプロ
グラムに使用されるデータ領域の集合であるユーザ利用
領域11と、ユーザ利用領域11がどのようにユーザプ
ログラムに使用されているかを示す情報(使用状態)を
保持するユーザ利用領域管理テーブル12とが設けられ
る。データ領域管理手段2は、ユーザ利用領域11を複
数の種類のサイズの複数のブロックに分割し、ユーザ利
用領域11におけるブロック単位の使用状態をユーザ利
用領域管理テーブル12によって管理する。
Description
【0001】
【産業上の利用分野】本発明は、メモリ内に実装された
ユーザプログラム(メモリまたはファイル内のシーケン
シャルなデータ領域(以下、シーケンシャル領域とい
う)内の任意長(可変長)のデータ領域を使用するユー
ザプログラム)がCPU(Central Proce
ssing Unit。中央処理装置)によって実行さ
れるコンピュータシステムにおいて、当該ユーザプログ
ラムのために任意長のデータ領域を当該シーケンシャル
領域に動的に割り当てる場合のデータ管理を行うシーケ
ンシャル領域におけるデータ管理方式に関する。
ユーザプログラム(メモリまたはファイル内のシーケン
シャルなデータ領域(以下、シーケンシャル領域とい
う)内の任意長(可変長)のデータ領域を使用するユー
ザプログラム)がCPU(Central Proce
ssing Unit。中央処理装置)によって実行さ
れるコンピュータシステムにおいて、当該ユーザプログ
ラムのために任意長のデータ領域を当該シーケンシャル
領域に動的に割り当てる場合のデータ管理を行うシーケ
ンシャル領域におけるデータ管理方式に関する。
【0002】
【従来の技術】従来、この種のシーケンシャル領域にお
けるデータ管理方式では、ユーザプログラムからの領域
割当て要求の対象のデータ領域をシーケンシャル領域内
の未使用のデータ領域(領域割当て要求の対象の領域サ
イズに適合する可変長のデータ領域)に確保し、サイズ
が異なった複数のデータ領域をポインタ等によりチェー
ン構造(リンク構造)にして管理して、当該可変長のデ
ータ領域群の管理を実現していた。なお、このような方
式は、汎用コンピュータに係るコンピュータシステムに
おけるOS(Operating System)、す
なわちそれぞれが登録商標であるUNIX,MS−DO
SまたはOS−9等の汎用OSによって実現される方式
である。
けるデータ管理方式では、ユーザプログラムからの領域
割当て要求の対象のデータ領域をシーケンシャル領域内
の未使用のデータ領域(領域割当て要求の対象の領域サ
イズに適合する可変長のデータ領域)に確保し、サイズ
が異なった複数のデータ領域をポインタ等によりチェー
ン構造(リンク構造)にして管理して、当該可変長のデ
ータ領域群の管理を実現していた。なお、このような方
式は、汎用コンピュータに係るコンピュータシステムに
おけるOS(Operating System)、す
なわちそれぞれが登録商標であるUNIX,MS−DO
SまたはOS−9等の汎用OSによって実現される方式
である。
【0003】このような従来のシーケンシャル領域にお
けるデータ管理方式の管理概念を以下に示す。
けるデータ管理方式の管理概念を以下に示す。
【0004】図5(a)および(b)は、従来のシーケ
ンシャル領域におけるデータ管理方式によるデータ領域
の管理概念を説明するための図であり、データ領域の管
理におけるデータ領域のチェーン構造を示す図である。
ンシャル領域におけるデータ管理方式によるデータ領域
の管理概念を説明するための図であり、データ領域の管
理におけるデータ領域のチェーン構造を示す図である。
【0005】図5(a)は、ユーザプログラムがデータ
領域に関する領域割当て要求を行う前の状態、すなわ
ちシーケンシャル領域内のデータ領域〜が確保され
ている状態を表している。この状態では、使用領域であ
るデータ領域〜の各々は、各領域制御ブロックCB
〜CB内のポインタによってリンクされている。
領域に関する領域割当て要求を行う前の状態、すなわ
ちシーケンシャル領域内のデータ領域〜が確保され
ている状態を表している。この状態では、使用領域であ
るデータ領域〜の各々は、各領域制御ブロックCB
〜CB内のポインタによってリンクされている。
【0006】図5(b)は、図5(a)に示す状態にお
いて、ユーザプログラムからの領域割当て要求を受け付
けた後の状態を示す図である。
いて、ユーザプログラムからの領域割当て要求を受け付
けた後の状態を示す図である。
【0007】シーケンシャル領域の管理を行うデータ領
域管理部(メモリ内に実装されておりCPUによって実
行される処理手順)は、ユーザプログラムから領域割当
て要求(所望のデータ領域のサイズの指定を含む要求)
を受けると、すでに使用中のデータ領域のチェーン構造
を領域制御ブロックに基づいて最後まで追跡し、空き領
域(未使用のデータ領域)を探し、当該空き領域を当該
ユーザプログラムのために確保する。また、その後、確
保したデータ領域を使用中のデータ領域のチェーン構造
に追加する。
域管理部(メモリ内に実装されておりCPUによって実
行される処理手順)は、ユーザプログラムから領域割当
て要求(所望のデータ領域のサイズの指定を含む要求)
を受けると、すでに使用中のデータ領域のチェーン構造
を領域制御ブロックに基づいて最後まで追跡し、空き領
域(未使用のデータ領域)を探し、当該空き領域を当該
ユーザプログラムのために確保する。また、その後、確
保したデータ領域を使用中のデータ領域のチェーン構造
に追加する。
【0008】すなわち、図5(b)の場合には、先頭領
域(データ領域)に対応する領域制御ブロック(領域
制御ブロックCB)からシーケンシャル領域における
リンク状態を追跡する。つまり、図5(b)に示すよう
に、領域制御ブロックCB〜CBを順次に追跡し、
それ以降のデータ領域は未使用であることを認識し、デ
ータ領域の後ろに当該領域割当て要求で要求されたサ
イズのデータ領域を確保し、領域制御ブロックCB
にデータ領域へのポインタを格納することで、データ
領域を使用中のデータ領域のリンク構造に追加する処
理を行う。
域(データ領域)に対応する領域制御ブロック(領域
制御ブロックCB)からシーケンシャル領域における
リンク状態を追跡する。つまり、図5(b)に示すよう
に、領域制御ブロックCB〜CBを順次に追跡し、
それ以降のデータ領域は未使用であることを認識し、デ
ータ領域の後ろに当該領域割当て要求で要求されたサ
イズのデータ領域を確保し、領域制御ブロックCB
にデータ領域へのポインタを格納することで、データ
領域を使用中のデータ領域のリンク構造に追加する処
理を行う。
【0009】また、ユーザプログラムが割当て済みのデ
ータ領域の解放を求める領域解放要求を行った場合に
は、データ領域管理部は、該当するデータ領域をチェー
ン構造から排除してそのデータ領域をフリー状態とする
処理を行う。
ータ領域の解放を求める領域解放要求を行った場合に
は、データ領域管理部は、該当するデータ領域をチェー
ン構造から排除してそのデータ領域をフリー状態とする
処理を行う。
【0010】
【発明が解決しようとする課題】上述した従来のシーケ
ンシャル領域におけるデータ管理方式では、シーケンシ
ャル領域内の使用中のデータ領域を領域制御ブロックの
チェーン構造にて管理しているので、データ領域の割当
ておよび解放の際にそのチェーン構造を追跡する必要が
あった。ここで、データ領域の割当て/解放は一般的に
頻繁に行われるため、割当て/解放が繰り返されるとデ
ータ領域を管理するためのチェーン構造が複雑になり、
処理の複雑化が生じ、追跡に要する時間が増大するとい
う問題点があった。
ンシャル領域におけるデータ管理方式では、シーケンシ
ャル領域内の使用中のデータ領域を領域制御ブロックの
チェーン構造にて管理しているので、データ領域の割当
ておよび解放の際にそのチェーン構造を追跡する必要が
あった。ここで、データ領域の割当て/解放は一般的に
頻繁に行われるため、割当て/解放が繰り返されるとデ
ータ領域を管理するためのチェーン構造が複雑になり、
処理の複雑化が生じ、追跡に要する時間が増大するとい
う問題点があった。
【0011】また、いろいろなサイズのデータ領域の割
当て/解放が繰り返されると、データ領域のチェーン状
態が離散的になり、空き領域(未使用のデータ領域)が
存在するにもかかわらず連続したデータ領域の割当てが
不可能な状態が発生するという問題点があった。
当て/解放が繰り返されると、データ領域のチェーン状
態が離散的になり、空き領域(未使用のデータ領域)が
存在するにもかかわらず連続したデータ領域の割当てが
不可能な状態が発生するという問題点があった。
【0012】ここで、チェーン構造を構成するデータ領
域が離散的となることによる問題(虫食い状態による問
題)に対処するための従来技術として、離散状態にある
未使用のデータ領域をまとめて連続した大きなデータ領
域を確保するためのガーベージコレクションを行う技術
が存在する。しかし、この技術における処理(ガーベー
ジコレクション処理)では、シーケンシャル領域におけ
る大量のデータの移動が必要となるため、大きな処理時
間とCPUの処理能力とを必要とする。また、ガーベー
ジコレクションを行っている最中には、ユーザプログラ
ムからのデータ領域へのアクセスが不可能となることか
ら、ガーベージコレクション処理中にはユーザプログラ
ムがほぼ停止状態となり、総合的にユーザプログラムの
処理性能を著しく低下させるという問題点があった。
域が離散的となることによる問題(虫食い状態による問
題)に対処するための従来技術として、離散状態にある
未使用のデータ領域をまとめて連続した大きなデータ領
域を確保するためのガーベージコレクションを行う技術
が存在する。しかし、この技術における処理(ガーベー
ジコレクション処理)では、シーケンシャル領域におけ
る大量のデータの移動が必要となるため、大きな処理時
間とCPUの処理能力とを必要とする。また、ガーベー
ジコレクションを行っている最中には、ユーザプログラ
ムからのデータ領域へのアクセスが不可能となることか
ら、ガーベージコレクション処理中にはユーザプログラ
ムがほぼ停止状態となり、総合的にユーザプログラムの
処理性能を著しく低下させるという問題点があった。
【0013】本発明の目的は、上述の点に鑑み、シーケ
ンシャル領域におけるデータ領域の割当て/解放の高速
化および効率化を図るシーケンシャル領域におけるデー
タ管理方式を提供することにある。なお、この発明は、
装置制御用コンピュータに係るコンピュータシステム等
の「動作するユーザプログラムが固定的なコンピュータ
システム」において、特に有効となる。
ンシャル領域におけるデータ領域の割当て/解放の高速
化および効率化を図るシーケンシャル領域におけるデー
タ管理方式を提供することにある。なお、この発明は、
装置制御用コンピュータに係るコンピュータシステム等
の「動作するユーザプログラムが固定的なコンピュータ
システム」において、特に有効となる。
【0014】なお、データ領域の管理の効率化に関する
従来技術としては、特開昭63−141147号公報
(可変長ブロック領域のメモリ管理制御方式)が公表さ
れている。しかし、この従来技術は、「ブロック管理情
報域が利用者の使用するブロック領域とは分離され別領
域で管理されている」ことや、「ブロックの使用状態管
理テーブルと可変長ブロックを管理するための管理テー
ブルを持ち、ビットで管理すること」により、可変長ブ
ロック管理処理が非常に簡単になり、処理の高性能化が
図れる」という効果を達成するものであり(当該公報中
の第329頁左下欄〔発明の効果〕参照)、取り扱われ
るデータ領域のブロックのサイズはあくまでも固定的で
ある。したがって、当該従来技術は、複数の種類のサイ
ズの複数のブロックによってシーケンシャル領域のデー
タ管理を行う本願発明とは、その構成等を異にしてい
る。
従来技術としては、特開昭63−141147号公報
(可変長ブロック領域のメモリ管理制御方式)が公表さ
れている。しかし、この従来技術は、「ブロック管理情
報域が利用者の使用するブロック領域とは分離され別領
域で管理されている」ことや、「ブロックの使用状態管
理テーブルと可変長ブロックを管理するための管理テー
ブルを持ち、ビットで管理すること」により、可変長ブ
ロック管理処理が非常に簡単になり、処理の高性能化が
図れる」という効果を達成するものであり(当該公報中
の第329頁左下欄〔発明の効果〕参照)、取り扱われ
るデータ領域のブロックのサイズはあくまでも固定的で
ある。したがって、当該従来技術は、複数の種類のサイ
ズの複数のブロックによってシーケンシャル領域のデー
タ管理を行う本願発明とは、その構成等を異にしてい
る。
【0015】
【課題を解決するための手段】本発明のシーケンシャル
領域におけるデータ管理方式は、シーケンシャル領域内
の任意長のデータ領域を使用するユーザプログラムが実
行されるコンピュータシステムにおいて、各ユーザプロ
グラムに使用されるデータ領域の集合であるシーケンシ
ャル領域内のユーザ利用領域と、このユーザ利用領域が
どのようにユーザプログラムに使用されているかを示す
情報を保持するシーケンシャル領域内のユーザ利用領域
管理テーブルと、前記ユーザ利用領域を複数の種類のサ
イズの複数のブロックに分割し、前記ユーザ利用領域に
おけるブロック単位の使用状態を前記ユーザ利用領域管
理テーブルによって管理するデータ領域管理手段とを有
する。
領域におけるデータ管理方式は、シーケンシャル領域内
の任意長のデータ領域を使用するユーザプログラムが実
行されるコンピュータシステムにおいて、各ユーザプロ
グラムに使用されるデータ領域の集合であるシーケンシ
ャル領域内のユーザ利用領域と、このユーザ利用領域が
どのようにユーザプログラムに使用されているかを示す
情報を保持するシーケンシャル領域内のユーザ利用領域
管理テーブルと、前記ユーザ利用領域を複数の種類のサ
イズの複数のブロックに分割し、前記ユーザ利用領域に
おけるブロック単位の使用状態を前記ユーザ利用領域管
理テーブルによって管理するデータ領域管理手段とを有
する。
【0016】
【作用】本発明のシーケンシャル領域におけるデータ管
理方式では、各ユーザプログラムに使用されるデータ領
域の集合であるユーザ利用領域がシーケンシャル領域内
に設けられ、ユーザ利用領域がどのようにユーザプログ
ラムに使用されているかを示す情報(使用状態)を保持
するユーザ利用領域管理テーブルがシーケンシャル領域
内に設けられ、データ領域管理手段がユーザ利用領域を
複数の種類のサイズの複数のブロックに分割しユーザ利
用領域におけるブロック単位の使用状態をユーザ利用領
域管理テーブルによって管理する。
理方式では、各ユーザプログラムに使用されるデータ領
域の集合であるユーザ利用領域がシーケンシャル領域内
に設けられ、ユーザ利用領域がどのようにユーザプログ
ラムに使用されているかを示す情報(使用状態)を保持
するユーザ利用領域管理テーブルがシーケンシャル領域
内に設けられ、データ領域管理手段がユーザ利用領域を
複数の種類のサイズの複数のブロックに分割しユーザ利
用領域におけるブロック単位の使用状態をユーザ利用領
域管理テーブルによって管理する。
【0017】
【実施例】次に、本発明について図面を参照して詳細に
説明する。
説明する。
【0018】図1は、本発明のシーケンシャル領域にお
けるデータ管理方式の一実施例の構成を示すブロック図
である。
けるデータ管理方式の一実施例の構成を示すブロック図
である。
【0019】本実施例のシーケンシャル領域におけるデ
ータ管理方式は、CPU1と、ユーザプログラムおよび
データ領域管理手段2(シーケンシャル領域10を管理
するための処理手順を実現するプログラム)を実装する
プログラム実装用メモリであるメモリ5と、シーケンシ
ャル領域10とを含んで構成されている。なお、メモリ
5内のプログラム(データ領域管理手段2を実現するプ
ログラム等)がCPU1によって実行されることによっ
て当該プログラムの処理手順が実現されるが、このブロ
ック図においては、便宜上、CPU1内にデータ領域管
理手段2を示している。また、本実施例のシーケンシャ
ル領域におけるデータ管理方式が適用されるコンピュー
タシステムには、周辺装置も存在し得る(ただし、以下
の説明においては周辺装置については言及しない)。
ータ管理方式は、CPU1と、ユーザプログラムおよび
データ領域管理手段2(シーケンシャル領域10を管理
するための処理手順を実現するプログラム)を実装する
プログラム実装用メモリであるメモリ5と、シーケンシ
ャル領域10とを含んで構成されている。なお、メモリ
5内のプログラム(データ領域管理手段2を実現するプ
ログラム等)がCPU1によって実行されることによっ
て当該プログラムの処理手順が実現されるが、このブロ
ック図においては、便宜上、CPU1内にデータ領域管
理手段2を示している。また、本実施例のシーケンシャ
ル領域におけるデータ管理方式が適用されるコンピュー
タシステムには、周辺装置も存在し得る(ただし、以下
の説明においては周辺装置については言及しない)。
【0020】CPU1は、領域割当て部3および領域解
放部4を備えるデータ領域管理手段2を含んで構成され
ている。
放部4を備えるデータ領域管理手段2を含んで構成され
ている。
【0021】図2は、シーケンシャル領域10の構成を
示す図であり、ユーザ利用領域11およびユーザ利用領
域管理テーブル12の構成と両者の関係とを示す図であ
る。
示す図であり、ユーザ利用領域11およびユーザ利用領
域管理テーブル12の構成と両者の関係とを示す図であ
る。
【0022】シーケンシャル領域10は、ユーザプログ
ラムによって利用される(ユーザプログラムがデータの
書込み/読出しを実際に行う)データ領域群であるユー
ザ利用領域11と、ユーザ利用領域11をブロック化し
てその使用状態を管理するためのユーザ利用領域管理テ
ーブル12との2つの領域に分けられる。データ領域管
理手段2は、ユーザ利用領域管理テーブル12を使用し
て、ユーザプログラムのために割り当てられるデータ領
域(ブロック)の管理を行う。
ラムによって利用される(ユーザプログラムがデータの
書込み/読出しを実際に行う)データ領域群であるユー
ザ利用領域11と、ユーザ利用領域11をブロック化し
てその使用状態を管理するためのユーザ利用領域管理テ
ーブル12との2つの領域に分けられる。データ領域管
理手段2は、ユーザ利用領域管理テーブル12を使用し
て、ユーザプログラムのために割り当てられるデータ領
域(ブロック)の管理を行う。
【0023】ユーザ利用領域11は複数の種類のサイズ
(サイズA,サイズB,…,サイズN,…)の複数のブ
ロックに分割され、それぞれのサイズに対応する各管理
テーブル(サイズA用管理テーブル,サイズB用管理テ
ーブル,…,サイズN用管理テーブル,…)がユーザ利
用領域管理テーブル12内に作成される。ユーザ利用領
域管理テーブル12内の各エントリは、ユーザ利用領域
11の各ブロックの先頭アドレスを示す「先頭位置」と
そのブロックが使用中(“use”)であるか未使用
(“nouse”)であるかを識別するための情報であ
る「使用状態」とを保持している。
(サイズA,サイズB,…,サイズN,…)の複数のブ
ロックに分割され、それぞれのサイズに対応する各管理
テーブル(サイズA用管理テーブル,サイズB用管理テ
ーブル,…,サイズN用管理テーブル,…)がユーザ利
用領域管理テーブル12内に作成される。ユーザ利用領
域管理テーブル12内の各エントリは、ユーザ利用領域
11の各ブロックの先頭アドレスを示す「先頭位置」と
そのブロックが使用中(“use”)であるか未使用
(“nouse”)であるかを識別するための情報であ
る「使用状態」とを保持している。
【0024】ユーザ利用領域11の分割方法(サイズの
種類の数および各サイズに対応するブロック数等の決定
方法)は、各ユーザプログラムが必要とするデータ領域
の大きさに基づいて、あらかじめ設定される。したがっ
て、本実施例のシーケンシャル領域におけるデータ管理
方式が適用されるコンピュータシステムは、動作するユ
ーザプログラムが固定的であることが望ましい。
種類の数および各サイズに対応するブロック数等の決定
方法)は、各ユーザプログラムが必要とするデータ領域
の大きさに基づいて、あらかじめ設定される。したがっ
て、本実施例のシーケンシャル領域におけるデータ管理
方式が適用されるコンピュータシステムは、動作するユ
ーザプログラムが固定的であることが望ましい。
【0025】図3は、領域割当て時のデータ領域管理手
段2の処理(領域割当て部3の処理)を示す流れ図であ
る。この処理は、ブロックサイズ決定ステップ301
と、ユーザ利用領域管理テーブル検索ステップ302
と、目的サイズ空き領域存在判定ステップ303と、目
的サイズ超過空き領域存在判定ステップ304と、「領
域なし」応答ステップ305と、ブロック割当てステッ
プ306と、アドレス応答ステップ307とからなる。
段2の処理(領域割当て部3の処理)を示す流れ図であ
る。この処理は、ブロックサイズ決定ステップ301
と、ユーザ利用領域管理テーブル検索ステップ302
と、目的サイズ空き領域存在判定ステップ303と、目
的サイズ超過空き領域存在判定ステップ304と、「領
域なし」応答ステップ305と、ブロック割当てステッ
プ306と、アドレス応答ステップ307とからなる。
【0026】図4は、領域解放時のデータ領域管理手段
2の処理(領域解放部4の処理)を示す流れ図である。
この処理は、指定アドレス確認ステップ401と、アド
レス正当性判定ステップ402と、エラー応答ステップ
403と、ブロック使用状態確認ステップ404と、使
用状態判定ステップ405と、エラー応答ステップ40
6と、使用状態変更ステップ407と、正常応答ステッ
プ408とからなる。
2の処理(領域解放部4の処理)を示す流れ図である。
この処理は、指定アドレス確認ステップ401と、アド
レス正当性判定ステップ402と、エラー応答ステップ
403と、ブロック使用状態確認ステップ404と、使
用状態判定ステップ405と、エラー応答ステップ40
6と、使用状態変更ステップ407と、正常応答ステッ
プ408とからなる。
【0027】次に、このように構成された本実施例のシ
ーケンシャル領域におけるデータ管理方式の動作につい
て説明する。
ーケンシャル領域におけるデータ管理方式の動作につい
て説明する。
【0028】第1に、図3を参照して、領域割当て時の
動作(領域割当て部3の処理手順)を説明する。
動作(領域割当て部3の処理手順)を説明する。
【0029】メモリ5内に実装されたユーザプログラム
(ユーザ利用領域11内のデータ領域を使用するユーザ
プログラム)がCPU1によって実行され、シーケンシ
ャル領域10内のユーザ利用領域11内のデータ領域の
割当てを求める要求(領域割当て要求)が当該ユーザプ
ログラムによって行われると、データ領域管理手段2内
の領域割当て部3は以下のような処理を行ってユーザ利
用領域11内のデータ領域を当該ユーザプログラムのた
めに確保する(図3参照)。
(ユーザ利用領域11内のデータ領域を使用するユーザ
プログラム)がCPU1によって実行され、シーケンシ
ャル領域10内のユーザ利用領域11内のデータ領域の
割当てを求める要求(領域割当て要求)が当該ユーザプ
ログラムによって行われると、データ領域管理手段2内
の領域割当て部3は以下のような処理を行ってユーザ利
用領域11内のデータ領域を当該ユーザプログラムのた
めに確保する(図3参照)。
【0030】まず、ユーザプログラムからの領域割当て
要求に係る要求サイズ(当該ユーザプログラムが必要と
するデータ領域のサイズ)を基に、割り当てるべきユー
ザ利用領域11内のブロックのサイズ(目的サイズ)を
決定する(ステップ301)。この決定方法としては、
要求サイズ以上のブロックのサイズの中で最小のサイズ
を目的サイズとして決定する方法が採られる。
要求に係る要求サイズ(当該ユーザプログラムが必要と
するデータ領域のサイズ)を基に、割り当てるべきユー
ザ利用領域11内のブロックのサイズ(目的サイズ)を
決定する(ステップ301)。この決定方法としては、
要求サイズ以上のブロックのサイズの中で最小のサイズ
を目的サイズとして決定する方法が採られる。
【0031】その後、ユーザ利用領域管理テーブル12
を検索し(ステップ302)、ステップ301で決定し
た目的サイズを有するブロックの中で空き領域のもの
(未使用ブロック)が存在するか否かを判定する(ステ
ップ303)。
を検索し(ステップ302)、ステップ301で決定し
た目的サイズを有するブロックの中で空き領域のもの
(未使用ブロック)が存在するか否かを判定する(ステ
ップ303)。
【0032】ステップ303で「未使用ブロックが存在
しない(目的サイズのブロックが全て使用中である)」
と判定した場合には、1ランク大きな種類のサイズのブ
ロックの中から未使用ブロックを検索する。この検索を
1ランク毎に順に大きくしていき、目的サイズよりも大
きなブロックの全てを対象として繰り返すことにより、
ユーザ利用領域11に目的サイズより大きなサイズのブ
ロックが存在するか否かを判定する(ステップ30
4)。
しない(目的サイズのブロックが全て使用中である)」
と判定した場合には、1ランク大きな種類のサイズのブ
ロックの中から未使用ブロックを検索する。この検索を
1ランク毎に順に大きくしていき、目的サイズよりも大
きなブロックの全てを対象として繰り返すことにより、
ユーザ利用領域11に目的サイズより大きなサイズのブ
ロックが存在するか否かを判定する(ステップ30
4)。
【0033】ステップ304で「目的サイズより大きな
サイズのブロックの全てが使用中である」と判定した場
合には、当該ユーザプログラムに対して「領域なし」
(メモリ不足で目的サイズのデータ領域の割当てが不可
能である旨)を応答し(ステップ305)、処理を終了
する。
サイズのブロックの全てが使用中である」と判定した場
合には、当該ユーザプログラムに対して「領域なし」
(メモリ不足で目的サイズのデータ領域の割当てが不可
能である旨)を応答し(ステップ305)、処理を終了
する。
【0034】ステップ303またはステップ304で
「目的サイズ以上の未使用ブロックが存在する」と判定
した場合には、ユーザ利用領域11内の当該未使用ブロ
ックを当該ユーザプログラムのために割り当て(確保
し)、当該未使用ブロックに対応するユーザ利用領域管
理テーブル12内のエントリ中の「使用状態」を使用中
(“use”)に設定し(ステップ306)、当該未使
用ブロックのアドレス(先頭アドレス)をユーザプログ
ラムに対して応答し(ステップ307)、処理を終了す
る。
「目的サイズ以上の未使用ブロックが存在する」と判定
した場合には、ユーザ利用領域11内の当該未使用ブロ
ックを当該ユーザプログラムのために割り当て(確保
し)、当該未使用ブロックに対応するユーザ利用領域管
理テーブル12内のエントリ中の「使用状態」を使用中
(“use”)に設定し(ステップ306)、当該未使
用ブロックのアドレス(先頭アドレス)をユーザプログ
ラムに対して応答し(ステップ307)、処理を終了す
る。
【0035】このように、領域割当て時にデータ領域の
ブロックのサイズをデータ領域管理手段2が自動的に決
定するので、ユーザプログラムはシーケンシャル領域1
0がブロック化されていることを意識する必要がない。
ここで、仮にユーザプログラムの要求サイズと一致する
サイズのブロックが全て使用中であっても、要求サイズ
より大きなサイズのブロックを当該ユーザプログラムに
自動的に割り当てることが可能となるので、シーケンシ
ャル領域10の使用効率は低下するが、当該ユーザプロ
グラムが動作しないという事態を回避することはでき
る。
ブロックのサイズをデータ領域管理手段2が自動的に決
定するので、ユーザプログラムはシーケンシャル領域1
0がブロック化されていることを意識する必要がない。
ここで、仮にユーザプログラムの要求サイズと一致する
サイズのブロックが全て使用中であっても、要求サイズ
より大きなサイズのブロックを当該ユーザプログラムに
自動的に割り当てることが可能となるので、シーケンシ
ャル領域10の使用効率は低下するが、当該ユーザプロ
グラムが動作しないという事態を回避することはでき
る。
【0036】第2に、図4を参照して、領域解放時の動
作(領域解放部4の処理手順)を説明する。
作(領域解放部4の処理手順)を説明する。
【0037】データ領域の解放を求める要求(領域解放
要求)がユーザプログラムによって行われると、データ
領域管理手段2内の領域解放部4は以下のような処理を
行って領域解放要求の対象のユーザ利用領域11内のブ
ロック(データ領域)を解放する(図4参照)。
要求)がユーザプログラムによって行われると、データ
領域管理手段2内の領域解放部4は以下のような処理を
行って領域解放要求の対象のユーザ利用領域11内のブ
ロック(データ領域)を解放する(図4参照)。
【0038】まず、ユーザプログラムからの領域解放要
求において指定されたアドレス(解放対象のブロックを
指定するための情報)を確認し(ステップ401)、指
定されたアドレスの正当性(当該アドレスがユーザ利用
領域11内のアドレスの範囲に該当するか否か等)をチ
ェックし、当該アドレスが不正でないかどうかを判定す
る(ステップ402)。
求において指定されたアドレス(解放対象のブロックを
指定するための情報)を確認し(ステップ401)、指
定されたアドレスの正当性(当該アドレスがユーザ利用
領域11内のアドレスの範囲に該当するか否か等)をチ
ェックし、当該アドレスが不正でないかどうかを判定す
る(ステップ402)。
【0039】ステップ402で「当該アドレスが不正で
ある」と判定した場合には、当該ユーザプログラムにエ
ラー応答(指定アドレスが不正である旨のエラー応答)
を返し(ステップ403)、処理を終了する。
ある」と判定した場合には、当該ユーザプログラムにエ
ラー応答(指定アドレスが不正である旨のエラー応答)
を返し(ステップ403)、処理を終了する。
【0040】ステップ402で「当該アドレスが正当で
ある」と判定した場合には、そのアドレスによって特定
されるブロックに対応するユーザ利用領域管理テーブル
12内のエントリ(そのアドレスを先頭アドレスとして
「先頭位置」の項目に有するエントリ)における「使用
状態」を確認し(ステップ404)、「使用状態」が
“use”(使用中)であるか“nouse”(未使
用)であるかを判定する(ステップ405)。
ある」と判定した場合には、そのアドレスによって特定
されるブロックに対応するユーザ利用領域管理テーブル
12内のエントリ(そのアドレスを先頭アドレスとして
「先頭位置」の項目に有するエントリ)における「使用
状態」を確認し(ステップ404)、「使用状態」が
“use”(使用中)であるか“nouse”(未使
用)であるかを判定する(ステップ405)。
【0041】ステップ405で「「使用状態」が「未使
用」である」と判定した場合には、当該ユーザプログラ
ムにエラー応答(指定ブロックが未使用である旨のエラ
ー応答)を返し(ステップ406)、処理を終了する。
用」である」と判定した場合には、当該ユーザプログラ
ムにエラー応答(指定ブロックが未使用である旨のエラ
ー応答)を返し(ステップ406)、処理を終了する。
【0042】ステップ405で「「使用状態」が「使用
中」である」と判定した場合には、ユーザ利用領域管理
テーブル12内の当該エントリ中の「使用状態」を「未
使用」(“nouse”)に変更し(ステップ40
7)、当該ユーザプログラムに正常応答を返し(ステッ
プ408)、処理を終了する。
中」である」と判定した場合には、ユーザ利用領域管理
テーブル12内の当該エントリ中の「使用状態」を「未
使用」(“nouse”)に変更し(ステップ40
7)、当該ユーザプログラムに正常応答を返し(ステッ
プ408)、処理を終了する。
【0043】
【発明の効果】汎用的に使用されるOS(汎用コンピュ
ータにおけるOS)の場合には、OS上で動作するユー
ザプログラム(OS以外のプログラム)が不特定なた
め、ユーザプログラムがOSに要求するデータ領域のサ
イズも特定することができず、あらゆるサイズに対応で
きるようにする必要がある。したがって、チェーン構造
にてシーケンシャル領域内のデータ領域を管理する方式
(図5参照)は、ある意味では有効な管理方式といえ
る。
ータにおけるOS)の場合には、OS上で動作するユー
ザプログラム(OS以外のプログラム)が不特定なた
め、ユーザプログラムがOSに要求するデータ領域のサ
イズも特定することができず、あらゆるサイズに対応で
きるようにする必要がある。したがって、チェーン構造
にてシーケンシャル領域内のデータ領域を管理する方式
(図5参照)は、ある意味では有効な管理方式といえ
る。
【0044】しかしながら、前述のように、このような
チェーン構造にてシーケンシャル領域内のデータ領域を
管理する方式では、データ領域の割当て/解放が繰り返
されると、データ領域のチェーン構造が離散的になるた
め、ガーベージコレクションの必要が生じ、ユーザプロ
グラムの処理性能の低下を招く(ガーベージコレクショ
ン処理によるユーザプログラムの停止状態が生じる)。
チェーン構造にてシーケンシャル領域内のデータ領域を
管理する方式では、データ領域の割当て/解放が繰り返
されると、データ領域のチェーン構造が離散的になるた
め、ガーベージコレクションの必要が生じ、ユーザプロ
グラムの処理性能の低下を招く(ガーベージコレクショ
ン処理によるユーザプログラムの停止状態が生じる)。
【0045】これに対して本発明のシーケンシャル領域
におけるデータ管理方式では、データ領域を可変長のブ
ロック単位で管理することにより、データ領域の離散状
態(虫食い状態)が発生しなくなり、ガーベージコレク
ションの必要がなくなってユーザプログラムの処理性能
が向上するという効果がある。
におけるデータ管理方式では、データ領域を可変長のブ
ロック単位で管理することにより、データ領域の離散状
態(虫食い状態)が発生しなくなり、ガーベージコレク
ションの必要がなくなってユーザプログラムの処理性能
が向上するという効果がある。
【0046】また、チェーン構造にてシーケンシャル領
域内のデータ領域を管理する方式では、データ領域の割
当て/解放を行う場合にチェーン構造におけるポインタ
の追跡が必要となり、データ領域のチェーン構造が複雑
になればなるほど、処理の複雑化を招き、データ領域の
割当て/解放時の処理時間が長くなる。さらに、チェー
ン構造にてシーケンシャル領域内のデータ領域を管理す
る方式では、万一ユーザプログラムが誤って領域制御ブ
ロックを変更してしまうと、チェーン構造が破壊されて
シーケンシャル領域内の全てのデータ領域が使用不可能
となってしまう。
域内のデータ領域を管理する方式では、データ領域の割
当て/解放を行う場合にチェーン構造におけるポインタ
の追跡が必要となり、データ領域のチェーン構造が複雑
になればなるほど、処理の複雑化を招き、データ領域の
割当て/解放時の処理時間が長くなる。さらに、チェー
ン構造にてシーケンシャル領域内のデータ領域を管理す
る方式では、万一ユーザプログラムが誤って領域制御ブ
ロックを変更してしまうと、チェーン構造が破壊されて
シーケンシャル領域内の全てのデータ領域が使用不可能
となってしまう。
【0047】これに対して、本発明のシーケンシャル領
域におけるデータ管理方式では、データ領域の管理のた
めにチェーン構造を利用していないので、ユーザ利用領
域におけるブロックの設定(ブロック分割の態様)が固
定的になり、ユーザ利用領域管理テーブルを操作するの
みでシーケンシャル領域の管理が可能となり、以下の
〜に示すような効果が生じる。
域におけるデータ管理方式では、データ領域の管理のた
めにチェーン構造を利用していないので、ユーザ利用領
域におけるブロックの設定(ブロック分割の態様)が固
定的になり、ユーザ利用領域管理テーブルを操作するの
みでシーケンシャル領域の管理が可能となり、以下の
〜に示すような効果が生じる。
【0048】 ユーザ利用領域内のブロック(データ
領域)の割当ての際には、ユーザ利用領域管理テーブル
を検索することだけで割り当てるべきブロックを決定で
きるため、従来のようにチェーン構造のポインタの追跡
等を必要とせず、データ領域の割当ての際の処理性能を
向上させること(処理の簡易化および処理時間の短縮
化)ができる。
領域)の割当ての際には、ユーザ利用領域管理テーブル
を検索することだけで割り当てるべきブロックを決定で
きるため、従来のようにチェーン構造のポインタの追跡
等を必要とせず、データ領域の割当ての際の処理性能を
向上させること(処理の簡易化および処理時間の短縮
化)ができる。
【0049】 ブロック(データ領域)の解放時に、
従来のように「使用中のデータ領域のチェーン構造から
の当該ブロックを排除する操作」の必要がなくなり、ユ
ーザ利用領域管理テーブル内の情報だけを変更すればよ
いことから、データ領域の解放の際の処理性能を向上さ
せること(処理の簡易化および処理時間の短縮化)が可
能となる。
従来のように「使用中のデータ領域のチェーン構造から
の当該ブロックを排除する操作」の必要がなくなり、ユ
ーザ利用領域管理テーブル内の情報だけを変更すればよ
いことから、データ領域の解放の際の処理性能を向上さ
せること(処理の簡易化および処理時間の短縮化)が可
能となる。
【0050】 ユーザプログラムが使用するデータ領
域群(ユーザ利用領域)とデータ領域管理手段が管理す
る領域(ユーザ利用領域管理テーブル)とが分離してい
るので、万一ユーザプログラムが自己のために割り当て
られたデータ領域以外を操作したとても、管理情報が破
壊されるおそれが少ないため、そのような場合における
被害を最小に抑えることが可能となる。
域群(ユーザ利用領域)とデータ領域管理手段が管理す
る領域(ユーザ利用領域管理テーブル)とが分離してい
るので、万一ユーザプログラムが自己のために割り当て
られたデータ領域以外を操作したとても、管理情報が破
壊されるおそれが少ないため、そのような場合における
被害を最小に抑えることが可能となる。
【0051】ところで、装置制御用コンピュータに係る
コンピュータシステム等の「動作するユーザプログラム
が固定的なコンピュータシステム」においては、汎用コ
ンピュータに係るコンピュータシステムと比べ、ユーザ
プログラムが動作するために必要とするデータ領域のブ
ロックのサイズの種類およびブロック数はほぼ固定的に
なる。一方、本発明のシーケンシャル領域におけるデー
タ管理方式は、あらかじめユーザプログラムが必要とす
るブロックのサイズの種類およびブロック数を設定して
ユーザ利用領域のブロック分割の態様を決めて、シーケ
ンシャル領域内の各データ領域の有効利用を図ってい
る。したがって、本発明は、「動作するユーザプログラ
ムが固定的なコンピュータシステム」に適用されること
によって、特に、データ領域の割当て/解放の高速化お
よび効率化を図ることができるという効果が顕著とな
る。
コンピュータシステム等の「動作するユーザプログラム
が固定的なコンピュータシステム」においては、汎用コ
ンピュータに係るコンピュータシステムと比べ、ユーザ
プログラムが動作するために必要とするデータ領域のブ
ロックのサイズの種類およびブロック数はほぼ固定的に
なる。一方、本発明のシーケンシャル領域におけるデー
タ管理方式は、あらかじめユーザプログラムが必要とす
るブロックのサイズの種類およびブロック数を設定して
ユーザ利用領域のブロック分割の態様を決めて、シーケ
ンシャル領域内の各データ領域の有効利用を図ってい
る。したがって、本発明は、「動作するユーザプログラ
ムが固定的なコンピュータシステム」に適用されること
によって、特に、データ領域の割当て/解放の高速化お
よび効率化を図ることができるという効果が顕著とな
る。
【図1】本発明のシーケンシャル領域におけるデータ管
理方式の一実施例の構成を示すブロック図である。
理方式の一実施例の構成を示すブロック図である。
【図2】図1中のシーケンシャル領域の構成を示す図で
ある。
ある。
【図3】図1に示すシーケンシャル領域におけるデータ
管理方式における領域割当て部の処理を示す流れ図であ
る。
管理方式における領域割当て部の処理を示す流れ図であ
る。
【図4】図1に示すシーケンシャル領域におけるデータ
管理方式における領域解放部の処理を示す流れ図であ
る。
管理方式における領域解放部の処理を示す流れ図であ
る。
【図5】従来のシーケンシャル領域におけるデータ管理
方式によるデータ領域の管理概念を説明するための図で
ある。
方式によるデータ領域の管理概念を説明するための図で
ある。
1 CPU 2 データ領域管理手段 3 領域割当て部 4 領域解放部 5 メモリ(プログラム実装用メモリ) 10 シーケンシャル領域 11 ユーザ利用領域 12 ユーザ利用領域管理テーブル
Claims (6)
- 【請求項1】 シーケンシャル領域内の任意長のデータ
領域を使用するユーザプログラムが実行されるコンピュ
ータシステムにおいて、 各ユーザプログラムに使用されるデータ領域の集合であ
るシーケンシャル領域内のユーザ利用領域と、 このユーザ利用領域がどのようにユーザプログラムに使
用されているかを示す情報を保持するシーケンシャル領
域内のユーザ利用領域管理テーブルと、 前記ユーザ利用領域を複数の種類のサイズの複数のブロ
ックに分割し、前記ユーザ利用領域におけるブロック単
位の使用状態を前記ユーザ利用領域管理テーブルによっ
て管理するデータ領域管理手段とを有することを特徴と
するシーケンシャル領域におけるデータ管理方式。 - 【請求項2】 ユーザプログラムからの領域割当て要求
に応じてユーザ利用領域内のブロックを当該ユーザプロ
グラムのために割り当てその割当てを反映してユーザ利
用領域管理テーブル内の当該ブロックに対応するエント
リに「使用中」を示す情報を設定する領域割当て部と、
ユーザプログラムからの領域解放要求に応じてユーザ利
用領域管理テーブル内の当該領域解放要求で指定された
ブロックに対応するエントリに「未使用」を示す情報を
設定する領域解放部とからなるデータ領域管理手段を有
することを特徴とする請求項1記載のシーケンシャル領
域におけるデータ管理方式。 - 【請求項3】 割り当てるべきブロックのサイズとし
て、「領域割当て要求に係る要求サイズ以上のブロック
のサイズの中で未使用のブロックが存在する最小のサイ
ズ」を採用する領域割当て部を有することを特徴とする
請求項2記載のシーケンシャル領域におけるデータ管理
方式。 - 【請求項4】 ブロックのサイズ毎に各サイズ用管理テ
ーブルを備え、「使用状態」および「先頭位置」の項目
からなるエントリを有するユーザ利用領域管理テーブル
を有することを特徴とする請求項1,請求項2または請
求項3記載のシーケンシャル領域におけるデータ管理方
式。 - 【請求項5】 動作するユーザプログラムが固定的なコ
ンピュータシステムに適用されることを特徴とする請求
項1,請求項2,請求項3または請求項4記載のシーケ
ンシャル領域におけるデータ管理方式。 - 【請求項6】 装置制御用コンピュータに係るコンピュ
ータシステムに適用されることを特徴とする請求項5記
載のシーケンシャル領域におけるデータ管理方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP31767894A JPH08153037A (ja) | 1994-11-28 | 1994-11-28 | シーケンシャル領域におけるデータ管理方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP31767894A JPH08153037A (ja) | 1994-11-28 | 1994-11-28 | シーケンシャル領域におけるデータ管理方式 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH08153037A true JPH08153037A (ja) | 1996-06-11 |
Family
ID=18090808
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP31767894A Pending JPH08153037A (ja) | 1994-11-28 | 1994-11-28 | シーケンシャル領域におけるデータ管理方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH08153037A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6910213B1 (en) | 1997-11-21 | 2005-06-21 | Omron Corporation | Program control apparatus and method and apparatus for memory allocation ensuring execution of a process exclusively and ensuring real time operation, without locking computer system |
US7653798B2 (en) | 2002-12-18 | 2010-01-26 | Electronics And Telelcommunications Research Institute | Apparatus and method for controlling memory allocation for variable size packets |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06208502A (ja) * | 1993-01-08 | 1994-07-26 | Sanyo Electric Co Ltd | メモリ管理方法 |
-
1994
- 1994-11-28 JP JP31767894A patent/JPH08153037A/ja active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06208502A (ja) * | 1993-01-08 | 1994-07-26 | Sanyo Electric Co Ltd | メモリ管理方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6910213B1 (en) | 1997-11-21 | 2005-06-21 | Omron Corporation | Program control apparatus and method and apparatus for memory allocation ensuring execution of a process exclusively and ensuring real time operation, without locking computer system |
US7653798B2 (en) | 2002-12-18 | 2010-01-26 | Electronics And Telelcommunications Research Institute | Apparatus and method for controlling memory allocation for variable size packets |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5623654A (en) | Fast fragmentation free memory manager using multiple free block size access table for a free list | |
US8688932B2 (en) | Virtual computer system and method of controlling the same | |
US5109336A (en) | Unified working storage management | |
US7882505B2 (en) | Method and apparatus for switching between per-thread and per-processor resource pools in multi-threaded programs | |
JPH08129457A (ja) | 外部記憶ストラクチャを拡大、縮小、及び再配分するための方法及び装置 | |
CN112162938B (zh) | 大页内存分配方法及其计算机 | |
US20060074988A1 (en) | Garbage collection system | |
CN111984425A (zh) | 用于操作系统的内存管理方法、装置及设备 | |
JPH11110236A (ja) | 大きなメモリの割り当て方法及び装置 | |
US5678024A (en) | Method and system for dynamic performance resource management within a computer based system | |
CN113010453A (zh) | 一种内存管理的方法、系统、设备及可读存储介质 | |
EP3293625B1 (en) | Method and device for accessing file, and storage system | |
US6842838B2 (en) | Preemptive memory-block splitting | |
JPH08153037A (ja) | シーケンシャル領域におけるデータ管理方式 | |
US5918243A (en) | Computer mechanism for reducing DASD arm contention during parallel processing | |
JPH01191221A (ja) | 磁気ディスク領域の動的割り当て管理方式 | |
JP3030030B2 (ja) | 領域管理処理方式 | |
JPH04219836A (ja) | ブロック管理方式 | |
JP2000047933A (ja) | 双方向メモリ確保管理方式 | |
JP3061001B2 (ja) | 計算機システムにおけるメモリ割り当て方式 | |
JP3013742B2 (ja) | キャッシュメモリ管理方式 | |
JP2003248620A (ja) | 動的メモリ管理方法及び動的メモリ管理情報処理装置 | |
JP2787107B2 (ja) | バッファ制御方式及び装置 | |
JP3022829B2 (ja) | 記憶装置の自動割り当て装置 | |
JPS6364146A (ja) | 論理空間管理方式 |