JPS63167938A - 信号処理装置及び信号処理方法 - Google Patents

信号処理装置及び信号処理方法

Info

Publication number
JPS63167938A
JPS63167938A JP62323012A JP32301287A JPS63167938A JP S63167938 A JPS63167938 A JP S63167938A JP 62323012 A JP62323012 A JP 62323012A JP 32301287 A JP32301287 A JP 32301287A JP S63167938 A JPS63167938 A JP S63167938A
Authority
JP
Japan
Prior art keywords
signal
child
processor
user
signals
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
JP62323012A
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.)
AT&T Corp
Original Assignee
American Telephone and Telegraph Co Inc
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 American Telephone and Telegraph Co Inc filed Critical American Telephone and Telegraph Co Inc
Publication of JPS63167938A publication Critical patent/JPS63167938A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Multi Processors (AREA)
  • Hardware Redundancy (AREA)

Abstract

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

Description

【発明の詳細な説明】 (発明の背景) [発明の属する技術分野] 本発明はマルチプロセッサシステムに関する。
特に前記マルチプロセッサシステムにおいて、あるプロ
セッサ上で実行されているプロセスが、他の一つもしく
は複数のプロセッサ上で実行される拡張もしくは補助プ
ロセスを有する場合の信号処理に関する。
[従来技術の説明] 従来のコンピュータシステムにおいては、単一のプロセ
ッサが、情報の流れを制御し、その情報を処理するため
に、用いられている。より大きい処理能力(スルーブツ
ト)が要求される場合には、いくつかの別な方策が用い
られる。そのような方策の一つがコプロセッサ(co−
processor)の使用であり、そのコプロセッサ
にある量のタスクを処理させる。このコプロセッサは、
ある状況においテハ、有効であるが、スルーブツトを無
制限に拡大させることはできない。
従来用いられてきた他の方策は、コンピュータシステム
をグレードアップして、より高速のプロセッサを有する
ものにする、ということである。
元のシステムは撤去されるか、他のタスクに割り当てら
れる。当然、そのようなグレードアップに際しては、元
のシステムで用いられるように書かれたプログラム(プ
ロセス)が、グレードアップしたシステムでも継続して
用いられうることが不可欠である。それゆえ、グレード
アップされた“新しい“システムは、既存のプログラム
に対して、トランスペアレント、すなわち、既存のシス
テムの有する機能全てを包含した機能を有するものでな
ければならない。
本願と同時提出の特許願(1)(対応US特許出願第9
41700号)で、本明細書に参考事項として引用して
いる“マルチプロセッサシステムの新規プログラムを実
行する方法およびその装置”においては、複数個の独立
したプロセッサが当該システムで実行されるプログラム
を同時に実行するために用いられるようなマルチプロセ
ッサシステムが記述されている。そのようなシステムは
、それ以前の技術に係るシステムよりも一歩進んだもの
であり、非常に改善されたスループット及び処理能力を
有する。しかしながら、コンピュータ技術に関する他の
多くの改良の場合と同様、いくつかの問題点が重要とな
る。マルチプロセシングによって得られる増大した能力
を利用するには、これらの問題をまず限定し、解決しな
ければならない。
議論を先に進める前に、信号及び割り込みに関して手短
かに論じ、マルチプロセシングシステムに固有の問題に
対する理解のための共通の基礎を得ることにする。
ここでは、信号及び割り込みに関して、ユニックス(U
NIX  AT&T社の商標)というオペレーティング
システムによって、その概略を説明する。ユニックスオ
ペレーティングシステムは、トンプソン(Thomps
on)によるベル システム テクニカル ジャーナル
(Bell 5ysteIITechnicalJou
rnal ) 、第57巻、第6号、1978年7−8
月、に″UNIXインプリメンテーション”という表題
で掲載された記事に記されている。加えて、モーリス 
バッハ(Maurlce Bach)による’UNIX
オペレーティングシステムの設計’  (Prentl
ce−tlal1社、版権所有1986年)は、ユニツ
クスジステムをより詳細に知りたい者にとっては有用で
あろう。もちろん、ユニツクスジステムはここで示す概
念を利用したシステムの一例に過ぎない、上述した参考
文献は本明細書において参考事項として引用する。
ユニックスオペレーティングシステムを含む多くのオペ
レータシステムは、実行中のプログラムに対して、非同
期の事象の発生の検出を可能ならしめる機能を有する。
ここで“非同期の事象”とは、それが発生する時点で当
該プログラムが何を実行しているかに関わりなく発生す
るあらゆる事象である。非同期の事象の一例は、ユーザ
が端末のブレークキーを押した場合である。オペレーテ
ィングシステムのカーネル(カーネルという術語及びそ
の定義については、前掲のBSTJ中の記事に記載され
ている。)においては、入出力(Ilo)割込みが非同
期事象の一般的な例である。
ユニツクスジステムは実行中のプログラムに非同期事象
の発生を知らせるためにある種の“信号”を用いる。こ
れらの信号は、あるものはシステムで規定された意味を
持ち、またあるものはユーザプログラムによって定義さ
れる。
実行中のプログラム(プロセスとも呼称される)に対し
て、当該プロセスの制御ブロックに非同期事象の発生が
記録された時に、ある信号が送出される。実行中のプロ
セスは、他の信号をユニックスのシステムコールを用い
てカーネルに送出し、ユニツクスジステムのカーネルは
、実行中のプロセスに対して内部信号を送出する。プロ
セスが信号を受け取るのは、当該プロセスが現在実行中
のプロセスになった場合であり、カーネルは信号が送出
された(当該プロセスの制御ブロックに書き込まれた)
ことを検知して、何らかの動作を起こす。プロセスは、
複数個のプロセスよりなるプロセスグループにまとめら
れ、ユニックスオペレーティングシステムは、プロセス
グループ内の個々のプロセスに対して信号を送出するこ
とか可能である。
ユニックスオペレーティングシステムは、実行中のプロ
セスに対して、当該プロセスが信号を受け取った場合に
カーネルが起こす動作を規定することを可能にしている
。デフオールドの場合には、それは、プロセスの実行の
終了である。
しかしながら、実行中のプロセスは、ある信号を受け取
った場合にそれを無視することを要求することができる
。またある場合には、実行中のプロセスは、ある信号を
受け取った場合に、カーネルに対して、ユーザプロセス
のアドレス空間のあるコードセグメントを実行すること
を要求する。このコードセグメントは、カーネル内の割
り込みハンドラと類似のものであり、この割り込みハン
ドラはプロセッサがハードウェア割込みを受け付けると
実行される。すなわち、このコードセグメントが実行さ
れる場合をプロセスが、信号を処理したと言う。
上述の信号の取り扱いにはいくつかの側面がある:すな
わち、カーネルがプロセスに対してどのように信号を送
出するか、当該プロセスがどのように信号を処理するか
、及び当該プロセスがどのように当該信号に対する応答
を制御するか、である。
プロセスに対して信号を送出するために、カーネルは当
該プロセスに対するプロセス制御ブロックにおける信号
フィールドのあるビットをセットする。各ビットは各々
異なった信号に対応している。
他の多くのオペレーティングシステムと同様、ユニック
スにおいては、実行中のプロセスは、その要求がなされ
た時点で利用可能でない機能を要求することができる。
このことには、未発生の事象が起こるのを待つことも含
まれる。ユニックスのカーネルはそのプロセスを“スリ
ーブ状態にして、機能が利用可能となる、もしくは事象
が発生するのを持ち受けさせ、その時点でプロセスは再
起動させられる。この“スリーブ状態は、ブレイカプル
スリーブとアンブレイカプルスリーブとに分けられる。
ブレイカプルスリーブとは、当該プロセスが待ち受けて
いる(当該プロセスがスリーブ状態に入る原因となった
)事象もしくは機能と同様、他のその時点で無視すると
規定していない信号の到着によっても“破られうる“ス
リーブ状態である。
(プロセスはどの信号を無視するかを規定することがで
きることに留意されたい。) アンブレイカプルスリーブとは、当該プロセスが待ち受
けている事象もしくは機能によってのみ“破られうる”
スリーブ状態である。そのようなスリーブ状態はその信
号が当該プロセスによって無視されていない場合であっ
ても、信号の到着によっては、破られることはない。
プロセスがブレイカプルスリーブ状態にある場合、カー
ネルは無視されていない信号が到着するとプロセスを起
動する。この時点で信号送出側のジョブは終了する。以
下に述べるように、信号は、単一のビットなので、プロ
セスは異なる種類の信号を記憶しておくことができるが
、ある一つの種類の信号が何回受け取られたか、という
ことは記憶できない。
カーネルは、現在実行中のプロセスの代わりに、当該プ
ロセスがカーネルモードからユーザモードに復帰する時
点及びスリーブ状態に入るもしくはそれから出る時点で
、信号の受け取りをチェックする。また、カーネルは、
プロセスがカーネルモードからユーザモードに復帰する
時点でのみ信号を処理する。それゆえ、信号は、カーネ
ルモードで実行されているプロセスに対して(ブレイカ
プルスリーブ状態を破った場合を除き)即時的な効果を
持たない。プロセスがユーザモードにあってカーネルが
当該プロセスに対して、信号を送出する原因となる割り
込みを処理する場合、カーネルは割り込みから復帰する
時点で規定された動作を認識してそれを実行する。それ
ゆえ、未決の信号を処理する前には、プロセスはユーザ
モードで実行されることはない。
プロセス制御ブロックは、信号に関して2つの重要なデ
ータ構造を有する。
第1は、32ビツトのフラグワードで、各ビットが32
個の可能な信号に対応している。各ビットは、信号が送
出されると1にセットされ、信号が無視されるかもしく
は処理されるとOにセットされる。
第2のデータ構造は、32個のワード配列で、各ワード
がそれぞれ32個の可能な信号に対応している。各々の
ワードは、対応する信号の受信に対して当該プロセスが
とるべき動作を規定したものを記録している。ある信号
に対してその動作を規定することは、他の信号に対する
動作の規定に際し、何ら影響を及ぼさないことに留意さ
れたい。
ここで、マルチプロセシングシステムの問題点について
の議論を再開する。一つの問題は、ある特殊な状況での
割り込み処理の領域におけるものである。問題は、一番
目のプロセッサの制御下で実行されているプロセスが(
多くの場合、システムユーザからの命令又は刺激に応じ
て)サブプロセッサすなわち子プロセスの刺激に応じて
)サブ(sub)プロセッサ、すなわち子(stubス
タブ)プロセスの生成を引き起こすために生じる。これ
らの子プロセスは一つもしくは複数個の他のプロセッサ
の制御下で実行されることとなる。
ここで、しばらくの間、これらの子プロセスに到達する
命令が即時動作を要求するものと仮定する。当該システ
ムにおいては、各プロセッサが独立に機能するように設
計されており、各子プロセスがそれぞれのプロセッサの
制御下におかれているために、割込み信号は、当該子プ
ロセスの結果に依拠していて、異なったプロセッサの制
御下で実行されている他のプロセスに無関係に、当該子
プロセスによって処理されてしまう。
この問題に対する一つの解決策は、全てのプロセス及び
子プロセス及びそれらに対応するプロセッサについての
システムマツプを作成し、全てのプロセッサが実効的に
、ある特定の命令に対してのみ動作する、というように
することである。しかしながらこの解決策は、実行時間
及び制御という面で莫大なオーバヘッドを必要とし、プ
ロセス及びプロセッサの数が増加するにつれて非常に複
雑になってしまう。また、そのようなシステムにおいて
も、子プロセスがもとの要求を処理する前に当該子プロ
セスが割り込み命令を受け取ってしまう、という状態が
起こりうる。それゆえ、ある特殊な手段をあらかじめ講
じない場合、プロセッサは信号そのものを失ったり、同
一の信号に対して二度応答してしまう、従って、マルチ
プロセシングシステムにおいては、効率的で正確に機能
する信号処理システムが必要である。
(発明の概要) 上述の及びその他の問題点は、本発明に係る、マルチプ
ロセッサシステムによって解決される。
このシステムにおいては、全ての信号が、どのプロセッ
サが最初に当該信号を送出するかということには無関係
に、ユーザプロセスに送出されて、あらゆる動作が、子
プロセスによってなされる以前に、ユーザプログラムを
実行しているプロセッサによって、検査される。そのの
ち、ユーザプロセッサは適切な信号をアクティブな子プ
ロセスに対して転送する。我々は、全ての信号が適切な
時刻に処理され、異なったプロセッサで実行されるプロ
セス間の動作の遅れによって生じる不確定性の“ウィン
ドー1のために信号を失ったり、二重に応答したりする
ことのないことを保証するためのいくつかのアルゴリズ
ムを設計した。
−例では、ユニックスオペレーティングシステムを用い
、システムを複数個のプロセッサに対して複写し、それ
ぞれがユーザプロセスとカーネルプロセスを有するよう
にする。各プロセッサは情報をパケットデータ転送の手
法によって交換する。
拡張されたプロセスは、ユーザ部分(すなわちユーザプ
ログラムの実行に係るプロセス)及び子プロセス(群)
とからなり、当該子プロセス(群)は各々対応するプロ
セッサ上のユーザプログラムに対してユーザプロセスが
、他のプロセッサに送出されなければならない要求をな
した場合)その代理として動作する他のプロセッサ上に
存在している。ここで、時間軸上の一点においては、ユ
ーザ部分もしくはその子プロセスのいずれか、という拡
張プロセスの一部のみが、アクティブであることに留意
されたい。
この−例では、信号処理コード領域は、常に、拡張され
たプロセスのユーザ部分に対応しているプロセッサによ
って実行される。我々の方法によれば、ユーザカーネル
は現在の信号結果(すなわち、無視されていない信号が
受け取られたかどうか)を子パケットとして子プロセス
へ送出し、無視されない信号が子プロセスが応答する以
前に受け取られた場合には、更新された信号結果がアク
ティブな子プロセスへ送出される。この状態は擬信号状
態と呼ばれる。このことは、子プロセスがブレイカプル
スリーブ状態にありうるため、必要である。そのような
プロセスへは、無視されない信号が拡張プロセスへ送出
された場合には必ずそのことが通知される。さらに、子
プロセスは、次のユーザ要求を得るためのスリーブ状態
に入る前に、自らが有していた信号結果についての情報
を消去し、ユーザ要求を処理する場合には、データパケ
ットから得た信号結果との論理和をとる。
ユーザプロセスが、子プロセスからの応答を受け取って
再起動されると、子プロセスに対して他の要求を送出す
る以前に、当該子プロセスの有した、信号結果について
の情報が消去されているかを確認する。これは、更新さ
れた擬信号状態及び他の子プロセスからの応答によって
、子プロセスが同一の信号を再度処理してしまわないた
めである。
さらに、各々のカーネルは送出もしくは転送された信号
を記録する連接されたリスト及びベースレベルで実行さ
れ、当該リストから信号を抹消して、各プロセッサへ通
じる通信チャネルによって当該信号を正しい受け手に転
送するシステムプロセスを管理している。すなわち、我
々のシステムでの重要な側面は、それ単独では他のプロ
セッサに信号を転送するという機能を有し、信号ハンド
ラと呼称されるディスパッチャプルプロセスを各プロセ
ッサが有するということである。
(実施例の説明) 第1図には、バス104によって相互に接続された複数
個のコンピュータ101から103よりなるマルチプロ
セッサシステムが示されている。トンプソン(Thom
pson)によるの参考文献においては、オペレーティ
ングシステムのカーネルは単一のコンピュータに限定さ
れていたが、第1図におけるカーネルはプロセスを複数
個のコンピュータに亘って拡張することを許可している
。この拡張プロセスは、個々のコンピュータ上で実行さ
れる個別の特定プロセスの集合体であり、本明細書と同
時提出の特許願(1)(対応US特許出願第94170
0号)においてより詳細に記述されている。これらの特
定プロセスは、また、主プロセス、すなわち、ユーザプ
ロセス、及び副プロセス、すなわち子プロセス、と呼称
される。拡張プロセスに関連するそれぞれのカーネルは
、それらによって制御されるコンピュータ上で拡張プロ
セスが機能するために必要な個別のプロセスを管理して
いる。各コンピュータは、それに付随したメモリ及びI
10デバイスを有する;ただし、いくつかのコンピュー
タは、遠距離データ通信インターフェースもしくは大量
ストレージデバイス等の特別なI10デバイスに接続さ
れている。
第1図に示されたシステムで新しいプログラムが起動さ
れると、当該プログラムは、自動的に、そのプログラム
に対して割り当て可能な処理能力を有するか、もしくは
、そのプログラムが要求する特定の110機能を有する
、未だジョブの割り当てのなされていないコンピュータ
に割り当てられる。この、未だ割り当てのなされていな
いコンピュータは、要求を実行するコンピュータそのも
のもしくは異なったコンピュータである。プログラムの
実行は、処理能力を有する一つのコンピュータ及び必要
なファイルもしくは特定の110機能を有する一つもし
くは複数個のコンピュータからなる複数個のコンピュー
タに分配される。プログラムの実行が分配されると、拡
張プロセスが生成される。
トンプソン(Thompson)による前掲の参考文献
によれば、プロセスとは、メモリ上にテキストエリア、
データエリア及びbssエリアを必要とし、プロセス制
御ブロックによってオペレーティングシステムに識別さ
れるソフトウェアである。トン。
ブソンによる単一のプロセッサを有するシステムで実行
されるオペレーティングシステムにおいては、プロセス
制御ブロックはメモリ上の一領域に包まれている。とこ
ろが、第1図に示したシステムにおいては、プロセス制
御ブロックは、当該拡張プロセスに関連した全てのコン
ピュータに亘って分配されている。拡張プロセスはユー
ザプロセス及び複数個の子プロセスよりなる。ユーザプ
ロセスは、プロセス制御ブロックの他、のメモリ上にテ
キストエリア、データエリア及びビーニスニス(bss
 )エリアを有する。子プロセスは、時間軸上のあらゆ
