← Back to Patent Explorer
US5495612A Expired / Lapsed US ⏱️ 0.0 years remaining

System for dynamically changing an execution program and method for doing the same

Assignee: Toshiba Corp
•
Filing: 1993-09-30
•
Granted: 1996-02-27
•
Expires: 2013-09-30
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract By executing an additional link process, unresolved external reference information of object modules of new-version subroutines is resolved based on external reference information which is resolved when load modules are created, and a reference table for storing entry points of old-version subroutines and new-version subroutines and an additional load module are created. When an additional load process is executed, the additional load module and reference table dynamically loaded into a memory and a machine instruction of the entry points of the old-version subroutines is rewritten as a trap instruction. If the load module including the old-version subroutines are being executed, the execution of the load modules is continued by calling a control continuation process. When the old-version subroutines are called after the new-version subroutines are loaded in the memory, the new-version subroutines are called by executing a control transfer process. After the processing of the new-version subroutines is completed, the control is returned to a point where the old-version subroutines are called.

Inventors

  • 👤 Hideaki Hirayama
  • 👤 Shigefumi Ohmori
  • 👤 Tohru Iijima
  • 👤 Nobuyoshi Kamei

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-30 19:18
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/44; G06F9/445; G06F9/44536; G06F8/00; G06F8/60; G06F8/65; G06F8/656; G06F9/44521

Claims Analysis

