JP3530887B2 - データ消去方法、データ消去装置、及び記録媒体 - Google Patents

データ消去方法、データ消去装置、及び記録媒体

Info

Publication number
JP3530887B2
JP3530887B2 JP2000082955A JP2000082955A JP3530887B2 JP 3530887 B2 JP3530887 B2 JP 3530887B2 JP 2000082955 A JP2000082955 A JP 2000082955A JP 2000082955 A JP2000082955 A JP 2000082955A JP 3530887 B2 JP3530887 B2 JP 3530887B2
Authority
JP
Japan
Prior art keywords
function
recording area
data
scanning
execution
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.)
Expired - Lifetime
Application number
JP2000082955A
Other languages
English (en)
Other versions
JP2001273189A (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.)
Omron Corp
Original Assignee
Omron 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 Omron Corp filed Critical Omron Corp
Priority to JP2000082955A priority Critical patent/JP3530887B2/ja
Publication of JP2001273189A publication Critical patent/JP2001273189A/ja
Application granted granted Critical
Publication of JP3530887B2 publication Critical patent/JP3530887B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、主プログラムの処
理と交互に、主プログラムの実行に使用されるデータを
記録しているデータ記録領域を走査し、不要となったデ
ータを消去するデータ消去方法、その方法を適用したデ
ータ消去装置、及びその装置を実現するためのプログラ
ムが記録されている記録媒体に関し、特に動的にデータ
を生成するプログラミング言語にて作成された実時間性
を必要とする応用ソフトウエアプログラムにて発生する
不要なデータを消去するデータ消去方法、データ消去装
置、及び記録媒体に関する。
【0002】
【従来の技術】Java、C++、Lisp、及びPr
olog等の動的にデータを生成するプログラミング言
語を用いて作成された応用ソフトウエアプログラム(以
下主プログラムという)では、主プログラムの処理中に
一度生成され使用されたデータが、主プログラムの処理
が進むにつれて不要になる場合がある。
【0003】そこでデータを記録するデータ記録領域を
有効に利用するため、これらの不要データをデータ記録
領域から消去し、データを消去した後のデータ記録領域
を他のデータの記録に再利用する必要がある。このよう
にデータを記録し、再利用する処理は「ゴミ集め」(Ga
rbage Collection:以下GCという)と呼ばれ、主プロ
グラムの処理に不可欠な処理である。
【0004】実時間性を重要視する主プログラムを処理
する場合、GCは主プログラムの処理に対し、実質的に
並行して実行する必要があるプログラムであり、その方
法として、On-the-flyGC、複写方式インクリメンタル
GC、及びスナップショットGC等の方法が提案され、
また実用化されている。
【0005】On-the-flyGCは、主プログラムを処理す
るプロセッサとは別にGCプログラム専用のプロセッサ
を用意し、2つのプロセッサを並行に動作させて実時間
でGCプログラムを実行する方法であり、主プログラム
によりデータ記録領域を指示するポインタの指示を監視
しながら、ポインタにより指示されているデータ記録領
域にマーキングを行い、マーキングされなかった不要な
データ記録領域のデータを消去するDijkstraによって考
案されたアルゴリズム、及び圧縮処理を用いたSteeleに
よって考案されたアルゴリズム等の処理を適用した方法
である。
【0006】複写方式インクリメンタルGCは、使用可
能な記録領域から2つのデータ記録領域(from空間及び
to空間)を確保して、一方のデータ記録領域(from空
間)のみを用いて主プログラムの処理を実行し、所定の
タイミングで、ポインタにより指示される有用なデータ
を他方のデータ記録領域(to空間)に複写した上で、一
方のデータ記録領域のデータを消去するBaker によって
考案されたアルゴリズムを適用した方法である。
【0007】ところがOn-the-flyGC及び複写方式イン
クリメンタルGCのいずれにおいても、プログラムの実
行に大きなオーバーヘッドが生じ、しかもプロセッサ及
び記録領域等のハードウエア資源の追加又は確保が必要
になり、汎用機での実用は困難であった。
【0008】これに対し本発明の発明者である湯淺によ
って考案されたスナップショットGCは、Dijkstra同様
にデータ記録領域にマーキングを行い消去するアルゴリ
ズムをベースにしながらも、汎用機で容易に実現するこ
とを目的としたアルゴリズムであり、その優秀さから現
状では最も広く用いられている。
【0009】スナップショットGCでは、主プログラム
の処理に必要な関数を記録する関数記録領域、及び該関
数記録領域以外の予め場所が決まっている静的記録領域
を、主プログラムの処理を中断して走査し、走査した関
数記録領域に記録されているポインタから直接又は間接
的に指示されているデータ記録領域にデータの保護を予
約する予約マーキング(マーキングの予約)を行い、更
に予約マーキングされた記録領域のデータを保護すべく
マーキングを行う。そしてマーキングされていないデー
タ記録領域に記録されたデータを消去するアルゴリズム
を適用した方法である。
【0010】このようなスナップショットGCの処理
を、図を用いて説明する。図6は主プログラムの実行に
必要な関数を記録する関数記録領域を概念的に示す説明
図である。主プログラムは、一般に関数の呼び出しが入
れ子状態になって実行される。即ち図6(a),
(b),(c)に示すように主プログラムの処理に必要
な関数は、実行中の関数から実行すべき関数を呼び出し
て、メモリ中のスタック領域に確保された実行中の関数
の関数記録領域に、新たな関数記録領域を積み上げる形
で確保して、呼び出された関数を実行し、関数の実行完
了後、積み上げられている不要になった関数記録領域を
破棄するように処理される。
【0011】実行中の関数記録領域(関数フレーム)
は、カレントフレームと呼ばれ、図6(a)では、関数
Fが実行中であり、関数Fの関数記録領域がカレントフ
レームとなる。この関数Fから別の関数Gが呼び出され
ると、図6(b)に示すように、関数Gを実行するため
の関数記録領域がスタック領域に積み上げられて、カレ
ントフレームとなり、関数Gの実行が完了すれば、当該
関数記録領域は破棄されて、呼び出し前の図6(a)の
状態となる。
【0012】なお図6(b)において、さらに他の関数
Hが呼び出されたときは、図6(c)に示すように、関
数Hを実行するための関数記録領域がスタック領域に積
み上げられて、カレントフレームとなり、関数Hの実行
が完了すれば、当該関数記録領域は破棄されて、呼び出
し前の図6(b)の状態となる。
【0013】図7は従来のデータ消去方法(スナップシ
ョットGC)の走査及びマーキング処理を概念的に示す
説明図である。なお図7において、左下がりの斜線部
は、走査済みの関数記録領域を示し、右下がりの斜線部
は、未走査の関数記録領域を示す。関数記録領域に記録
されているポインタの走査は、実行中である最上位の関
数記録領域から、基幹の関数となる最下位の関数記録領
域へ向かって行われ、走査したポインタが指示するデー
タ記録領域に予約マーキングを行い、そして予約マーキ
ングが行われたデータ記録領域にマーキングを行い、マ
ーキングされていないデータ記録領域に記録されたデー
タを不要なデータとみなして消去する。
【0014】
【発明が解決しようとする課題】ところでスナップショ
ットGCの処理の中で、静的記録領域の走査及び予約マ
ーキングについては、静的記録領域に記録されているポ
インタが少数であるため短時間で完了するが、関数記録
領域の走査及び予約マーキングは、走査すべき関数記録
領域が増減するため、必ずしも短時間で完了するわけで
はない。
【0015】しかしながらスナップショットGCは、主
プログラムを中断してその処理を行うため、実時間性を
維持してGCプログラムを実行するためには、GCに関
する処理を分割して行わなければならない。
【0016】静的記録領域の走査及び予約マーキングを
行う処理は、短時間で完了するため主プログラムが中断
している間に実行することが可能であり、また予約マー
キングされたデータ記録領域のマーキング、及びデータ
を消去する処理は、短時間で完了しなくとも、分割して
処理することが可能であるため、これらの処理はいずれ
も大きな問題とはならない。
【0017】ところが関数記録領域の走査及び予約マー
キングは、処理が長時間になる可能性があるため、実時
間性が損なわれる可能性があるという問題がある。
【0018】そこで関数記録領域の走査及び予約マーキ
ングの処理を分割し、主プログラムの中断毎に少しずつ
走査して1回の中断時間を短縮し、主プログラムの実時
間性を維持することが考えられるが、この場合、以下に
示すように処理異常が発生する可能性がある。
【0019】図8は、従来のデータ消去方法(スナップ
ショットGC)の走査及びマーキング処理を概念的に示
す説明図である。なお図7と同様に、左下がりの斜線部
は、走査済みの関数記録領域を示し、右下がりの斜線部
は、未走査の関数記録領域を示す。また図8(a)に示
す状態で、GC処理が中断されて、主プログラムが実行
され、図8(b)に示す状態に遷移したと仮定する。図
8(a)に示す状態では、データ記録領域aは予約マー
キングされているが、データ記録領域b及びcは予約マ
ーキングされていない状態である。
【0020】図8(a)に示す状態から主プログラムが
実行されて、図8(b)に示す状態に遷移した場合、デ
ータ記録領域bは指示されてはいるが、データ記録領域
bを指示するポインタを記録している関数記録領域が、
未走査の関数記録領域から走査済みの関数記録領域に変
化しており、GC処理が再開されたときに、データ記録
領域bには、予約マーキングが行われていないため(予
約マーキングの取りこぼしが発生しているため)、デー
タが保護されずに消去される。このため主プログラムの
実行により、データ記録領域bを必要とする処理が行わ
れる場合、そのデータが消去されていることにより処理
異常が発生する。
【0021】このような取りこぼしが発生する状況を説
明する図9は、従来のデータ消去方法(スナップショッ
トGC)の走査及びマーキング処理を概念的に示す説明
図である。一般に、関数の実行中は、関数記録領域全て
が参照されるのではなく、カレントフレーム内だけが参
照される。
【0022】図9(a)では、カレントフレームが走査
済みの関数記録領域に含まれている状態を示しており、
このような状態の場合、主プログラムの処理によりスタ
ックの状態が変化しても、影響を受けるのは走査済みの
関数記録領域内だけであるため、取りこぼしが生じるこ
とはない。
【0023】図9(b)では、カレントフレームが未走
査の関数記録領域に含まれている状態を示しており、主
プログラムの処理によりスタックの状態が変化して、特
定のデータ記録領域を指示するポインタが、走査済みの
関数記録領域に移動し、取りこぼしが生じる可能性があ
る。
【0024】本発明は斯かる事情に鑑みてなされたもの
であり、スナップショットGCの走査及び予約マーキン
グを中断する場合に、走査済みの関数記録領域に障壁を
設定し、障壁が設定された関数記録領域が破棄されると
きには、主プログラムの処理より走査及び予約マーキン
グを優先して行うことにより、予約マーキングの取りこ
ぼしによる処理異常の発生を防止するデータ消去方法、
その方法を適用したデータ消去装置、及びその装置を実
現するためのプログラムが記録されている記録媒体の提
供を主たる目的とする。
【0025】また走査を行わせる関数の番地を、障壁と
して設定することによりオーバーヘッドを抑制し、主プ
ログラムの修正が不要であるデータ消去方法、データ消
去装置、及び記録媒体の提供を他の目的とする。
【0026】
【課題を解決するための手段】第1発明に係るデータ消
去方法は、メモリ中のスタック領域に、関数の実行に必
要な関数記録領域を積み上げて関数を実行し、実行完了
後、当該関数記録領域を破棄する主プログラムの処理と
交互に、関数の実行に使用されるデータを記録するデー
タ記録領域に記録された保護されていない不要なデータ
を消去するデータ消去方法において、スタック領域に積
み上げられた関数記録領域を上位側から下位側へ走査
し、走査された関数記録領域に記録されているポインタ
が指示するデータ記録領域のデータの保護を予約する予
約マーキングを行い、主プログラムの処理を実行すべ
く、関数記録領域の走査を中断する場合に、走査が最後
に行われた関数記録領域に、関数の実行を制限する障壁
を設定し、該障壁が、関数の実行が完了して破棄される
べき関数記録領域に設定されているとき、破棄より走査
を優先させることを特徴とする。
【0027】第1発明に係るデータ消去方法では、走査
済みの関数記録領域に障壁を設定して、障壁が設定され
た関数記録領域が破棄されるときに、主プログラムの処
理より走査及び予約マーキングを優先して行うことによ
り、関数記録領域が破棄されてカレントフレームが未走
査の関数記録領域に移行することを防止するので、走査
処理を中断している間の主プログラムの処理に基づくポ
インタの変化により発生する取りこぼしを防止して、必
要なデータの消去を回避し、処理異常の発生を防止し
て、主プログラム処理時の実時間性を損なわずにデータ
記録領域に記録された不要なデータの消去が可能であ
る。
【0028】第2発明に係るデータ消去方法は、第1発
明において、前記障壁は、走査を行わせる関数の番地で
あることを特徴とする。
【0029】第2発明に係るデータ消去方法では、走査
を行わせる関数の番地を障壁として設定することによ
り、関数記録領域の破棄より走査を優先させる処理のた
めの主プログラムの修正が不要であり、しかもその処理
によるオーバーヘッドを抑制するので、主プログラムの
処理時の実時間性を損なわずにデータ記録領域に記録さ
れた不要なデータの消去が可能である。
【0030】第3発明に係るデータ消去装置は、メモリ
中のスタック領域に、関数の実行に必要な関数記録領域
を積み上げて関数を実行し、実行完了後、当該関数記録
領域を破棄する主プログラムの処理と交互に、関数の実
行に使用されるデータを記録するデータ記録領域に記録
された保護されていない不要なデータを消去するデータ
消去装置において、スタック領域に積み上げられた関数
記録領域を上位側から下位側へ走査する手段と、走査さ
れた関数記録領域に記録されているポインタが指示する
データ記録領域のデータの保護を予約する予約マーキン
グを行う手段と、主プログラムの処理を実行すべく、関
数記録領域の走査を中断する場合に、走査が最後に行わ
れた関数記録領域に、関数の実行を制限する障壁を設定
する手段と、該障壁が、関数の実行が完了して破棄され
るべき関数記録領域に設定されているとき、破棄より走
査を優先させる手段とを備えることを特徴とする。
【0031】第3発明に係るデータ消去装置では、走査
済みの関数記録領域に障壁を設定して、障壁が設定され
た関数記録領域が破棄されるときに、主プログラムの処
理より走査及び予約マーキングを優先して行うことによ
り、関数記録領域が破棄されてカレントフレームが未走
査の関数記録領域に移行することを防止するので、走査
処理を中断している間の主プログラムの実行に基づくポ
インタの変化により発生する取りこぼしを防止して、必
要なデータの消去を回避し、処理異常の発生を防止し
て、主プログラム処理時の実時間性を損なわずにデータ
記録領域に記録された不要なデータの消去が可能であ
る。
【0032】第4発明に係るデータ消去装置は、第3発
明において、前記障壁は、走査を行わせる関数を呼び出
す手段であることを特徴とする。
【0033】第4発明に係るデータ消去装置では、走査
を行わせる関数の番地を障壁として設定することによ
り、関数記録領域の破棄より走査を優先させる処理のた
めの主プログラムの修正が不要であり、しかもその処理
によるオーバーヘッドを抑制するので、主プログラム処
理時の実時間性を損なわずにデータ記録領域に記録され
た不要なデータの消去が可能である。
【0034】第5発明に係るコンピュータでの読み取り
が可能な記録媒体は、メモリ中のスタック領域に、関数
の実行に必要な関数記録領域を積み上げて関数を実行
し、実行完了後、当該関数記録領域を破棄する主プログ
ラムを実行するコンピュータに、主プログラムの処理と
交互に、関数の実行に使用されるデータを記録するデー
タ記録領域に記録された保護されていない不要なデータ
を消去させるプログラムを記録してある、コンピュータ
での読み取りが可能な記録媒体において、コンピュータ
に、スタック領域に積み上げられた関数記録領域を上位
側から下位側へ走査させるプログラムコード手段と、コ
ンピュータに、走査された関数記録領域に記録されてい
るポインタが指示するデータ記録領域のデータの保護を
予約する予約マーキングを行わせるプログラムコード手
段と、コンピュータに、主プログラムの処理を実行すべ
く、関数記録領域の走査を中断する場合に、走査が最後
に行われた関数記録領域に、関数の実行を制限する障壁
を設定させるプログラムコード手段と、コンピュータ
に、設定された障壁が、関数の実行が完了して破棄され
るべき関数記録領域に設定されているとき、関数記録領
域の破棄より走査を優先させるプログラムコード手段と
を含むコンピュータプログラムを記録してあることを特
徴とする。
【0035】第5発明に係るコンピュータでの読み取り
が可能な記録媒体では、記録されているプログラムを、
主プログラムを処理するコンピュータにて実行すること
で、走査済みの関数記録領域に障壁を設定して、障壁が
設定された関数記録領域が破棄されるときに、主プログ
ラムの処理より走査及び予約マーキングを優先して行う
ことにより、関数記録領域が破棄されてカレントフレー
ムが未走査の関数記録領域に移行することを防止するの
で、走査処理を中断している間の主プログラムの実行に
基づくポインタの変化により発生する取りこぼしを防止
して、必要なデータの消去を回避し、処理異常の発生を
防止して、主プログラム処理時の実時間性を損なわずに
データ記録領域に記録された不要なデータの消去が可能
である。
【0036】第6発明に係るコンピュータでの読み取り
が可能な記録媒体は、第5発明において、前記障壁は、
走査を行わせる関数の番地であることを特徴とする。
【0037】第6発明に係るコンピュータでの読み取り
が可能な記録媒体では、記録されているプログラムをコ
ンピュータにて実行することで、走査を行わせる関数の
番地を障壁として設定することにより、関数記録領域の
破棄より走査を優先させる処理のための主プログラムの
修正が不要であり、しかもその処理によるオーバーヘッ
ドを抑制するので、主プログラム処理時の実時間性を損
なわずにデータ記録領域に記録された不要なデータの消
去が可能である。
【0038】
【発明の実施の形態】以下、本発明をその実施の形態を
示す図面に基づいて詳述する。図1は本発明のデータ消
去装置の構成を示すブロック図である。図中10は本発
明の汎用コンピュータを用いたデータ消去装置であり、
データ消去装置10は本発明のデータ消去装置用のプロ
グラム及びデータ等の情報を記録したCD−ROM等の
記録媒体20からプログラム及びデータ等の情報を読み
取るCD−ROMドライブ等の補助記憶手段12、補助
記憶手段12により読み取られたプログラム及びデータ
等の情報を記録するハードディスク等の磁気記録手段1
3、並びに各種情報を一時的に記録するメモリ手段14
を備えている。
【0039】また磁気記録手段13には、本発明のデー
タ消去装置用のプログラム及びデータ等の情報以外に
も、Java、C++、Lisp、及びProlog等
の動的にデータを生成するプログラミング言語を用いて
作成された主プログラムが記録されている。なお本発明
のプログラムは、主プログラムを実行するためのプログ
ラムの一部として記録されていてもよい。
【0040】そして磁気記録手段13からプログラム及
びデータ等の情報を読み取り、メモリ手段14に記録し
て、CPU11により実行することで、汎用コンピュー
タは、本発明のデータ消去装置10として動作する。
【0041】なおメモリ手段14の記録領域の一部は、
主プログラムの処理の実行に必要な関数を記録する関数
記録領域が確保されるスタック領域、及び関数の処理の
実行に必要なデータを記録するデータ記録領域として用
いられる。
【0042】さらにデータ消去装置10は、マウス及び
キーボード等の入力手段15、並びにモニタ及びプリン
タ等の出力手段16を備えている。また主プログラム
が、例えば各種機械を実時間制御するプログラムである
場合、データ消去装置10は、更に通信手段17を備
え、通信手段17を介して制御すべき機械に接続され
る。
【0043】次に本発明のデータ消去方法の処理内容を
説明する。なお本発明のデータ消去方法は、従来のスナ
ップショットGCを応用した方法である。図2は、本発
明のデータ消去方法を概念的に示す説明図である。なお
図2において、左下がりの斜線部は、走査済みの関数記
録領域、そして右下がりの斜線部は、未走査の関数記録
領域を示し、太枠で囲まれた部分がカレントフレームを
示している。
【0044】図2(a)に示すように、本発明のデータ
消去方法では、走査を中断する場合、走査が最後に行わ
れた関数記録領域に障壁を設定する。設定された障壁
は、主プログラムの処理を制限する目的で設定されるも
のであり、カレントフレームにある関数の実行が完了し
て当該関数記録領域を破棄する場合に、破棄すべき関数
記録領域に障壁が設定されているとき、図2(b)に示
すように、関数記録領域を破棄する処理を中断して、関
数記録領域の走査を一時的に行うことで、関数記録領域
の破棄により、未走査のスタック領域にカレントフレー
ムが移動することを防止し、そして走査完了後、図2
(c)に示すように当該関数記録領域の破棄を行い、カ
レントフレームを移動させる。
【0045】このように設定された障壁は主プログラム
の処理の一つである関数記録領域の破棄処理より、走査
処理を優先させるものであり、これによって走査と共に
行われる予約マーキングの取りこぼしを防止することが
可能である。
【0046】図3は、本発明のデータ消去方法における
障壁を概念的に示す説明図である。図3(a)は、障壁
が設定される前のカレントフレーム内の関数に含まれる
データ群を示しており、図3(b)は、障壁が設定され
たカレントフレーム内の関数に含まれるデータ群を示し
ている。
【0047】本発明のデータ消去方法では、図3(a)
及び(b)に示すように、関数に含まれるデータ群中の
戻り番地(return addr) を、走査を優先して行わせる関
数(Scan frames and return to:)の番地に置換すること
により、主プログラムの実行を制限する障壁としてい
る。なお障壁の解除処理は、置換された番地を元に戻す
ことにより行われる。
【0048】このため主プログラムの変更等の作業が不
要であり、しかも例えば障壁の存在を検出するというよ
うな処理も不要であるため、オーバーヘッドの発生を抑
制することが可能である。
【0049】次に本発明のデータ消去方法の処理手順を
図4及び図5に示すフローチャートを用いて説明する。
データ消去装置10では、主プログラムの関数の処理と
交互に、不要なデータを消去する処理を実行する。デー
タ消去の処理手順としては、主プログラムが中断してい
る間に、スタック領域に積み上げられている関数記録領
域を、上位側から下位側へ走査し(S101)、走査さ
れた関数記録領域に記録されているポインタが、直接的
又は間接的に指示するデータ記録領域のデータの保護を
予約する予約マーキングを行う(S102)。
【0050】そして主プログラムの処理を再開すべく、
ステップS101及びS102の処理を中断する場合
に、最後に走査を行った関数記録領域に、関数の実行を
制限する障壁を設定する(S103)。
【0051】障壁設定後、主プログラムの関数を実行し
(S104)、カレントフレームが、障壁を設定してあ
る関数記録領域に移行した場合で、当該関数の実行が完
了して当該関数記録領域を破棄するときに、破棄処理よ
り走査を優先し(S105)、また走査に伴い予約マー
キングを行う(S106)。そして関数の実行、即ち関
数記録領域の破棄を再開する(S107)。
【0052】なおステップS105〜S107の処理
は、具体的には、図3(b)に示すように、走査(及び
予約マーキング)を行わせた後、主プログラムの関数を
実行させる関数を呼び出すために、障壁として設定した
番地へ制御を移行することを示す。
【0053】そして走査完了後、主プログラムが中断し
ている間に、不要なデータを消去する処理として、予約
マーキングされているデータ記録領域に、マーキングを
行い(S201)、マーキングされていないデータ記録
領域のデータを消去する(S202)。
【0054】前記実施の形態では、各種機械を実時間制
御すべく、本発明のデータ消去装置となる汎用コンピュ
ータを接続する形態を示したが、本発明はこれに限ら
ず、実時間制御が必要な各種機械を備える制御用マイク
ロコンピュータに、本発明のデータ消去方法を適用する
プログラミングをしてもよい。
【0055】
【発明の効果】以上詳述した如く本発明に係るデータ消
去方法、データ消去装置、及び記録媒体では、Jav
a、C++、Lisp、及びProlog等の動的にデ
ータを生成するプログラミング言語を用いて作成された
主プログラムの処理と交互に実行される不要なデータの
消去処理として、走査済みの関数記録領域に障壁を設定
して、障壁が設定された関数記録領域が破棄されるとき
に、主プログラムの実行より走査及び予約マーキングを
優先して行うことにより、関数記録領域が破棄されてカ
レントフレームが未走査の関数記録領域に移行すること
を防止するので、走査処理を中断している間の主プログ
ラムの実行に基づくポインタの変化により発生する予約
マーキングの取りこぼしを防止して、必要なデータの消
去を回避し、処理異常の発生を防止して、主プログラム
実行時の実時間性を損なわずにデータ記録領域に記録さ
れた不要なデータの消去が可能である等、優れた効果を
奏する。
【0056】さらに本発明では、走査を行わせる関数の
番地を障壁として設定することにより、関数記録領域の
破棄より走査を優先させる処理のための主プログラムの
修正が不要であり、しかもその処理によるオーバーヘッ
ドを抑制するので、主プログラムの実行時の実時間性を
損なわずにデータ記録領域に記録された不要なデータの
消去が可能である等、優れた効果を奏する。
【図面の簡単な説明】
【図1】本発明のデータ消去装置の構成を示すブロック
図である。
【図2】本発明のデータ消去方法を概念的に示す説明図
である。
【図3】本発明のデータ消去方法における障壁を概念的
に示す説明図である。
【図4】本発明のデータ消去方法の処理手順を示すフロ
ーチャートである。
【図5】本発明のデータ消去方法の処理手順を示すフロ
ーチャートである。
【図6】主プログラムの実行に必要な関数を記録する関
数記録領域を概念的に示す説明図である。
【図7】従来のデータ消去方法の走査及びマーキング処
理を概念的に示す説明図である。
【図8】従来のデータ消去方法の走査及びマーキング処
理を概念的に示す説明図である。
【図9】従来のデータ消去方法の走査及びマーキング処
理を概念的に示す説明図である。
【符号の説明】
10 データ消去装置 11 CPU 12 補助記憶手段 13 磁気記録手段 14 メモリ手段 15 入力手段 16 出力手段 17 通信手段 20 記録媒体
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 湯浅太一,実時間ごみ集め,情報処 理,日本,情報処理学会,1994年11月15 日,Vol.35 No.11,P1006− 1014 湯浅太一、中川雄一郎、小宮常康、八 杉昌宏 ,リターン・バリア,情報処理 学会論文誌,日本,情報処理学会,2000 年11月15日,Vol.41 No.SIG 9,P87−99 (58)調査した分野(Int.Cl.7,DB名) G06F 12/00 G06F 9/44 JICSTファイル(JOIS)

