JPH07152551A - Computer system and program executing method - Google Patents

Computer system and program executing method

Info

Publication number
JPH07152551A
JPH07152551A JP5299630A JP29963093A JPH07152551A JP H07152551 A JPH07152551 A JP H07152551A JP 5299630 A JP5299630 A JP 5299630A JP 29963093 A JP29963093 A JP 29963093A JP H07152551 A JPH07152551 A JP H07152551A
Authority
JP
Japan
Prior art keywords
subroutine
address
function
entry address
management table
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP5299630A
Other languages
Japanese (ja)
Inventor
Masahiro Miura
雅弘 三浦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP5299630A priority Critical patent/JPH07152551A/en
Publication of JPH07152551A publication Critical patent/JPH07152551A/en
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

PURPOSE:To realize the on-line version up by correcting a function without discontinuing the execution of a program. CONSTITUTION:An address control table 133 contains the entry addresses for each function, and an entry address is selected out of the table 133 when the corresponding function is carried out. Meanwhile a corrected function is loaded in a memory 13 and an entry address of the table 133 is rewritten into the entry address of the loaded function. Thus a program can be corrected without discontinuing the program. Therefore it is just required for revision of a certain function to add a new version of the function with its old version left in a program as it is and to rewrite the address corresponding to the function into the address of new version of the function. In such a way, the on-line version up can easily be attained.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】この発明はコンピュータシステム
およびプログラム実行方法に関し、特にそのシステムに
おけるプログラムの訂正・修正を行うのに適したコンピ
ュータシステムおよびプログラム実行方法に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a computer system and a program executing method, and more particularly to a computer system and a program executing method suitable for correcting and correcting a program in the system.

【0002】[0002]

【従来の技術】近年、コンピュータの性能は飛躍的に向
上し続けており、それにつれてプログラムの大規模化・
高速化が進んでいる。このため、プログラムのバグも不
可避的に増加している。
2. Description of the Related Art In recent years, the performance of computers has continued to improve dramatically, and as a result, the scale of programs has increased.
The speed is increasing. Therefore, bugs in the program are inevitably increasing.

【0003】コンピュータとそのプログラムは企業情報
システムにおいて重要な役割を果たしている場合が多
く、そのようなプログラムのバグは、発見次第ただちに
訂正することが重要である。
Computers and their programs often play an important role in corporate information systems, and it is important to correct bugs in such programs as soon as they are discovered.

【0004】また、プログラムへの要求の変化などとい
った要因により、プログラムの機能を変更/改良したい
場合も多い。従来のプログラム実行方法では、サブルー
チンを呼出す際は、リンク時に決定される該サブルーチ
ンのアドレスを直接用いて呼出している。この方法で
は、プログラムを変更すると一般にサブルーチンのアド
レスも変わるため、サブルーチンを呼出す箇所(サブル
ーチンのエントリアドレス)もそれぞれ変更する必要が
ある。このため、動作中のプログラムの改版(オンライ
ン・バージョンアップと称する)を行うのは非常に困難
であり、プログラムを一旦停止して、コンパイルし直す
といった作業が必要とされる。このことは、多大な損失
をもたらすことがあり、特に銀行などのオンラインシス
テムで使用されるコンピュータにおいて口座の出入金管
理などのを行うプログラムを改訂する場合には、オンラ
インシステム全体の稼働を停止しなければならないとい
う不具合が発生する。
Further, there are many cases where it is desired to change / improve the function of the program due to factors such as a change in the request to the program. In the conventional program execution method, when calling a subroutine, the address of the subroutine determined at the time of linking is used directly. In this method, when the program is changed, the address of the subroutine is also generally changed, and therefore, it is necessary to change the location of calling the subroutine (entry address of the subroutine). For this reason, it is very difficult to revise the running program (referred to as online version upgrade), and it is necessary to temporarily stop the program and recompile it. This can result in a significant loss, especially if you revise a program that manages account deposits and withdrawals on computers used in online systems such as banks, the entire online system will be shut down. The problem that it has to occur occurs.

【0005】[0005]

【発明が解決しようとする課題】従来では、プログラム
を変更するとサブルーチンのエントリアドレスも変わる
ためオンライン・バージョンアップが困難であり、プロ
グラムを修正する場合にはシステムを一旦稼働停止し
て、プログラムをコンパイルし直さなければならないと
いう欠点があった。
In the past, when the program was changed, the entry address of the subroutine also changed, making it difficult to upgrade the version online. To correct the program, the system is temporarily stopped and the program is compiled. The drawback was that it had to be redone.

【0006】この発明はこのような点に鑑みてなされた
もので、システムを稼働停止すること無く容易にオンラ
イン・バージョンアップを行うことができるコンピュー
タシステムおよびプログラム実行方法を提供することを
目的とする。
The present invention has been made in view of the above circumstances, and an object of the present invention is to provide a computer system and a program execution method capable of easily performing an online version upgrade without stopping the operation of the system. .