る点において拡張プロセスに係る要求に従って、その子
プロセスが実行されるコンピュータの動作に係るプロセ
ス制御ブロックのオペレーティングシステムの機能に関
する部分のみを有する。
拡張プロセスは、マルチプロセッサシステムに要求され
る機能をダイナミックに調整して、プログラムの実行に
供するものである。
マルチプロセッサシステムの他のプロセッサによって別
の機能が要求されると新たな子プロセスが拡張プロセス
に付加される。拡張プロセスのユーザプロセスを実行し
ているプロセッサのカーネルは、ユーザプロセスによっ
て新しいプロセッサ上の機能を必要とするシステムコー
ルがなされると、自動的に子プロセス生成の必要性を検
出する。
その後、ユーザプロセスのカーネルは新しいプロセッサ
のカーネルと連絡し合ってその新しいブロセッサ上に子
プロセスを生成する。
新しい子プロセスの生成には、ユーザプロセス・子プロ
セス間の連絡チャネルの生成も含まれる。
−たびそれが生成されると、その以降のユーザプロセス
・子プロセス間の連絡は全て当該チャネルを通じてなさ
れる。トンプソンによる文献に記載されているように、
ユニックスオペレーティングシステムによって制御され
る単一のプロセッサ上□  のプログラムの実行は以下
のようである;まず、フォーク(f’ork)システム
コールが実行され、実行されるべきプロセスが子プロセ
ス及び親プロセスに複製される。これらのプロセスは同
一のプログラムを共有するが、異なるデータストレージ
領域を有する。続いて、子プロセスは、エグゼク(ex
ec)システムコールを実行する。エグゼクシステムコ
ールの実行により、新たなプログラムが実行される。プ
ロセス制御及び情報についてのより詳細な議論について
は、前掲の特許願(1)を参照されたい。
以下に、基本的なユニックスオペレーティングシステム
を変更することによって、インプリメントした、上述の
、マルチプロセシングシステムにおける問題点への解答
を、詳述する。
次に示すのは、ユニックスオペレーティングシステム内
で用いられる基本的なプロセスデータ構造である、プロ
セス制御ブロックへの追加及び変更である。
P−フラグ;これは、32ビツト整数で、プロセスの状
態を示すプール台数のフラ グを保持するために用いられる。
新たに定義されたフラグは次の通りである。
5SACT、このフラグは、現在子プロセスがアクティ
ブで、それゆえ拡張プロ セスのユーザ部分が、それ自身の 前に、当該アクティブ子プロセス の応答を持ち受けている、という ことを示す。
SS I SG −二のフラグは、アクティブ子プロセ
スに対する擬信号状態(以下に 議論する)を示す。ユーザプロセ ッサに関しては、これは子プロセ スに対して送出される最後の信号 状態である。子プロセッサに関し ては、これが真(立っている)の 場合には、ブレイカプルスリーブ 状態を破る擬信号である。
5SSIG、このフラグは子プロセスに対して元の要求
が送出された後に、更新 された擬信号が、当該子プロセス に送出され、要求終了時に消去の ための最終種信号消去要求が送出 されなければならないことを示す。
5SIGP、このフラグは、グループ信号があるプロセ
スに対して送出され、そ れがプロセスグループに関する情 報を記録するプロセッサへ転送さ れなければならないことを示す。
P−slglink ;この領域は、受け取られた信号
を、特定のカーネルプロセスによって 拡張プロセスの現在アクティブな 部分へ転送するため、SIglinkリスト上のプロセ
スをリンクするの に用いられる。
P−siggrp  ;あるプロセスへ送出され、未転
送のグループ信号の総和。
P−port   ; S 5ACTが立っている場合
、この領域にはプロセッサにアクティ ブな子プロセスの場所を認識させ る情報が入る。
P−blcld   ;この領域は、内部で子プロセス
とユーザプロセスを識別するのに用 いられる。この領域には、ユーザ プロセスがどこにいるかを示す、 プロセッサ認識コードがおかれる。
第1図には、バス104で相互に接続されたプロセッサ
101. 102及び103よりなるマルチプロセッサ
システムが示されている。これらのプロセッサ上で実行
されるカーネルは、ある程度相互依存的な動作をする。
この具体例では、ユーザブログラムがプロセッサ101
上にあると仮定したため、プロセッサ101はホストプ
ロセッサと見做される。
我々は、ユーザプロセスをユーザコードが一つの(例え
ばホスト)プロセッサ上に存在し、子プロセスと呼ばれ
るスリーブ状態に入りうるプロセスが他のプロセッサ上
に存在するような拡張プロセス、と定義する。子プロセ
スは、ユーザプロセスで必要とされるある機能を制御す
る。この具体例においては、システム中の全てのプロセ
スがホストプロセッサ上に存在するということを仮定す
る。
そのため、ホスト(プロセスマネージャー)プロセッサ
は、全てのユーザプロセスについての情報を有するプロ
セッサでもある。その結果、プロセスグループ信号は常
にホストプロセッサに最初に送出される。
プロセス101−1のようなユーザプロセスが自らが実
行されるプロセッサの有しない機能を必要とする場合、
バス104を通じて要求が、必要な機能を有するプロセ
ッサ上の子プロセス102−1のような子プロセスに対
して送出される。 子プロセス102−1からの応答は
いつなされるかわからないため、ユーザプロセス101
−1はその応答を待ち受けるためにアンブレイカプルス
リーブ状態に入る。
信号は、適切なデータ構造中に当該信号を挿入し、ブレ
イカプルスリーブ状態を破ることによって各プロセッサ
へ加えられる。第2図には、このシステムにおける、他
のプロセッサへの信号転送の概念が示されている。これ
は、“ボスティングと呼称され、節(node) 20
1及び節202間の処理として示されている。第2図に
おいて、“信号供与”節201は、第3図から第6図に
示した流れ図に対応している。
節203で示すように、システムに信号が到達すると、
プロセスの位置が既知の場合には、そのプロセスとユー
ザプロセスとを接続することによって当該信号が加えら
れ、そのプロセスの位置が不明の場合には、全てのプロ
セス位置に関する情報を有するホストプロセッサへ信号
が加えられる。
以下に詳細に述べるように、ユーザプロセスはそれ自身
の信号ワードに加えられた信号を有し、信号の性質がブ
レイカプルスリーブ状態を破る類のもので、ユーザプロ
セスが、現在未決の、子プロセスに対する要求を有し、
元の要求が、それが未決でかつスリーブ状態を破るもの
であり、そのような情報が子プロセスへ未だ転送されて
いないことを示す場合には、これらの情報は、この時点
で子プロセスへ転送される。
上述の既存の情報を子プロセスへ送出すると、節205
の擬信号が子プロセスに生じ、以下に述べる方法でブレ
イカプルスリーブ状態を破ることになる。
第3図に示されているように、 P−フラグ中の5SA
CTフラグがセットされている場合は、子プロセスはア
クティブである。
P−フラグ中のSS I SGフラグがセットされてい
る場合は、当該子プロセスには、スリーブ状態を破る信
号が既に受け渡されている。実際5SISGフラグは、
擬信号である。信号がスリーブ状態を破る能力を有して
いるかどうかは、ユーザによって規定された信号の性質
を検査することによって決定される。この情報は、ユー
ザプロセッサのみが保持している。
第4図に示されているように、“既に送出された” (
already posted)というのは当該プロセ
スが51g1illkと呼称されるプロセスについての
連接されたリスト上に存在するということを意味してい
る。この連接されたリストは、当該リスト上の全てのプ
ロセスが、他へ転送されなければならない、そのプロセ
スに関する信号を有している、ということを示している
第5図に示されているように、P−s i g及びP−
s iggrp領域を消去することにより箱状の“開始
領域クリア“ (clear entry)がコード領
域内に生じ・それは、新たな信号を阻止した上で実行さ
れる。
新たな信号は、論理的には、この流れ図において示され
ているところに属している。“開始領域クリア”は、第
一義的には、現在検査されているプロセスが51g1i
nkリストから除去されることを示している。その後、
新しい信号が到達すると、そのプロセスは連接されたリ
スト上に再び配置される。よって新しい信号の阻止は短
時間である。
“ホストへ転送”(forward to host)
及び“信号転送” (forward slgnaりと
表わされるブロックは、バスを必要としないパケット通
信を意味するが、それはここでの議論の範鴫にない。
第6図は、送出された信号が新しいプロセッサに到達し
た場合に生じる動作を示している。この動作とP si
gnal関数の動作との類似に留意されたい。この動作
は内部でのみApacheプロトコールによってなされ
るのに対して、P s1gnal関数は外部からApa
cheプロトコールによって使用される。
プロセスの存在位置の変化は、他のプロセスが認識する
以前に変化しうる。それゆえ、ここでなれさる第1のチ
ェックは、プロセスの存在を認識するものである。
ここで、第2のチェックが必要である。なぜならここで
の動作は(ユーザプロセスへの)真の信号の到達及び子
プロセスへの擬信号(セットする場合及びクリアする場
合)の双方に働くからである。
第7図は、子プロセスにおける基本的なインターフェイ
ス制御の流れを示している。子プロセスへの要求に対し
て全く応答がない場合には、子プロセスがブレイカプル
スリーブ状態にある可能性がなく、そのためそのような
要求に対して、信号に対して用いられるアクティブな子
プロセスプロトコールが続くことはない。
子プロセスアクティブインジケータ(P−フラグ領域中
の5SACTフラグ)をセットすることは、p−por
t領域に情報をセットして、アクティブな子プロセスに
対応しているプロセッサに関するより新しい認識を可能
にすることでもある。これは、擬信号が転送されなけれ
ばならない場合に、必要である。
要求が完了すると、(P−フラグ領域中の5SSIGフ
ラグで示されるように)擬信号が更新された場合には、
最終のクリア擬信号が送出されなければならない。
第8図に示されているように、ホストプロセッサ側では
、アクティブなプロセスについてのりスト全てが検索さ
れ、プロセスグループに対応するプロセス全てが調べら
れる。そのようなプロセスはそれぞれ対応する信号を受
け取る。
副プロセッサ側では、ボスティグ機構によってグループ
要求の転送のみを行なう。
【図面の簡単な説明】
第1図は、マルチプロセッサシステムの模式図第2図は
、信号状態を表すダイヤグラムチャート;及び 第3図から第8図は、信号処理のために本発明に係るシ
ステムで実行される種々の機能についての流れ図である
。 101・・・ホストプロセッサ 102・・・副プロセッサ 103・・・副プロセッサ 104・・・バス nc、  t FIo、 3 FIC,4 旬ミ転美 FIG、 6 2°ル一ア/I主号のテi

Claims (14)

    【特許請求の範囲】
  1. (1)ある特定のプロセスが第一のプロセッサの制御下
    で実行され、特定のユーザプロセスの子プロセス(群)
    がマルチプロセッサシステムの他のプロセッサ(群)の
    制御下で実行され、さらに、前記プロセスに対して、前
    記プロセスの外部において発生した非同期の事象につい
    ての情報を与えるために信号が用いられるマルチプロセ
    ッサシステムの信号処理装置において、 各プロセスに附随した信号を受け取る手段;プロセッサ
    によって制御され、前記子プロセスの各々が、どのプロ
    セッサが当該子プロセスに対するユーザプロセスの実行
    を制御しているかを決定するための手段;及び 受け取られた子プロセスに対する信号の一つを前記第1
    のプロセッサに、当該子プロセスを制御しているプロセ
    ッサが信号に対する動作をなすことなしに、送出する手
    段; を有することを特徴とする信号処理装置。
  2. (2)前記信号が、 前記各々の信号に対応するプロセスの実行を制御してい
    る特定のコードセグメントの実行を喚起し、ユーザプロ
    セスに関する前記信号コードセクゼメントの実行の結果
    として信号結果を生成する手段;及び ユーザプロセスに関する前記の信号結果を前記ユーザプ
    ロセスの特定の子プロセスへ伝達する手段; を有することを特徴とする特許請求の範囲第1項記載の
    信号処理装置。
  3. (3)各々の子プロセスがアクティブ及び非アクティブ
    状態を有し、各々の子プロセスにおいてユーザプロセス
    から送出された信号結果をクリアする手段;及び 当該子プロセスによって、ユーザプロセスから送出され
    た信号結果がクリアされるまでは、子プロセスが前記ア
    クティブ状態に入ることを阻止する手段; を有することを特徴とする特許請求の範囲第2項記載の
    信号処理装置。
  4. (4)前記信号及び前記信号結果がパケット化データ通
    信手段によって、前記プロセッサ間を相互に送受信され
    ることを特徴とする特許請求の範囲第3項記載の信号処
    理装置。
  5. (5)前記信号及び前記信号結果が、前記パケット化デ
    ータのビットであり、 前記阻止手段が前記パケット化データ通信の際にビット
    のセット及びリセットのための手段を包含することを特
    徴とする特許請求の範囲第4項記載の信号処理装置。
  6. (6)第一のプロセッサの制御下で、ある特定のプログ
    ラムが実行され、その特定のユーザプログラムの子プロ
    セス(群)がマルチプロセッサシステムの他のプロセッ
    サ(群)の制御下で実行され、さらに、前記プログラム
    に対して、前記プログラムの外部において発生した非同
    期の事象についての情報を与えるために信号が用いられ
    るマルチプロセッサシステムにおける信号を制御する方
    法において、 前記信号の処理方法が、各々のプログラムに対応する信
    号を受け取る段階; 前記子プロセスの各々を制御しているプロセッサによっ
    て、どのプロセッサが当該子プロセスに対するユーザプ
    ロセスの実行を制御しているプロセッサであるかを決定
    する段階;及び 受け取られた子プロセスに対する信号の一つを前記親プ
    ロセッサに、当該子プロセスを制御しているプロセッサ
    が、信号に対する動作をなすことなしに、送出する段階
    ; を有することを特徴とする信号処理方法。
  7. (7)前記信号が、前記各々の信号に対応するプロセス
    の実行を制御している特定のコードセグメントの実行を
    喚起し、ユーザプロレセスに関する前記信号コードセグ
    メントの実行の結果として信号結果を生成する段階;及
    び ユーザプロセスに関する前記信号結果を前記ユーザプロ
    セスの特定子プロセスへ伝達する段階;を有することを
    特徴とする特許請求の範囲第6項記載の信号処理方法。
  8. (8)各々の子プロセスがアクティブ及び非アクティブ
    状態を有し、各々の子プロセスにおいて、ユーザプロセ
    スから送出された信号結果をクリアする段階;及び 当該子プロセスによって、ユーザプロセスから送出され
    た信号結果がクリアされるまでは、子プロセスが前記ア
    クティブ状態に入ることを阻止する段階; を有することを特徴とすることを特徴とする特許請求の
    範囲第7項記載の信号処理方法。
  9. (9)前記信号及び前記信号結果がパケット化データ通
    信の方法によって、前記プロセッサ間を相互に送受信さ
    れることを特徴とする特許請求の範囲第8項記載の信号
    処理方法。
  10. (10)前記信号及び前記信号結果が前記パケット化デ
    ータのビットであり、 前記阻止段階が前記パケット化データ通信の際にビット
    のセット及びリセット段階を包含することを特徴とする
    特許請求の範囲第9項記載の信号処理方法。
  11. (11)複数個のプロセッサ及び前記複数個のプロセッ
    サを相互に接続する通信路を有するマルチプロセッサシ
    ステムにおけるプログラムの実行を制御する方法におい
    て、 前記方法が、第一のプロセッサ上にユーザプロセスを形
    成する段階; 前記プログラムの実行中に前記ユーザプロセスのみに用
    いられる第一の子プロセスを第二のプロセッサ上に形成
    する段階; 前記通信路によって前記ユーザプロセスと前記第一の子
    プロセス間の通信チャンネルを設定する段階; 前記ユーザプロセス及び前記第一の子プロセスに関する
    非同期の事象の発生を表わす信号を前記設定済通信チャ
    ンネルを介して相互に送受信する段階;及び 前記ユーザプロセスに関する前記第一の子プロセスに対
    して送出された信号を、前記第一の子プロセスが当該信
    号に対する動作をなすことなしに、前記ユーザプロセス
    が実行される前記第一のプロセッサへ再送する段階; を有することを特徴とする信号処理方法。
  12. (12)前記信号が、前記各々の信号に対応するプロセ
    スの実行を制御している特定のコードセグメントの実行
    を喚起し、ユーザプロセスに関する前記信号コードセグ
    メントの実行の結果として信号結果を生成する段階;及
    び ユーザプロセスに関する前記信号結果を前記ユーザプロ
    セスの特定子プロセスへ伝達する段階;を有することを
    特徴とする特許請求の範囲第11項記載の信号処理方法
  13. (13)各々の子プロセスがアクティブ及びインアクテ
    ィブ状態を有し、各々の子プロセスにおいて、ユーザプ
    ロセスから送出された信号結果をクリアする段階;及び 当該子プロセスによってユーザプロセスから送出された
    信号結果がクリアされるまでは、子プロセスが前記アク
    ティブ状態に入ることを阻止する段階; を有することを特徴とする特許請求の範囲第12項記載
    の信号処理方法。
  14. (14)前記信号及び前記信号結果がパケット化データ
    通信の方法によって前記プロセッサ間を相互に送受信さ
    れ、 前記信号及び前記信号結果が、前記パケット化データの
    ビットであり、 前記阻止段階が前記パケット化データ通信の際にビット
    のセット及びリセット段階を包含することを特徴とする
    特許請求の範囲第13項記載の信号処理方法。
JP62323012A 1986-12-22 1987-12-22 信号処理装置及び信号処理方法 Pending JPS63167938A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US941704 1978-09-12
US94170486A 1986-12-22 1986-12-22

Publications (1)

Publication Number Publication Date
JPS63167938A true JPS63167938A (ja) 1988-07-12

Family

ID=25476933

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62323012A Pending JPS63167938A (ja) 1986-12-22 1987-12-22 信号処理装置及び信号処理方法

Country Status (5)

Country Link
EP (1) EP0272837A3 (ja)
JP (1) JPS63167938A (ja)
KR (1) KR880008188A (ja)
BR (1) BR8706964A (ja)
CA (1) CA1292079C (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5991790A (en) * 1996-07-01 1999-11-23 Sun Microsystems, Inc. Generation and delivery of signals in a two-level, multithreaded system
KR102406483B1 (ko) 2022-02-14 2022-06-10 주식회사 넷아스 멀티 프로세서의 동작 방법 및 제어 시스템

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5764859A (en) * 1980-10-08 1982-04-20 Hitachi Ltd Multi-processor system
AU562975B2 (en) * 1983-09-22 1987-06-25 Digital Equipment Corporation Message oriented interrupt mechanism for multiprocessor systems

Also Published As

Publication number Publication date
BR8706964A (pt) 1988-07-26
EP0272837A2 (en) 1988-06-29
CA1292079C (en) 1991-11-12
KR880008188A (ko) 1988-08-30
EP0272837A3 (en) 1988-09-07

Similar Documents

Publication Publication Date Title
US5062040A (en) Handling of notification of asynchronous events by user and stub processes of a distributed process executing on a plurality of processors of a multi-processor system
AU613823B2 (en) Virtual computer system having improved input/output interrupt control
US6415332B1 (en) Method for handling of asynchronous message packet in a multi-node threaded computing environment
JPH06202883A (ja) プロセス間通信装置及び通信方法
US5664090A (en) Processor system and method for maintaining internal state consistency between active and stand-by modules
US6256660B1 (en) Method and program product for allowing application programs to avoid unnecessary packet arrival interrupts
US6385659B1 (en) Handling of asynchronous message packet in a multi-node threaded computing environment
EP0871307A2 (en) Apparatus for flexible control of interrupts in multiprocessor systems
JP2587190B2 (ja) システム間チャネルページング機構
US6412018B1 (en) System for handling asynchronous message packet in a multi-node threaded computing environment
EP0725345A1 (en) Apparatus and method for efficient transfer of data and events between processes and between processes and drivers in a parallel, fault tolerant message based operating system
US5371890A (en) Problem state cross-memory communication using communication memory domains
US5003468A (en) Guest machine execution control system for virutal machine system
EP1127310B1 (en) Method and apparatus for evaluating a data processing request performed by distributed processes
JPS63167938A (ja) 信号処理装置及び信号処理方法
JPH06348512A (ja) 資源管理コンピュータ・システム
JPH0628322A (ja) 情報処理装置
JP3162102B2 (ja) 仮想計算機間データ転送処理装置
JPH0793182A (ja) プログラムトレース方法
US7320044B1 (en) System, method, and computer program product for interrupt scheduling in processing communication
EP1242900B1 (en) Inter process communication in a distributed processing system
US20030061475A1 (en) Extensions to coupling channels to support multiple coupling facility sharing, interrupts, and message passing
US7886306B2 (en) Extensions to coupling channels to support multiple coupling facility sharing, interrupts, and message passing
KR940023093A (ko) 운용/대기 모드를 이용한 멀티프로세서 시스팀에서의 프로세서간 통신방법
JPS615361A (ja) 通信インタフエイス回路