JPH10510649A - 計算機システムの起動システム - Google Patents

計算機システムの起動システム

Info

Publication number
JPH10510649A
JPH10510649A JP9504174A JP50417497A JPH10510649A JP H10510649 A JPH10510649 A JP H10510649A JP 9504174 A JP9504174 A JP 9504174A JP 50417497 A JP50417497 A JP 50417497A JP H10510649 A JPH10510649 A JP H10510649A
Authority
JP
Japan
Prior art keywords
startup
boot
activation
computer system
sync
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
JP9504174A
Other languages
English (en)
Inventor
クラーク マーク
デルフレ ミヒャエル
シュテルツェル ヴィンフリート
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Siemens AG
Original Assignee
Siemens AG
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 Siemens AG filed Critical Siemens AG
Publication of JPH10510649A publication Critical patent/JPH10510649A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Stored Programmes (AREA)
  • Hardware Redundancy (AREA)
  • Selective Calling Equipment (AREA)
  • Circuits Of Receivers In General (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Debugging And Monitoring (AREA)
  • Manipulator (AREA)

Abstract

(57)【要約】 複雑な計算機システムのプログラムシステムは非常にカスタマ固有であり、従って起動は非常に種々多様である。従ってこのような計算機システムの起動システムは非常に高い融通性を有しなければならない。他方、それにもかかわらず、複雑な起動に関する早期でかつ密なコントロールが保証されなければならない。これらの要求は、オフラインで本発明の方法で生成された起動テーブルを有する起動システムにより満足される。

Description

【発明の詳細な説明】 計算機システムの起動システム 例えば交換システム等の複雑な計算機システムの起動(リカバリ)において、 多数のプロセッサ及び大量のソフト(すなわち計算機システムのプログラムシス テム)が作動されなければならない。複雑な計算機システムのプログラムシステ ムは非常にカスタマ固有であるので起動が計算機システム毎に大幅に異なる。 従って今まで、カスタマ固有の起動を定める起動テーブルはダイナミックに生 成された。しかしこのダイナミック生成に起因して起動の設計は早期の時点では 不可能であった。更に、個々のソフトウェア部分の間の依存性は、テーブルがオ ンラインで完全に形成されると初めて認識することが可能である。 従って一方では、起動の全経過に関するより早期で強力なコントロールが望ま れ、他方ではしかし、起動に高い融通性を持たせて、すなわち異なるカスタマ固 有の起動プログラムシステムのために可変に保持することが望まれる。 更に全システムの起動が確実かつ迅速に行われるべきである。 本発明の課題は、前述の要求を満足することにある。 この課題は請求項1に記載の起動システムにより解決される。 テーブルのスタティックな生成により、起動の全経過にわたって早期で密なコ ントロールが可能になり、確実で迅速な起動が保証される。 早期にコントロールできるのでエラー(例えばデッドロック)が既にオンライ ンテストフェーズの前、すなわち既にリアルタイムシステムの実際の起動の前に 当該のツールにより認識され、補正することが可能である。 ある1つのソフトウェアコンポーネントのための起動関係(起動情報)をそれ ぞれそのソフトウェアコンポーネントの中で宣言することにより、スタティック に生成された起動テーブル(スタートアップテーブル)において、カスタマ固有 のプログラムシステムにそれぞれ存在するソフトウェアのみが考慮される。 更にこれにより起動の微細なユニット化と、ひいては変化及び/又は拡張に対 するSWコンポーネントの独立性又は融通性が促進される。 さらに、SWコンポーネントの中での起動関係の宣言により起動ソフトウェア の部分の間の依存性が既に実際の起動の前に見ることが可能であり、これにより 起動全体の設計が容易化される。 本発明の1つの実施の形態は請求項2に記載されている。本発明のこの実施の 形態ではSWコンポーネン トのコンパイルの後に既に部分テーブルが存在し、この部分テーブルは(当該の ツールにより見えるようにされて)既に設計時においてコントロールすることが 可能である。 本発明の1つの実施の形態が請求項4に記載されている。この実施の形態によ りテーブルの中で、プラットフォームを越えて同期化を行うべきかべきでないか を定めることが可能となる。これにより、プラットフォームを越たシステム状態 を全システムの中で及びシステムの部分の中で定めることが可能にされる。従っ て1つのプラットフォームで、別の1つのプラットフォームで形成されたシステ ム状態を待つことが可能である。すなわちこれは、リアルタイムシステムの種々 異なる計算機におけるソフトウェアの種々異なる部分の間の依存性を簡単に既に 設計時において考慮することが可能であることを意味する。 本発明の1つの実施の形態は請求項5に記載されている。この実施の形態によ りユーザソフトウェアに関する起動が今までに比して大幅により微細になりかつ より高い融通性を有する。ユーザソフトウェアは、これが起動と何らかの関係を 有する場合にのみ実行される。従って起動はより迅速でありより安定している。 次に本発明の1つの実施の形態が図面を用いて詳細に説明される。 まず初めに、以下において頻繁に使用される表現の 説明が行われる。 起動(リカバリ): エラーの発生の後、停電の後、作動開始の際等に、アプリケーションプログラ ムシステムの実行に適するハードウェア及びソフトウェア状態を形成するための 手段。 アプリケーションプログラムシステム(APS=Application P rogram System): アプリケーションプログラムシステムは、例えば交換局の計算機システムで必 要とされるすべてのプログラム及びデータを含む(例外としてリアルタイムシス テムのイニシャルプログラムローダがある)。それぞれの複雑な計算機システム ごとに、個別のすなわち当該の計算機システムの使用に固有の構成に適合された アプリケーションプログラムシステム(カスタマ固有のAPS)が必要である。 アプリケーションプログラムシステムは、機械言語で既にバインドされているプ ログラムシステムである。 サービスプロビジョンユニット,カプセル: ソフトウェアはプログラミング言語レベルでユニットに構造化される。Chi llでは、互いに密な関係にあるユニットはより大きいSW(ソフトウェア)コ ンポーネントいわゆるサービスプロビジョンユニット(Service Pro vision Unit=SPU)に統合される。SPUは、それぞれコンパイ ラにより翻訳されるソフトウェアユニットである。カプセルは、リアルタイムシ ステムでロードすることが可能であり、アプリケーションプログラムシステムの 作成時にビルダによりサービスプロビジョンユニットから形成されるソフトウェ アユニットである。 ソフトウェアコンポーネントプール: ソフトウェアコンポーネントプールは、(ソースコード)SWコンポーネント 全体を含む。これらコンポーネントのそれぞれ1つの部分がカスタマ固有APS の形成のためのコンパイルされ、共にバインドされる。 起動制御プログラム: 起動制御プログラムは起動を制御し、以下においてスタートアップ制御プログ ラム(略称SU−PO)とも呼称される。起動制御プログラムは、オペレーティ ングシステムモードすなわちスーパバイザモードで動作する起動部分(SUPO _SYNC)と、ユーザモードで動作しプロセスとして実現されている起動部分 (SUPO_PROCESS)とを含む。 まず初めに本発明の簡潔な説明が行われる。 本発明の基礎となる課題は、一方では、起動の全過 程にわたって早期かつ密な制御を獲得し、他方、起動全体を融通性を持たせて、 すなわちカスタマ固有のAPSから独立して保持することにある。 この課題を解決するために、SW生産全体が新起動コンセプトの中に組込まれ る。既に設計時においてSWディベロッパは、別の同期点及び実行するアクショ ンに対する関係(条件及び寄与)の形での複数のSP(サービスプロビジョン) を宣言しなければならない。これらの宣言は、ディベロッパによりそれぞれ設計 されたSWコンポーネントの中で行われる。 コンパイルによりSP宣言から部分テーブルが形成される。 カスタマ固有のアプリケーションプログラムシステムの作成時にSWコンポー ネントをバインドすることにより、これらの部分テーブルはバインドされて最終 的に1つの分散配置されたテーブル(論理的観点からはただ1つのテーブル)を 形成する。このバインドは1つの特別のツールにより、別の複数のSPに対する 、SWコンポーネント(サービスプロビジョンユニット又はより正確な表現では サービスプロビジョンユニットの中に含まれているユニット)の中で宣言された 関係に従って行われる。 このようにして起動制御プログラムは、オフラインで形成されバインドされた テーブルにアクセスし、これにより、テーブルの中に含まれている起動情報に従 って起動が実行される。 オフラインで形成された起動テーブルを用いて、起動制御プログラムをアプリ ケーションプログラムシステムのフィーチャから独立して保持することが可能と なる。従って起動制御プログラムは、起動自身が新しいフィーチャを得るべき場 合にのみ更に変化されなければならない。 アプリケーションプログラムシステムに関してアプリケーション制御プログラ ムは完全に独立している。この独立性は、起動同期化情報がアプリケーションプ ログラムシステムの個々のコンポーネント自身により設定され、オフラインで起 動制御テーブルに書込むことにより得られる。 起動によりリアルタイムシステムは1ステップづつ始動され、それぞれのステ ップは安定状態を表す。これらの状態は以下において同期点とも呼称される。こ れらの同期点のうちのいくつかは局所的意味しか有さず、これに対して別の同期 点はシステム範囲の意味を有する。意味範囲は、同期点を収容する記述レベルに 完全に依存する。 図1は、一例としての交換システムの起動セグメントの(階層)レベル、すな わちシステムレベル、機能レベル、アプリケーションレベル、及びユーザレベル を示す。 アプリケーションプログラムシステムの起動は、す べてのテーブル、すなわちすべての起動セグメントを利用して行われる。起動セ グメントの異なる階層レベルの中でそれぞれ記述の観点は異なる、すなわち最上 位置のレベルでは起動セグメントはシステム全体を記述するがしかし非常に大域 的に記述し、階層レベルを下方へ向かってより移動する程、記述はより詳細にな る。しかしそれぞれの起動セグメントの中で、記述されたソフトウェアの量は減 少する。最下位置のレベルではSPUの個々のプロセスの相互作用のみが記述さ れるが、しかし完全に記述される、すなわちこの場合には個々のプロセスの間の 関係が分かる。 システムレベル(第1の段階)の中では個々のSW機能複合体の相互作用は起 動の間に記述される。このレベルは、アプリケーションプログラムシステム全体 の起動を定める同期点を含む。このSPは原始ラスタを形成し、この原始ラスタ の中に残りのソフトウェアが組込まれる。 機能レベル(第2の段階)は、システムの重要な機能複合体、例えばハードウ ェアメンテナンス、ソフトウェアメンテナンス、CCS7等に関するコンポーネ ントのための起動を記述する。これらは同じようにシステム範囲の意味を有する 。 アプリケーションレベルは、機能的コンポーネント(いくつかの機能的コンポ ーネントはこの時点でもまだ大域的意味を有する)のための起動を記述する。C CS7の場合にはこのような機能的コンポーネントのための例としてシグナリン グマネージャSM及びシグナリングリンクターミナルSLTを挙ることができる 。 プロセスレベル(階層レベル4)は、以下においてユーザSWとも呼称される 、アプリケーションプログラムシステムのプロセスソフトウェアのための起動を 記述する。プロセスレベルのためのコンポーネントのための例としてアプリケー ションデータベースADB、ハイパーフォマンスデータベースHPDB及びプロ トコルハンドラマネージャ(PRHマネージャ)を挙げることができる。 SWコンポーネントのそれぞれの起動セグメントは同期点のリストを含み、そ れぞれの同期点は、起動情報(関係情報)から成る実質的に2つのクラスを含む 。 関係情報の一方のクラスはいわゆる”アクション”である。この”アクション ”は、同期点により表現されるシステム状態が到達されると直ちに、実行されな ければならないアクティビティを表現する。 関係情報の他方のクラスは、満足されなければならない”条件”である。 複数のSP(サービスプロビジョン)の間の関係はそれぞれ次の2つの構成部 分を含む。 1) 一方のSPの中で、このSP(一方のSP)が他方のSPへの寄与を提供 することを記述する部分と、 2) 他方のSPの中で、このSP(他方のSP)が一方のSPの条件を待たな ければならないことを記述する部分とである。 例えば2つのSPの間の関係を定めなければならない(SP_x及びSP_y )場合であって、SP_xがSP_yの前に到達されなければならない場合、こ の関係のために次の2つの構成部分が存在する。 1) SP_xにおいて、SP_xがSP_yへの寄与を行わなければならない ことが記述されている(これはSP_xの”アクション”の中に記述されている )。 2) SP_yにおいて、SP_xがSP_yへの寄与を行わなければならない ことが記述されている(これはSP_yの”条件”の中に記述されている)。 関係情報の双方のクラス(アクション及び条件)は1つの混合から成る。すな わち双方のクラスは、プロセス関連の部分とセグメント関連の部分とを含む。 1) アクション: a) セグメント構成部分: − その他のSPへの寄与 b) プロセス構成部分: − プロセスのスタート − サスペンドされたプロセスの続行 − (1つの通信毎の)プロセスの伝達 2) 条件: a) セグメント構成部分: − その他のSPの寄与を”待つ” b) プロセス構成部分: − プロセスの寄与を”待つ” ある1つの同期点に対するその他の同期点への関係情報は、この1つの同期点 の定義の中の当該のステートメントにより定められる。 複数の起動セグメント間の過度に複雑な関係構造を回避するために、1つのセ グメントの中に含まれているSPは、最大でも1つの階層レベルの段階差を有す るその他のセグメントの同期点のみにしか関係してはならない。 オペレーティングシステムにより管理されるプロセス(以下においてユーザプ ロセスとも呼称される)を起動の中に組込むためにユーザSWプログラマはまず 初めに、1つ又は複数のバインドするプロセスを含む サービスプロビジョンユニットの中の1つ又は複数の起動セグメントを定め、起 動セグメントを当該の結合ステートメント(関係ステートメント)によりアプリ ケーション階層レベルの起動セグメントに結合する。更にユーザは自分のプロセ スの関係をユーザ起動セグメントに対して指示しなければならない。このことは 、ユーザが自分のプロセスを通報することにより行われ、その際、通報情報はそ れぞれ1つのSPに関係されている。通報情報は、ユーザプロセスをスタートす るために複数のユーザ起動セグメントのうちの1つのユーザ起動セグメントの中 のいずれの同期点が利用されるかに関し、そしていずれの同期点のためにプロセ スが寄与を供給するかに関する情報を含む。 以下において起動テーブルの構造及び起動テーブルの中に含まれている情報が 詳細に説明され、次いでSUPOによる起動テーブルの利用が詳細に説明される 。 図2は1つのプロセッサの中の起動テーブルの構造を示す。 起動テーブルはプロセッサのSWプラットフォーム全体にわたり分散配置され 、それぞれのサービスプロビジョンユニットSPUは、このサービスプロビジョ ンユニットのための起動に関連して重要である、起動情報の中の部分を含む。 起動テーブルへのアクセスはいわゆる”カプセルプ ロログ”及び”SPUプロログ”の中のアドレス情報を介して行われる。起動テ ーブルのセグメントは、いわゆる同期点セル(SPセル)のテーブルを含み、そ れぞれのSPセルはセグメントの中の同期点を表す。SPセルは、この同期点に 結合されている”関係”の記述を含む。図2は例として、3つの同期点を含むセ グメント(segment_y)が起動テーブルの中に表される構成を示す。 以下において、起動テーブルの中に含まれている起動情報が詳細に説明される 。 前述のように起動セグメントは、いわゆるSPセルの中の実際の起動情報すな わち同期点情報を含む、起動テーブルの中の単体である。 起動セグメントの宣言(定義)のために次のプログラミング言語手段より正確 にはデータ構造を利用することが可能である。 セグメントのアイデンティティーを定めるための”セグメント名称”というデ ータ構造。このデータ構造はカプセルアイデンティティー(カプセルID)、サ ービスプロビジョンユニットアイデンティティー(SPU−ID)及びセグメン トアイデンティティー(セグメントID)から成り、セグメントアイデンティテ ィーはSETデータタイプのSET値である。 起動階層の中の起動セグメントが所属する階層レベルを定めるのに用いられる ”セグメント段階”という データ構造。このデータ構造のタイプもSETタイプである。このデータ構造の 値すなわち階層レベルは、同期点情報の中で、1つより多い数の階層段階に関す る起動情報を供給する試みが行われなかったことを検査するために利用される。 起動状態とひいてはシステム状態を定めるために用いられる”同期点”という データ構造。このデータ構造は、”SP名称”、”条件”、”寄与”、”SPの タイミング”、”外部SP”及び”アクション”に細分化されている。 データ構造”SP名称”はSPのアイデンティティーに用いられ、”SET” タイプである。 データ構造”条件”により、同期点が到達される前に満足されなければならな い条件が定めることが可能である。指示された条件は、プロセス又はその他の同 期点に関連することにより表現される。 指示された条件が、階層レベルの上昇方向での関係を形成するためにのみ許容 される(例えば階層レベル4の中のSP(サービスプロビジョン)は階層レベル 3の中の同期点に関連することが可能である)。 データ構造”寄与”を介して、SPに到達した後に少なくとも1つの別のSP のために行われる寄与が定められることが可能である。寄与は”アクション”の 構成部分である。 換言すれば”より上の段階の”SPのためのこれら の”寄与”は、より上の段階のSPが到達される前に、より下の段階が同期点に より形成されるか又は満足されなければならない条件を表す。 寄与は値上昇方向でのみ許容される(すなわち階層レベル3の中の同期点は階 層レベル2の中の同期点に関連することが許容される)。 複数のSPの間の関係は常に、前述の2つの構成部分、すなわち条件とアクシ ョンとから成る。関係の定義は常に、同期化相手方のうちの1つから行われる、 すなわち前述の例ではSP_xにおいて、SP_xがSP_yに寄与を行いたい ことが記述されているか、又はSP_yにおいて、SP_yがSPxからの寄与 を待つことが記述されているかである。すなわち同期化関係の定義においてこの 定義はまだ完全ではなく、関係の半分が欠落している。この半分はAPS生産の 間にリンカ/オフラインビルダにより補足される。 起動の間の複数のSPの順序は、複数のSPの間の関係により定められる。1 つのSPを収容する、セグメント階層のレベルは全く重要でない。階層レベルは 、SP(及び起動セグメント)を構造化するためのみにしか必要でない、すなわ ちSP及びそれらの関係の概観を失わないためにのみにしか必要でない。 従って1つのSPの別の1つのSPへの寄与により、この別の1つのSPの” 条件”によるものと完全に同一のことが達成される。従って同期化関係の定義に おいて自由度が得られる。この自由度は、”フィーチャ独立性”を達成されるた めに利用される。すなわち同期化関係は常に、セグメント階層の中で更に下方に 位置するSPにより定められる。前述の例において(SP_xはより高い階層レ ベルの中に位置することを前提として)定義は次のようである。 SP_yは”条件”(wait_for)(すなわち”を待つ”)を定める、 すなわちSP_yは、SP_xがSP_yの前に到達されなければならないこと を定める。 これら2つのそれらの作用において同一の言語手段”寄与”及び”条件”と、 自由度の利用とにより初めてスタートアップは”フィーチャ独立”になることが 可能である。 データ構造”Timing_of_SP”(すなわち”SPのタイミング”) は、1つの同期点から対の同期点に前進するためにセグメントに許容されている 最大時間間隔を表示する情報を含む。同期点が、この最大時間間隔により定めら れたタイマが終了しない前に到達されない場合、当該のエラー条件が当該のフラ グによりシグナリングされる。 データ構造”外部同期点”は、この同期点の局所的前提条件が満足されている ことを表示する情報がいわゆる親プラットフォームに伝送されるべきかどうかを 指示する。親プラットフォームは、所属の従属プラッ トフォームのメンテナンスアクティビティのコントロールを引受けるプラットフ ォームである。従ってこのデータ構造は、プラットフォーム全体に及ぶ同期化に 用いられ、従って同様に、同期点に関連して実行すべきアクションを形成する。 同期化情報は、親プラットフォームのみに伝送されるべきであり、すべての隣 接のプラットフォームに伝送されてはならない(これらの隣接プラットフォーム は個々の従属プラットフォームには全く知られておらず、初めて起動の間にロー ドされるDBからのみ読出すことが可能である)。 これまでは、起動セグメントの中で宣言可能な起動情報が説明され、以下にお いては、同期化された起動に関与するユーザプロセスのために重要である起動情 報が説明される。 プロセスのための起動情報の宣言は、プロセスが所属するSPU、すなわちS PUの中でプロセスが宣言されたところのSPUの中で定められている同期点に のみ関係することが可能である。 プロセスのための前述宣言はオフラインですなわちコンパイラ及び/又はバイ ンダにより処理され、これにより、起動テーブルの中に含まれる情報が生成され る。 次の宣言又はそれらから生成された起動情報が可能である。 プロセスのために宣言”Start_at_SP”(すなわち”SPでスター ト”)により、いつ、すなわちいずれのSPに到達した時にプロセスをスタート すべきかを定めることが可能である。この宣言は、1つの同期点毎に存在し、こ のSPでスタートすべきプロセスをリストしているいわゆるスタートテーブルへ の書込みを行わせる。宣言は、スタートすべきプロセスを含むユニットの中で行 われる。 更にプロセスは、ある特定の同期点が到達されるまでこのプロセスの延期が所 望であることを指示する手段を有する。この手段はオペレーティングシステムコ ール”Wait_for_SP”(すなわち”SPを待つ”)の宣言により実現 され、オペレーティングシステムコール(略称SVC)は引渡しパラメータとし てある特定のSPの情報を含まれなければならない。 更にプロセスは、(そのSPUの中の)ある特定の同期点が到達された時に通 報されることを要求できる。これは2つの部分で実現される。 第1の部分(スタティック部分)は宣言により作用され、この宣言に起因して オフラインで、1つのSP毎に存在する”ウォッチテーブル”の中への書込みが 行われ。ウォッチテーブルはプロセスのウォッチ要求を受取る。宣言は、スター トすべきプロセスを含むユニットの中で行われる。 第2の部分(ダイナミック部分)はオペレーティン グシステムコール”Watch_for_SP”(すなわち”SPをウォッチす る”)の宣言により、要求するプロセス自身の中で作用される。 最後に、プロセスは、そのスタートの後に同期点への寄与を供給でき、オペレ ーティングシステムコール”Contribute_to_SP”(すなわち” SPに寄与する”)の宣言により、その寄与が行われた後、寄与が満足されたこ とを指示できる。これも2つの部分で実現される。 第1の部分(スタティック部分)は宣言により作用され、この宣言に起因して オフラインで、1つのSP毎に存在する”寄与テーブル”への書込みが行われ、 寄与テーブルはプロセスの寄与指示を受取る。宣言は、スタートすべきプロセス を含むユニットの中で行われる。 第2の部分(ダイナミック部分)はオペレーティングシステムコール”Con tribute_to_SP”により、指示されたプロセス自身の中で作用され る。 ”Contrib to”において次の2つの部分が論理的に必要である。 − アナウンスメントテーブル(スタティック部分,宣言)により、所属のSP がプロセスの寄与を待つことが作用される。 − オペレーティングシステムコール”Contribute_to_SP”に よりプロセスは(プロセスが必要なアクションを実行した後)SPへのその寄与 を行う、すなわちオペレーティングシステムコールによりプロセスはスタートア ップに、SPのためのその条件が満足されていることを通報する。 − これに対して”Watch For”のこれら2つの部分は論理的に必要で ない、これら2つの部分は、情報を伝送するのに用いられるバッファIDがオフ ラインで知られていない場合にのみ必要である。このここで仮定されている場合 にはこれら2つの部分がスタートアップにオンラインで伝達されなければならな い。このためにスタティック部分は、スタートアップに必要な場所のみをリザー ブし、これにより(オフラインで知られていない)バッファIDが書込まれれる ことが可能となる。 次に起動制御プログラムの機能SUPO_SYNC及びSUPO_PROCE SSが詳細に説明される。 起動制御プログラムは(前述のように)起動テーブルを使用して起動を制御す る。より正確には起動制御プログラムは、起動制御プログラムがSPセルを1つ の状態から他方の状態へ移行することにより、同期化された起動を制御する。 SPの処理は、SPが収容されている階層レベル及びシェルから独立している 。 SUPO_SYNCとSUPO_PROCESSとの間の区別は、SPに付加 されている課題に起因して必要である。すべてのSPのための同一の課題は常に 同一のSUPO部分により実行される。 SPの処理はほぼ完全にSUPO_SYNCにより行われる。SUPO_SY NCは、条件が満足されているかどうかを検査し、場合に応じて(”ready −pool”(レディープール)の中への新”仕上り”SPセルの書込みを含む )アクションを実行する。 SUPO_PROCESSは、APSのシェル3の中で実行可能である次の課 題のみを引受ける。 − SPを時間監視する。 − 外部SPの場合に親プラットフォームへ情報を伝達する。 − スタートアップテーブルの初期化をトリガし、同期化メカニズムをスタート する。 図3は、SPセルがとることができる3つの状態と、SPセルを1つの状態か ら次の状態へ移行する方法とを示す。 起動方法全体は、第1のSPセルが実行のために仕上げられる、すなわち”レ ディ”状態に移行されるこ とにより初期化される。これは例えば特別インターフェースを介して行うことが 可能である。 SPの間の関係に起因してただ一度だけ”第1の”SP”が”レディ”にされ るだけでよい、すなわちそれぞれのSPUの中で第1のSPが”レディ”にされ る必要はない(そしてしてはならない)。むしろ、”第1のSP”とその他のS Pとの関係に起因してこれらその他のSPは自動的に”レディ”となる、何故な らば”第1のSPのアクションはその他のSPへの寄与を含み、その他のSPは 寄与に起因して”レディ”にことが可能であるからである。添付の図(図4)に おいて”第1のSP”は”SPU5”の中の第1のSPである。 図4はプロセスレベルを組込での例としての起動を示す。 プロセスが寄与を行う場合には常にSUPO_SYNCは、(プロセスがその 寄与を行う)所属のSPのすべての条件が満足されている(すなわちメカニズム がイベント制御されている)かどうかを検査する。 SPのすべて条件が満足されている場合、(まだContribute_To _SVCの中のSUPOSYNCにより)SPのアクションが次のように実行さ れる。 − なかんずくプロセスがスタートされる。 − 情報がプロセスに伝送される。 − 延期されたプロセスが再びトリガされる。 − その他のSPへの寄与が行われる。 これらのアクションに起因してまだContribute_To_SVCの中 で更なるSPが(寄与が行われるSPのために寄与の後にすべての条件が満足さ れている場合には)”レディ”になる。これらのSPのアクションもまだCon tribute_To_SVCの中で実行される(以下同様)。 ”レディ”であるすべてのSPのアクションが実行された後、このContr ibute_To_SVCは終了される。スタートするプロセスが(オペレーテ ィングシステムすなわちスーパバイザにより)選択される。 前述のようにそれぞれのSPは、SPが”レディ”となる前にいずれの条件が 満足されなければならないかに関する情報を含む。これらの条件は2つの部分か ら成る。 − 前もって到達されなければならない複数のSP。 この情報は(当該のSPが、より高い階層レベルの中の1つのSPを待つ場合 には)直接に当該のSPにおいて定められるか、又は(より低い階層レベルの1 つのSPが、前に到達されなければならないと定め ている場合には)リンカ/オフラインビルダにより生成される。 − プロセスの寄与: 起動の間の実際の作業はプロセスが行う。従ってこれらのプロセスの寄与はと りわけ重要である。 既に16)に記載のようにプロセスの寄与は2つの部分から成る。すなわちス タティック部分とダイナミック部分とから成る。スタティック部分は、所属のS Pが、このSPがある特定のプロセスの寄与を待たなければならないことを”知 っている”ためのみにある。 SPセルは”nicht_bereit_Pool”(すなわちnot−re ady−poolすなわち非レディープール)”から”bereit_Pool ”(すなわちready−poolすなわちレディ−プール)へ、次のイベント a)及びb)のうちの1つのイベントの結果として移行される。 a) SUPO_SYNCは、セグメントレベルで”nicht_bereit _Pool”の中にあるSPへの寄与を行う。この寄与を処理した後にSUPO _SYNCは、同期点のすべての条件が満足されているかどうかを検査する。イ エスの場合、SUPO_S YNCはSPセルを”bereit_Pool”に移行する。 b) 1つのプロセスが、起動にとって重要であり従ってスタートアップテーブ ルの中の前述の宣言(すなわちテーブルアナウンスメントすなわちプロセス寄与 のスタティック部分)を介してもある特定のSPのための条件となっている課題 を処理する。 この課題を処理した後にプロセスは、前述のアクションが起動しているCon tribute_To_SVC”をコールする。 SPセルを”レディ”状態から”終了”状態への移行は、SUPO_SYNC により制御されるアクションにより達成される。 同期点に関連して次のアクションが実行されることが可能である。 − スーパバイザの同期点に関連してスタートされなければならないプロセスの リスト。 − 別のSPセルへ行われなければならない寄与。 − 待ち行列の中で、この同期点が到達されることを待っているプロセスのリス トが再び”ready to run”(すなわち”ランのためにレディ”)待 ち行列の中に入れられる。 − 標準情報が、この同期点が達成された時に伝達さ れることを望むすべてのプロセスのバッファに伝送される。 − 1つのセグメントのSPセルがSUPOにより”bereit_Pool” (ready−pool)の中に動かされる。(同一のセグメントの中の次の同 期点のすべての条件が満足されるとこのセグメントの次の同期点は、実行される ためにレディとなり、この同期点は”ready−pool”の中に動かされる 。 同期点のすべての前述のアクションが実行されるとSPセルの中で当該のフラ グが設定される。 総括的に述べると、SUPO_SYNCがSPセルを”レディ”状態から”終 了”状態に移行することを作用し、この作用は、SUPO_SYNCがSPセル をready−poolから取出すことにより実現される。”ready po ol”の中のすべてのSPが到達され、すべてのこれらのSPのアクションは実 行されなければならない。 実際にはプールはSPセルのチェーンとして実現されている。処理の際にチェ ーンの中で前のSPから開始され、常に新の中の次のSPが処理される。新SP は後部でチェーンの中に組込まれる。従って、すべてのSPが処理されることが 保証される。 更に実際には”not ready pool”は存在せず、”beende t_Pool”(”fin iished pool”すなわち”終了プール”)も存在しない。これらのプ ールはSPセルの中のフラグにより置換され、フラグは、ある1つのSPのため のいくつの条件がまだ欠落しているか、又はある1つのSPのアクションが既に 処理されたかどかを指示する。 bereit_Pool(ready poolすなわちレディプール)の中 にSPセルがもはや存在しないと、SUPO_SYNCは何等の作業も有せず、 ユーザプロセスがオペレーティングシステムコール”Contribute t o SP”を用いてSPセルをレディプールに移行するのを待たなければならな い。 外部的意味を有する同期点が到達されると、SUPO_SYNCは、この同期 点に結合されているアクションを直ちに実行するのではなく、SUPO_PRO CESSに作用し、これによりSUPO_PROCESSは情報を親プラットフ ォームに伝送し、この情報により親プラットフォームに、当該のSPが、情報を 伝送するプラットフォームですなわち局所的面で到達されたことが支持される。 同時にSUPO_SYNCは、この同期点に結合されているアクションの実行を 、親プラットフォームによりSUPO_PROCESSを介して情報”SP大域 的に到達された”が受信さ れるまで遅延する。 外部同期点は2つの仮想同期点から成ると見なすことが可能であり、これは図 5に示されている。 Segment_aの中の第1の仮想同期点は、当該の同期点に関連して同期 点のすべての(局所的)条件と、ただ1つのアクションすなわち情報(”SPが 局所的に到達された”)を親プラットフォームに伝送することとを含む。 第2の仮想同期点は、情報”SPが大域的に到達された”が親プラットフォー ムにより受信されたとのただ1つの条件を含み、更に、当該の同期点のすべての 残りの(局所的)アクションを含む。 次に、ユーザプロセスの起動に対するオペレーティングシステムコール(su pervisory colls,略称SVC)が詳細に説明される。 オペレーティングシステムすなわちスーパバイザによりスタートされたすべて のプロセスは、何時にすなわちいずれの同期点でこれらのプロセスがスタートさ れることを望むかを表明しなければならない。この同期点が到達されると直ちに 、この同期点でスタートすべきプロセスはSUPO_SYNCによりスタートさ れる。SUPO_SYNCは1つのプロセスタイプのすべての具現をスタートす る。 ユーザプロセスにより行われるオペレーティングシステムコール”Con tribute_to_SP”は、第一に、セグメン トと、寄与が行われるべき(同様にプロセスを含むSPUの中の)同期点を指示 し、第二に、寄与がポジティブであるか又はネガティブであるか、すなわち寄与 を実行することが可能であったか又はエラーが発生したかを指示するパラメータ を有する。 SUPO_SYNCはそのコールの後にセグメント名称及び指示された同期点 を利用し、これにより、寄与が行われるべき当該SPセルにアクセスすることが 可能となる。次いでSPセルはタイムスタンプを得、これにより、寄与が行われ たことと、何時に寄与が行われたかが指示される。SPセルにより予測されるす べての寄与が行われるとSPセルは、実行されるためにレディである、すなわち 、同期点と結合されているアクセスが実行されるためにレディである。これは、 SPセルがSUPO_SYNCによりレディプールに移行されることにより表さ れる。その直後に、すなわち同一のコールの枠内で、同期点に結合されているす べてのアクションはSUPO_SYNCのコントロールの下に実行される。 オペレーティングシステムコール”Wait_for_SP”はユーザプロセ スにより実行され、これによりユーザプロセスはある特定の同期点に到達するま で自身を延期する。オペレーティングシステムコールは、セグメントと(固有の SPUの中の)同期点を指示するパラメータを有する。 オペレーティングシステムコールの実行もSUPOにより行われ、SUPOは 、オペレーティングシステムすなわちスーパバイザにより認可されたルーチンを 利用し、これにより、延期されたプロセス(より正確にはプロセスコントロール ブロック、略称PCB)が、スーパバイザカプセルの中の対応するリストに結合 される。リスト場所も、同期点に結合される。同期点が到達されるとプロセスが リストから取出され、”Ready to run”状態に移行される。同期点 が既に到達された場合、オペレーティングシステムコールが実行されると、オペ レーティングシステムコールをトリガするプロセスは勿論延期されない。 オペレーティングシステムコール”Watch_for_SP”(すなわち” SPをウォッチする”)は、ユーザプロセスが、到達された同期点に関して通報 することを望む場合にユーザプロセスにより実行される。このオペレーティング システムコールは、SUPOにユーザプロセスのバッファ識別子に関して通報す るために必要である、何故ならばバッファ識別子はAPS(すなわちアプリケー ションプログラムシステム)の生産時間において知られていないからである(バ ッファとひいてはプロセスのバッファ識別子とは走行時間において初めて生成さ れる)。 オペレーティングシステムコールは次のパラメータを有する。 − セグメントと、ユーザプロセスが通報される(固有のSPUの中の)同期点 。 − ユーザプロセスのバッファ識別子。 − ユーザプロセスに、同期点が発見されたかどうか、そして、同期点に到達さ れるとメッセージを受信するバッファ識別子のリストのバッファ識別子が添付さ れることができたかどうかを指示する応答パラメータ。応答がノーの場合、同期 点に到達されたことを指示する情報はユーザプロセスに伝送されない。 次に起動のオフライン支援のためのツールが詳細に説明される。 − 起動セグメントとその中に収容すべき起動情報とが適切に宣言されることを 可能にする宣言手段(定義手段)。 − 定義手段により記載されている起動情報を用いて、SUPO(すなわちスタ ートアップ制御プログラム)に適する起動テーブルを生成するテーブル生成手段 。 前述の定義手段は既に詳細に説明されたので、以下にテーブル生成手段が詳細 に説明される。 起動テーブルを、ある1つのプロセッサに対して定 められたサービスプロビジョンユニットから生成するためにコンパイラはまず初 めに、サービスプロビジョンユニットの中に含まれるセグメントから部分起動テ ーブル(セグメントテーブル)を生成する。この目的のためにSPU(すなわち サービスプロビジョンユニット)とユーザユニットの特別のコンパイルシーケン スとが必要である。更にコンパイラはサービスプロビジョンユニットのセグメン トテーブルをSPUプロログとバインドする。 異なるセグメントの間の関係はリンカ及びオフラインビルダにより形成される 。この場合、セグメントテーブルに、これに関して必要な情報が付加される。 前述のテーブル生成手段に起因して起動テーブルは既に、最後のAPS(アプ リケーションプログラムシステム)ロード生成の前に使用可能である。従って起 動の全経過は既にこの時点で当該検査ツールにより検査される。この検査手段は 例えば起動テーブルをコンシステンシー(デッドロック等)に関して検査し、全 経過の中のクリティカルなパスに関して解析を実行し、ボトルネック及びクリテ ィカルなタイムパスを識別する。これにより(全)起動テーブルを早期に最適化 することが可能である。 最後に、指示手段を用いて、対応する起動プランの形の(全)起動テーブルが ディベロッパに見えるようにすることが可能である。これによりディベロッパは エラーを容易に発見することが可能である。

Claims (1)

  1. 【特許請求の範囲】 1. プログラムシステム(APS)の起動を定める少なくとも1つの起動テ ーブルと、 前記起動テーブルの中に含まれる起動情報を用いて起動を制御する起動制御プ ログラム(SUPO_SYNC,SUPO_PROCESS)とを有する計算機 システムの起動システムにおいて、 前記起動テーブルをオフラインで起動情報から作成し、該起動情報は前記プロ グラムシステムのソフトウェアコンポーネント(SPUすなわちサービスプロビ ジョンユニット)の中で前記起動テーブルの設計時に宣言されている、 ことを特徴とする計算機システムの起動システム。 2. 前記起動テーブルは、複数の部分起動テーブルから成るテーブルであり 、 部分テーブルをそれぞれ、ソフトウェアコンポーネント(SPU)の起動に対 する宣言のコンパイルにより生成する、請求項1記載の計算機システムの起動シ ステム。 3. 種々異なる部分テーブルを、プログラムシステムの作成のために設けら れているプロダクトツールにより1つの完全なテーブルに統合する、請求項1又 は請求項2記載の計算機システムの起動システム。 4. テーブルの中で、1つの条件を満足するため に同期化をプロセッサ限界を越えて実行すべきであるか否かを設定する、請求項 1から請求項3までのいずれか1に記載の計算機システムの起動システム。 5. ユーザソフトウェアもテーブルを用いてその起動自体を定義することが 可能である、請求項1から請求項4までのいずれか1に記載の計算機システムの 起動システム。 6. テーブルが第一にシステム状態(SP)を所定の順序で定め、第二にそ れぞれの前記システム状態に到達した後に実行すべきアクションを定め、このこ とによって起動を定める、請求項1から請求項5までのいずれか1に記載の計算 機システムの起動システム。 7. 満足されるとシステム状態が到達されたと見なされる条件(Condi tion,Contribution)をテーブルが定め、このことによってシ ステム状態を定める、請求項1から請求項6までのいずれか1に記載の計算機シ ステムの起動システム。 8. 計算機システムの起動を定める方法において、 計算機システムのコンポーネントプールのソフトウェアコンポーネントの中で 、前記ソフトウェアコンポーネントの設計時に、ソフトウェアコンポーネントを 計算機システムの起動全体へバインドするための起動関係を宣言し、 前記コンポーネントプールから前記計算機システムのカスタマ固有のプログラ ムシステムのために選択されたソフトウェアコンポーネントに基づいてオフライ ンで、リアルタイムシステムの起動全体を定める起動テーブルを作成し、 当該起動テーブルを起動制御プログラムがオンラインで使用して起動を制御す る、 ことを特徴とする方法。
JP9504174A 1995-06-28 1996-06-26 計算機システムの起動システム Pending JPH10510649A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE95110106.2 1995-06-28
EP95110106 1995-06-28
PCT/EP1996/002795 WO1997001815A1 (de) 1995-06-28 1996-06-26 Anlaufsystem eines rechnersystems

Publications (1)

Publication Number Publication Date
JPH10510649A true JPH10510649A (ja) 1998-10-13

Family

ID=8219396

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9504174A Pending JPH10510649A (ja) 1995-06-28 1996-06-26 計算機システムの起動システム

Country Status (12)

Country Link
US (1) US5951682A (ja)
EP (1) EP0836721B1 (ja)
JP (1) JPH10510649A (ja)
CN (1) CN1093954C (ja)
AT (1) ATE183834T1 (ja)
CA (1) CA2225748C (ja)
DE (1) DE59602894D1 (ja)
DK (1) DK0836721T3 (ja)
ES (1) ES2138354T3 (ja)
GR (1) GR3031855T3 (ja)
NO (1) NO317209B1 (ja)
WO (1) WO1997001815A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1080408B1 (de) * 1998-05-19 2001-12-05 Siemens Aktiengesellschaft Steuerungssystem zur steuerung der inbetriebnahme eines verteilten systems
DE19924461A1 (de) * 1999-05-28 2000-11-30 Heidenhain Gmbh Dr Johannes Verfahren zum synchronisierten Hochlauf einer Steuerung
US8010964B2 (en) * 2005-08-18 2011-08-30 Tellabs Operations, Inc. Methods for monitoring and managing processes
US20070113061A1 (en) * 2005-11-14 2007-05-17 Kabushiki Kaisha Toshiba System and method for coordinated startup of document processing service functions
US7878798B2 (en) * 2006-06-14 2011-02-01 John Zink Company, Llc Coanda gas burner apparatus and methods
GB2471464A (en) * 2009-06-29 2011-01-05 Nokia Corp Procedure for generating a merged command list form the static lists to be used to start up or boot up the host device.

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5182807A (en) * 1987-12-18 1993-01-26 Nec Corporation Assembler system for determining when to compile source code modules
WO1989012274A1 (en) * 1988-06-06 1989-12-14 Robert Bosch Gmbh Method for monitoring the correct combination of processors or programs in a computer system
US5155809A (en) * 1989-05-17 1992-10-13 International Business Machines Corp. Uncoupling a central processing unit from its associated hardware for interaction with data handling apparatus alien to the operating system controlling said unit and hardware
ATE176061T1 (de) * 1991-11-27 1999-02-15 Ericsson Telefon Ab L M Softwarestruktur für fernmeldevermittlungssystem
US5724556A (en) * 1995-04-14 1998-03-03 Oracle Corporation Method and apparatus for defining and configuring modules of data objects and programs in a distributed computer system

Also Published As

Publication number Publication date
EP0836721B1 (de) 1999-08-25
NO974988L (no) 1998-04-29
ATE183834T1 (de) 1999-09-15
NO317209B1 (no) 2004-09-20
DK0836721T3 (da) 2000-03-27
EP0836721A1 (de) 1998-04-22
NO974988D0 (no) 1997-10-29
US5951682A (en) 1999-09-14
ES2138354T3 (es) 2000-01-01
CA2225748C (en) 2003-10-28
CN1093954C (zh) 2002-11-06
DE59602894D1 (de) 1999-09-30
WO1997001815A1 (de) 1997-01-16
CA2225748A1 (en) 1997-01-16
CN1189227A (zh) 1998-07-29
GR3031855T3 (en) 2000-02-29

Similar Documents

Publication Publication Date Title
US4885684A (en) Method for compiling a master task definition data set for defining the logical data flow of a distributed processing network
US5319645A (en) Method for debugging and testing the correctness of programs
US9251004B1 (en) System and method for application isolation with live migration
US5564051A (en) Automatic update of static and dynamic files at a remote network node in response to calls issued by or for application programs
US5365606A (en) Virtual software machine running multiple program modules in a single address space of a target computer
KR100323881B1 (ko) 컴퓨터동작중에소프트웨어를변경시키기위한방법및그시스템
CA2061117C (en) Apparatus and method for distributed program stack
US9384347B1 (en) System and method for hierarchical interception with isolated environments
US5748959A (en) Method of conducting asynchronous distributed collective operations
US20100162226A1 (en) Zero downtime mechanism for software upgrade of a distributed computer system
US6385668B1 (en) Method and apparatus for compound hardware configuration control
CA2119215A1 (en) Method and apparatus for linking object managers for cooperative processing in an object oriented computing environment
CN102279765A (zh) 预编译托存托管代码
JP3748339B2 (ja) 複数のデータストアの同期をとってデータ整合性を達成する方法
WO2002084479A2 (en) Method and apparatus for performing online application upgrades in a java platform
US20050071856A1 (en) Dynamically loadable stub modules
KR100250464B1 (ko) 고속병렬컴퓨터의 노드 부트 방법
Merzky et al. Design and performance characterization of radical-pilot on leadership-class platforms
CN111061487A (zh) 一种基于容器的负载均衡分布式编译系统和方法
Segal et al. Dynamically updating distributed software: supporting change in uncertain and mistrustful environments
CN114756357B (zh) 一种基于jvm的非阻塞分布式计划任务调度方法
US20010027387A1 (en) Debugging supporting apparatus, debugging supporting method and recording medium readable by computer with its programs recorded thereon
JP2000066904A (ja) マルチタスク制御方法及び記憶媒体
WO2002048886A2 (en) Telecommunications platform with processor cluster and method of operation thereof
US6256751B1 (en) Restoring checkpointed processes without restoring attributes of external data referenced by the processes