【0007】[0007]

【課題を解決するための手段および作用】この発明によ
るコンピュータシステムは、実行対象のプログラムに含
まれる各サブルーチン毎にそのサブルーチンが格納され
ているメモリ上のエントリアドレスを示すアドレス情報
を保持するアドレス管理テーブルと、このアドレス管理
テーブルを参照して呼び出し対象のサブルーチンに対応
するメモリ上のエントリアドレスを検出し、そのエント
リアドレスのサブルーチンを呼び出して実行させるサブ
ルーチン呼び出し手段と、修正対象のサブルーチンに対
応する新たなサブルーチンをメモリ上にロードし、前記
アドレス管理テーブルの該当するエントリアドレスを、
前記新たなサブルーチンをロードしたエントリアドレス
に書き替えるテーブル更新手段とを具備することを特徴
とする。
In a computer system according to the present invention, an address management for each subroutine included in a program to be executed holds address information indicating an entry address on a memory in which the subroutine is stored. By referring to the table, this address management table, the entry address in the memory corresponding to the subroutine to be called is detected, the subroutine calling means for calling and executing the subroutine of the entry address, and the new subroutine corresponding to the subroutine to be corrected Load the appropriate subroutine on the memory and set the corresponding entry address in the address management table
Table updating means for rewriting the entry address into which the new subroutine is loaded is provided.

【0008】このコンピュータシステムにおいては、サ
ブルーチン毎にエントリアドレスを保持するアドレス管
理テーブルが設けられており、サブルーチンを実行する
際にはアドレス管理テーブルから該当するエントリアド
レスが求められ、またサブルーチンを修正する場合には
修正したサブルーチンをメモリ上にロードし、該アドレ
ス管理テーブルのエントリアドレスをロードしたサブル
ーチンのエントリアドレスに書き換えるだけによって、
プログラムを停止することなく、プログラムの修正が行
われる。
In this computer system, an address management table for holding an entry address is provided for each subroutine. When the subroutine is executed, the corresponding entry address is obtained from the address management table and the subroutine is modified. In this case, by loading the modified subroutine on the memory and rewriting the entry address of the address management table to the entry address of the loaded subroutine,
The program is modified without stopping the program.

【0009】したがって、あるサブルーチンを改版する
際には、該サブルーチンの旧版はプログラム中に残した
まま新版をプログラムに追加し、該サブルーチンに対応
するアドレスを、新版サブルーチンのものに書換えるだ
けでよい。このことにより、オンライン・バージョンア
ップが容易に実現できる。
Therefore, when a sub-routine is revised, the new version is added to the program while the old version of the sub-routine remains in the program, and the address corresponding to the sub-routine need only be rewritten to that of the new sub-routine. . As a result, online version upgrade can be easily realized.

【0010】また、アドレス管理テーブルには、サブル
ーチンの呼び出し禁止を示す呼び出し禁止情報がセット
される領域が設けられており、エントリアドレスの書き
替え期間中は、サブルーチン呼び出し手段による旧版の
サブルーチンの呼び出しが禁止されるように、呼び出し
禁止情報がセットされる。これにより、スレッド間のプ
ログラム実行内容の整合性を保証することができる。
Further, the address management table is provided with an area in which call prohibition information indicating prohibition of call of a subroutine is set, and during the rewriting period of the entry address, the old version of the subroutine is called by the subroutine calling means. Call barring information is set to barred. As a result, the consistency of the program execution contents between threads can be guaranteed.

【0011】[0011]

【実施例】以下、図面を参照してこの発明の実施例を説
明する。図1にはこの発明の一実施例に係わるコンピュ
ータシステムの構成が示されている。このコンピュータ
システム11は、オンラインシステムを構築する複数の
コンピュータシステムの1つであり、ネットワーク21
を介して他のシステムと接続されている。
Embodiments of the present invention will be described below with reference to the drawings. FIG. 1 shows the configuration of a computer system according to an embodiment of the present invention. The computer system 11 is one of a plurality of computer systems that form an online system, and the network 21
Connected to other systems via.

【0012】コンピュータシステム11には、図示のよ
うに、CPU12、メインメモリ13、通信制御ユニッ
ト14、および磁気ディスク装置15が設けられてお
り、これらはシステムバス15を介して相互接続されて
いる。
As shown in the figure, the computer system 11 is provided with a CPU 12, a main memory 13, a communication control unit 14, and a magnetic disk device 15, which are interconnected via a system bus 15.

【0013】CPU12は、このコンピュータシステム
11全体を制御をするためのものであり、メインメモリ
13のオペレーティングシステム131や各種アプリケ
ーションプログラムを実行する。メインメモリ13は、
前述のオペレーティングシステム131、および実行対
象のアプリケーションプログラム132を格納する。
The CPU 12 controls the entire computer system 11, and executes the operating system 131 of the main memory 13 and various application programs. The main memory 13 is
The operating system 131 and the application program 132 to be executed are stored.