Total Claims: 36
Claim 1
Independent Claim 202 words
A computer system having a memory device for storing source programs and various modules which are created, a memory space into which said modules are loaded, and a CPU (central processing unit), for compiling the source programs into object modules, linking the object modules to generate load modules, resolving unresolved external reference information caused in the object modules, and loading the load modules into the memory space, said computer system comprising: additional link means for resolving unresolved external reference information caused in an object module including a second subroutine based on the external reference information resolved when the load modules are generated, and creating an additional load module from the object module including the second subroutine, thereby updating a first subroutine loaded into said memory space; additional load means for loading the additional load module created by said additional link means into said memory space; transfer means for calling the second subroutine of the additional load module in place of the first subroutine when the first subroutine is called from the load modules; and return means for returning control to points where the first subroutine is called when processing of the second subroutine is completed, and continuing the processing after the points.
Claim 2
Dependent Claim 202 words
A computer system having a memory device for storing source programs and various modules which are created, a memory space into which said modules are loaded, and a CPU (central processing unit), for compiling the source programs into object modules, linking the object modules to generate load modules, resolving unresolved external reference information caused in the object modules, and loading the load modules into the memory space, said computer system comprising: additional link means for resolving unresolved external reference information caused in an object module including a second subroutine based on the external reference information resolved when the load modules are generated, and creating an additional load module from the object module including the second subroutine, thereby updating a first subroutine loaded into said memory space; additional load means for loading the additional load module created by said additional link means into said memory space; transfer means for calling the second subroutine of the additional load module in place of the first subroutine when the first subroutine is called from the load modules; and return means for returning control to points where the first subroutine is called when processing of the second subroutine is completed, and continuing the processing after the points.
Claim 3
Dependent Claim 120 words
The computer system according to claim 1, wherein said additional load means includes means for creating a reference table for storing entry points of the first subroutine and entry points of the second subroutine in the form of a table and means for rewriting a machine instruction of the entry point of the first subroutine as a trap instruction; and said transfer means includes determination means for determining whether a trap occurs at the entry points of the first subroutine, referring to the reference table, and means for calling the second subroutine based on the entry points stored in the reference table when said determination means determines that the trap has occurred at the entry points of the first subroutine.
Claim 4
Dependent Claim 50 words
The computer system according to claim 2, further comprising: detection means for detecting the entry points of the first subroutine using the reference table; and transfer cancellation means for rewriting the trap instruction as the machine instruction of the entry points of the first subroutine detected by said detection means.
Claim 5
Dependent Claim 32 words
The computer system according to claim 1, wherein said additional load means includes means for rewriting the machine instruction of the entry points of the first subroutine as an unconditional branch instruction.
Claim 6
Dependent Claim 27 words
The computer system according to claim 4, further comprising means for rewriting the unconditional instruction as the machine instruction of the entry points of the first subroutine.
Claim 7
Dependent Claim 42 words
The computer system according to claim 1, wherein said additional load means includes means for detecting the points where the first subroutine is called and rewriting branch points of all of the detected points as the entry points of the second subroutine.
Claim 8
Dependent Claim 36 words
The computer system according to claim 6, further comprising means for detecting points where the second subroutine is called and rewriting branch points of all of the detected points as entry points of the first subroutine.
Claim 9
Dependent Claim 68 words
The computer system according to claim 1, wherein said computer system includes a routine table for storing subroutines called in the load modules loaded into the memory space and entry points of the subroutines in the form of a table, and said additional load means includes rewrite means for rewriting entry points of the first subroutine stored in said routine table as entry points of the second subroutine.
Claim 10
Dependent Claim 27 words
The computer system according to claim 8, further comprising means for returning the entry points of the second subroutine to the entry points of the first subroutine.
Claim 11
Dependent Claim 46 words
The computer system according to claim 1, further comprising: generation management means for managing generations of the first subroutine and the second subroutine loaded additionally in the memory space; and generation changing means for calling a subroutine of a generation designated by said generation management means.
Claim 12
Dependent Claim 70 words
The computer system according to claim 1, further comprising: a timer for detecting predetermined time; setting means for setting, to said timer, time at which the load modules loaded in the memory space are changed so as to call the second subroutine in place of the first subroutine; and means for enabling said transfer means in accordance with detection of the time set to said timer by said setting means.
Claim 13
Dependent Claim 63 words
The computer system according to claim 10, further comprising: a timer for detecting predetermined time; setting means for setting, to said timer, transfer time at which the subroutine is transferred to the generation designated by said generation management means; and means for enabling said generation changing means in accordance with detection of the transfer time set to said timer by said setting means.
Claim 14
Dependent Claim 131 words
A computer system for compiling and linking source programs to generate load modules, and loading the load modules into a memory to be executed, comprising: additional link means for updating some of subroutines in the source programs, compiling the subroutines into object modules of new-version subroutines, determining external reference information of the object modules based on address information of the load modules, and creating an additional load module; additional load means for dynamically loading the additional load module in the memory space when load modules including old-version subroutines are loaded into the memory; transfer control means for transferring control to the new-version subroutines when the load modules call the old-version subroutines; and control return means for returning the control to a calling point when processing of the new-version subroutines is completed.
Claim 15
Dependent Claim 131 words
A computer system for compiling and linking source programs to generate load modules, and loading the load modules into a memory to be executed, comprising: additional link means for updating some of subroutines in the source programs, compiling the subroutines into object modules of new-version subroutines, determining external reference information of the object modules based on address information of the load modules, and creating an additional load module; additional load means for dynamically loading the additional load module in the memory space when load modules including old-version subroutines are loaded into the memory; transfer control means for transferring control to the new-version subroutines when the load modules call the old-version subroutines; and control return means for returning the control to a calling point when processing of the new-version subroutines is completed.
Claim 16
Dependent Claim 27 words
The computer system according to claim 13, further comprising control transfer cancellation means for disabling said control transfer means and returning the control to the old-version subroutines.
Claim 17
Dependent Claim 42 words
The computer system according to claim 14, further comprising generation management means for managing generations of the new-version subroutines including the additional load module loaded into the memory and the old-version subroutines to which the control is returned by the load modules.
Claim 18
Dependent Claim 28 words
The computer system according to claim 15, further comprising time management means for adapting said control transfer means to the subroutines of an arbitrary version from designated time.
Claim 19
Independent Claim 200 words
A method for changing execution programs in a computer system having a memory device for storing source programs and various modules which are created, a memory space into which said modules are loaded, and a CPU (central processing unit), for compiling the source programs into object modules, linking the object modules to generate load modules, resolving unresolved external reference information caused in the object modules, and loading the load modules into the memory space, said method comprising the steps of: a) resolving unresolved external reference information caused in an object module including a second subroutine based on the external reference information resolved when the load modules are generated, and creating an additional load module from the object module including the second subroutine, thereby updating a first subroutine loaded into said memory space; b) loading the additional load module created in said step a) into said memory space; c) calling the second subroutine of the additional load module in place of the first subroutine when the first subroutine is called from the load modules; and d) returning control to points where the first subroutine is called when processing of the second subroutine is completed, and continuing the processing after the points.
Claim 20
Independent Claim 200 words
A method for changing execution programs in a computer system having a memory device for storing source programs and various modules which are created, a memory space into which said modules are loaded, and a CPU (central processing unit), for compiling the source programs into object modules, linking the object modules to generate load modules, resolving unresolved external reference information caused in the object modules, and loading the load modules into the memory space, said method comprising the steps of: a) resolving unresolved external reference information caused in an object module including a second subroutine based on the external reference information resolved when the load modules are generated, and creating an additional load module from the object module including the second subroutine, thereby updating a first subroutine loaded into said memory space; b) loading the additional load module created in said step a) into said memory space; c) calling the second subroutine of the additional load module in place of the first subroutine when the first subroutine is called from the load modules; and d) returning control to points where the first subroutine is called when processing of the second subroutine is completed, and continuing the processing after the points.
Claim 21
Dependent Claim 121 words
The method according to claim 17, wherein said step b) includes a step of creating a reference table for storing entry points of the first subroutine and entry points of the second subroutine in the form of a table and a step of rewriting a machine instruction of the entry point of the first subroutine as a trap instruction; and said step c) includes a step of determining whether a trap occurs at the entry points of the first subroutine, referring to the reference table, and a step of calling the second subroutine based on the entry points stored in the reference table when said determining step determines that the trap has occurred at the entry points of the first subroutine.
Claim 22
Dependent Claim 48 words
The method according to claim 18, further comprising the steps of: e) detecting the entry points of the first subroutine using the reference table; and f) rewriting the trap instruction as the machine instruction of the entry points of the first subroutine detected by said detecting step e).
Claim 23
Dependent Claim 31 words
The method according to claim 17, wherein said step b) includes a step of rewriting the machine instruction of the entry points of the first subroutine as an unconditional branch instruction.
Claim 24
Dependent Claim 28 words
The method according to claim 20, further comprising the step of: g) rewriting the unconditional instruction as the machine instruction of the entry points of the first subroutine.
Claim 25
Dependent Claim 40 words
The method according to claim 17, wherein said step b) includes a step of detecting points where the first subroutine is called and rewriting branch points of all of the detected points as the entry points of the second subroutine.
Claim 26
Dependent Claim 37 words
The method according to claim 22, further comprising the step of: i) detecting points where the second subroutine is called and rewriting branch points of all of the detected points as entry points of the first subroutine.
Claim 27
Dependent Claim 66 words
The method according to claim 17, wherein said computer system includes a routine table for storing subroutines called in the load modules loaded into the memory space and entry points of the subroutines in the form of a table; and said step b) includes a step of rewriting entry points of the first subroutine stored in said routine table as entry points of the second subroutine.
Claim 28
Dependent Claim 28 words
The method according to claim 24, further comprising the step of: j) returning the entry points of the second subroutine to the entry points of the first subroutine.
Claim 29
Dependent Claim 41 words
The method according to claim 17, further comprising the steps of: k) managing generations of the first subroutine and the second subroutine loaded additionally in the memory space; and l) calling a subroutine of a generation designated by said step k).
Claim 30
Dependent Claim 75 words
The method according to claim 17, wherein said computer system includes a timer for detecting predetermined time; and further comprising the steps of: m) setting, to said timer, time at which the load modules loaded in the memory space are changed so as to call the second subroutine in place of the first subroutine; and n) enabling said step c) in accordance with detection of the time set to said timer by said step m).
Claim 31
Dependent Claim 62 words
The method according to claim 26, wherein said computer system includes a timer for detecting predetermined time; and further comprising the steps of: o) setting, to said timer, transfer time at which the subroutine is transferred to the designated generation; and p) enabling said step 1) in accordance with detection of the transfer time set to said timer by said step o).
Claim 32
Independent Claim 132 words
A method of dynamically changing execution programs in a computer system for compiling and linking source programs to generate load modules, and loading the load modules into a memory to be executed, said method comprising the steps of: a) updating some of subroutines in the source programs, compiling the subroutines into object modules of new-version subroutines, determining external reference information of the object modules based on address information of the load modules, and creating an additional load module; b) dynamically loading the additional load module in the memory space when load modules including old-version subroutines are loaded into the memory; c) transferring control to the new-version subroutines when the load modules call the old-version subroutines; and d) returning the control to a calling point when processing of the new-version subroutines is completed.
Claim 33
Independent Claim 132 words
A method of dynamically changing execution programs in a computer system for compiling and linking source programs to generate load modules, and loading the load modules into a memory to be executed, said method comprising the steps of: a) updating some of subroutines in the source programs, compiling the subroutines into object modules of new-version subroutines, determining external reference information of the object modules based on address information of the load modules, and creating an additional load module; b) dynamically loading the additional load module in the memory space when load modules including old-version subroutines are loaded into the memory; c) transferring control to the new-version subroutines when the load modules call the old-version subroutines; and d) returning the control to a calling point when processing of the new-version subroutines is completed.
Claim 34
Dependent Claim 24 words
The method according to claim 29, further comprising the step of: e) disabling said step c) and returning the control to the old-version subroutines.
Claim 35
Dependent Claim 41 words
The method according to claim 30, further comprising the step of: f) managing generations of the new-version subroutines including the additional load module loaded into the memory and the old-version subroutines to which the control is returned by the load modules.
Claim 36
Dependent Claim 26 words
The method according to claim 31, further comprising the step of: g) adapting said step c) to the subroutines of an arbitrary version from designated time.

References Cited (Backward Citations)

US5408665A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1999-02-26 1999-08-28 2000-02-27 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2003-02-26 2003-08-28 2004-02-27 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2007-02-26 2007-08-28 2008-02-27 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag