JPS58502025A - プログラム制御システムにおけるプログラムの変更を行なう方法と装置 - Google Patents

プログラム制御システムにおけるプログラムの変更を行なう方法と装置

Info

Publication number
JPS58502025A
JPS58502025A JP83500109A JP50010983A JPS58502025A JP S58502025 A JPS58502025 A JP S58502025A JP 83500109 A JP83500109 A JP 83500109A JP 50010983 A JP50010983 A JP 50010983A JP S58502025 A JPS58502025 A JP S58502025A
Authority
JP
Japan
Prior art keywords
function
program
sequence number
version
judgment
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
JP83500109A
Other languages
English (en)
Inventor
ビシヨツプ・ト−マス・パトリツク
ピカス・ス−ザン・ジエ−ン
Original Assignee
ウエスタ−ン エレクトリツク カムパニ−,インコ−ポレ−テツド
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 ウエスタ−ン エレクトリツク カムパニ−,インコ−ポレ−テツド filed Critical ウエスタ−ン エレクトリツク カムパニ−,インコ−ポレ−テツド
Publication of JPS58502025A publication Critical patent/JPS58502025A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23327Modification of program in real time
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23329Modification, correction entered values

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Circuits Of Receivers In General (AREA)
  • Selective Calling Equipment (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるため要約のデータは記録されません。

Description

【発明の詳細な説明】 プログラム制御システムにおけるプロ グラムの変更を行なう方法と装置 本発明は部分的あるいは全体的にシステムを停止し、次にこれを初期化すること なく蓄積プログラム制@によるシステムに変更を行なう方法に関する。
発明の背景 プログラム制御システムは広範囲なデータ処理と制御の応用に適用でれて来た。
これらのシステムの機能的融通性(はその動作を制御するためにこのようなシス テムのメモリーに記憶されたプログラムによってもたらされるものである。
プログラム制御によるシステムにおいては、新しいサービスや新しいハードウェ ア?収容するために、初期の設置のあとで、プログラムの変更7行なうことが頻 々必要である。このような変更を行なうための最も一般的な方法はシステムを停 止し、完全にそれを最初期化することである。残念なことに、このためにシステ ム(L′:1通常数分から数時間かかる初期化の間サービスを行なうことができ なくなる。さらに初期化によって長期的データの内の一部が破壊されることがよ くあシ、このためにそれ以降のシステムの動作に影響があることもある。
例えば電話の顧客によってそのサービスのある種の特徴全定義するデータが消え てしまうこともある。プログラム制御によるシステムが化学プロセスのような連 続プロセスであるときには初期化は特に問題でめり、このような初期化を行なう には、雷]]1卸されている化学プロセスが停止したときとかある種の平衡状態 に達したときのように注意深く計画しなければならない。
ベル システム テクニカル ジャーナル(13ellSystem Tech nical Journal ) 誌1964年9月号および米国特許3.57 0. OO8に述べられた扁1眠子交換方式のように、例えば電話交換機では部 分初期化を行なうことによるプログラム変更のよりゆるやかな方法が実現きれて いる。これらのシステムの特別な特性はすでに他の顧客に接続されている顧客の 通話を乱すことなく変更を行なうことができるということである。完成した接続 と加入者サービス?取扱かつているすべてのデータは分離され、初期化プログラ ムによって特別の取扱かい?受ける。これらのシステムは二重化されたプロセッ サklWして訃す、その内の一方はオンラインでその他方はいっでも制Klk引 き継げるようになった予備である。プログラムを修正したものはそのプロセッサ が予備モードにある、ときにプロセッサの一方に格納される。これ+1次にオン ラインに切替えられ、初期化プログラムを実行するが、これrt完成している接 続あるいは顧客サービスに関するデータは全く変更しない。次にプログラムの修 正版は他方のプロセッサにも格納されて、システムは安定な状態′になる。ダイ ヤル途中にある顧客はその接続を完成する25 ことができなくなるので、この ような変更はそのような混乱全最小化するためにシステムの活動が・1% 6で 低い時1−5帯にだけ行なわれる。
変更7行なうだめのこの方法、グもつと高度な現代のプログラム制御111]方 式に(は応用することができない。これらのシステムは通常はオペレーティング システムと呼ばれ、プロセスと呼ばれる他のプログラム全始動するだめの複雑な プログラムの制御下に走っている。システムの仕事の実際の実行はプログラムフ ァンクションと呼ばれる−れる。プログラムファンクションの実行はシステムの 正量のプロセスからのファンクション呼ひ出しによって開始される。プログラム ファンクションは共通のデータヘースにアクセスし、その大部分は多数のプロセ スによって滑り御され、プロセスに、l−>げる種々の1関連したデータJ目間 の関連は多角的で傾雑である。このようi傾雑なデータ摺造があるために上述し た従来技術のシステムで使用されるデータの選択をれた部分の特殊な取扱かいの 種類が著しく拶雑になる。従って、池の部分を保存し、統一性のあるデータベー スを維持しながら、一部のプロセスを1刀ル]化することfd 倹めで困雑でめ る。さらに、プログラムの変更の性質ト籠すし、データヘースの設計の際にこ扛 らの変更を計画すること(″j:不可能である。これらのすべての理由から、よ り1夏雑な最近のプログラム制御゛システムで(・句、最も小規模なプログラム 変化でも、大量の初期化を伴なわずに行なうことには問題がめった。
本発明に従えば、この:司題fi与えられた方向に単調に変化するシステムの順 Ff一番号を発生し、システムの順序番号をプロセスに対してそのプロセスが開 始された時点でプロセスの、・−圧番号として割当て、選択されたプログラムフ ァンクションの現在の版を保持しながら選択されたプログラムファンクションの 修正版をプログラムメモリーに記憶し、判定ファンクションの順序番号を記録し 、判定ファンクションの順序番号は与えられた方向でシステムの順序蒼号の先に なっているようにし、システムの順序番号が判定ファンクションの順序番号と少 なくとも同程度に与えられた方向に離れているような値に達するようにシステム の順序番号を与えられた方向に変更し、もしプロマスの順序番号が与えられた方 向から考えて判定ファンクションの順序蕾号の前にあれば、現在の版を実行し、 もしプロセスの順序番号が与えられた方向に少なくとも判定ファンクションと同 程度に離れているときには修正版全実行するような段階を含む方法によって解本 発明の目的はシステムが正常の負荷で動作している場合にも現在進行しているプ ロセスに妨害を与えることすく、フログラム制御風システムにプログラムの変更 を導入できるようにすることにある。
本発明に従えば、現在の版(バージョン)全保持しながら、プログラムファンク ションの修正きれた版全記憶し、次に変更の前に開始されたすべてのプロセスは そのファンクションの現在の版を実行し、変更のあとに開始されたすべてのプロ セスはファンクションの修正版を実行するようにして、プログラム制御システム のプログラムに変更が4人される。
一実施例に従えば、こればシステムによって維持されるシステムの唄圧爵号の助 けによって実現される。システムの順序喬号v′i与えられた方向に単調にだけ 変更され、少なくとも変形きれたプログラムファンクションがシステムに導入さ :nるたびに変更さnる。システムの順序番号の現在の直はプロセスが開始され るときにはいっでもプロセスと共に記録さnる。プログラム機能の修正版がシス テムに記憶されるときには、そのプログラムファンクションk 菱う現在のプロ セスのプロセス順序番号の値より与えられた方向で先にある値kMつ判定ファン クション順序番号が修正されたファンクションに対して割当てられる。システム の順序番号はそのあとで1し正をれ、これによって、それは少なくとも判定ファ ンクション順序番号と与えらnた方向で少なくとも同じように離れた1直になる 。次にプロセスが修正されたファンクションを呼び出したときにはいつでも、判 定ファンクションの順序番号がプロセス番号と比較される。もし比較の結果で呼 び出したプロセスが開始きれる前に修正された版がシステムに記憶されていたこ とが示されると、プログラムファンクションについては1じ圧板が実行され、さ もなけれは現在の版示果行される・ Mff昭58−502(125(4)不発 明の特定の一央側列に2いては、プログラムファンクションは記憶された転送ベ クトル表のベクトル全1更用することによって、プロセスによってプログラムフ ァンクションが呼ばれる。ベクトル表は所望のプログラムファンクションに対し て直接ポインタを持っている。もし1疹正されたプログラムファンクションがシ ステムに導入されnば、ベクトルはその代りに判定ファンクションを指す。次に 判定ファンクションはプログラムファンクションの内の現在の版めるいは1じ圧 板のいずれを実行するかについての判定全行なう。もし現在の版全実行すべきで あるなら、プログラムは現在の版に分岐してそれが実行され、さもなければ、プ ログラムは修正版に分岐してそれが実行される。判定ファンクションを修正版の 直前において2けば、これによってプログラムの旧版がもはや不要になったとき に記憶スペースを元に戻すプロセスを簡単化することができて有利である。
修正されたプログラムファンクションを取扱っているアクティブなプロセスがプ ログラムファンクションの修正版の順序番号より与えられた方向で若い順序番号 會持っていないかを判定するために監査プログラムを走らせてもよい。もしその ようなプロセスが存在しなければ、プログラムフ・テンクションの現在の版は除 去してもよく、ベクトルは判定ファンクションを指すのではなく修正版を直接指 すようにしてもよく、プログラムファンクションの現在の版によってそのとき占 有されていたメモリーのフ゛ロックは1也の新しいあるいは1各工されたプログ ラムファンクションで1更用できるようになる。
順序着量は増分の方向あるいは酸分の方向に単調に変化する順序番号として2き 、これによって与えられた順序番号が池の順序番号より前に割当てられたどうか を知ることにできるようにしておくことが有利である。順序番号はプログラムの 変更が行なわれるとき“にに少なくとも変更されなければならないが、これより ずっとAm度で変更してもよい。例えば、順序番号として日付と時刻を表わす量 ヲ・1更えば、この量は正の増分で単調に変化するから、それでも良い。この方 法では、例えばプロセスがち19長い時間アクティブであるようなことがあると これ?検出できるから順序番号全便う池の利点?得ることができる。1だ・修正 が有効になるしばらく前に修正を格納することが4捷しければ、判定ファンクシ ョンの順序番号を起動時点を表わす量に予め設定おけば、その修正は起動時点ま では使用されない。 、・□第1図は本発明の一実施例のメモ・リ−配置であり 、プログラムファンクションの現在の版と修正版の1間のアドレスの関係を示す 図; 第2図はプログラム制御システムのプロセッサのブロック図; 第3図は旧版のプログラムかもQまや必要なくなったときに記憶装置を元に戻す だめの監査プログラムのフローチャートの図である。
詳細な説明 プログラム制1fllシステムのメモリーには二つの形の情報が記憶さnている 。それはプログラムとデータである。
プログラムはプロセッサの基不的命令の集りを含み、その命令の各々はある基本 的なステップを指示し、その集合が実行さnるとある広範なシステムの仕事ある いは一連の仕事が実行されることになる。データはタスクの現在の状態に関する 情報、外部情報源およびシステムに先に記憶されたデータから誘導された情報お よびシステムの機能的タスクを完了するために発生された情報を含んでいる。− プログラムは現在のデータの値に従って、人出カシステムを制御し、またデータ 全処理することによつ現在のプログラム制御システムに2いては゛1.システム の基本的制御卸は主プログラムにより、これはそれに関するデータと共にオペレ ーティングシステムと呼ばれる。
オペレーティングシステムはプロセス全生成しこれヲ果行することによってシス テムの仕事全実行する。プロセスはプログラムとプロセス制御フロックと呼ばれ る制御データ記憶の合わさったものである。プロセス制御ブロックにはプロセス 名、現在のプロセスの状態、プロセスの渣先度、プロセスの開始のシステム時メ I]その他のプロセスの内容全記述しである。プロセスは次に一連のプログラム ファンクションの実行ヲ要求することによって、その仕草全完成する。
プログラム制+4システムが正常に動作しているときには、あるプロセスはアク ティブで、あるプロマスは静止している。プロマスは仕事を実際に実行している ときにはアクティブで、その仕事の実行の継続のために時間のブロックの間待っ たり、あるいは入出力装置を待ったりすることもある。仕事あるいに仕事の集合 が完了すると、これは静止状態となり、それが池の仕事あるい(は仕事の集合を 実行するために再開される寸で、その状態に保たれる。プロセスが静止状態に入 ったときにはプロセスケ再開するときに後で使用するために最小限のデータぽ引 き継がれる。プログラムが静止状態になったときに、プログラムの直接参照清報 は残らない。
プロセスの生涯のどの段階においても、メモリー中の空き領域に修正されたプロ グラムファンクション全記憶することにより、プログラムの変更を導入すること ができる。しかし、修正されたプログラムファンクションは変更が行なわれる前 にすでにアクティブになっていたプロセスによって使用されたときには正しく々 い結果が生じてしまう可能性がある。各プロセスがアクティブである間、各フロ セスが同一のプログラムファンクションケ使用することヲ・保証するために、プ ログラムファンクションの各々の修正版に関連して判定ファンクションが設けら れる。判定ファンクション+4プログラムフアンクシヨンを呼んだプロセスがプ ログラムファンクションの修正版がシステムに格納される前あるいは後のいす、 t”L vCfJ始されたかを判定する短いプログラムである。プロセスが開始 される前に修正版が格納さ汎ると、修正版が使用される。もしプロセスが開始さ れた後で修正版が格納されると、現在の版が使用される。
システムの順序番号はイベントの順序を追尾するのに使用される。すなわち、プ ログラムファンクションの修正版がシステムに格納される前あるいは後のいずれ で、プロセスが開始されたかを知るために使用さnる。システム順序番号として は単調に変化し、二つの異る順序番号の間の順序がわかるようになったどのよう な量?用いてもよい。例えば、システムの順序番号が常に正の方向に増大すれば 、そのときにはシステムの順序番号の太きいものは、システムの順序番号が小さ いものよりあとの時点に対応していることになる。この実施例では、日付と時刻 から成る時刻をシステムの順序番号として使用している。第1図において、ブロ ック100はシステムの順序番号を含み、これはシステムクロッフケ1更用して オペレーティングシステムによって自動的に更新されるシステムの順序番号であ る。システムクロックはプロセッサ200の一部である。これは当業者には周矧 であるから図面には詳しくは示さない。メモリー中の時刻全更新する囁溝につい ても周器であるので、ここではこユ以上には部へない。
プロセスの時刻?表わす順序番号は、それが開始されたときにはいつでも、プロ セスのプロセス制御ブロックに記憶される。プロセス利1卸ブロック110は典 型的なプロセスに関連するプロセス制御情報を含んでいる。先に述べたように、 プロセス制御ブロック(はそのプロセスに関するいくつかの情報の項目を含んで いる。フロック110の位、1t111は関連するプロてスが開始された時刻W =すプロセス順序番号を含む。プロセスがアクティブ状態になったときに、シス テムの順序番号の現在の値が位it 111に入れられる。現在の時刻に1秒を 加えた時刻を表わす判定ファンクション順序番号は1ω正されたプログラムファ ンクションがメモリーに格納された時刻で判定ファンクションに割当てられる。
第1区のファンクションブロック130.140および150は各々がプログラ ムを記憶するメモリーの領域kiわしでいる。各々は判定ファンクション(13 1,141および151)k記憶する領域とプログラムファンクション(132 ,142hよび152)k記憶する領域に’4している。プログラムファンクシ ョンは現在の版F’(132) 、修正版F’ (142)と第2の修正版F” (152)k表わす。判定ファンクションブロック1411ま判定ファンクショ ンプログラム144とmて表わされる判定ファンクション順序番号143から成 っている。〒l」定ファンクションのプロクラムは次のように述べられる。もし プロマス順序番号n(・PC)が判定ファンクションの順序番号mより小であれ (ば、f(2)(ブロック132)にゆく、さもなければf ’ (2) (ブ ロック142)にゆく。換言すれば、変化が導入される前にプロセスが開始さ、 汎でいれ(ハ、プログラムファンクションの現在の版FkIF用し、さもなけれ t、iブロクラムファンクションの1!斧正版F/ を使用する′りで捗る。
プログラムにメモリーの任意の利用てきるπり゛メントに%lJ当てられている 。1面々のプログラムファンクションは多数のプロセスによって使用することが できるが、貴重なメモリー空ldJを節約するために1回たけ記憶てれている。
多数のプログラムがひとつのプログラムファンクション全参照するかもし肚ない から、すべてのプログラムファンクションの現在のアドレスのリストが保存され すべての呼び出し側のプログラムから利用できるようになっている。このリスト :1トランスファベクトル表と呼ばれる。もし変化分がシステム(・C格稍芒扛 れば、トランスファベクトルのアドレスがその謹止板に関連する判定ファンクシ ョン?指すように更新さ7する。あるプロセスが直圧されたプログラムファンク ションを呼び出したときに(l:、トランスファベクトル表によって指される判 定ファンクションによって、プログラムファンクションの現在の版あるいは修正 版の内いずれを使1羽するかが判定きれる。転送ベクトル表120にお・いて、 内容121(ゴ1列のプログラムファンクションか、あるいは判定ファンクショ ンのアドレス?指す。もしプログラムのひとつの版だけがシステムに格納されて いれば、内容121はプログラムファンクションのアドレスである。もしふたつ 以上の版がシステムに格納されていれば、内容121はそれによってプログラム の正しい版を選択できるようにするだめの判定ファンクションのアドレスである 。プログラムファンクションの修正版F′がシステムのメモリーに格納されたと きに、121にあるベクトル表の内容はf(2)、すなわちプログラムファンク ションの現在の版のアドレスから、F′に関連する判定ファンクションのアドレ スf ’ (1)に変更さnる。この結果として、プログラムファンクションの いずれかの版を実行する前に、判定ファンクションはプロセスの順序番号と判定 ファンクションの順序番号を比較し、変更が行なわれた前あるいはあとのいずれ にプロセスが開始されたかを判定する。
もし変更の前にプロセスが開始されていれば、現在の版Fへの分岐が行なわれ、 でもなければ、修正版F′が実行される。
もし追加の修正が必要になれば、ブロック150にはF“で表わされる第2の修 正を入れなければならない。
F″がシステムに格納されるときに、トランスファベクトル表の内容121は、 F“に関する判定ファンクションであるf ″(1)’a−指すように変更され る。ブロック150は判定ファンクションのブロック151とプログラムファン クションF″であるブロック152を含んでいる。
判定ファンクションのブロックviPで示され、判定ファンクションの1′lf j序番号153と判定ファンクションのプログラム154から成る。判定ファン クションプログラム154は次のように述べることができる。もしプロセ号Pよ シ小さければf ’ (1)にゆき、さもなければt // (2)にゆく。換 言すれば、もしプロセスがF″の格納の前に開始されていれば、版F′に関する 判定ファンクションのプログラム144にジャンプし、さもなければF″が実行 される。判定ファンクションのプログラム144の結果としては、もしプロセス の順序番号n(PC)が判定ファンクションの順序番号mよシ小であれば、元の ファンクションFにジャンプし、さもなければ、プログラムファンクションF′ が実行されることになる。この例では、プロセスはプログラムファンクションF l、F’あるいはF//−t、使用する。最も古いプロセスはFを使用し、中間 のプロセスUF”を使用し、一番最近のプロセスはF″を使用する。
ファンクションのグループを同時に修正する必要かもLlれば、判定ファンクシ ョンはこのようなプログラムファンクションの各々について挿入され、そのグル ープに関連した2すべでの判定関数には同一の順序番号が割当てられる。プログ ラムの修正を遅れて有効にすることもまだ可能である。このような修正に関連し た判定ファンクションの順序番号は後に有効になる時刻である。こうすれば、修 正は起動時点までは有効にならない。
以上の説明は単一のプログラムファンクションの修正として述べられている。明 らかに本発明の手法を使って多くのプログラムファンクションを修正することが できる。各々の修正されたプログラムファンクションがそれ自身の判定ファンク ションを持ち、異なる時点に格納された多数の異なるプログラムファンクション についての修正が、システム中に同時に存在してもよい。
第2図はプログラム制御システムの三つの主要な部分である中央プロセッサ20 2、主記憶201、入出力装置203を図示している。中央処理ユニットとそれ に関連するメモリーは当業者には周知の多数の新しいプロセッサの内のいずれで も良い。入出力装置は磁気テープ装置、固定あるいは可動ヘッドのディスクのよ うな補助記憶装置葡含んでよい。中央処理ユニットはメモリーに記憶されたプロ セスとプログラムファンクションを実行する。このようなプロセスとプログラム ファンクションを実行するときには、中央処理ユニットはメモリーに記憶された データにアクセスし、これ?変更する。中央処理ユニットが実行するのは二つの 数の比較にもとすく条件付分岐の実行、メモリー中の数の増分、メモリー中に記 憶された量?ある位置から池の位置に移動すること、直4あるいは間接に示され たアドレスに無条件に分岐することなどの単純なステップである。中央処理ユニ ットはまた入出力装置203から主記憶201に対して修正きれたプロプラムフ ァンクションの版ヲ格納することができる。
もはや使用されないプログラムファンクションの旧版によって占有されていたメ モリー空浦會回復し、も、よや必要ない判定ファンクション全バイパスするため にプログラムファンクションの・1シ正版のアドレスでトランスファベクトル表 全更新するために、監査プログラムが周期的に走る。第3図5ユプロセスが古い プログラムファンクションF、3るいはその修正版F′のいずれを使用している かをしらべる監査プログラムのフローチャートである。
このクリで(は、監査プログラムは専正F′がシステムに導入はれているが、・ )し正F +1生ずる前に実行されるものとしている。
監査プログラム:・1三つの部分、初期ステップ(300−302Lループ(3 03−306+およびメモリー回復(307−308)に分けて考えら汎る。監 査プログラムはオペレーティングシステムによって開始される。
監査プログラムは利足ファンクションの順序番号mを読まなけnばならない。こ 71.:Siプログラムファンクションの現在の版めるいt2修正版を使用して いる可能性のちるすべてのアクティブなプロセスのプロセス順序番号と比較され ることになる。次にglのプロセスがアクマスでれる。ループ全形成している一 遅のステップO+4しめでプロセスが静止しているかどうかがチェックさnる。
もしプロセスが静止していなければ、プロマスの順序番号に判定ファンクション の順序番号と比較される。もしプロマスの順序番号が少なくとも判定ファンクシ ョンより犬でなければ、監査プログラムは終了される。これば何かのアクティブ プロセスがプログラムファンクションの現在の版を1つていることを意味する。
さもなければ、すべてのコA−3なプロセスが逆歪されてし捷う丑で、ループの プロセスが]連続する。すべての適切なプロマスが検iさnてし1う甘で、監を プログラムが終了し寿ければ、監査プログラムはメモリーの回収に4ひ。そのた めにはベクトル表の内容で直接修正版を指すように変更し、現在の版で占有され ていたメモリー空間が池の目的に割当て変更することによってオペレーティング システムによって利用できるようにする。
第3図のフローチャートのブロック300で示されるように、監査プログラムは オペレーティングシステムによって開始さ几る。F′に関連する一1!IJ:f ファンクションの順序−1首号は301で監査プログラムによって読み出される 。302において、監査プログラムはFあるいはF′−t 使用する第1のプロ セスにアクマスする。次に判定点303および304において、そnそれ監査プ ログラム(,1そのプロセスが静止しているかどうかと、その順序番号がF′に 関連する判定ファンクションの順序番号より犬である刀・どうかを判定する。こ れらの判定が共に否定的であれば、監査プログラムはプロセスはアクティブであ ると75iifiし、プログラムファンクションの現在の版であるF?要用する 。Fiアクティブなプロセスによってまだ使用中であるから、これを除去するこ とはできない。
従って監査プログラムば309で終了する。もし判定のいずれか一方が肯定的で あれば、監査プログラムはプロセスは静止していてそれが開始されたときにはプ ログラムファンクションF′の修正版k +fL用する準1蒲がでさているか、 あるいはF′がすでに1更用さnているか全判定する。監査プログラム・1 ; lJ定点305に進み、ここで、FあるいはF′?使用するそれ以外のプロセス があるかどうかが判定される。もしそれ以上のそのようなプロセスが存在すれば 、監査プログラムはブロック306の次のプロセスに進み、判定点303.30 4および305孕通るサイクル全実行することになる。
監査プログラムは関数FあるいはFI全使用するすべてのプロセスが検査をれる まで、サイクルをくりかえす。
F’e□i吏用しているアクティブなプロセスが発見できないときに(#i、ト ランスファベクトル表に判定ファンクションのアドレスを残しておく理由は何も ないことになる。
従って、ブロック307において、監査プログラムはトランスファベクトル表の 岡谷121を変更して、新しいプログラムファンクションF′のアドレスf′( 2)ヲ直接指すようにする。プログラムファンクションFtdもはやどのプロセ スによっても参照されず、また判定ファンクションによってもアドレスできない から、これはメモリー中で無吠に空、Bj ’=占有していることになる。その 空1−川は直の目的のために1吏用できるから□、監査プログラムはプログラム ファンクションFi除去し、ブロック130を空きのメモリー空間として榎旧し 、309で終了する。
ブロック130idtたFがプログラムの修正として導入されたとき先に判定フ ァンクションによって占有は几でいた空間を含んでいる。降圧とそれに関連した 判定ファンクション全−1本として品つこと(でよって、Fがも(はや必要なく 々つだときにメモリーのブロック全体が利用できるようになる。
ある種のシステムにおいて(ハ、監査プログラムがプロセスがアクティブである かどうかを判定することは困難であるかもしれない。このような場合には、ブロ ック303によるチェックはバイパスしてよい。すべてのプロセスについてそれ がFを1吏うのかF’に′i更うのがをしらべる方がもつと便利かもしれない。
このような簡単化を行なうことによる唯一の悪影響は判定ファンクションが必要 以上に長い時間アクティブの11になり、プログラムファンクションの現在の版 によって占有されている記憶空間をあ提り早く回・腹できなくなるということで ある。
本発明の手法を1更えば、色々な種類のプログラムの修正を行々うことができる 。これはプロセスを開始して実行するプログラムの修正を含む。一般的には、こ のよう出草れるプログラムファンクションであるが、それ自身で一連のプログラ ムファンクションとなっている。原理的には1.司接的に呼ばれるプログラムな らどのようなものでも不発明の手法によって変更することができる。しかしプロ グラムファンクションの現在の版と修正版Kfつでデータが異なるように解釈で れ、そのようなデータがプロセスの、静止期間の同も保持されたり、ちるい、・ 1そのようなデータが二つあるいはそれ以上のプロセスによって共用き汎る場合 にぽプログラム1関数の1じ正を行なうのにあるイ東の制約が生ずることがらる 。このようなデータにアクセスするときにでも、プログラムファンクションにつ いての判定ファンクションと関連してデータについて判定ファンクション全圧窓 して使用すれば、不発明の手法を用いて、このようなデータについてもこのよう な修正を実行することができる。ここで前提となるの(1このようなデータにア クマスするのに判定ファンクションケ1吏用するときに(・1、プログラムファ ンクションのトランスファベクトルのように単一のアクセスポイントを用いるべ きである。
以上の実施例は単に不発明の原理ケ1タリ示したものであるにすきないこと全理 解していたたきたい。本発明の精神と範囲を逸脱することなく当業者には他の’ d45y、を工夫することが可能である。
FIG、3 1i1iフ叩17ラム 国際調査N先

Claims (1)

  1. 【特許請求の範囲】 1 蓄積プログラム制値システムに変化を導入する方法において、 システムの順序番号を発生し、 プロセス・潰序益号としてその開始時点でプロセスの各々に対してシステム・項 序爵号の現在の値?割当て、選択yhだプログラムファンクションの現在の版ヲ 保持しながらプログラムメモリー中にその選択きれたプログラムファンクション の修正版1e憶し、与えられた方向にどのプロセス順序番号の現在の誼より先に 進んだ判定ファンクションの順序番号の1直ヲ記録し、 システムの順序番号?与えられた方向に変更してぞtが与えられた方向で判定フ ァンクションの順序番号と少なくとも同一の程度となるようにして、呼び出しだ プロセスによるファンクション呼び出しに応動して選択でれたファンクション? 実行し、 呼び出したプロセス順序番号が与えられた方向で判定ファンクションの順序:a ぢよシ前にあnば現在の版?実行し、呼び出したプロセスのプロセス順序番号が 与えられた万1司で、少なくとも判定ファンクションの;、面子番号程度であれ ば、1−止板を実行するようになったことを特徴とする部分的あるいは全体的シ ステム停止とその後での初期化を必要とすることなく、蓄積プログラム側修シス テムに変化全導入する方法。 2 請求の範囲第1項に記載の方法:(おいて、実行ステップはさらに 呼び出しプロセスのプロセス−1−序番号全判定ファンクションの順序番号と比 較し、 比較の結果でもし呼び田しプロセスの・、頂序蒼号が与えられた方向で判定ファ ンクションの許号より前にらnば、現在の版に分岐し、 比較の結果でもし呼び出しプロマスの順序番号が与えられた万1司で少なくとも 判定ファンクションの順序番号程度であれば、修正版に分岐することを特叡とす る方法。 3 請求の範囲第1項に記載の方法に2いて、割当のステップt′iシステムの 5順序番号をプロセスの各々に関連した記山位)置に記載することを特命とする 方法。 4 請求の範囲第2項に記載の方法に2いて、選択されたプログラムファンクシ ョンの現在OM’z f’:lt選択式れたプログラムファンクションの中間の 版と旧版とを含み、呼び出したプロセスのプロセス順序番号が与えられた方向で 判定ファンクションO順序番号より前にあることが示きれたときの現在の、版( τ分岐する段階はさらに 呼び出しプロセスのプロセスj子番号と、A択芒ユたプログラムの中間の版に関 連した第2の判定ファンクジョンの順序番号の間で第2の比較を行ない、第2の 比較によって呼び出しプロセスのプロセス順序番号が与えられた方向で第2の判 定ファンクションの順序番号より前にあることが示されたときには旧版に分岐し 、 第2の比較によって呼び出しプロセスのプロセス順序番号が与えられた方向で第 2の判定ファンクションの順序番号程度であることが示されたときには中間の版 に分岐することを特徴とする方法でちる。 5 請求の範囲第1、第2、第3あるいは第4項に記載の方法において、さらに 少なくとも選択されたプログラムファンクションに対してファンクション呼び出 しを行なうすべてのアクティブプロセスのプロセス順序番号と判定ファンクショ ンの順序番号の間で第3の比較を行ない、選択されたプログラムファンクション に対してファンクション呼び出しを行なう少なくともすべてのアクティブプロセ スのプロセス順序番号がいずれも与えられた方向で判定ファンクションの順序番 号より前になければ、現在の版を削除する段階を含むことを特徴とする方法。 6、 中央処理ユニット202と プログラムメモリー201を含み、プロセスはプログラムファンクションに対す るファンクション呼び出し、こよって開始されるプログラム制御プロセッサシス テムにおいて、 プログラムメモリ、−201a通択されたプログラムファンクションの現在の版 132を記憶し、また選択されたプログラムファンクションの修正された版14 2を記憶し、 中火処理ユニット202はプログラムメモリー201.110.111.121 .141.132.14’2kj、らべて、もし選択されたプログラムファンク ション全呼び出したプロセスが修正版全メモリーに記憶したときより前に開始さ れていたのなら選択されたプログラムファンクションの現在の版?実行し、もし 選択されたプログラムファンクションを呼び出したプロセスが、修正版全メモリ ーに記憶した後で開だされていたなら修正版を実行すること全特徴とするプログ ラム制御プロセッサシステム。 7、請求の範囲第6項に記載のプログラム制御プロセラ ・サシステムにおいて 、 システムの順序番号全記憶し、 システムの順序番号はプロセスが開始されるときはいつでもプロセスの順序番号 として記憶され、修正版を記憶するときに判定ファンクションの順序番号全記憶 し、判定ファンクションの、・−序番号の直が与えられた方向でプロセスのj− 序番号のいずれの値より先になるようにし、 システムの順序番号はそれが与えられた方向で判定ファンクションの順序番号と 少なくとも同程度の太きでになるように修正され、 もし呼び出したプロセスのプロセス順序番号が与えられた方向で判定ファンクシ ョンの、順序番号の前にあnばそのファンクション呼び出しに応動して中央処理 ユニット202は選択されたファンクションの現在の版を実行し、呼び出したプ ロセスのプロセス順序番号が与えられた方向で判定ファンクションの番号と少な くとも同程度であれば、選択されたファンクションに対する呼び出したプロセス によるファンクション呼び出しに応動して、選択されたファンクションの修正版 を実行する こと全特徴とするプログラム制御プロマツサシステム。 8、請求の範囲第7項に記載のプログラム制御プロセッサシステムにおいて、 中央処理ユニット202に呼び出したプロセスのプロセス順序番号全判定ファン クションの順序番号と比較し、呼び出したプロセスのプロセス順序番号が与えら れた方向で判定ファンクションの1順序番号より前にあることが比較によって示 きれれば現在の版に分岐し、呼び出したプロセスのプロセス順序番号が与えられ た方向で少なくとも判定ファンクションの順序番号と同程度であることが比較に よって示されれば修正版に分岐するようになったこと全特徴とするプログラム制 御プロセッサシステム。 9、 請求の範囲第8項に記載のプログラム制御プロセ゛ノサシステムにおいて 、 プログラムメモリー201は現在の版の場所に選択されたプログラムファンクシ ョンの中間の版と旧版とを記憶しており、 もし比較によって呼び出したプロセスのプロセス順序番号が与えられた方向で判 定ファンクションの順序番号の前にあることが示さnれば、中火処理ユニット2 02V′i現在の版に分岐し、呼び出したプロセス・!−序番号と選択されたプ ログラムファンクションの中間の版に関連した第2の判定ファンクションの順序 番号とg2の比較を行ない、第2の比較によって呼び出したプロセスのプロセス 順序番号が与えらfた方向で第2の判定ファンクションの順序番号の前にちるこ とが示されれば旧版に分岐し、もし第2の比較によってプロセスの順序番号が与 えられた方向で第2の判定ファンクションの番号程度であることが示されれ(・ f1中間の版に分岐するようになったことを特徴とするプログラム制御プロセッ サシステム。
JP83500109A 1981-11-23 1982-11-10 プログラム制御システムにおけるプログラムの変更を行なう方法と装置 Pending JPS58502025A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US323812DEEFI 1981-11-23
US06/323,812 US4425618A (en) 1981-11-23 1981-11-23 Method and apparatus for introducing program changes in program-controlled systems
PCT/US1982/001587 WO1983001847A1 (en) 1981-11-23 1982-11-10 Method and apparatus for introducing program changes in program-controlled systems

Publications (1)

Publication Number Publication Date
JPS58502025A true JPS58502025A (ja) 1983-11-24

Family

ID=23260828

Family Applications (1)

Application Number Title Priority Date Filing Date
JP83500109A Pending JPS58502025A (ja) 1981-11-23 1982-11-10 プログラム制御システムにおけるプログラムの変更を行なう方法と装置

Country Status (11)

Country Link
US (1) US4425618A (ja)
EP (1) EP0094416B1 (ja)
JP (1) JPS58502025A (ja)
KR (1) KR880000338B1 (ja)
AU (2) AU556190B2 (ja)
CA (1) CA1175153A (ja)
DE (1) DE3279423D1 (ja)
ES (2) ES517568A0 (ja)
HK (1) HK4390A (ja)
IT (1) IT1153094B (ja)
WO (1) WO1983001847A1 (ja)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2500659B1 (fr) * 1981-02-25 1986-02-28 Philips Ind Commerciale Dispositif pour l'allocation dynamique des taches d'un ordinateur multiprocesseur
US4979107A (en) * 1985-02-21 1990-12-18 International Business Machines Corporation Modification of device configuration wherein the system specifies and prompts the user with only parameters required to be changed
JPS6276954A (ja) * 1985-09-30 1987-04-09 Toshiba Corp 通信制御装置
US5133066A (en) * 1985-10-24 1992-07-21 International Business Machines Corporation Method for selecting multiple versions of data in a reduced record units text editing system
PH24865A (en) * 1987-03-24 1990-12-26 Ibm Mode conversion of computer commands
EP0472812B1 (de) * 1990-08-28 1998-05-06 Landis & Gyr Technology Innovation AG Verfahren zum Aendern einer in einem Computer eines Gerätes abgespeicherten Maschinensprachenfassung eines ersten Programms in eine Maschinensprachenfassung eines durch mindestens eine Aenderung vom ersten Programm abgeleiteten zweiten Programms
ATE174701T1 (de) * 1990-08-28 1999-01-15 Landis & Gyr Tech Innovat Verfahren zum aendern eines in einer computeranordnung eines gerätes gespeicherten computerprogramms in ein geändertes computerprogramm und anordnung zum durchführen des verfahrens
JP2886961B2 (ja) * 1990-09-19 1999-04-26 株式会社日立製作所 プログラム入替方法
US5579509A (en) * 1991-02-08 1996-11-26 International Business Machines Corporation Apparatus and method for verifying compatibility of system components
US5297285A (en) * 1991-07-23 1994-03-22 Telefonaktiebolaget L M Ericsson System for dynamically linking modular portions of computer software
DE69231176T2 (de) * 1991-12-23 2000-11-23 Microsoft Corp Verfahren zum Integrieren eines diskreten Unterprogramms in ein Hauptprogramm
US5590347A (en) * 1992-12-07 1996-12-31 Microsoft Corporation Method and system for specifying alternate behavior of a software system using alternate behavior indicia
US5896531A (en) * 1993-02-26 1999-04-20 International Business Machines Corporation Method and system for managing environments with a data processing system
US5787444A (en) * 1993-03-15 1998-07-28 International Business Machines Corp. Method and apparatus for maintaining revision contol of a set of objects within a data processing system
US5590318A (en) * 1993-11-18 1996-12-31 Microsoft Corporation Method and system for tracking files pending processing
US5452339A (en) * 1994-02-09 1995-09-19 Harris Corporation Local/remote modification of electronically alterable operating system firmware resident in redundant flash memory of remote unit for testing/conditioning subscriber line circuits
US5862370A (en) * 1995-09-27 1999-01-19 Vlsi Technology, Inc. Data processor system with instruction substitution filter for deimplementing instructions
US5761677A (en) * 1996-01-03 1998-06-02 Sun Microsystems, Inc. Computer system method and apparatus providing for various versions of a file without requiring data copy or log operations
WO1997028501A1 (en) * 1996-01-31 1997-08-07 International Business Machines Corporation Monitor system and method
US5938766A (en) * 1997-03-21 1999-08-17 Apple Computer, Inc. System for extending functionality of a digital ROM using RAM/ROM jump tables and patch manager for updating the tables
FR2764392B1 (fr) * 1997-06-04 1999-08-13 Sgs Thomson Microelectronics Procede d'identification d'un circuit integre et dispositif associe
US5896527A (en) * 1997-10-31 1999-04-20 Lucent Technologies Inc. Accessing data during the transition between program releases
US6289503B1 (en) * 1998-09-24 2001-09-11 International Business Machines Corporation System and method for trace verification
US6397385B1 (en) 1999-07-16 2002-05-28 Excel Switching Corporation Method and apparatus for in service software upgrade for expandable telecommunications system
US6857119B1 (en) * 2001-09-25 2005-02-15 Oracle International Corporation Techniques for modifying a compiled application
CA2379732A1 (en) * 2002-04-02 2003-10-02 Turbocor Inc. System and method for controlling an electric motor
US7657616B1 (en) 2002-06-10 2010-02-02 Quest Software, Inc. Automatic discovery of users associated with screen names
US7707401B2 (en) * 2002-06-10 2010-04-27 Quest Software, Inc. Systems and methods for a protocol gateway
US7774832B2 (en) * 2002-06-10 2010-08-10 Quest Software, Inc. Systems and methods for implementing protocol enforcement rules
CA2488731A1 (en) 2002-06-10 2003-12-18 Akonix Systems, Inc. Systems and methods for a protocol gateway
US7818565B2 (en) * 2002-06-10 2010-10-19 Quest Software, Inc. Systems and methods for implementing protocol enforcement rules
US7428590B2 (en) * 2002-06-10 2008-09-23 Akonix Systems, Inc. Systems and methods for reflecting messages associated with a target protocol within a network
US20080196099A1 (en) * 2002-06-10 2008-08-14 Akonix Systems, Inc. Systems and methods for detecting and blocking malicious content in instant messages
US7333992B2 (en) * 2003-05-22 2008-02-19 Microsoft Corporation System and method for identifying and storing changes made to a table
CA2539470A1 (en) * 2003-09-11 2005-03-24 Akonix Systems, Inc. Systems and methods for dynamically updating software in a protocol gateway
EP1618378A4 (en) * 2004-03-29 2008-10-08 Microsoft Corp SYSTEMS AND METHOD FOR VERSION-BASED TRIGGER
EP1946217A2 (en) 2005-11-03 2008-07-23 Akonix Systems, Inc. Systems and methods for remote rogue protocol enforcement
US20090076628A1 (en) * 2007-09-18 2009-03-19 David Mark Smith Methods and apparatus to upgrade and provide control redundancy in process plants
WO2010016058A2 (en) * 2008-08-04 2010-02-11 Red Bend Ltd. Performing an in-place update of an operating storage device
US8438558B1 (en) 2009-03-27 2013-05-07 Google Inc. System and method of updating programs and data

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3568157A (en) * 1963-12-31 1971-03-02 Bell Telephone Labor Inc Program controlled data processing system
US3597739A (en) * 1965-08-25 1971-08-03 Bell Telephone Labor Inc Method for operating a data processor
SE330455B (ja) * 1969-06-17 1970-11-16 Ericsson Telefon Ab L M
US3652804A (en) * 1969-10-24 1972-03-28 Bell Telephone Labor Inc Maintenance busy link map marking in a stored program controlled switching system
US3772654A (en) * 1971-12-30 1973-11-13 Ibm Method and apparatus for data form modification
US3723976A (en) * 1972-01-20 1973-03-27 Ibm Memory system with logical and real addressing
US3969701A (en) * 1973-04-09 1976-07-13 Telefonaktiebolaget L M Ericsson Function block oriented SPC system
US3909795A (en) * 1973-08-31 1975-09-30 Gte Automatic Electric Lab Inc Program timing circuitry for central data processor of digital communications system
US3845474A (en) * 1973-11-05 1974-10-29 Honeywell Inf Systems Cache store clearing operation for multiprocessor mode
US3969723A (en) * 1974-07-03 1976-07-13 General Electric Company On-line modification of computer programs
GB1548401A (en) * 1975-10-08 1979-07-11 Plessey Co Ltd Data processing memory space allocation and deallocation arrangements
US4047161A (en) * 1976-04-30 1977-09-06 International Business Machines Corporation Task management apparatus

Also Published As

Publication number Publication date
ES8402093A1 (es) 1984-02-01
CA1175153A (en) 1984-09-25
HK4390A (en) 1990-01-25
ES527125A0 (es) 1984-09-16
ES517568A0 (es) 1984-02-01
EP0094416B1 (en) 1989-02-01
US4425618A (en) 1984-01-10
IT8224362A1 (it) 1984-05-22
ES8407347A1 (es) 1984-09-16
AU1042082A (en) 1983-06-01
EP0094416A4 (en) 1986-11-10
IT8224362A0 (it) 1982-11-22
KR840002548A (ko) 1984-07-02
IT1153094B (it) 1987-01-14
WO1983001847A1 (en) 1983-05-26
KR880000338B1 (ko) 1988-03-20
AU556190B2 (en) 1986-10-23
DE3279423D1 (en) 1989-03-09
EP0094416A1 (en) 1983-11-23

Similar Documents

Publication Publication Date Title
JPS58502025A (ja) プログラム制御システムにおけるプログラムの変更を行なう方法と装置
US5247664A (en) Fault-tolerant distributed database system and method for the management of correctable subtransaction faults by the global transaction source node
CA1316262C (en) Version management tool
US6961865B1 (en) Techniques for resuming a transaction after an error
JP3113841B2 (ja) 並列トランザクション処理システム
US5825649A (en) Kernel substitution method in multi-processor system and multi-processor system having kernel substitution function
CN110941502A (zh) 消息处理方法、装置、存储介质及设备
CN111538519A (zh) 一种版本升级方法及装置
US5576945A (en) Transaction monitor process with pre-arranged modules for a multiprocessor system
CN116414417A (zh) 版本更新方法、装置、非易失性存储介质及电子设备
CN112286894A (zh) 日志生成方法、装置以及可读存储介质
CN114661432A (zh) 任务调度方法、装置、设备及存储介质
CN112445600A (zh) 一种离线数据处理任务发布方法及系统
JPH02161523A (ja) 常駐化モジュール修正方式
US7721302B2 (en) Method and system for installing a self-contained application to operate with a previously installed self-contained application
JPS6342293B2 (ja)
CN111078666B (zh) 基于跨中心多数据库的自动化卸数供数的方法
JPS5856142B2 (ja) オンライン回復制御方式
EP1031920A2 (en) Editable and automatically generated configuration data
JP2810141B2 (ja) オンラインbmp処理方法
JPH06214848A (ja) データベース管理システム
CN112597131A (zh) 一种分布式脚本控制方法及相关装置
CN112667413A (zh) 业务规则引擎的访问控制方法、系统及可读存储介质
JPH04361338A (ja) 取引ログデータ引継ぎ方式
CN117270945A (zh) 代码分支处理方法、装置和计算机设备