【0014】オペレーティングシステム131は、シス
テム管理のための各種プログラムから構成されており、
ここには、この発明のプログラム実行方法を実現するた
めに必要なサブルーチンロード管理プログラム131a
とテーブル管理プログラム131bが組み込まれてい
る。
The operating system 131 is composed of various programs for system management.
Here, a subroutine load management program 131a necessary for realizing the program execution method of the present invention is provided.
And a table management program 131b are incorporated.

【0015】サブルーチンロード管理プログラム131
aは、改訂された新たなサブルーチンを磁気ディスク装
置15またはネットワーク21からメインメモリ13の
空き領域にローディングする。テーブル管理プログラム
131bは、アドレス管理テーブル133をメモリ13
上に確保し、そのテーブル133の内容を管理する。こ
のテーブル管理プログラム131bは、サブルーチンロ
ード管理プログラム131aによって新たなサブルーチ
ンがメインメモリ13にローディングされると、アドレ
ス管理テーブル133の旧版のサブルーチンに対応する
エントリアドレスをロードアドレスに書き替える。
Subroutine load management program 131
The a loads the revised new subroutine from the magnetic disk device 15 or the network 21 into the empty area of the main memory 13. The table management program 131b stores the address management table 133 in the memory 13
It is secured above and the contents of the table 133 are managed. When the new subroutine is loaded into the main memory 13 by the subroutine load management program 131a, the table management program 131b rewrites the entry address corresponding to the old version subroutine of the address management table 133 to the load address.

【0016】アプリケーションプログラム132は、口
座の出入金管理を行うためのものであり、複数のサブル
ーチンを含んでいる。このアプリケーションプログラム
132は言語Cによって記述されている。言語Cでは、
サブルーチンは関数と称されている。したがって、以下
の記載ではサブルーチンをすべて関数と称することにす
る。
The application program 132 is for managing the withdrawal / receipt of an account, and includes a plurality of subroutines. The application program 132 is written in the language C. In language C,
Subroutines are called functions. Therefore, in the following description, all the subroutines will be referred to as functions.

【0017】アプリケーションプログラム132におい
ては、関数コール命令132aは関数(f1)を呼び出
す命令であるが、その呼び出し先関数のエントリアドレ
スは関数コール命令132aには組み込まれておらず、
そのエントリアドレスはアドレス管理テーブル133を
参照することによって求められる。アドレス管理テーブ
ル133が関数(f1)のエントリアドレスとして“A
0”を示す場合には、関数(f1)132bが呼び出さ
れて実行されるが、関数(f1)のエントリアドレスと
して“A1”を示す場合には、関数(f1)132cが
呼び出されて実行される。
In the application program 132, the function call instruction 132a is an instruction to call the function (f1), but the entry address of the called function is not incorporated in the function call instruction 132a.
The entry address is obtained by referring to the address management table 133. The address management table 133 indicates "A" as the entry address of the function (f1).
When it indicates 0 ", the function (f1) 132b is called and executed, but when" A1 "is indicated as the entry address of the function (f1), the function (f1) 132c is called and executed. It

【0018】アドレス管理テーブル133は、アプリケ
ーションプログラム132に含まれる各関数毎に、その
識別子(関数名)、メモリ13のエントリアドレス、お
よび進入禁止フラグを保持する。関数(f1)を修正す
る場合には、改訂版関数(f1)132cがローディン
グされた後、アドレス管理テーブル133の関数名f1
に対応するエントリアドレスが図示のようにA0からA
1に書き替えられる。進入禁止フラグは、関数修正期間
中は“H”にセットされ、これによって関数修正時に旧
版の関数が呼び出されることが防止される。
The address management table 133 holds, for each function included in the application program 132, its identifier (function name), the entry address of the memory 13, and the entry prohibition flag. When modifying the function (f1), the function name f1 of the address management table 133 is loaded after the revised function (f1) 132c is loaded.
The entry addresses corresponding to are from A0 to A as shown.
Can be rewritten as 1. The entry prohibition flag is set to "H" during the function modification period, thereby preventing the old version function from being called at the time of function modification.

【0019】通信制御ユニット14は、ネットワーク2
1を介して他のシステムとの通信を実行するためのもの
であり、例えば、改訂版関数をネットワーク21からダ
ウンロードするために用いられる。磁気ディスク装置1
5は、コンピュータシステム11の2次記憶装置として
利用されるものであり、各種プログラムやファイルが格
納されている。
The communication control unit 14 is connected to the network 2
1 to perform communication with other systems, and is used, for example, to download a revised function from the network 21. Magnetic disk drive 1
Reference numeral 5 is used as a secondary storage device of the computer system 11 and stores various programs and files.

【0020】次に、図2を参照して、アドレス管理テー
ブル133の具体的な内容の一例を説明する。図示のよ
うに、アプリケーションプログラム132の関数 read
file( ) 、check data ( )、write file ( )を有する場
合、アドレス管理テーブル133には、それら関数名と
エントリアドレスとの対応が保持される。ここでは、関
数 read file( ) 、関数check data ( )、関数write fi
le ( )が、それぞれアドレス0x70000000、0
x70001000、0x70005000に存在する
場合が想定されている。
Next, an example of specific contents of the address management table 133 will be described with reference to FIG. As shown, the function read of the application program 132
When the file has a file (), check data (), and write file (), the address management table 133 holds the correspondence between the function name and the entry address. Here, function read file (), function check data (), function write fi
le () has addresses 0x70000000 and 0, respectively
It is assumed that it exists at x70001000 and 0x70005000.

【0021】関数 read file( ) を改訂する場合には、
その関数 read file( ) の改訂版がメモリ上にロードさ
れ、関数 read fileに対応するエントリアドレスが旧版
関数read file( ) に対応する0x70000000か
ら改訂版関数 read fileのエントリアドレス(ここで
は、0x70006000)に変更される。以降、関数
read file( ) を呼び出す際には、アドレス0x700
06000がコールされる。
When the function read file () is revised,
The revised version of the function read file () is loaded into the memory, and the entry address corresponding to the function read file is from 0x70000000 corresponding to the old version function read file () to the entry address of the revised version read file (here, 0x70006000). Is changed to. After that, the function
Address 0x700 when calling read file ().
06000 is called.

【0022】図3には、従来のCプログラムの関数呼び
出し命令と本発明で採用され関数呼び出し命令とが比較
して示されている。通常のCプログラムにおいては、関
数 read file( ) をコールする場合には、引数 file を
もって関数 read file( ) を呼出すコード片がコール命
令として使用される。この場合、関数 read file( ) の
アドレス0x70000000は、リンク時にオブジェ
クトコード中に埋め込まれる。
FIG. 3 shows a comparison between the function call instruction of the conventional C program and the function call instruction adopted in the present invention. In a normal C program, when calling the function read file (), a code fragment that calls the function read file () with an argument file is used as a call instruction. In this case, the address 0x70000000 of the function read file () is embedded in the object code at the time of linking.

【0023】これに対し、この実施例では、関数名の文
字列を引数として使用し、アドレス管理テーブル133
を参照して該関数のアドレスを返す関数 fn name to ad
rs() を介して関数 read file( ) を呼出すコード片、
すなわち、 fn name to adrs( " read file" ) )(file)
が、関数 read file() のコール命令として使用され
る。
On the other hand, in this embodiment, the character string of the function name is used as an argument, and the address management table 133 is used.
Function that returns the address of the function with reference to fn name to ad
A piece of code that calls the function read file () via rs (),
I.e. fn name to adrs ("read file")) (file)
Is used as the call instruction for the function read file ().

【0024】次に、図4のフローチャートを参照して、
関数 read file( ) を改版するための動作手順を説明す
る。まず、オペレーティングシステム131のテーブル
管理プログラム131bは、旧版の関数 read file( )
が新たに実行されないようにするために、関数 read fi
le( ) に対応する進入禁止フラグを“H”にセットし、
この関数の呼出しを一時的に禁止する(ステップS1
1)。次いで、ロード管理プログラム131aは、関数
read file( ) の新版のオブジェクトコードをメモリ1
3の空き領域(アドレス0x70006000以降)に
ローディングして、新版の関数 read file( ) を追加す
る(ステップS12)。
Next, referring to the flowchart of FIG.
The operation procedure to update the function read file () is explained. First, the table management program 131b of the operating system 131 uses the old version of the read file () function.
To prevent the new execution of
Set the entry prohibition flag corresponding to le () to "H",
Calling this function is temporarily prohibited (step S1).
1). Next, the load management program 131a executes the function
The new version of read file () object code is stored in memory 1
A new version of the function read file () is added by loading in the empty area 3 (address 0x70006000 or later) (step S12).

【0025】この後、テーブル管理プログラム131b
は、アドレス管理テーブル133の関数 read file( )
に対応するエントリアドレスを、新版のアドレス0x7
0006000に書換え(ステップS13)、そして、
フラグを“H”から“L”にリセットすることによって
その関数の呼出しを再び許可する(ステップS14)。
After that, the table management program 131b
Is the function read file () of the address management table 133.
The entry address corresponding to the new version address 0x7
Rewrite to 006000 (step S13), and
By resetting the flag from "H" to "L", the calling of the function is permitted again (step S14).

