JPH1021067A - How to dynamically modify programs - Google Patents
How to dynamically modify programsInfo
- Publication number
- JPH1021067A JPH1021067A JP8170450A JP17045096A JPH1021067A JP H1021067 A JPH1021067 A JP H1021067A JP 8170450 A JP8170450 A JP 8170450A JP 17045096 A JP17045096 A JP 17045096A JP H1021067 A JPH1021067 A JP H1021067A
- Authority
- JP
- Japan
- Prior art keywords
- subroutine
- instruction
- program
- address
- call
- 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
Landscapes
- Stored Programmes (AREA)
Abstract
(57)【要約】
【課題】プログラムの動的修正を合理的に行えるように
すること。
【解決手段】サブルーチンコール(SUB-CALL)によりサブ
ルーチンに移って処理するプログラムを含む実行プログ
ラムをメインメモリ上に保持するマルチタスクデータ処
理装置のプログラム変更において、上記サブルーチンを
入れ替えるに当たり、新旧サブルーチンの置き換え処理
とSUB-CALLの実行を監視をする置換処理ルーチンと新サ
ブルーチンとをメインメモリの所要のアドレスエリアに
書き込み、上記置換処理ルーチンは実行状態にすると共
に、当該置換処理ルーチンにて旧サブルーチンの先頭の
命令を上記置換処理ルーチンへの実行に移る命令に変更
させ、上記SUB-CALLの実行監視の結果、当該SUB-CALLの
実行に移ると当該SUB-CALLを上記新サブルーチンの呼び
出し命令に書き換えた後、上記新サブルーチンにジャン
プ命令により処理を移行させることを特徴とする。
(57) [Summary] [Problem] To enable dynamic modification of a program to be performed rationally. In a program change of a multitask data processing device for holding an execution program including a program to be processed by moving to a subroutine by a subroutine call (SUB-CALL) in a main memory, when replacing the subroutine, replacing a new and old subroutine A replacement processing routine and a new subroutine for monitoring the processing and execution of the SUB-CALL are written in a required address area of the main memory, and the replacement processing routine is set to an execution state. Was changed to an instruction to move to the execution of the above replacement processing routine, and as a result of monitoring the execution of the SUB-CALL, when the execution of the SUB-CALL was changed, the SUB-CALL was rewritten to an instruction to call the new subroutine. Then, the process can be shifted to the new subroutine with a jump instruction. The features.
Description
【0001】[0001]
【発明の属する技術分野】本発明は、コンピュータソフ
トウェアの動的な更新に係わり、特にサーバなどのよう
に、端末に対するサービスを停止させてコンピュータの
ソフトウェアを手直しすることがし難いといった環境下
において、コンピュータを運用状態にしたまま、ソフト
ウェアを手直しすることを可能にするコンピュータソフ
トウェア変更方法に関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to dynamic updating of computer software, and more particularly to an environment in which it is difficult to stop a service to a terminal and modify software of the computer such as a server. The present invention relates to a computer software change method that enables software to be modified while a computer is in an operating state.
【0002】[0002]
【従来の技術】プロセッサが、メインメモリ上に存在す
るプログラムを実行するコンピュータシステムの場合、
プログラムをしばしば、部分的に修正、変更を行う必要
が生じる場合がある。2. Description of the Related Art In the case of a computer system in which a processor executes a program stored in a main memory,
Often, programs need to be partially modified or changed.
【0003】その場合、大規摸なシステムにおいては、
一度、実行中のプログラムを停止させ、再起動し直すの
が一般的であった。しかしながら、それには、多くの時
間と、手間がかかる場合が多い。また、コンピュータシ
ステムがサーバなどの場合には端末に対するサービスを
一時中止させなければならないことから、実行中のプロ
グラムを停止させ、修正済みプログラムに変更した後
に、システムを起動し直すといったことは、プログラム
の重大なバグ修正でも無い限り、なかなか実施し難い。In such a case, in a large-scale system,
It was common to stop the running program once and restart it again. However, this often takes a lot of time and effort. Also, if the computer system is a server, etc., the service to the terminal must be temporarily suspended, so stopping the running program, changing to a modified program, and then restarting the system is a problem. It's hard to implement unless it's a serious bug fix.
【0004】そこで、マルチタスク処理の場合に、再起
動せずにコンピュータシステムにプログラムを実行させ
た状態のまま、部分的にコンピュータシステムのメイン
メモリ上のプログラムを書換えるという技術が提案され
ており、また、実施されている。Therefore, in the case of multitask processing, a technique has been proposed in which a program on a main memory of a computer system is partially rewritten while the computer system is executing the program without restarting. , Has also been implemented.
【0005】例えば、情報処理学会第50回全国大会に
おいては、“「OSの動的バージョンアップ」三浦、平
山”が提案されている。ここで提案された方法では、修
正を行う部分を含むサブルーチンについて、そのサブル
ーチン全体と等価で、なおかつ必要な修正を加えた新し
いサブルーチンをメモリにロードし、その後、置き換え
られるサブルーチンの先頭に、新しい置き換えるサブル
ーチンのアドレスに制御を移す命令を書き込むことで、
以降、そのサブルーチンの呼び出しは、新しい方に置き
換わるというものである。[0005] For example, at the 50th National Convention of the Information Processing Society of Japan, "Dynamic OS Upgrade, Miura, Hirayama" has been proposed. By loading a new subroutine into memory that is equivalent to the entire subroutine, with necessary modifications, and then writes an instruction to transfer control to the address of the new subroutine at the beginning of the subroutine to be replaced,
Thereafter, the call of the subroutine will be replaced by the newer one.
【0006】[0006]
【発明が解決しようとする課題】しかしながら、上記の
方法では、従来は、一回のサブルーチンの呼び出しで済
んでいたプログラムの実行が、もともとのサブルーチン
の呼び出しと、それに基づいて新しいサブルーチンへの
実行の制御に移す手続きの2段階の手続きを踏んで後、
実行されるようになるため、 ・命令数が増える事による性能の劣化 ・キャッシュのヒットレートの低下 ・プロセッサ内部のパイプラインの乱れ 等の性能劣化を引き起こす可能性があった。従って、も
っと合理的な手法の開発が嘱望されている。そこで、本
発明の目的とするところは、上記の問題である性能劣化
を生じさせないで、当初の目標であるソフトウェアの動
的な更新を実現することにある。However, in the above-described method, the execution of a program, which conventionally required only one subroutine call, is replaced with the original subroutine call and the execution of a new subroutine based on the call. After going through the two-step procedure of transferring control,
Since the number of instructions is increased, the performance is degraded due to an increase in the number of instructions.-The hit rate of the cache is degraded. Therefore, development of a more rational method is desired. Therefore, an object of the present invention is to realize the initial target of dynamically updating software without causing the above-mentioned problem of performance degradation.
【0007】[0007]
【課題を解決するための手段】上記目的を達成するた
め、本発明は次のようにする。すなわち、第1には、プ
ロセッサとメインメモリを含むデータ処理装置において
実行すべきプログラムが、上記メインメモリにロードさ
れ、上記プロセッサによって実行が開始された状態で、
上記プログラムに含まれる第一のサブルーチンSUB1
00が呼び出された時、第一のサブルーチンSUB10
0を実行する代わりに、第二のサブルーチンSUB10
1を実行するように上記プログラムを動的に修正する方
法であって、サブルーチンSUB100が呼び出された
時に、その呼び出しを行った命令CODE201が存在
するメインメモリ上のアドレスADR300を算出し、
アドレスADR300に格納されているサブルーチンS
UB100を呼び出す命令CODE200を、サブルー
チンSUB101を呼び出す命令CODE201にメイ
ンメモリ上で書き換えた後、サブルーチンSUB101
の先頭へジャンプすることを特徴とする。To achieve the above object, the present invention is as follows. That is, first, a program to be executed in a data processing device including a processor and a main memory is loaded into the main memory, and the execution is started by the processor.
First subroutine SUB1 included in the above program
00 is called, the first subroutine SUB10
0 instead of executing a second subroutine SUB10
1 is a method of dynamically modifying the above program so as to execute Step 1. When a subroutine SUB100 is called, an address ADR300 on the main memory where the called instruction CODE201 exists is calculated,
Subroutine S stored at address ADR300
After rewriting the instruction CODE200 for calling the UB100 on the main memory to the instruction CODE201 for calling the subroutine SUB101, the subroutine SUB101 is rewritten.
Jump to the beginning of
【0008】このようなプログラムの動的修正方法によ
れば、アドレスADR300に格納されている命令の最
初の実行では, (1)サブルーチンSUB100の呼び出し (2)アドレスADR300に格納されている命令をサ
ブルーチンSUB101を呼び出すように修正 (3)サブルーチンSUB101の先頭ヘジャンプ (4)サブルーチンSUB101からリターンにより、
アドレスADR300に格納されている命令に続く命令
に戻って実行を継続が行われる.アドレスADR300
に格納されている命令の第2回目からの実行では、 (5)サブルーチンSUB101の呼び出し (6)サブルーチンSUB101からリターンにより、
アドレスADR300に格納されている命令に続く命令
に戻って実行を継続が行われる。つまり、アドレスAD
R300に格納されている命令の第2回目からの実行
が、従来より高速化される。従って、性能劣化を生じさ
せないで、当初の目標であるソフトウェアの動的な更新
を実現することができるようになる。According to such a dynamic program modification method, in the first execution of the instruction stored in the address ADR 300, (1) the call of the subroutine SUB 100, and (2) the instruction stored in the address ADR 300 (3) Jump to the head of subroutine SUB101 (4) Return from subroutine SUB101
Execution is continued by returning to the instruction following the instruction stored at address ADR300. Address ADR300
In the second and subsequent executions of the instruction stored in the subroutine SUB101, the subroutine SUB101 is called.
Returning to the instruction following the instruction stored at address ADR300, execution is continued. That is, the address AD
Execution of the instruction stored in R300 from the second time is faster than in the past. Therefore, it is possible to realize the initial target of dynamically updating software without causing performance degradation.
【0009】第2には、上記のプログラム修正方法であ
って、さらに、アドレスADR300に格納されている
命令は、プロセッサの持つあるレジスタREGの内容で
指示されるアドレスの命令を呼び出すものである場合
(つまり,アドレスADR300の命令を書き換えるこ
とでは、サブルーチンSUB101を呼び出すようにで
きない場合)、アドレスADR300より手前に存在す
る、レジスタREGに値を設定する命令(列)CODE
202を見つけ、かかる命令(列)CODE202を修
正することにより、アドレスADR300に格納されて
いる命令の実行によって、サブルーチンSUB101を
呼び出すように修正するものであることを特徴とする。Secondly, in the above-described method for correcting a program, further, the instruction stored in the address ADR 300 calls an instruction at an address indicated by the contents of a certain register REG of the processor. (That is, when it is not possible to call the subroutine SUB101 by rewriting the instruction of the address ADR300), the instruction (column) CODE for setting a value in the register REG existing before the address ADR300.
The subroutine SUB101 is called by executing the instruction stored in the address ADR300 by finding the instruction 202 and modifying the instruction (column) CODE202.
【0010】この場合、アドレスADR300の手前の
命令列の最初の実行では、 (1)サブルーチンSUB100を呼び出すようにレジ
スタREGを設定 (2)レジスタREGに格納されているアドレスに基づ
いてサブルーチンSUB100を呼び出し (3)上記(1)に対応する命令列を、サブルーチンS
UB101を呼び出すようにレジスタREGを設定する
ように修正 (4)サブルーチンSUB101の先頭ヘジャンプ (5)サブルーチンSUB101からリターンにより、
アドレスADR300に格納されている命令に続く命令
に戻って実行を継続といったことが行われる。アドレス
ADR300の手前の命令列の第2回目からの実行で
は、 (6)サブルーチンSUB101を呼び出すようにレジ
スタ400を設定 (7)レジスタREGに格納されているアドレスに基づ
いてサブルーチンSUB101を呼び出し (8)サブルーチンSUB101からリターンにより、
アドレスADR300に格納されている命令に続く命令
に戻って実行継続といったことが行われる。In this case, in the first execution of the instruction sequence before the address ADR300, (1) the register REG is set so as to call the subroutine SUB100. (2) the subroutine SUB100 is called based on the address stored in the register REG. (3) An instruction sequence corresponding to the above (1) is converted into a subroutine S
Modify so that register REG is set to call UB101. (4) Jump to beginning of subroutine SUB101. (5) Return from subroutine SUB101.
Returning to the instruction following the instruction stored in the address ADR 300 and continuing the execution are performed. In the second and subsequent executions of the instruction sequence before address ADR300, (6) register 400 is set to call subroutine SUB101 (7) subroutine SUB101 is called based on the address stored in register REG (8) By return from subroutine SUB101,
Returning to the instruction following the instruction stored in the address ADR 300, the execution is continued.
【0011】つまり、アドレスADR300に格納され
ている命令の第2回目からの実行が、従来より高速化さ
れる。従って、性能劣化を生じさせないで、当初の目標
であるソフトウェアの動的な更新を実現することができ
るようになる。That is, the speed of execution of the instruction stored in the address ADR 300 from the second time is higher than in the conventional case. Therefore, it is possible to realize the initial target of dynamically updating software without causing performance degradation.
【0012】第3には、プロセッサとメインメモリを含
むデータ処理装置において、実行すべきプログラムがメ
インメモリにロードされ、上記プロセッサによって実行
が開始された状態で、上記プログラムに含まれる第一の
サブルーチンSUB100が呼び出された時、サブルー
チンSUB100は、実行中に確定した条件によって、
サブルーチンSUB101と、サブルーチンSUB10
2に振り替えるもので、第一のサブルーチンSUB10
0を実行する代わりに、第二のサブルーチンSUB10
1またはSUB102を実行するように上記プログラム
を動的に修正する方法であって、サブルーチンSUB1
00が呼び出された時に、その呼び出しを行った命令C
ODE201が存在するメインメモリ上のアドレスAD
R300を算出し、アドレスADR300に格納されて
いるサブルーチンSUB100を呼び出す命令CODE
200を、上記条件によりサブルーチンSUB101を
呼び出す命令CODE201にメインメモリ上で書き換
えるか、あるいはサブルーチンSUB102を呼び出す
命令CODE202にメインメモリ上で書き換えた後、
サブルーチンSUB101の先頭ヘジャンプすることを
特徴とする。Third, in a data processing device including a processor and a main memory, a program to be executed is loaded into the main memory, and the first subroutine included in the program is started when the execution is started by the processor. When the SUB100 is called, the subroutine SUB100 is executed according to the conditions determined during execution.
Subroutine SUB101 and subroutine SUB10
2 and the first subroutine SUB10
0 instead of executing a second subroutine SUB10
1 or a method of dynamically modifying the above program to execute SUB102, the subroutine SUB1
When 00 is called, the instruction C that made the call
Address AD on main memory where ODE 201 exists
Instruction CODE for calculating R300 and calling subroutine SUB100 stored at address ADR300
After rewriting 200 on the main memory with an instruction CODE201 for calling the subroutine SUB101 under the above conditions, or after rewriting on the main memory an instruction CODE202 for calling the subroutine SUB102,
It is characterized by jumping to the head of the subroutine SUB101.
【0013】従来、サブルーチンSUB100では条件
判断をしてから、SUB101、SUB102に振り替
えていたが、この手法により、直接SUB101または
SUB102を呼び出せるようになる。Conventionally, in the subroutine SUB100, the condition is determined, and then the subroutine SUB101 or SUB102 is transferred. By this method, the SUB101 or SUB102 can be directly called.
【0014】第4には、前記第1および第2のプログラ
ムの動的修正方法であって、プログラム実行開始後に,
サブルーチンSUB100の代わりにサブルーチンSU
B101を実行する必要ありとなった時点で,2次記憶
装置等から動的にサブルーチンSUB101およびアド
レスADR300(もしくはその手前)の命令(列)を
修正するための命令列CODE500をメインメモリ上
にロードし、「サブルーチンSUB100」の先頭の命
令を「命令列CODE500」の先頭へのジャンプ命令
に修正することを特徴とする。Fourthly, there is provided a method for dynamically modifying the first and second programs, the method comprising:
Subroutine SU instead of subroutine SUB100
When it becomes necessary to execute B101, a subroutine SUB101 and an instruction sequence CODE500 for dynamically modifying an instruction (or a sequence) of the address ADR300 (or immediately before) are loaded from the secondary storage device or the like into the main memory. Then, the head instruction of the "subroutine SUB100" is corrected to a jump instruction to the head of the "instruction sequence CODE500".
【0015】このようにすると、プログラム実行開始後
に、“「サブルーチンSUB100」の代わりに「サブ
ルーチンSUB101」を実行する必要あり”、となる
例としては、例えば、浮動小数点プロセッサがあること
を想定して、それを使用して演算を行う「サブルーチン
SUB100」が、実際には、浮動小数点プロセッサが
ないため、演算をプロセッサでソフト的にエミュレーシ
ョンするための「サブルーチンSUB101」をロード
する場合などがある。In this way, as an example of "need to execute" subroutine SUB101 "instead of" subroutine SUB100 "after the start of program execution, for example, assuming that there is a floating point processor The "subroutine SUB100" for performing an operation using the same may actually load a "subroutine SUB101" for emulating the operation in a software manner by a processor because there is no floating point processor.
【0016】この場合、浮動小数点プロセッサがないと
判明した時点で、「サブルーチンSUB101」および
「アドレスADR300(もしくはその手前)」の命令
(列)を修正するための命令列CODE500がメイン
メモリ上にロードされる。In this case, when it is determined that there is no floating-point processor, an instruction sequence CODE 500 for modifying the instruction (column) of “subroutine SUB101” and “address ADR300 (or just before)” is loaded on the main memory. Is done.
【0017】また、「サブルーチンSUB100」の先
頭の命令が、命令列CODE500の先頭へのジャンプ
命令に修正される。その後に行われるプログラムの動的
修正の方法自体は、第1および第2の手法と同じであ
る。これによって、無駄な処理を回避できる合理的なソ
フトウェアの動的な更新を実現することができるように
なる。The head instruction of the "subroutine SUB100" is corrected to a jump instruction to the head of the instruction sequence CODE500. The method of dynamically modifying the program performed thereafter is the same as the first and second methods. As a result, it is possible to achieve rational and dynamic updating of software that can avoid unnecessary processing.
【0018】[0018]
【発明の実施の形態】(具体例1)以下、図面を参照し
ながらの具体例について説明する。はじめに本発明の概
念について例をあげて説明する。DESCRIPTION OF THE PREFERRED EMBODIMENTS (Specific Example 1) Hereinafter, a specific example will be described with reference to the drawings. First, the concept of the present invention will be described with an example.
【0019】本方法では、プログラムの4つの部分が関
連して動作する。これらのプログラムの中身を説明する
ために、仮想的なCPUの命令を、まず定義する。 “CALL xxxx” : xxxxにあるサブルーチンを呼び出す。呼び出し
先で“RET”を実行すると、“CALL”があった次
の命令から実行する。In the method, four parts of the program operate in conjunction. In order to explain the contents of these programs, first, a virtual CPU instruction is defined. "CALL xxxx": Calls a subroutine in xxxx. When "RET" is executed at the call destination, execution starts from the next instruction where "CALL" is present.
【0020】“RET” : “CALL”から読み出されたサブルーチン内で実
行すると、“CALL”の次の命令に戻る。"RET": When executed in the subroutine read from "CALL", returns to the instruction following "CALL".
【0021】“JMP xxxx” : xxxxに制御を移す。“CALL”と違って“R
ET”は“JMP”には意味がない。"JMP xxxx": Control is transferred to xxxx. Unlike “CALL”, “R
"ET" has no meaning in "JMP".
【0022】“SOME1”…“SOMEn” : “JMP”,“CALL”,“RET”以外のCP
Uの命令 すなわち、ニーモニック“CALL xxxx xx
x”は“CALL”がサブルーチンコールを示す命令部
分であり、これに続く“xxxx xxx”が呼び出し
番地であって、“CALL xxxx”は“xxxx”
にあるサブルーチンを呼び出すという意味になる。"SOME1"... "SOMEn": CP other than "JMP", "CALL", "RET"
The instruction of U, that is, the mnemonic “CALL xxxx xx
“x” is an instruction part where “CALL” indicates a subroutine call, and “xxxxxxx” following this is a call address, and “CALL xxxx” is “xxxx”.
Means calling a subroutine.
【0023】“RET”はサブルーチンからメインルー
チンへの復帰を示す命令であり、サブルーチンを実行し
ていてサブルーチン中の“RET”命令に突き当たる
と、メインルーチンにおいて当該サブルーチンへの分岐
命令であった“CALL”の次に記述された命令から実
行する。つまり、“CALL xxxx”の実行によ
り、“xxxx”にあるサブルーチンが呼び出され、こ
のサブルーチンの呼び出し先で“RET”を実行する
と、プログラム上で前記“CALL”が記述されていた
位置の次の位置に記述されている命令に移って、ここか
ら実行する。"RET" is an instruction indicating the return from the subroutine to the main routine. When the "RET" instruction in the subroutine is executed during execution of the subroutine, "branch instruction to the subroutine in the main routine" is issued. CALL "is executed from the instruction described next. In other words, the execution of "CALL xxxx" calls the subroutine at "xxxx". When "RET" is executed at the call destination of this subroutine, the position next to the position where "CALL" is described in the program is displayed. Move to the instruction described in, and execute from here.
【0024】ニーモニック“JMP xxxx”は“x
xxx”番地にある命令に制御を移す。“CALL”と
違って“RET”は“JMP”に対しては何も意味がな
い。ニーモニック“SOME1”…“SOMEn”は、
“JMP”,“CALL”,“RET”以外のCPUの
命令である。これらを用いて、プログラムの動的修正の
一例をここに紹介する。The mnemonic “JMP xxxx” is “x
The control is transferred to the instruction at the address "xxx." Unlike "CALL,""RET" has no meaning for "JMP." The mnemonics "SOME1".
These are CPU instructions other than “JMP”, “CALL”, and “RET”. An example of dynamic modification of a program using these will be introduced here.
【0025】いずれも、コンピュータシステムにおける
書き込み可能なメインメモリ上で動作していることを期
待している。図1は本発明の主要な要素である動的修正
の4つの部分を表している。すなわち、図1に示す次の
[I]から[IV]の要素である。Each of them is expected to operate on a writable main memory in a computer system. FIG. 1 shows four parts of a dynamic modification which is a key element of the present invention. That is, the following elements [I] to [IV] shown in FIG.
【0026】要素[I].呼び出し元 これは、運用中のプログラム中における呼び出し元のプ
ログラムであり、特に置き換えを考慮したものではな
い。単純なサブルーチン〔SUB1〕を呼び出すプログ
ラムである。このプログラムはアドレス“1000”か
ら始まっており、アドレス“1000”には、“CAL
L 2000”なる命令が、また、アドレス“100
1”には“SOME1”命令が存在する。Element [I]. Caller This is the caller's program in the running program and is not specifically considered for replacement. This is a program that calls a simple subroutine [SUB1]. This program starts from an address “1000”, and the address “1000” includes “CAL”
L 2000 ”, the address“ 100 ”
"1" has a "SOME1" instruction.
【0027】要素[II].置き換えられるサブルーチン これは、運用中のプログラム中におけるサブルーチン
〔SUB old〕であり、このサブルーチン〔SUB ol
d〕に不都合があって、プログラム内容の変更が必要に
なったものとする。このサブルーチン〔SUB old〕
も、はじめから特に置き換えを考慮したプログラムとな
っているわけではない。単純なサブルーチンプログラム
である。このプログラムはアドレス2000から始ま
り、“RET”で終る構成としてあるものとする。Element [II]. Subroutine to be replaced This is a subroutine [SUB old] in the running program, and this subroutine [SUBol]
It is assumed that there is an inconvenience in d) and the program contents need to be changed. This subroutine [SUB old]
However, it is not necessarily a program that specifically considers replacement. It is a simple subroutine program. It is assumed that the program starts at address 2000 and ends with "RET".
【0028】要素[ III].置き換えるサブルーチン これは、サブルーチン〔SUB old〕の持つ不都合を修
正した新しいサブルーチン〔SUB new〕である。[I
I]に示すサブルーチン〔SUB old〕と交換したい新
サブルーチンである。旧サブルーチンと置き換えるため
に、特別の準備をする必要はなく、通常にプログラミン
グされたサブルーチンプログラムである。この例では、
アドレス3000から始まり、“RET”で終る内容と
なっている。Element [III]. Replacement subroutine This is a new subroutine [SUB new] in which the inconvenience of the subroutine [SUB old] is corrected. [I
This is a new subroutine to be replaced with the subroutine [SUB old] shown in [I]. No special preparation is required to replace the old subroutine, it is a normally programmed subroutine program. In this example,
The content starts from the address 3000 and ends with “RET”.
【0029】要素[IV].変換処理ルーチン 旧サブルーチンを、新サブルーチンに置き換える処理を
実現するルーチンであり、本発明を具体化した主要なプ
ログラムで、置換処理機能プログラムである。Element [IV]. Conversion processing routine This is a routine for realizing processing for replacing an old subroutine with a new subroutine, and is a main program embodying the present invention, and is a replacement processing function program.
【0030】この置換処理機能プログラムは、この例で
はアドレス4000から始まるかたちで説明してある
が、メインルーチンや他のサブルーチンなど、他のプロ
グラムの配置エリアと重ならないアドレス領域を利用す
れば良く、これの例に限定されるものではない。このプ
ログラムは、サブルーチンとして扱われ、以下のような
動作をする。In this example, the replacement processing function program is described starting from an address 4000. However, it is sufficient to use an address area that does not overlap an area where another program is located, such as a main routine or another subroutine. It is not limited to this example. This program is treated as a subroutine and operates as follows.
【0031】(a)呼び出し元のアドレスを求める。
(汎用のCPUの場合、サブルーチンの呼び出しもとの
アドレスは、レジスタやスタックメモリ内に格納されて
いる。そこでそのレジスタやスタックメモリ内の格納内
容を参照して求める。) (b)その求めた呼び出し元のアドレスから、該当のア
ドレスにおけるメモリの中身(機械語命令)を読み出し
て、その命令が、“CALL 2000”であったら、
それを“CALL 3000”に書き直す。(A) Find the address of the caller.
(In the case of a general-purpose CPU, the address from which the subroutine is called is stored in a register or the stack memory. Therefore, the address is obtained by referring to the contents stored in the register or the stack memory.) (B) The obtained address is obtained. The contents (machine language instruction) of the memory at the corresponding address are read from the address of the caller, and if the instruction is “CALL 2000”,
Rewrite it as "CALL 3000".
【0032】(c)“JMP 3000”を実行する。
今、マルチタスクのコンピュータシステム(データ処理
装置)において、図2に示すように、要素[I]と[I
I]を含むプログラムがメインメモリに記憶され、運用
中のプログラムの一つとしてCPUがときおり、実行し
ていたとする。そして、このうち、[II]であるサブル
ーチン〔SUB old〕にプログラム上の不都合があり、
修正したいとする。その場合、本発明では、修正したサ
ブルーチンプログラムをサブルーチン〔SUB new〕と
して用意する。これが[III ]である。そして、この
[III ]であるサブルーチン〔SUB new〕をその先頭
アドレスが“3000”番地になるように、メインメモ
リに記憶し、また、[IV]である置換処理機能プログラ
ムをその先頭アドレスが“4000”番地になるよう
に、メインメモリに記憶する。(C) Execute "JMP 3000".
Now, in a multitasking computer system (data processing device), as shown in FIG. 2, elements [I] and [I
[I] is stored in the main memory, and it is assumed that the CPU is occasionally executed as one of the operating programs. Among them, the subroutine [SUB old] which is [II] has a program disadvantage.
You want to fix it. In this case, in the present invention, the corrected subroutine program is prepared as a subroutine [SUB new]. This is [III]. Then, the subroutine [SUB new] which is [III] is stored in the main memory so that the head address becomes "3000", and the replacement processing function program which is [IV] is stored in the main memory with the head address " It is stored in the main memory so that the address becomes 4000 ".
【0033】このようにして、上述の要素である[I]
〜[IV]の4つの部分がコンピュータシステムのメイン
メモリ上に置かれるかたちとなる(図3参照〔状態
A〕)。この状態において、本発明で、新旧サブルーチ
ンの置き換えを実現するには、IVの置換処理機能プログ
ラムはまずはじめに、メインメモリ上におけるアドレス
2000に記憶されている“SOME2”なる命令を、
“JMP 4000”に書き換える。Thus, the above-mentioned element [I]
To [IV] are placed on the main memory of the computer system (see FIG. 3 [State A]). In this state, in order to realize the replacement of the old and new subroutines according to the present invention, the replacement processing function program of the IV firstly executes the instruction "SOME2" stored at the address 2000 on the main memory.
Rewrite to "JMP 4000".
【0034】この直後の状態が、図4(b)に示す〔状
態B〕である。すると、それ以降、アドレス1000か
らの実行があると、 (ST1). サブルーチン2000を呼び出す。The state immediately after this is [State B] shown in FIG. Then, if there is an execution from the address 1000 thereafter (ST1). Call subroutine 2000.
【0035】(ST2). これにより、前述の[IV]
のルーチンすなわち、変換処理ルーチンに“JMP”す
る。これができるのは、それ以前にアドレス2000の
内容が“JMP 4000”に書き換えられていたから
である。(ST2). As a result, the aforementioned [IV]
"JMP" to the conversion routine. This can be done because the contents of the address 2000 were previously rewritten to "JMP 4000".
【0036】(ST3). 当該変換処理ルーチンで、
アドレス1000の中身を“CALL 3000”に書
き直す。この状態が〔状態C〕(図5(b)参照)であ
る。(ST3). In the conversion processing routine,
Rewrite the contents of address 1000 to "CALL 3000". This state is [State C] (see FIG. 5B).
【0037】(ST4). 当該変換処理ルーチンは最
後に当該変換処理ルーチンに記述されている“JMP
3000”なる命令を実行する。これにより、アドレス
“3000”にジャンプし、このアドレス“3000”
に記憶させた新サブルーチン〔SUB new〕を実行する
ことになり、旧サブルーチン〔SUB old〕を実行する
ことが無くなる。(ST4). The conversion processing routine ends with “JMP” described in the conversion processing routine.
The instruction "3000" is executed, thereby jumping to the address "3000" and executing the address "3000".
Is executed, and the old subroutine [SUB old] is not executed.
【0038】以上のように、本発明方法では、サブルー
チンコールにおいて、このサブルーチンコールにより呼
び出されるサブルーチンの内容を変更したい場合に、別
のアドレス領域にその変更済みのサブルーチンを配置
し、新旧サブルーチンの置き換えを管理処理する置換処
理機能のルーチンを所要のアドレス領域に配置し、旧サ
ブルーチンの先頭アドレスの命令を置換処理機能のルー
チンのジャンプ実行命令(“JMP”)に変更し、この
変更後、上記サブルーチンコールがまだ1回も実行され
ていない段階では、取り敢えず旧サブルーチンがコール
されても置換処理機能のルーチンにジャンプするように
して旧サブルーチンをスキップさせる状態にしておき、
通常のサブルーチン“CALL 2000”(アドレス
2000への呼び出し)を実行すると、置換処理機能の
ルーチンが機能することにより、アドレス“1000”
のサブルーチンコールは“2000”が“3000”に
置き換えられて、“CALL 3000”になり、さら
に、アドレス“1000”の内容は、“CALL 30
00”に書き直されて、以降、アドレス“1000”か
らは、直接、アドレス“3000”がサブルーチンコー
ルされるようにしたものである。このように、旧サブル
ーチンを呼び出すサブルーチンコール命令のアドレス
“1000”が本発明により、旧サブルーチンに代わる
新サブルーチンを直接コールする命令に変更されること
から、アドレス“1000”の内容を書換えなかった従
来の手法に比べて無駄が無く短い処理ステップで新サブ
ルーチンを実行することができるようになって、効率的
なプログラム実行処理ができるようになる。As described above, in the method of the present invention, when it is desired to change the contents of the subroutine called by this subroutine call in the subroutine call, the changed subroutine is arranged in another address area and the old and new subroutines are replaced. Is placed in a required address area, and the instruction at the start address of the old subroutine is changed to a jump execution instruction (“JMP”) of the routine of the replacement processing function. At the stage where the call has not been executed even once, the old subroutine is skipped by jumping to the replacement processing routine even if the old subroutine is called for the time being,
When a normal subroutine "CALL 2000" (call to address 2000) is executed, the routine of the replacement processing function functions, and the address "1000" is obtained.
In the subroutine call, "2000" is replaced with "3000" to become "CALL 3000", and the content of the address "1000" is "CALL 30".
00 ", and thereafter, the address" 3000 "is directly subroutine called from the address" 1000. "Thus, the address" 1000 "of the subroutine call instruction for calling the old subroutine. Is changed to an instruction that directly calls a new subroutine in place of the old subroutine according to the present invention, so that the new subroutine is executed in a short processing step without waste compared to the conventional method in which the contents of the address “1000” are not rewritten. And efficient program execution processing can be performed.
【0039】(具体例2)本発明を適用した具体的シス
テムを説明する。図6は本発明を適用したコンピュータ
システムの構成例を示すブロック図である。図中、1は
CPU(プロセッサ)、2はメインメモリ、3は表示装
置(ディスプレイなど)、4は操作装置(キーボードや
マウスなど)、5は外部記憶装置(ハードディスクや光
磁気ディスク、フロッピディスクなど)、6は出力部
(プリンタやシリアル入出力インターフェースなど)、
10はプログラム動的修正処理機能である。(Specific Example 2) A specific system to which the present invention is applied will be described. FIG. 6 is a block diagram showing a configuration example of a computer system to which the present invention is applied. In the figure, 1 is a CPU (processor), 2 is a main memory, 3 is a display device (display, etc.), 4 is an operation device (keyboard, mouse, etc.), 5 is an external storage device (hard disk, magneto-optical disk, floppy disk, etc.) ), 6 is an output unit (printer, serial input / output interface, etc.),
Reference numeral 10 denotes a program dynamic correction processing function.
【0040】本システムにおいては、メインメモリ2に
プログラム動的修正処理機能をプログラムで備えてお
り、このプログラム動的修正処理機能10をCPU 1
が実行することで、修正したいサブルーチンを修正済み
サブルーチンに切り替えてサブルーチンコールを行うよ
うに、対象のサブルーチンコール命令を書き込んだメイ
ンメモリ2のアドレスの内容を変更することができるよ
うにしてある。In this system, the main memory 2 has a program dynamic correction processing function as a program.
Is executed, the contents of the address of the main memory 2 in which the target subroutine call instruction is written can be changed so that the subroutine to be corrected is switched to the corrected subroutine and the subroutine call is performed.
【0041】すなわち、プログラム動的修正処理機能1
0は、図7に示すプログラム動的修正処理機能主部と、
図8に示す置換処理機能部とからなり、置換処理機能部
は必要に応じてメインメモリ2にロードして使用する置
換処理のためのプログラムである。そして、修正済みサ
ブルーチンをメインメモリ2に書き込んだ際に、置換処
理機能部はメインメモリ2における邪魔にならないアド
レスエリアにロードして使用され、用済みになったとき
にはメインメモリ2上から消去される。That is, program dynamic correction processing function 1
0 is a program dynamic correction processing function main part shown in FIG.
The replacement processing function unit shown in FIG. 8 is a replacement processing function program that is loaded into the main memory 2 as needed and used. When the corrected subroutine is written in the main memory 2, the replacement processing function unit is used by loading it into an unobstructed address area in the main memory 2, and is erased from the main memory 2 when it is no longer needed. .
【0042】今、あるサブルーチンコールに対するサブ
ルーチン(旧サブルーチン)に修正の必要が生じたとき
に、図7に示すように、操作装置4を操作してCPU
1により、このプログラム動的修正処理機能主部の機能
を起動し、実行開始すると、当該プログラム動的修正処
理機能主部の機能は、まずはじめに入力モードに入り
(S1)、修正済みサブルーチン(新サブルーチン)を
入力できる状態にする(S2)。そして、この状態にお
いてプログラマ若しくはオペレータが例えば、操作装置
4を操作して先頭アドレスと修正済みサブルーチンのプ
ログラムを入力すると、これを取り込み、その修正済み
サブルーチンのプログラムを、指定の先頭アドレス位置
からメインメモリ2上に書き込み、記憶させる(S
3)。Now, when it becomes necessary to modify a subroutine (old subroutine) for a certain subroutine call, as shown in FIG.
1. When the function of the main part of the program dynamic correction processing function is started and executed according to 1, the function of the main part of the program dynamic correction processing function first enters the input mode (S1), and the corrected subroutine (new (S2). Then, in this state, when the programmer or the operator operates the operation device 4 to input the head address and the corrected subroutine program, for example, the programmer or operator inputs the head address and the corrected subroutine program and transfers the corrected subroutine program from the designated head address position to the main memory 2 and store (S
3).
【0043】修正済みサブルーチンの入力が完了し、プ
ログラマ若しくはオペレータが入力モードの終了操作を
すると、当該プログラム動的修正処理機能主部の機能
は、次に対象サブルーチンコールの指定待ちとなる。そ
こで、次にプログラマ若しくはオペレータは前述したあ
るサブルーチンコールの命令内容記述を登録するため
に、入力する。これにより、当該サブルーチンコールの
内容が登録され(S5)、これが比較データとなる(S
6)。これが終わると、当該プログラム動的修正処理機
能主部の機能は、次に置換処理機能のルーチンをメイン
メモリ2における所定のアドレス領域、若しくはプログ
ラマ若しくはオペレータが操作装置4からアドレス領域
の指定を行ったとすれば、その指定されたアドレス領域
にロードする。そして、このロードされた置換処理機能
のルーチンを起動する(S7)。When the input of the corrected subroutine is completed and the programmer or the operator performs the operation of terminating the input mode, the function of the main part of the program dynamic correction processing function waits for the designation of the target subroutine call. Then, the programmer or the operator inputs to register the instruction content description of a certain subroutine call. As a result, the contents of the subroutine call are registered (S5), and this becomes comparison data (S5).
6). When this is completed, the function of the main part of the program dynamic correction processing function determines that the routine of the replacement processing function next specifies a predetermined address area in the main memory 2 or a programmer or an operator specifies an address area from the operation device 4. Then, the data is loaded into the specified address area. Then, the loaded replacement processing function routine is started (S7).
【0044】置換処理機能のルーチンでは起動される
と、まずはじめに前述の変更したいサブルーチン先頭の
命令(旧サブルーチン先頭の命令)を置換処理機能のル
ーチンへの“JMP”命令に書き換える(図8のS2
1)。置換処理機能ルーチンのメインメモリ2上での記
憶アドレスは決めてあるので、当該置換処理機能ルーチ
ンへの“JMP”命令は一義的に行うことができる。When activated in the replacement function routine, first, the above-described subroutine head instruction to be changed (the old subroutine head instruction) is rewritten to the "JMP" instruction for the replacement function routine (S2 in FIG. 8).
1). Since the storage address of the replacement processing function routine on the main memory 2 is determined, the "JMP" instruction to the replacement processing function routine can be uniquely executed.
【0045】次にサブルーチンコールの監視に移る(図
8のS22)。ここではマルチタスクにより複数のプロ
グラムが実行されており、置換処理機能のルーチンもマ
ルチタスクにより実行されている。そして、置換処理機
能のルーチンではCPU 1がサブルーチンコールを実
行したか否かを監視し、サブルーチンコールが実行され
れば、そのサブルーチンコール呼び出し元のアドレスを
求める(図8のS23)。汎用のCPUの場合、サブル
ーチンの呼び出し元のアドレスは、レジスタやスタック
メモリ内に格納されている。そこでそのレジスタやスタ
ックメモリ内の格納内容を参照して求める。Next, the process proceeds to monitoring of a subroutine call (S22 in FIG. 8). Here, a plurality of programs are executed by the multitask, and a routine of the replacement processing function is also executed by the multitask. Then, in the routine of the replacement processing function, it is monitored whether or not the CPU 1 has executed the subroutine call, and if the subroutine call is executed, the address of the subroutine call calling source is obtained (S23 in FIG. 8). In the case of a general-purpose CPU, the caller address of the subroutine is stored in a register or a stack memory. Therefore, it is determined by referring to the contents stored in the register and the stack memory.
【0046】次にそのアドレスからメインメモリ2の該
当番地の中味を読出す(図8のS24)。そしてそれを
比較データと比較して一致しているか否かを調べる(図
8のS25)。比較データはプログラム動的修正処理機
能主部で求めたサブルーチンコールの命令内容である
(図7のS6参照)。Next, the contents of the corresponding address of the main memory 2 are read from the address (S24 in FIG. 8). Then, it is compared with the comparison data to check whether they match (S25 in FIG. 8). The comparison data is the instruction content of the subroutine call obtained by the main part of the program dynamic correction processing function (see S6 in FIG. 7).
【0047】比較の結果、一致していれば目的のサブル
ーチンコールであるから、呼び出し元サブルーチンコー
ルの先頭命令を、修正済みサブルーチン(新サブルーチ
ン)に“JMP”する命令に書き換える(図8のS2
6)。そして、修正済みサブルーチンの先頭番地に“J
MP”する(図8のS27)。As a result of the comparison, if they match, it is a target subroutine call, so the top instruction of the calling subroutine call is rewritten to an instruction to perform "JMP" to the corrected subroutine (new subroutine) (S2 in FIG. 8).
6). Then, "J" is added to the head address of the corrected subroutine.
MP ”(S27 in FIG. 8).
【0048】具体的例をあげて説明する。今、図2に示
すようなアドレス“1000”から始まるプログラムが
あり、アドレス“1000”の内容が“CALL 20
00”というサブルーチンコールである。そして、メイ
ンメモリのアドレス“2000”には“SOME2”,
“SOME3”,“RET”といった内容のサブルーチ
ンがある。A specific example will be described. Now, there is a program starting from the address “1000” as shown in FIG. 2, and the content of the address “1000” is “CALL 20”.
The subroutine call is “00”, and the address “2000” of the main memory is “SOME2”,
There are subroutines such as "SOME3" and "RET".
【0049】このアドレス“2000”からのサブルー
チン(旧サブルーチン)に、修正の必要が生じたとき
に、図7に示すように、操作装置4を操作してCPU
1により、このプログラム動的修正処理機能主部の機能
を起動し、実行開始すると、当該プログラム動的修正処
理機能主部の機能は、まずはじめに入力モードに入り
(S1)、修正済みサブルーチン(新サブルーチン)を
入力できる状態にする(S2)。そして、この状態にお
いてプログラマ若しくはオペレータが例えば、操作装置
4を操作して先頭アドレスと修正済みサブルーチンのプ
ログラムを入力する。例えば、図3に符号III を付して
示す如く、先頭アドレスが“3000”でプログラム内
容が“SOME4”,“SOME5”,“RET”とい
ったものであったとする。プログラム動的修正処理機能
主部はこれを取り込み、その修正済みサブルーチンのプ
ログラムを、指定の先頭アドレス位置“3000”番地
からメインメモリ2上に書き込み、記憶させる(S
3)。When it is necessary to modify the subroutine (old subroutine) starting from the address "2000", as shown in FIG.
1. When the function of the main part of the program dynamic correction processing function is started and executed according to 1, the function of the main part of the program dynamic correction processing function first enters the input mode (S1), and the corrected subroutine (new (S2). Then, in this state, the programmer or the operator operates, for example, the operation device 4 to input the head address and the corrected subroutine program. For example, suppose that the start address is "3000" and the program content is "SOME4", "SOME5", "RET", as shown by reference numeral III in FIG. The main part of the program dynamic correction processing function fetches this, writes the corrected subroutine program from the designated start address position "3000" on the main memory 2 and stores it (S
3).
【0050】修正済みサブルーチンの入力が完了し、プ
ログラマ若しくはオペレータが入力モードの終了操作を
すると、当該プログラム動的修正処理機能主部の機能
は、次に対象サブルーチンコールの指定待ちとなる。そ
こで、次にプログラマ若しくはオペレータは前述したあ
るサブルーチンコールの命令内容記述を登録するため
に、入力する。When the input of the corrected subroutine is completed and the programmer or the operator performs the operation of terminating the input mode, the function of the main part of the program dynamic correction processing function waits for the next specification of the target subroutine call. Then, the programmer or the operator inputs to register the instruction content description of a certain subroutine call.
【0051】これにより、当該サブルーチンコールの内
容が登録され(S5)、これが比較データとなる(S
6)。これが終わると、当該プログラム動的修正処理機
能主部の機能は、次に符号IVを付して示す置換処理機能
のルーチンをメインメモリ2における所定のアドレス領
域、若しくはプログラマ若しくはオペレータが操作装置
4からアドレス領域の指定を行ったとすれば、その指定
されたアドレス領域にロードする。この例の場合、メイ
ンメモリ2におけるアドレス“4000”から始まる領
域にロードされている。この段階でのメインメモリ2に
おけるプログラムの配置状況が図3、図4(a)に示す
〔状態A〕である。As a result, the contents of the subroutine call are registered (S5), which becomes comparison data (S5).
6). When this is completed, the function of the main part of the program dynamic correction processing function is that the routine of the replacement processing function indicated by the reference numeral IV is set to a predetermined address area in the main memory 2 or a programmer or an operator If an address area is specified, the data is loaded into the specified address area. In the case of this example, the data is loaded in an area starting from the address “4000” in the main memory 2. The arrangement state of the programs in the main memory 2 at this stage is [State A] shown in FIGS. 3 and 4A.
【0052】そして、プログラム動的修正処理機能主部
の機能は、このロードされた置換処理機能のルーチンを
起動する(S7)。置換処理機能のルーチンでは起動さ
れると、まずはじめに前述の変更したいサブルーチン先
頭の命令(旧サブルーチン先頭の命令でこの例の場合、
アドレス“2000”の“SOME2”)を置換処理機
能のルーチンへの“JMP”命令に書き換える(図8の
S21)。置換処理機能ルーチンのメインメモリ2上で
の記憶アドレスは決めてあるので、当該置換処理機能ル
ーチンへの“JMP”命令は一義的に行うことができ
る。すなわち、置換処理機能ルーチンはメインメモリ2
上のアドレス“4000”であるので、アドレス“20
00”の“SOME2”は“JMP 4000”なる命
令に書き換えられる。この状態が図4(b)、図5
(a)に示す〔状態B〕である。Then, the function of the main part of the program dynamic correction processing function activates the loaded replacement processing function routine (S7). When activated in the replacement processing function routine, first, the first instruction of the subroutine to be changed as described above (the first instruction of the old subroutine, in this case,
"SOME2" at the address "2000") is rewritten into a "JMP" instruction for the replacement processing function routine (S21 in FIG. 8). Since the storage address of the replacement processing function routine on the main memory 2 is determined, the "JMP" instruction to the replacement processing function routine can be uniquely executed. That is, the replacement processing function routine is executed in the main memory 2.
Since the above address is “4000”, the address “20”
00 is rewritten to an instruction “JMP 4000.” This state is shown in FIGS.
This is [State B] shown in FIG.
【0053】次に置換処理機能ルーチンは、サブルーチ
ンコールの監視に移る(図8のS22)。ここではマル
チタスクにより複数のプログラムが実行されており、置
換処理機能のルーチンもマルチタスクにより実行されて
いる。そして、置換処理機能のルーチンではCPU 1
がサブルーチンコールを実行したか否かを監視し、サブ
ルーチンコールが実行されれば、そのサブルーチンコー
ル呼び出し元のアドレスを求める(図8のS23)。汎
用のCPUの場合、サブルーチンの呼び出し元のアドレ
スは、レジスタやスタックメモリ内に格納されているか
ら、そのレジスタやスタックメモリ内の格納内容を参照
して求める。Next, the replacement processing function routine shifts to monitoring of a subroutine call (S22 in FIG. 8). Here, a plurality of programs are executed by the multitask, and a routine of the replacement processing function is also executed by the multitask. In the routine of the replacement processing function, the CPU 1
Monitors whether the subroutine call has been executed, and if the subroutine call is executed, the subroutine call source address is obtained (S23 in FIG. 8). In the case of a general-purpose CPU, since the subroutine call source address is stored in a register or a stack memory, the address is obtained by referring to the contents stored in the register or the stack memory.
【0054】次にそのアドレスからメインメモリ2の該
当番地の中身を読出す(図8のS24)。そしてそれを
比較データと比較して一致しているか否かを調べる(図
8のS25)。比較データはこの例の場合、プログラム
動的修正処理機能主部で求めたサブルーチンコールの命
令内容である“CALL 2000”である(図7のS
6参照)。Next, the contents of the corresponding address in the main memory 2 are read from the address (S24 in FIG. 8). Then, it is compared with the comparison data to check whether they match (S25 in FIG. 8). In this case, the comparison data is "CALL 2000" which is the instruction content of the subroutine call obtained by the main part of the program dynamic correction processing function (S in FIG. 7).
6).
【0055】比較の結果、一致していれば目的のサブル
ーチンコールであるから、呼び出し元サブルーチンコー
ルの先頭命令を、修正済みサブルーチン(新サブルーチ
ン)に“JMP”する命令、すなわち、この例の場合、
修正済みサブルーチンはアドレス“3000”に記憶さ
せてあるので、呼び出し元サブルーチンコールの先頭命
令であるアドレス“1000”の“CALL 200
0”を“CALL 3000”に書き換える(図8のS
26)。この状態が、図5(b)に示す〔状態C〕であ
る。As a result of the comparison, if they match, it is a target subroutine call. Therefore, an instruction to "JMP" the head instruction of the calling subroutine call to the corrected subroutine (new subroutine), that is, in this example,
Since the corrected subroutine is stored at address “3000”, “CALL 200” at address “1000” which is the first instruction of the calling subroutine call is used.
0 ”to“ CALL 3000 ”(S in FIG. 8).
26). This state is [State C] shown in FIG.
【0056】そして、置換処理機能のルーチンは修正済
みサブルーチンの先頭番地である“3000”番地に
“JMP”する(図8のS27)。これにより、アドレ
ス“3000”にジャンプし、このアドレス“300
0”に記憶させた新サブルーチンIII を実行することに
なり、以後はアドレス“2000”から始まる旧サブル
ーチンIIを実行することが無くなる。Then, the routine of the replacement processing function makes "JMP" to the address "3000" which is the head address of the corrected subroutine (S27 in FIG. 8). As a result, the address jumps to the address “3000” and the address “300”
The new subroutine III stored in "0" is executed, and thereafter, the old subroutine II starting from the address "2000" is not executed.
【0057】以上のように、本発明システムでは、サブ
ルーチンコールにおいて、このサブルーチンコールによ
り呼び出されるサブルーチンの内容を変更したい場合
に、別のアドレス領域にその変更済みのサブルーチンを
配置し、新旧サブルーチンの置き換えを管理処理する置
換処理機能のルーチンを所要のアドレス領域に配置し、
旧サブルーチンの先頭アドレスの命令を置換処理機能の
ルーチンのジャンプ実行命令(“JMP”)に変更し、
この変更後、上記サブルーチンコールがまだ1回も実行
されていない段階では、取り敢えず旧サブルーチンがコ
ールされても置換処理機能のルーチンにジャンプするよ
うにして旧サブルーチンをスキップさせる状態にしてお
き、通常のサブルーチン“CALL 2000”(アド
レス2000への呼び出し)を実行すると、置換処理機
能のルーチンが機能することにより、アドレス“100
0”のサブルーチンコールは“2000”が“300
0”に置き換えられて、“CALL 3000”にな
り、さらに、アドレス“1000”の内容は、“CAL
L 3000”に書き直されて、以降、アドレス“10
00”からは、直接、アドレス“3000”がサブルー
チンコールされるようにしたものである。このように、
旧サブルーチンを呼び出すサブルーチンコール命令のア
ドレス“1000”が本発明により、旧サブルーチンに
代わる新サブルーチンを直接コールする命令に変更され
ることから、アドレス“1000”の内容を書換えなか
った従来の手法に比べて無駄が無く短い処理ステップで
新サブルーチンを実行することができるようになって、
効率的なプログラム実行処理ができるようになる。As described above, in the system of the present invention, when it is desired to change the contents of the subroutine called by this subroutine call in the subroutine call, the changed subroutine is arranged in another address area and the old and new subroutines are replaced. The replacement processing function routine that manages the
Change the instruction at the start address of the old subroutine to the jump execution instruction (“JMP”) of the replacement processing routine,
After this change, if the subroutine call has not been executed even once, the old subroutine is skipped by jumping to the routine of the replacement processing function even if the old subroutine is called. When the subroutine "CALL 2000" (call to the address 2000) is executed, the routine of the replacement processing function operates, so that the address "100"
For the subroutine call of "0", "2000" becomes "300".
0 is replaced with “CALL 3000”, and the content of the address “1000” is “CALL 3000”.
L 3000 ”, and thereafter, the address“ 10 ”
From "00", a subroutine call is directly made to the address "3000".
Since the address "1000" of the subroutine call instruction for calling the old subroutine is changed to the instruction for directly calling the new subroutine instead of the old subroutine according to the present invention, compared with the conventional method in which the content of the address "1000" is not rewritten The new subroutine can be executed in a short processing step without waste,
An efficient program execution process can be performed.
【0058】(具体例3)具体例3は、サブルーチンコ
ールされるサブルーチンが、条件分岐であった場合の例
であり、一度、そのサブルーチンが実行されると、条件
がわかってしまうと共に、以後、条件判断の必要が無く
なるような場合に最適な手法である。(Example 3) Example 3 is an example in which the subroutine called by the subroutine is a conditional branch. Once the subroutine has been executed, the conditions are known, and thereafter, This is the most suitable method when there is no need to determine conditions.
【0059】具体例1,具体例2において、例えば、ア
ドレス“2000”からのサブルーチンプログラムが、
“条件分岐命令”であったとする。そして、当該“条件
分岐命令”は、このサブルーチンプログラムの実行後に
確定する条件で、アドレス“2500”またはアドレス
“2600”のいずれかに分岐する内容であったとす
る。In the specific examples 1 and 2, for example, the subroutine program starting from the address “2000” is
It is assumed that the instruction is a “conditional branch instruction”. Then, it is assumed that the “conditional branch instruction” is a condition determined after the execution of the subroutine program and has a content that branches to either the address “2500” or the address “2600”.
【0060】そして、アドレス“2500”から始まる
サブルーチンと、アドレス“2600”から始まるサブ
ルーチンの内容を変更する必要が生じたとする。この場
合、ここではアドレス“2500”から始まるサブルー
チン(旧サブルーチン)に置換えるサブルーチン(新サ
ブルーチン)をアドレス“3000”から始まるアドレ
ス領域に保持させ、アドレス“2600”から始まるサ
ブルーチン(旧サブルーチン)に置換えるサブルーチン
(新サブルーチン)をアドレス“3100”から始まる
アドレス領域に保持させる。Assume that it is necessary to change the contents of the subroutine starting from address "2500" and the contents of the subroutine starting from address "2600". In this case, a subroutine (new subroutine) to be replaced with a subroutine (old subroutine) starting from address "2500" is held in an address area starting from address "3000", and replaced with a subroutine (old subroutine) starting from address "2600". Subroutine (new subroutine) is held in an address area starting from address "3100".
【0061】そして、アドレス“4000”からのルー
チンである置換処理機能のルーチンで、前述の条件によ
って、“CALL 2000”を“CALL 300
0”あるいは“CALL 3100”に書き換えるよう
にする。そして、あとは具体例1、具体例2と同様に実
行すれば、新旧サブルーチンを入れ替える場合に、呼び
出し元のサブルーチンコールに条件判断があったとして
も、新旧サブルーチンの入れ替え終了後は、無用な条件
判断の部分がなくなることになり、プログラムの最適化
をも図ることができることになる。Then, in the routine of the replacement processing function which is a routine from the address "4000", "CALL 2000" is replaced with "CALL 300" under the above-mentioned conditions.
0 "or" CALL 3100 ". Then, by executing the same operations as in the specific examples 1 and 2, when the old and new subroutines are replaced, it is assumed that there is a condition judgment in the subroutine call of the caller. However, after the replacement of the old and new subroutines is completed, there is no need for unnecessary condition determination, and the program can be optimized.
【0062】プログラム実行開始後に、“「サブルーチ
ンSUB100」の代わりに「サブルーチンSUB10
1」を実行する必要あり”、となる具体的な例として
は、例えば、浮動小数点プロセッサを利用するプログラ
ムといったものが考えられる。プログラムは浮動小数点
プロセッサがあることを想定して、それを使用して演算
を行うようにした「サブルーチンSUB100」を持つ
ものであったとして、このプログラムを実際には、浮動
小数点プロセッサが搭載されていないコンピュータシス
テムにて走らせたとする。After the execution of the program is started, "subroutine SUB10" is used instead of "subroutine SUB100".
For example, a program using a floating-point processor can be considered as a specific example of “1 needs to be executed”. The program assumes that there is a floating-point processor and uses it. It is assumed that the program has a "subroutine SUB100" for performing the arithmetic operation, and that this program is actually run on a computer system having no floating-point processor.
【0063】この場合、当該コンピュータシステムには
浮動小数点プロセッサが搭載されていないため、演算を
プロセッサでソフト的にエミュレーションするための
「サブルーチンSUB101」をロードして用いる必要
がある。In this case, since the computer system does not have a floating-point processor, it is necessary to load and use a "subroutine SUB101" for emulating the operation by software on the processor.
【0064】この場合、浮動小数点プロセッサがないと
判明した時点で、「サブルーチンSUB101」および
「アドレスADR300(もしくはその手前)」の命令
(列)を修正するための命令列CODE500をメイン
メモリ上にロードする。In this case, when it is determined that there is no floating point processor, an instruction sequence CODE 500 for modifying the instruction (column) of “subroutine SUB101” and “address ADR300 (or just before)” is loaded on the main memory. I do.
【0065】また、「サブルーチンSUB100」の先
頭の命令が、命令列CODE500の先頭へのジャンプ
命令に修正する。このようにすれば、浮動小数点プロセ
ッサの有無を判断して、浮動小数点プロセッサ無しと判
断された場合に浮動小数点エミュレーションプログラム
をロードするといった判断ルーチンがあったとしても、
1回このルーチンを実行した後は、条件判断の部分を無
くしてしまうので、無用な条件判断がなくなることにな
り、プログラムの最適化を図ることができる。The head instruction of the "subroutine SUB100" is corrected to a jump instruction to the head of the instruction sequence CODE500. In this way, even if there is a determination routine that determines whether there is a floating point processor and loads a floating point emulation program when it is determined that there is no floating point processor,
After executing this routine once, the condition determination part is eliminated, so that there is no unnecessary condition determination, and the program can be optimized.
【0066】以上、種々の例を説明したが、要するに本
発明は、プログラムの一部を手直しする必要が生じた場
合に、コンピュータシステムを停止させずに、手直しす
る必要のある部分のプログラムに代わる修正済み部分プ
ログラムを、別のアドレス領域に書き込んでおき、手直
しする必要のある部分のプログラムの実行に入る段階
で、前記修正済み部分プログラムが実行されるように、
置換え処理が成されるようにしたものである。従って、
システムソフトウェアのうち、停止させるのが難しいソ
フトウェア一般に、そのプログラムの一部更新をするこ
とができるようになり、しかも、不要となった元の部分
プログラムのアドレス位置の命令には実行が戻ることが
無いので、無駄な処理を経ることなく、最短の実行ステ
ップで新プログラムを実行することができるようになる
など、プログラムの合理的な動的修正が可能になる効果
がある。Although various examples have been described above, in short, the present invention can be applied to a case where it is necessary to modify a part of a program without stopping the computer system, instead of stopping the computer system. Write the modified partial program to another address area, and at the stage of executing the program of the part that needs to be modified, so that the modified partial program is executed,
The replacement process is performed. Therefore,
Of the system software, software that is difficult to stop in general can be partially updated, and execution can return to the instruction at the address of the original partial program that is no longer needed. Since there is no such processing, a new program can be executed in the shortest execution step without using unnecessary processing, so that there is an effect that the program can be rational dynamically modified.
【0067】なお、本発明は上述した例に限定されるも
のでなく、種々変形して実施可能である。また、実施形
態に記載した上述の手法は、コンピュータに実行させる
ことのできるプログラムとして、磁気ディスク(フロッ
ピーディスク、ハードディスクなど)、光ディスク(C
D−ROM、DVDなど)、半導体メモリなどの記録媒
体に格納して頒布することもできる。The present invention is not limited to the above-described example, but can be implemented with various modifications. In addition, the above-described method described in the embodiment includes a magnetic disk (floppy disk, hard disk, or the like), an optical disk (C
D-ROMs, DVDs, etc.) and storage media such as semiconductor memories for distribution.
【0068】[0068]
【発明の効果】このように、本発明によれば、プログラ
ムの一部を手直しする必要が生じた場合に、コンピュー
タシステムを停止させずに、手直しする必要のある部分
のプログラムを修正済み部分プログラムに入れ替えて実
行させることができ、従って、システムソフトウェアの
うち、停止させるのが難しいソフトウェア一般に、その
プログラムの一部更新をすることができるようになり、
しかも、不要となった元の部分プログラムのアドレス位
置の命令には実行が戻ることが無いので、無駄な処理を
経ることなく、最短の実行ステップで新プログラムを実
行することができるようになるなど、プログラムの合理
的な動的修正が可能になる効果がある。As described above, according to the present invention, when a part of a program needs to be reworked, the program of the part that needs to be reworked is corrected without stopping the computer system. Can be replaced and executed. Therefore, among the system software, it is generally difficult to stop the software. In general, the program can be partially updated.
Moreover, since the execution is not returned to the instruction at the address position of the original partial program that is no longer needed, the new program can be executed in the shortest execution steps without unnecessary processing. This has the effect of enabling rational dynamic modification of the program.
【図1】本発明を説明するための図であって、本発明の
最初の状態を示した図。FIG. 1 is a diagram for explaining the present invention, showing a first state of the present invention.
【図2】本発明を説明するための図であって、メインメ
モリにおける修正前のプログラムの配置状態を示した
図。FIG. 2 is a diagram for explaining the present invention, showing a program arrangement state before correction in a main memory.
【図3】本発明を説明するための図であって、本発明の
第1段階〔状態A〕でのメインメモリにおけるプログラ
ムの配置状態を示した図。FIG. 3 is a diagram for explaining the present invention, showing a program allocation state in a main memory in a first stage [state A] of the present invention.
【図4】本発明を説明するための図であって、本発明の
処理により第1段階〔状態A〕から第2段階〔状態B〕
に進んだ状態でのメインメモリにおけるプログラムの配
置状態とその時のプログラム内容を示した図。FIG. 4 is a diagram for explaining the present invention, wherein a first stage [state A] to a second stage [state B] by the processing of the present invention;
The figure which showed the arrangement state of the program in the main memory in the state advanced to, and the program content at that time.
【図5】本発明を説明するための図であって、本発明の
第2段階〔状態B〕から第3段階〔状態C〕に進んだ状
態でのメインメモリにおけるプログラムの配置状態とそ
の時のプログラム内容を示した図。の最初の状態を示し
た図。FIG. 5 is a diagram for explaining the present invention, in which a program is arranged in a main memory in a state where the process proceeds from a second stage [state B] to a third stage [state C] of the present invention, and The figure which showed the content of a program. The figure which showed the first state.
【図6】本発明を説明するための図であって、本発明に
おけるコンピュータシステムの構成例を示すブロック
図。FIG. 6 is a diagram for explaining the present invention, and is a block diagram showing a configuration example of a computer system according to the present invention.
【図7】本発明を説明するための図であって、本発明に
おけるコンピュータシステムのの持つプログラム動的修
正処理機能の主部の処理手順を示すフローチャート。FIG. 7 is a diagram for explaining the present invention, and is a flowchart showing a processing procedure of a main part of a program dynamic correction processing function of the computer system according to the present invention.
【図8】本発明を説明するための図であって、本発明に
おけるコンピュータシステムのの持つプログラム動的修
正処理機能の置換処理機能ルーチンの処理手順を示すフ
ローチャート。FIG. 8 is a diagram for explaining the present invention, and is a flowchart showing a processing procedure of a replacement processing function routine of a program dynamic correction processing function of the computer system according to the present invention.
1…CPU 2…メインメモリ 3…表示装置 4…操作装置 5…外部記憶装置 DESCRIPTION OF SYMBOLS 1 ... CPU 2 ... Main memory 3 ... Display device 4 ... Operating device 5 ... External storage device
Claims (5)
処理装置であって、サブルーチンコールによりサブルー
チンに移って処理するプログラムを含む実行プログラム
をメインメモリ上に保持するマルチタスクデータ処理装
置のプログラム変更において、 上記サブルーチンを入れ替えるに当たり、新旧サブルー
チンの置き換え処理とサブルーチンコールの実行を監視
をする置換処理ルーチンと新サブルーチンとをメインメ
モリの所要のアドレスエリアに書き込み、上記置換処理
ルーチンは実行状態にすると共に、当該置換処理ルーチ
ンにて旧サブルーチンの先頭の命令を上記置換処理ルー
チンへの実行に移る命令に変更させ、上記サブルーチン
コールの実行監視の結果、当該サブルーチンコールの実
行に移ると当該サブルーチンコールを上記新サブルーチ
ンの呼び出し命令に書き換えた後、上記新サブルーチン
にジャンプ命令により処理を移行させることを特徴とす
るプログラムの動的修正方法。1. A data processing apparatus including a processor and a main memory, wherein the multitask data processing apparatus has a main memory storing an execution program including a program for processing by moving to a subroutine by a subroutine call. In replacing the subroutines, the replacement processing routine for monitoring the replacement processing of the old and new subroutines and the execution of the subroutine call and the new subroutine are written in a required address area of the main memory. In the processing routine, the first instruction of the old subroutine is changed to an instruction to shift to execution to the replacement processing routine, and as a result of monitoring the execution of the subroutine call, when the execution shifts to the subroutine call, the subroutine call is changed to After rewriting the call instruction of the subroutine, the dynamic correction method program for causing shift processing by a jump instruction in the new subroutine.
処理装置において、実行すべきプログラムがメインメモ
リにロードされ、上記プロセッサによって実行が開始さ
れた状態で、上記プログラムに含まれる第一のサブルー
チンが呼び出された時、当該第一のサブルーチンを実行
する代わりに、第二のサブルーチンを実行するように上
記プログラムを動的に修正する方法であって、上記第一
のサブルーチンが呼び出された時に、その呼び出しを行
った命令が存在するメインメモリ上のアドレスを算出
し、当該算出したアドレスに格納されている上記第一の
サブルーチンを呼び出す命令を、上記第二のサブルーチ
ンを呼び出す命令にメインメモリ上で書き換えた後、当
該第二のサブルーチンの先頭へジャンプすることによ
り、修正を済ませるようにしたことを特徴とするプログ
ラムの動的修正方法。2. In a data processing apparatus including a processor and a main memory, a program to be executed is loaded into a main memory, and a first subroutine included in the program is called in a state where the execution is started by the processor. When the first subroutine is called, when the first subroutine is called, the call is dynamically modified to execute the second subroutine instead of executing the first subroutine. After calculating the address on the main memory where the executed instruction exists, and rewriting the instruction for calling the first subroutine stored at the calculated address on the main memory to the instruction for calling the second subroutine , Let me jump to the top of the second subroutine to fix it A method for dynamically modifying a program, characterized in that:
って、さらに、上記アドレスに格納されている命令は、
上記プロセッサのあるレジスタの内容で指示されるアド
レスの命令を呼び出すものである場合、上記アドレスよ
り手前に存在する、レジスタに値を設定する命令(列)
を探し、当該命令(列)を修正することにより、上記ア
ドレスに格納されている命令の実行によって、上記第二
のサブルーチンを呼び出すように修正するものであるこ
とを特徴とするプログラムの動的修正方法。3. The method according to claim 2, wherein the instruction stored at the address is:
In the case where the instruction of the address indicated by the contents of a certain register of the processor is to be called, an instruction for setting a value in the register existing before the address (column).
And modifying the instruction (column) to execute the instruction stored at the address so as to call the second subroutine. Method.
処理装置において、実行すべきプログラムがメインメモ
リにロードされ、上記プロセッサによって実行が開始さ
れた状態で、上記プログラムに含まれる第一のサブルー
チンが呼び出された時、当該第一のサブルーチンは、実
行中に確定した条件によって、第二のサブルーチンと、
第三のサブルーチンに振り替えるもので、上記第一のサ
ブルーチンを実行する代わりに、上記第二または第三の
サブルーチンを実行するように上記プログラムを動的に
修正する方法であって、 上記第一のサブルーチンが呼び出された時に、その呼び
出しを行った第一の命令が存在するメインメモリ上のア
ドレスを算出し、当該アドレスに格納されている上記第
一のサブルーチンを呼び出す第二の命令を、上記条件に
よって、上記第二のサブルーチンを呼び出す命令にメイ
ンメモリ上で書き換えるか、あるいは上記第三のサブル
ーチンを呼び出す命令にメインメモリ上で書き換えた
後、上記第二のサブルーチンの先頭ヘジャンプすること
を特徴とするプログラムの動的修正方法。4. In a data processing apparatus including a processor and a main memory, a program to be executed is loaded into a main memory, and a first subroutine included in the program is called in a state where the execution is started by the processor. When the first subroutine is executed, the second subroutine is executed according to the conditions determined during execution.
A method of dynamically modifying the program so as to execute the second or third subroutine instead of executing the first subroutine, wherein the first subroutine is executed. When the subroutine is called, an address on the main memory where the first command that called the subroutine is present is calculated, and the second command for calling the first subroutine stored at the address is calculated according to the above condition. After rewriting in the main memory to an instruction for calling the second subroutine, or after rewriting in the main memory to an instruction for calling the third subroutine, a jump to the head of the second subroutine is performed. How to dynamically modify the program.
的修正方法であってプログラム実行開始後に、第一のサ
ブルーチンの代わりに第二のサブルーチンを実行する必
要ありとなった時点で、2次記憶装置等から動的に第二
のサブルーチンおよびそのアドレスもしくはその手前の
命令(列)を修正するための命令列をメインメモリ上に
ロードし、“第一のサブルーチン”の先頭の命令を“命
令列”の先頭へのジャンプ命令に修正することを特徴と
するプログラムの動的修正方法。5. The dynamic correction method of a program according to claim 2, wherein the second subroutine has to be executed instead of the first subroutine after the execution of the program. An instruction sequence for dynamically modifying the second subroutine and its address or the instruction (column) immediately before the second subroutine is loaded from the storage device or the like into the main memory, and the first instruction of the “first subroutine” is replaced with the “instruction”. A dynamic modification method of a program, characterized in that the program is modified to a jump instruction to the head of a column.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP8170450A JPH1021067A (en) | 1996-06-28 | 1996-06-28 | How to dynamically modify programs |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP8170450A JPH1021067A (en) | 1996-06-28 | 1996-06-28 | How to dynamically modify programs |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH1021067A true JPH1021067A (en) | 1998-01-23 |
Family
ID=15905163
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP8170450A Pending JPH1021067A (en) | 1996-06-28 | 1996-06-28 | How to dynamically modify programs |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH1021067A (en) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2002532784A (en) * | 1998-12-07 | 2002-10-02 | ネットワーク アイス コーポレイション | Method and apparatus for remote installation of network drivers and software |
| JP2004280830A (en) * | 2003-03-12 | 2004-10-07 | Microsoft Corp | Extensible customization framework for software system |
| WO2021124512A1 (en) * | 2019-12-19 | 2021-06-24 | 三菱電機株式会社 | Information processing device, information processing method, and information processing program |
-
1996
- 1996-06-28 JP JP8170450A patent/JPH1021067A/en active Pending
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2002532784A (en) * | 1998-12-07 | 2002-10-02 | ネットワーク アイス コーポレイション | Method and apparatus for remote installation of network drivers and software |
| JP2004280830A (en) * | 2003-03-12 | 2004-10-07 | Microsoft Corp | Extensible customization framework for software system |
| WO2021124512A1 (en) * | 2019-12-19 | 2021-06-24 | 三菱電機株式会社 | Information processing device, information processing method, and information processing program |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR101782313B1 (en) | Apparatus and method for handling exception events | |
| US5701493A (en) | Exception handling method and apparatus in data processing systems | |
| JP3439033B2 (en) | Interrupt control device and processor | |
| JP2560988B2 (en) | Information processing apparatus and processing method | |
| US20040098639A1 (en) | Debugging kernel-loadable modules and suspending and replacing functions in non-microkernel operating systems | |
| JP2021057007A (en) | Methods of hardware and software coordinated opt-in to advanced features on hetero isa platforms | |
| US7434222B2 (en) | Task context switching RTOS | |
| JP2850808B2 (en) | Data processing device and data processing method | |
| WO2006132807A2 (en) | Microprocessor instruction that allows system routine calls and returns from all contexts | |
| JPH0810437B2 (en) | Guest execution control method for virtual machine system | |
| JPH1021067A (en) | How to dynamically modify programs | |
| JP2003216449A (en) | Patch processing system | |
| JP6691294B2 (en) | Information processing apparatus, dynamic link program, and program restart method | |
| JPH07152551A (en) | Computer system and program execution method | |
| JP2552738B2 (en) | Data processing device | |
| JPH0410081B2 (en) | ||
| JPH0895772A (en) | Computer system and program replacement method | |
| JPH1011315A (en) | In-circuit emulator device and in-circuit emulation method | |
| JP3184380B2 (en) | Interrupt control method and multitask system for implementing the same | |
| JP2927102B2 (en) | Instruction string switching method and arithmetic processor using the same | |
| JPH06324861A (en) | System and method for controlling cpu | |
| JP2005275703A (en) | Processor and context switching method | |
| JP2005284925A (en) | Computer system and program update method | |
| JPH09146782A (en) | How to deal with abnormalities in passing data between jobs | |
| JPS5835648A (en) | Program execution controlling system |