Claims (6)

    (57)【特許請求の範囲】
  1. 【請求項1】 メモリ中のスタック領域に、関数の実行
    に必要な関数記録領域を積み上げて関数を実行し、実行
    完了後、当該関数記録領域を破棄する主プログラムの処
    理と交互に、関数の実行に使用されるデータを記録する
    データ記録領域に記録された保護されていない不要なデ
    ータを消去するデータ消去方法において、 スタック領域に積み上げられた関数記録領域を上位側か
    ら下位側へ走査し、 走査された関数記録領域に記録されているポインタが指
    示するデータ記録領域のデータの保護を予約する予約マ
    ーキングを行い、 主プログラムの処理を実行すべく、関数記録領域の走査
    を中断する場合に、走査が最後に行われた関数記録領域
    に、関数の実行を制限する障壁を設定し、 該障壁が、関数の実行が完了して破棄されるべき関数記
    録領域に設定されているとき、破棄より走査を優先させ
    ることを特徴とするデータ消去方法。
  2. 【請求項2】 前記障壁は、走査を行わせる関数の番地
    であることを特徴とする請求項1に記載のデータ消去方
    法。
  3. 【請求項3】 メモリ中のスタック領域に、関数の実行
    に必要な関数記録領域を積み上げて関数を実行し、実行
    完了後、当該関数記録領域を破棄する主プログラムの処
    理と交互に、関数の実行に使用されるデータを記録する
    データ記録領域に記録された保護されていない不要なデ
    ータを消去するデータ消去装置において、 スタック領域に積み上げられた関数記録領域を上位側か
    ら下位側へ走査する手段と、 走査された関数記録領域に記録されているポインタが指
    示するデータ記録領域のデータの保護を予約する予約マ
    ーキングを行う手段と、 主プログラムの処理を実行すべく、関数記録領域の走査
    を中断する場合に、走査が最後に行われた関数記録領域
    に、関数の実行を制限する障壁を設定する手段と、 該障壁が、関数の実行が完了して破棄されるべき関数記
    録領域に設定されているとき、破棄より走査を優先させ
    る手段とを備えることを特徴とするデータ消去装置。
  4. 【請求項4】 前記障壁は、走査を行わせる関数を呼び
    出す手段であることを特徴とする請求項3に記載のデー
    タ消去装置。
  5. 【請求項5】 メモリ中のスタック領域に、関数の実行
    に必要な関数記録領域を積み上げて関数を実行し、実行
    完了後、当該関数記録領域を破棄する主プログラムを実
    行するコンピュータに、主プログラムの処理と交互に、
    関数の実行に使用されるデータを記録するデータ記録領
    域に記録された保護されていない不要なデータを消去さ
    せるプログラムを記録してある、コンピュータでの読み
    取りが可能な記録媒体において、 コンピュータに、スタック領域に積み上げられた関数記
    録領域を上位側から下位側へ走査させるプログラムコー
    ド手段と、 コンピュータに、走査された関数記録領域に記録されて
    いるポインタが指示するデータ記録領域のデータの保護
    を予約する予約マーキングを行わせるプログラムコード
    手段と、 コンピュータに、主プログラムの処理を実行すべく、関
    数記録領域の走査を中断する場合に、走査が最後に行わ
    れた関数記録領域に、関数の実行を制限する障壁を設定
    させるプログラムコード手段と、 コンピュータに、設定された障壁が、関数の実行が完了
    して破棄されるべき関数記録領域に設定されていると
    き、関数記録領域の破棄より走査を優先させるプログラ
    ムコード手段とを含むコンピュータプログラムを記録し
    てあることを特徴とするコンピュータでの読み取りが可
    能な記録媒体。
  6. 【請求項6】 前記障壁は、走査を行わせる関数の番地
    であることを特徴とする請求項5に記載のコンピュータ
    での読み取りが可能な記録媒体。
JP2000082955A 2000-03-23 2000-03-23 データ消去方法、データ消去装置、及び記録媒体 Expired - Lifetime JP3530887B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000082955A JP3530887B2 (ja) 2000-03-23 2000-03-23 データ消去方法、データ消去装置、及び記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000082955A JP3530887B2 (ja) 2000-03-23 2000-03-23 データ消去方法、データ消去装置、及び記録媒体

Publications (2)

Publication Number Publication Date
JP2001273189A JP2001273189A (ja) 2001-10-05
JP3530887B2 true JP3530887B2 (ja) 2004-05-24

Family

ID=18599687

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000082955A Expired - Lifetime JP3530887B2 (ja) 2000-03-23 2000-03-23 データ消去方法、データ消去装置、及び記録媒体

Country Status (1)

Country Link
JP (1) JP3530887B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008191952A (ja) * 2007-02-05 2008-08-21 Kyoto Univ メモリ管理方法、メモリ管理装置、及びメモリ管理プログラムが記録されている記録媒体

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
湯浅太一,実時間ごみ集め,情報処理,日本,情報処理学会,1994年11月15日,Vol.35 No.11,P1006−1014
湯浅太一、中川雄一郎、小宮常康、八杉昌宏 ,リターン・バリア,情報処理学会論文誌,日本,情報処理学会,2000年11月15日,Vol.41 No.SIG9,P87−99

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008191952A (ja) * 2007-02-05 2008-08-21 Kyoto Univ メモリ管理方法、メモリ管理装置、及びメモリ管理プログラムが記録されている記録媒体

Also Published As

Publication number Publication date
JP2001273189A (ja) 2001-10-05

Similar Documents

Publication Publication Date Title
US6912554B2 (en) Method and apparatus for garbage collection using advanced marking techniques and restricted barrier to protect the data
KR100413915B1 (ko) 마이크로프로세서에기초한컴퓨터시스템과,그구동방법및그를위한백업시스템
US6769004B2 (en) Method and system for incremental stack scanning
JP4436036B2 (ja) 情報処理装置、トレース処理方法、プログラム及び記録媒体
KR100846499B1 (ko) 메모리를 관리하는 방법 및 장치
JP3530887B2 (ja) データ消去方法、データ消去装置、及び記録媒体
US8898404B2 (en) Memory management method and computer
US6735761B1 (en) Compile method frame detection method and device code discarding method and computer
US20100077163A1 (en) Memory Management Method, Memory Management Apparatus, and Recording Medium Recording the Memory Management Program
JP3785596B2 (ja) 関数実行方法、関数実行装置、コンピュータプログラム、及び記録媒体
JP2007280443A (ja) データ処理装置およびデータ処理方法とプログラム
CN114238220A (zh) 文件监控系统
JP4041347B2 (ja) ガベージコレクション装置及びガベージコレクション方法
JP4504756B2 (ja) Java(登録商標名)実行環境におけるメモリ管理方法及びメモリ管理プログラム
JP3601677B2 (ja) タスク処理システム
JP2006195516A (ja) データ管理装置、画像処理装置、データ管理方法、データ管理プログラム
JP5023169B2 (ja) 要実行パッチリスト作成装置および方法
JP2004341996A (ja) 印刷処理のためのタスク制御
JP2000155677A (ja) プログラムの暴走防止方法、そのためのコンピューターシステムと暴走防止プログラムを記録した記録媒体
JP2007048170A (ja) データ処理装置、データ処理実行制御方法及びデータ処理実行制御プログラム
JP2006293582A (ja) ジョブ自動リランシステム
JP4863072B2 (ja) データ処理装置とデータ処理方法ならびにプログラム
JP3185873B2 (ja) プログラム実行におけるタイミング記録装置
JPH0337718A (ja) ジョブ制御言語の構文チェック方式
JP3079825B2 (ja) 電子計算機装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20031208

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: 20040106

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20040126

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040126

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20040126

R150 Certificate of patent or registration of utility model

Ref document number: 3530887

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090312

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090312

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100312

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100312

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110312

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110312

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120312

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120312

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130312

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140312

Year of fee payment: 10

EXPY Cancellation because of completion of term