【0026】この結果、旧版の関数 read file( ) のオ
ブジェクトコードを変更しなくても、新版の read file
( ) を呼出すことが可能となる。なお、この図4の手順
は、関数 read file( ) の改版中における新たな呼出し
だけを一時停止しているので、例えばマルチスレッドや
マルチタスクといったマルチプログラミングにおいて
は、改版後に旧版と新版の read file( ) が同時に動作
するとった状況も発生し得る。この状況は必ずしも不都
合を招くものではないが、図5のフローチャートに示さ
れているように、図4のフローチャートにステップS1
00を追加することにより、このような状況の発生を容
易に防止することができる。
As a result, the new version of read file () can be read without changing the object code of the old version of read file ().
It is possible to call (). Note that the procedure of FIG. 4 suspends only new calls during the revision of the function read file (), so in multiprogramming such as multithreading and multitasking, the old and new versions of the read file can be read after the revision. There may be a situation where () is operated at the same time. This situation does not necessarily cause inconvenience, but as shown in the flowchart of FIG. 5, step S1 is added to the flowchart of FIG.
By adding 00, it is possible to easily prevent the occurrence of such a situation.

【0027】すなわち、図5においては、図4のフロー
チャートと同様にステップS11〜S13が実行される
が、ステップS100によって関数 read file( ) を実
行しているすべてスレッドの処理が終了するのが待た
れ、その後に新版の関数の呼び出し許可が許可される
(ステップS14)。
That is, in FIG. 5, steps S11 to S13 are executed similarly to the flowchart of FIG. 4, but it is waited for all threads executing the function read file () to finish processing in step S100. After that, permission to call the new version of the function is granted (step S14).

【0028】このステップ100は、各関数毎にその関
数を実行しているスレッド(またはタスク)の数をカウ
ントするスレッドカウンタを用意することによって実現
できる。このスレッドカウンタは、オペレーティングシ
ステム131の機能の1部として実現することができ
る。この場合、アドレス管理テーブル133は、図6に
示されているように、スレッドカウンタの値を保持する
フィールドを持つことが好ましい。
This step 100 can be realized by preparing a thread counter for counting the number of threads (or tasks) executing the function for each function. This thread counter can be realized as a part of the function of the operating system 131. In this case, the address management table 133 preferably has a field for holding the value of the thread counter, as shown in FIG.

【0029】次に、図7および図8のフローチャートを
参照して、関数 read file( ) を呼出す手順を説明す
る。まず、呼出すべき関数 read file( ) のアドレスを
求めるために、関数名の文字列“read file ”を引数と
して、関数 fn name to addr( ) が呼出される(ステッ
プS21)。
Next, the procedure for calling the function read file () will be described with reference to the flowcharts of FIGS. 7 and 8. First, in order to obtain the address of the function read file () to be called, the function fn name to addr () is called with the character string "read file" of the function name as an argument (step S21).

【0030】このステップS21では、図8に示されて
いるように、まず、引数として与えられた関数名“read
file ”に対応する関数 read file( ) が現在改版中で
あるかどうかを調べるために、進入禁止フラグを検査さ
れる(ステップS211)。該フラグが“H”にセット
されていれば改版中であるので、リセットされるまでル
ープして待つことにより、該関数の呼出しが一時的に停
止される。そして、関数名“read file ”に対応するア
ドレスがアドレス管理テーブル133をサートすること
によって求められ、その求めたアドレスが呼び側へ返さ
れる(ステップS212,S213)。
In step S21, as shown in FIG. 8, first, the function name "read" given as an argument is read.
In order to check whether the function read file () corresponding to "file" is currently being revised, the entry prohibition flag is checked (step S211). If the flag is set to "H", it is being revised. Therefore, the function call is temporarily stopped by looping and waiting until it is reset, and the address corresponding to the function name "read file" is obtained by asserting the address management table 133. The obtained address is returned to the calling side (steps S212 and S213).

【0031】この後、図7に示されているように、 fn
name te addr( ) から帰ってきた read file( ) のアド
レスを用いて、関数 read file( ) が呼出される(ステ
ップS22)。
After this, as shown in FIG. 7, fn
The function read file () is called using the address of read file () returned from name te addr () (step S22).

【0032】以上のように、この実施例においては、関
数毎にエントリアドレスを保持するアドレス管理テーブ
ル133が設けられており、関数を実行する際にはアド
レス管理テーブル133から該当するエントリアドレス
が求められ、また関数を修正する場合には修正した関数
がメモリ上にロードし、該アドレス管理テーブル133
のエントリアドレスをロードした関数のエントリアドレ
スに書き換えることによって、プログラムを停止するこ
となく、プログラムの修正が行われる。
As described above, in this embodiment, the address management table 133 holding the entry address for each function is provided, and when executing the function, the corresponding entry address is obtained from the address management table 133. When the function is modified, the modified function is loaded on the memory, and the address management table 133
By rewriting the entry address of <1> to the entry address of the loaded function, the program is corrected without stopping the program.

【0033】したがって、ある関数を改版する際には、
該関数の旧版はプログラム中に残したまま新版をプログ
ラムに追加し、該関数に対応するアドレスを、新版関数
のものに書換えるだけでよい。このことにより、オンラ
イン・バージョンアップが容易に実現できる。
Therefore, when revising a certain function,
It is only necessary to add the new version to the program while leaving the old version of the function in the program, and rewrite the address corresponding to the function to that of the new version function. As a result, online version upgrade can be easily realized.

【0034】また、アドレス管理テーブル133には、
関数の呼び出し禁止を示す呼び出し禁止フラグがセット
される領域が設けられており、エントリアドレスの書き
替え期間中は、旧版関数の呼び出しが禁止されるよう
に、呼び出し禁止フラグがセットされる。これにより、
スレット間のプログラム実行内容の整合性を保証するこ
とができる。
In the address management table 133,
An area for setting a call prohibition flag indicating prohibition of function call is provided, and the call prohibition flag is set so that the call of the old function is prohibited during the rewriting of the entry address. This allows
It is possible to guarantee the consistency of program execution contents between threats.

【0035】[0035]

【発明の効果】以上のように、この発明によれば、ある
サブルーチンを改版する際には、該サブルーチンの旧版
はプログラム中に残したまま新版をプログラムに追加
し、サブルーチン識別子とそのアドレスとの対応表にお
いて、該サブルーチンに対応するアドレスを、新版サブ
ルーチンのものに書換えるだけでよい。したがって、シ
ステムを稼働停止すること無く容易にオンライン・バー
ジョンアップを行うことができる。
As described above, according to the present invention, when a subroutine is revised, the new version is added to the program while the old version of the subroutine remains in the program, and the subroutine identifier and its address are added. In the correspondence table, it is only necessary to rewrite the address corresponding to the subroutine to that of the new version subroutine. Therefore, the online version upgrade can be easily performed without stopping the operation of the system.

【図面の簡単な説明】[Brief description of drawings]

【図1】この発明の一実施例に係るコンピュータシステ
ムの構成を示すブロック図。
FIG. 1 is a block diagram showing the configuration of a computer system according to an embodiment of the present invention.

【図2】図1のコンピュータシステムに設けられたアド
レス管理テーブルの具体的な構成の一例を示す図。
2 is a diagram showing an example of a specific configuration of an address management table provided in the computer system of FIG.

【図3】図1のコンピュータシステムにおいて利用され
る関数呼び出し命令の一例を示す図。
3 is a diagram showing an example of a function call instruction used in the computer system of FIG.

【図4】図1のコンピュータシステムにおいて関数 rea
d file( ) を改版するための動作手順の一例を説明する
フローチャート。
4 is a function rea in the computer system of FIG.
The flowchart explaining an example of the operation procedure for updating d file ().

【図5】図1のコンピュータシステムにおいて関数 rea
d file( ) を改版するための他の動作手順を説明するフ
ローチャート。
5 is a function rea in the computer system of FIG.
The flowchart explaining other operation procedures for updating d file ().

【図6】図1のコンピュータシステムに設けられたアド
レス管理テーブルの他の具体的な構成の一例を示す図。
FIG. 6 is a diagram showing an example of another specific configuration of an address management table provided in the computer system of FIG.

【図7】図1のコンピュータシステムにおいて図2のア
ドレス管理テーブルを用いて関数 read file( ) を呼出
す手順を説明するフローチャート。
7 is a flowchart illustrating a procedure for calling a function read file () using the address management table of FIG. 2 in the computer system of FIG.

【図8】図7のフローチャートにおけるテーブル参照動
作を説明するフローチャート。
8 is a flowchart illustrating a table reference operation in the flowchart of FIG.

【符号の説明】[Explanation of symbols]

11…コンピュータシステム、12…CPU、13…メ
メインメモリ、14…通信制御ユニット、15…磁気デ
ィスク装置、131…オペレーティングシステム、13
1a…サブルーチンロード管理プログラム、131b…
テーブル管理プログラム、132…アプリケーションプ
ログラム、132a…関数コール命令、132b,13
2c…関数、133…アドレス管理テーブル。
11 ... Computer system, 12 ... CPU, 13 ... Main memory, 14 ... Communication control unit, 15 ... Magnetic disk device, 131 ... Operating system, 13
1a ... Subroutine load management program, 131b ...
Table management program, 132 ... Application program, 132a ... Function call instruction, 132b, 13
2c ... Function, 133 ... Address management table.

Claims (4)

【特許請求の範囲】[Claims] 【請求項1】 実行対象のプログラムに含まれる各サブ
ルーチン毎にそのサブルーチンが格納されているメモリ
上のエントリアドレスを示すアドレス情報を保持するア
ドレス管理テーブルと、 このアドレス管理テーブルを参照して呼び出し対象のサ
ブルーチンに対応するメモリ上のエントリアドレスを検
出し、そのエントリアドレスのサブルーチンを呼び出し
て実行するサブルーチン呼び出し手段と、 修正対象のサブルーチンに対応する新たなサブルーチン
をメモリ上にロードし、前記アドレス管理テーブルの該
当するエントリアドレスを、前記新たなサブルーチンを
ロードしたエントリアドレスに書き替えるテーブル更新
手段とを具備することを特徴とするコンピュータシステ
ム。
1. An address management table that holds, for each subroutine included in a program to be executed, address information indicating an entry address on a memory where the subroutine is stored, and a target to be called by referring to this address management table Subroutine calling means for detecting the entry address in the memory corresponding to the sub-routine, calling the subroutine of the entry address and executing it, and loading a new subroutine corresponding to the subroutine to be modified on the memory And a table updating unit that rewrites the corresponding entry address of (1) to the entry address loaded with the new subroutine.
【請求項2】 前記アドレス管理テーブルは、前記各サ
ブルーチン毎にそのサブルーチンの呼び出し禁止を示す
呼び出し禁止情報がセットされる領域を有し、 前記テーブル更新手段は、前記アドレス管理テーブルの
エントリアドレスの書き替え期間中、前記サブルーチン
呼び出し手段による前記修正対象サブルーチンの呼び出
しが禁止されるように、前記エントリアドレスの書き替
えに先立って前記アドレス管理テーブルに前記呼び出し
禁止情報をセットする手段を有することを特徴とする請
求項1記載のコンピュータシステム。
2. The address management table has an area in which call prohibition information indicating call prohibition of the subroutine is set for each of the subroutines, and the table updating means writes an entry address of the address management table. During the replacement period, there is provided means for setting the calling prohibition information in the address management table prior to rewriting the entry address so that the calling of the correction target subroutine by the subroutine calling means is prohibited. The computer system according to claim 1.
【請求項3】 実行対象のプログラムに含まれる各サブ
ルーチン毎にそのサブルーチンが格納されているメモリ
上のエントリアドレスを示すアドレス情報と、そのサブ
ルーチンの呼び出し禁止および許可を示す2つのステー
トを持つ呼び出し制御情報とを保持するアドレス管理テ
ーブルと、 前記各サブルーチン毎にそのサブルーチンを実行してい
るスレッド数を示すスレッドカウンタと、 前記アドレス管理テーブルを参照して呼び出し対象のサ
ブルーチンに対応するメモリ上のエントリアドレスを検
出し、そのエントリアドレスのサブルーチンを呼び出し
て実行させるサブルーチン呼び出し手段と、 修正対象のサブルーチンに対応する新たなサブルーチン
をメモリ上にロードし、前記アドレス管理テーブルの該
当するエントリアドレスを、前記新たなサブルーチンを
ロードしたエントリアドレスに書き替えるテーブル更新
手段と、 前記サブルーチン呼び出し手段による前記修正対象サブ
ルーチンの呼び出しが禁止されるように、前記エントリ
アドレスの書き替えに先立って前記アドレス管理テーブ
ルに呼び出し禁止ステートの呼び出し制御情報をセット
する手段と、 前記スレッドカウンタを参照して前記修正対象サブルー
チンを実行しているスレット数が無くなるのを検出し、
その検出に応答して前記呼び出し制御情報を呼び出し許
可ステートに書き替える手段とを具備することを特徴と
するコンピュータシステム。
3. A call control having, for each subroutine included in a program to be executed, address information indicating an entry address on a memory where the subroutine is stored, and two states indicating prohibition and permission of the call of the subroutine. An address management table holding information, a thread counter indicating the number of threads executing the subroutine for each of the subroutines, and an entry address on the memory corresponding to the called subroutine by referring to the address management table Is detected, and a subroutine calling means for calling and executing the subroutine of the entry address and a new subroutine corresponding to the subroutine to be modified are loaded on the memory, and the corresponding entry address of the address management table Table updating means for rewriting an entry address into which a new subroutine has been loaded, and a call to the address management table prior to rewriting the entry address so that the calling of the correction target subroutine by the subroutine calling means is prohibited. Means for setting call control information of the prohibited state, and detecting that the number of threats executing the correction target subroutine is exhausted by referring to the thread counter,
And a means for rewriting the call control information to a call permission state in response to the detection.
【請求項4】 実行対象のプログラムに含まれる各サブ
ルーチン毎にそのサブルーチンが格納されているメモリ
上のエントリアドレスを示すアドレス情報をメモリ上に
登録し、 前記実行対象のプログラムのサブルーチン呼び出し命令
に応答して、前記アドレス情報を参照して呼び出し対象
のサブルーチンに対応するメモリ上のエントリアドレス
を検出し、 その検出されたエントリアドレスのサブルーチンを呼び
出して実行し、 修正対象のサブルーチンに対応する新たなサブルーチン
をメモリ上にロードし、 前記アドレス情報の該当するエントリアドレスを、前記
新たなサブルーチンをロードしたエントリアドレスに書
き替えることを特徴とするプログラム実行方法。
4. For each subroutine included in a program to be executed, address information indicating an entry address on the memory where the subroutine is stored is registered in the memory, and responds to a subroutine call instruction of the program to be executed. Then, referring to the address information, the entry address in the memory corresponding to the subroutine to be called is detected, the subroutine at the detected entry address is called and executed, and a new subroutine corresponding to the subroutine to be corrected is executed. Is loaded on the memory, and the entry address corresponding to the address information is rewritten to the entry address loaded with the new subroutine.
JP5299630A 1993-11-30 1993-11-30 Computer system and program executing method Pending JPH07152551A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5299630A JPH07152551A (en) 1993-11-30 1993-11-30 Computer system and program executing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5299630A JPH07152551A (en) 1993-11-30 1993-11-30 Computer system and program executing method

Publications (1)

Publication Number Publication Date
JPH07152551A true JPH07152551A (en) 1995-06-16

Family

ID=17875092

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5299630A Pending JPH07152551A (en) 1993-11-30 1993-11-30 Computer system and program executing method

Country Status (1)

Country Link
JP (1) JPH07152551A (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007511018A (en) * 2003-11-12 2007-04-26 株式会社エヌ・ティ・ティ・ドコモ Method and apparatus for composing software
KR100825348B1 (en) * 2005-03-22 2008-04-28 닛본 덴끼 가부시끼가이샤 Server system and online software update method
US7430612B2 (en) 2002-12-18 2008-09-30 Intec Netcore, Inc. Computing apparatus, computing program, and computing method
WO2012070081A1 (en) * 2010-11-24 2012-05-31 株式会社日立製作所 Computer system, computer system program replacement method, and program replacement processing program
JP2015115073A (en) * 2013-12-09 2015-06-22 ディスペース デジタル シグナル プロセッシング アンド コントロール エンジニアリング ゲゼルシャフト ミット ベシュレンクテル ハフツングdspace digital signal processing and control engineering GmbH Method for changing software in memory of electronic control unit
JP2015520468A (en) * 2012-06-21 2015-07-16 マイクロソフト コーポレーション Automatic update by handshaking while running client interface
JP2022161657A (en) * 2021-04-09 2022-10-21 横河電機株式会社 Program correction support device and program correction support method

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7430612B2 (en) 2002-12-18 2008-09-30 Intec Netcore, Inc. Computing apparatus, computing program, and computing method
JP2007511018A (en) * 2003-11-12 2007-04-26 株式会社エヌ・ティ・ティ・ドコモ Method and apparatus for composing software
KR100825348B1 (en) * 2005-03-22 2008-04-28 닛본 덴끼 가부시끼가이샤 Server system and online software update method
WO2012070081A1 (en) * 2010-11-24 2012-05-31 株式会社日立製作所 Computer system, computer system program replacement method, and program replacement processing program
JP2015520468A (en) * 2012-06-21 2015-07-16 マイクロソフト コーポレーション Automatic update by handshaking while running client interface
JP2015115073A (en) * 2013-12-09 2015-06-22 ディスペース デジタル シグナル プロセッシング アンド コントロール エンジニアリング ゲゼルシャフト ミット ベシュレンクテル ハフツングdspace digital signal processing and control engineering GmbH Method for changing software in memory of electronic control unit
JP2022161657A (en) * 2021-04-09 2022-10-21 横河電機株式会社 Program correction support device and program correction support method

Similar Documents

Publication Publication Date Title
US7784044B2 (en) Patching of in-use functions on a running computer system
US6272519B1 (en) Dynamic alteration of operating system kernel resource tables
US7031989B2 (en) Dynamic seamless reconfiguration of executing parallel software
US8015558B1 (en) System, method and computer program product for on-the-fly patching of executable code
EP2434394B1 (en) Method, device and system for activating on-line patch
US6529985B1 (en) Selective interception of system calls
US6799236B1 (en) Methods and apparatus for executing code while avoiding interference
US6745385B1 (en) Fixing incompatible applications by providing stubs for APIs
US8140497B2 (en) System and method for implementing nonblocking zero-indirection transactional memory
US7069430B2 (en) Operating system rebooting during which one or more non-stop modules continuously execute a process based on interrupts accepted by the non-stop modules
US5734904A (en) Method and system for calling one of a set of routines designed for direct invocation by programs of a second type when invoked by a program of the first type
US5892944A (en) Program execution and operation right management system suitable for single virtual memory scheme
US5794044A (en) System and method for runtime optimization of private variable function calls in a secure interpreter
US20050240701A1 (en) Interrupt control apparatus
US5825649A (en) Kernel substitution method in multi-processor system and multi-processor system having kernel substitution function
US20050172302A1 (en) Method, system, program and data structure for controlling access to sensitive functions
TWI786181B (en) Permitting unaborted processing of transaction after exception mask update instruction
JP7281491B2 (en) Transactional Compare and Discard Instructions
US6438621B1 (en) In-memory modification of computer programs
US7546596B2 (en) Non-disruptive method, system and program product for overlaying a first software module with a second software module
US6957367B2 (en) System and method for controlling activity of temporary files in a computer system
US6336215B1 (en) Apparatus and method for on-line code only replacement of a running program using checkpoints
JPH07152551A (en) Computer system and program executing method
US5953529A (en) Data processor with a debug device and a stack area control unit and corresponding data processing method
JP2004326331A (en) Unauthorized memory access detection method and program of the same