JPH0449146B2 - - Google Patents

Info

Publication number
JPH0449146B2
JPH0449146B2 JP57036407A JP3640782A JPH0449146B2 JP H0449146 B2 JPH0449146 B2 JP H0449146B2 JP 57036407 A JP57036407 A JP 57036407A JP 3640782 A JP3640782 A JP 3640782A JP H0449146 B2 JPH0449146 B2 JP H0449146B2
Authority
JP
Japan
Prior art keywords
processor
program module
queue
processing
management table
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired
Application number
JP57036407A
Other languages
English (en)
Other versions
JPS58154058A (ja
Inventor
Hiroshi Kobayashi
Keiichi Nakane
Toshiro Jinnai
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP57036407A priority Critical patent/JPS58154058A/ja
Publication of JPS58154058A publication Critical patent/JPS58154058A/ja
Publication of JPH0449146B2 publication Critical patent/JPH0449146B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/45Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions

Description

【発明の詳細な説明】 本発明は、マルチプロセツサシステム、特にオ
ペレーテイングシステム(以下、OSと略す。)の
実行方式に関する。
従来の計算機システムにおいて、複数の計算機
から構成されたマルチコンピユータシステムは、
信頼性の向上,機能分散,負荷分散等の要求を実
現するために使われていた。これらの要求は、主
に、そのシステムの果すべき業務に対して設定さ
れたものであり、計算機内部では、アプリケーシ
ヨンプログラムの分散配置という形で実現され
た。したがつて、計算機ソフトウエアの核となる
OSに対しては、上記した要求もなく実施例もな
い。しかし、近年の素子技術の進歩は著しく、安
価で高速なシステムをコンパクトに実現できる様
になり、1つの計算機を複数の処理装置(プロセ
ツサ)で構成することが可能となつた。そのた
め、OSに対しても、前記した要求が強くなつて
きた。ところが、従来方式でこれらの要求を実現
しようとすると、性能低下という問題があつた。
以下、図を用いて従来技術について説明する。
第1図は従来のマルチコンピユータシステムの
構成図を示す。
システムを構成する計算機A,Bには、それぞ
れ主記憶装置(以下、MSと略す。)が接続され
ており、2台の計算機はメモリデータバスを介し
てグローバルメモリ(以下、GMと略す。)の
Read,Writeが行なえる様になつている。また、
割込バスを介して、お互いが相手計算機に割込を
かけられる様になつている。各計算機は、各々番
号(計算機番号と呼ぶ。)を持つており該番号に
より識別される。
該システム構成を前提に、マルチコンピユータ
システムでの計算機間コミユニケーシヨンの一例
を、第2図を用いて説明する。
計算機Aには、アプリケーシヨンプログラムが
タスクαとして登録されている。同様に、計算機
Bにはタスクβが登録されている。一方、OSは
大きくSVC処理OSと割込処理OSから構成されて
いる。SVC処理OSは、タスクから発行された
SVC命令により起動され、タスクが指定した処
理を行なう。割込処理OSは、計算機内部あるい
は外部で発生した割込により起動され、割込要因
に対応した所を行なう。
計算機間での共有メモリGMには、計算機間の
コミニエーシヨンブロツクを配置する。このコミ
ユニケーシヨンブロツクには、送信を要求した計
算機番号、処理の種類を示す処理コード、及び、
相手計算機が処理を行なうために必要なパラメー
タをセツトする。
たとえば、計算機Aのタスクαから、計算機B
のタスクβを起動する場合、まず、タスクαから
タスクβを起動するためSVC命令が出される。
それにより、SVC処理OSが起動される。SVC処
理OSは、タスクの指定したパラメータにより計
算機Bのタスク起動要求であることを知り、GM
のコミユニケーシヨンブロツクに必要な情報を書
き込む。この場合、処理要求計算機番号として計
算機Aの番号を、処理コードとして、タスク起動
を示すコードを、さらに、パラメータとしてタス
クβのタスク番号をセツトする。これらの情報を
セツトした後、前記割込バスを介して計算機Bに
連絡割込をかける。そして、最後にタスクαを応
答連絡待ちとして処理を終了する。
連絡割込を受けた計算機Bでは、割込処理OS
が起動され、GMのコミユニケーシヨンブロツク
を参照する。この場合、コミユニケーシヨンブロ
ツクには、“タスクβの起動要求”というメツセ
ージが書かれているので、タスクβを起動する。
その後、計算機Aに対して応答を返すためにGM
のコミユニケーシヨンブロツクに応答情報を書き
込む。すなわち、送信要求計算機として計算機B
の番号を、処理コードとして応答報告を示すコー
ドを、パラメータとして処理の結果を示すリター
ンコードをセツトする。最後に、計算機Aに対し
て連絡割込をかけ割込処理を終了し、タスクβに
制御を移す。
一方、連絡割込を受けた計算機Aでは、割込処
理OSが起動され、タスクαの応答待ちを解除し
タスクαにリターンする。
従来のシステムでは、それぞれの計算機に同じ
OSを配置し、各計算機のOS間で連絡をとり合う
ことにより、アプリケーシヨンプログラムの分散
配置を実現していた。しかし、OSを機能別に分
散配置するという考え方はみられず、OSの並列
処理による性能向上は小さいものであつた。
本発明の目的は、複数のプロセツサから構成さ
れるマツチプロセツサシステムにおいて、各プロ
セツサにてOSを並列動作させるための機構を提
供し、OSの性能向上を図ることにある。
素子技術の進歩により、ひとつの計算機システ
ムを複数のプロセツサで構成することが、価格
面,性能面ともに十分可能となつた。そのため、
プログラムの並列動作による性能向上が要求され
る。しかし、従来はアプリケーシヨンプログラム
の並列処理のみで、OSに関してはシーケンシヤ
ルな処理を基本としていた。本発明は、OSの中
で、並列動作可能な部分をOSプロセスと呼ぶ1
つの独立したプログラムとして切り離し、この
OSプロセス毎に動作プロセツサを割り当て、も
つてOSの並列動作を可能ならしめるものである。
以下、図を用いて本発明の実施例を説明する。
第3図は、複数のプロセツサから構成された計
算機を2台組み合わせたマルチプロセツサシステ
ム、即ち、マルチコンピユータシステムのシステ
ム構成図である。
1つの計算機システムは、MS101と該MS
を制御するためのメモリコントロールユニツト
(以下MCUと略す。)301、4台のプロセツサ
(以下Pと略す。)321,322,323,32
4、及び上記MCU,Pを接続するシステムバス
311から構成される。各プロセツサは、各々プ
ロセツサ番号を有し、該番号により識別される。
また、2つの計算機システムを結合するための
プロセツサであるリングプロセツサ(以下、
LINKと略す。)330、及び両計算機システム
で共用するメモリGM110によりマルチコンピ
ユータシステムを構成する。従来技術同様、各計
算機は、計算機番号により識別される。
OSやアプリケーシヨンプログラム及びデータ
は、前記したMS101に格納されており、各プロ
セツサP321〜324により実行される。
P321〜324は独立して動作可能であり、メモリ
内のデータを必要とする時は、該データの格納さ
れたアドレスを前記MCU301に送る。MCU3
01は、指定されたアドレスよりMS101上の
データを読みプロセツサに送る。たとえば、
P321で、あるプログラムを実行している場合、
P321は該プログラムの命令の格納されたアドレ
スをMCU301へ送出する。MCU301は、指
定されたアドレスから命令を取り出し、P321へ
送る。命令を受け取つたP321は、その命令を解
釈実行し、1つの命令処理が終了すると、次の命
令を取り出すために再びMCU301に命令アド
レスを送出する。こうして、順次MS101上の
命令を取り出し、解釈実行しプログラムを動作さ
せるわけである。この一連の処理を各プロセツサ
で独立して行なうために、2つ以上のプロセツサ
から同時にMS101をアクセスすることがあ
る。そのためシステムバス311は、順序制御機
能を有しており、MCU301へ同時に2つ以上
のプロセツサから要求が送られない様にしてい
る。
また、2つのプロセツサ間の交信も、MCU3
01とMS101を介して行なわれる。たとえ
ば、P321とP322で交信を行なう場合、MS101
上に交信用のエリアを設定し、P321は該エリア
に交信情報をセツトした後、システムバス311
を経由して連絡割込をP322にかける。割込を受
信したP322では前記交信用エリアから交信情報
を取り出し、該情報に従つて処理を行なう。この
交信情報のセツト、取り出しは、MCU301に
交信用エリアのアドレスあるいはデータを送出す
ることにより実現される。また、前記した連絡割
込のために、システムバス311には割込機能を
有している。
さらに、2つの計算機システム間での交信は、
LINK330,GM110を介して行なわれる。
LINK330は、GM110のRead/Write及び
他計算機システムへの割込機能を有している。
今、P321とP325の交信を考える。GM110上
に交信用エリア(従来技術図2のコミユニケーシ
ヨンブロツク)を設け、P321が該エリアに交信
情報をセツトする。これは、該エリアのアドレス
及びセツトする情報をLINK330に送出するこ
とにより行なわれる。交信情報セツト後、P321
はLINK330を介してP325に割込をかける。
P325は、GM110上の交信用エリアを読み出す
ために、交信用エリアのアドレスをLINK330
へ送出する。LINK330は、指定されたアドレ
スからGM110上のデータを読み、P325へ送
る。P325は該データ、すなわち、交信情報を解
釈し、該情報に従つた処理を行なう。
第4図は、本発明のプログラム全体構成図であ
る。
OSは大きくSVC処理ルーチン群420、割込
処理ルーチン群410、OSプロセスデイスパツ
チヤ(以下OSDISPと略す。)431、タスクデ
イスパツチヤ(以下TKDISPと略す。)441、
アイドルルーチン(以下、IDLEと略す。)45
0、及び、OSプロセス群436から構成される。
SVC処理ルーチン群420は、タスク群442
に対するOSのサービスの窓口であり、たとえば、
他のタスクを起動するためのSVC処理ルーチン、
デイスクをアクセスするためのSVC処理ルーチ
ン等が用意されている。また、割込処理ルーチン
群410は、計算機内部あるいは外部からの割込
処理するルーチンであり、割込要因に対応して用
意されている。たとえば、デイスクからの終了割
込を処理するルーチン、タイマ割込を処理するル
ーチン等がある。
第4図を用いて、OSの処理の流れを示す。
今、タスク群442のうちの1つのタスクが動
作して、あるSVC命令を出したとする。該SVC
命令を処理するため、SVC処理ルーチン群42
0のうちの該当するSVC処理ルーチンに制御が
移る。SVC処理ルーチンでは、OSプロセス起動
ルーチン432をCALLして、OSプロセスを起
動する。SVC処理ルーチンの処理が終了すると、
制御はOSDISP431に移る。OSDISP431で
は、OSプロセス群436のうちから実行可能な
OSプロセスを1個選択し、該当OSプロセスに制
御を移す。今の場合、前記SVC処理ルーチンで
起動されたOSプロセスが選択されることになる。
OSプロセスでは、必要に応じてリソース占有ル
ーチン434、リソース解放ルーチン435を
CALLし、ある決められた処理を実行する。
OSプロセス終了時には、OSプロセス終了ルーチ
ン433をCALLする。該ルーチン433では、
該当OSプロセスを終了状態とし、次に実行すべ
きOSプロセスを選択するためOSDISP431に
リンクする。OSDISPは、前記したと同様に実行
可能なOSプロセスを選択するが、実行可能なOS
プロセスがない場合、TKDISP441にリンク
する。TKDISP441では、タスク群442の
うちの実行可能なタスクを1個選択して、該タス
クに制御を移す。今の場合、前記のSVC命令発
行タスクが選択され、該タスクにリターンする
が、もし、実行可能なタスクがなければ、IDLE
450へリンクする。IDLE450は、すべての
割込受付可能状態でループするプログラムであ
る。
IDLE450動作時に、割込が発生したとする
と、割込処理ルーチン群410のうちの、該割込
要因に対応した割込処理ルーチンに制御が移る。
割込処理ルーチンでは、OSプロセス起動ルーチ
ン432をCALLして、OSプロセスを起動する。
割込処理ルーチンの処理が終了すると、OSDISP
431に制御が移る。それ以降は、前記した
SVC処理の場合と同様にOSプロセス、タスクの
選択処理が行なわれ、最終的にはIDLE450ヘ
リンクする。
以上、OSプロセスを使用したOSの処理の流れ
を説明したが、次にOSプロセスを制御するため
の機構について詳細を説明する。
第5図はOSプロセスの管理テーブルの構成図
を示す。
OSプロセスを管理するために、1個のOSプロ
セスに1個の管理テーブルOSプロセスコントロ
ールブロツク(以下OSPCBと略す。)500を用
意する。
OSPCB500は、ロツクエリア510,ポイ
ンタ1エリア520,ポインタ2エリア530,
実行プロセツサ番号540,OSプロセスのステ
ータスを示すステータス情報550,OSプロセ
スのプログラム先頭アドレス560,その他の制
御情報エリア570、及び、OSプロセスワーク
エリア580からなり、MS上に配置される。
ロツクエリアは、OSPCB500の排他制御に
使用する。すなわち、あるプロセツサがOSPCB
500を処理、つまり、OSPCB内のデータを
Read/Writeしている時に、他のプロセツサが
該OSPCBのデータをRead/Writeしない様にす
るためのフラグであり、各プロセツサは、
OSPCBのデータ操作に先立ち、必ず、本エリア
510にプロセツサ番号をセツトする。したがつ
て、本エリア510が0の時は、該当OSPCBは
どのプロセツサも処理していないことを意味し、
0以外の値、すなわち、プロセツサ番号がセツト
されている時は、該番号を有するプロセツサが、
該OSPCBを処理中であることを意味する。
ポインタ1エリア520は、OSプロセスを実
行するに際して、システムを構成するプロセツサ
の台数以上のOSプロセスに起動がかかつた場合、
同時にすべてのOSプロセスを動作させることは
できず、待行列を作る必要がある。該待行列を実
行待行列と呼ぶ。該待行列を作成する際に、実行
の順序を記憶するため本ポインタ1エリア520
に、次のOSPCBアドレスをセツトする。
ポインタ2エリア530は、実行中のOSプロ
セスがリソース(デイスク,CRT,MSorGMの
エリアなど)を占有する際に、既に同じリソース
を他のOSプロセスが占有していた場合にリソー
ス占有のための待行列を作る。該待行列をリソー
ス待行列と呼ぶが、前記実行待行列の場合と同
様、ポインタ2エリア530に次のOSPCBのア
ドレスを記憶することによりリソース待行列を形
成する。
実行プロセツサ番号540は、該当OSプロセ
スを実行しているプロセツサのプロセツサ番号を
セツトする。
ステータス情報550は、該当OSプロセスの
状態を記憶するためのエリアで、該当OSプロセ
スがあるプロセツサで実行中であることを表示す
るRUNビツト551,リソース占有待ちである
ことを示すENQビツト552等、OSプロセスの
状態をビツト対応で記憶する。たとえば、前記ビ
ツト551,552が1の場合、それぞれ実行
中,リソース占有待ちという状態を示し、0の場
合そうでないことを示す。
プログラム先頭アドレス560は、OSプロセ
スのプログラムの先頭MSアドレスを示してお
り、前記OSDISP431からOSプロセスにリン
クする時に使用する。
その他の制御情報570は、OSプロセス実行
時の割込によりOSプロセスの処理が中断される
ことがある。その際、割込処理終了後再び中断箇
所からOSプロセスの処理を再開できる様に、OS
プロセスが使用しているレジスタを退避するため
に使用される。
OSプロセスワークエリア580は、OSプロセ
スの処理の中で一時的に情報を記憶するための作
業用エリアである。
次に、OSプロセスの待行列管理方式について
説明する。
第6図は、OSPCBによる待行列を示す。
一般にソフトウエアェの待行列管理は、テーブ
ルの順序管理という形で実現される。テーブルの
順序管理は、リソースに対応したポインタエリア
に待行列を構成するテーブルの先頭テーブルアド
レスを記憶し、以下は、各テーブルの待行列用ポ
インタエリアに次のテーブルアドレスを記憶する
ことによりテーブルの順序づけを行なう。
第6図では、OSプロセスの実行待行列用ポイ
ンタ(以下RQPBと略す。)610、及び、リソ
ース待行列用ポインタ(以下RSQBと略す。)6
20に、OSPCBを接続した場合を示している。
RQPB610には、OSPCB500の先頭アド
レスを記憶し、該OPCB500のポインタ1エリ
ア520には次のOSPCBの先頭アドレスを記憶
する。以下、同様にして次のOSPCBの先頭アド
レスを記憶することにより実行待行列を形成す
る。
OSPCB500が実行待行列に接続されるのは、
OSプロセスが起動された時、すなわち、OSプロ
セス起動処理ルーチンの中で、該実行待行列への
接続が行なわれる。そして、OSプロセスが終了
するまで接続されている。実行待行列からの
OSPCB500の切離しは、OSプロセス終了処理
ルーチンにて行なう。
OSDISPは、本実行待行列の先頭OSPCBから
順々に実行待行列をサーチしていき、最初に見つ
かつた実行可能状態のOSPCBに対応するOSプロ
セスを選択する。
一方、リソース待行列は、RSQB620にリソ
ース待行列先頭OSPCBの先頭アドレスを記憶し、
該OSPCBのポインタ2エリア530に次の
OSPCBの先頭アドレスを記憶することにより形
成される。リソース待行列に接続されている場
合、必ず実行待行列にも接続されている。
リソース待行列への登録は、OSDISPで選択さ
れたOSプロセスが動作し、あるリソースを占有
しようとした時に、該リソースが既に他のOSプ
ロセスに占有されていた場合に行なわれる。その
際も、実行待行列からの切離しは行なわない。
リソース待行列からの切離しは、占有中リソー
スが解放され使用可能状態となつたタイミングで
行なわれている。
リソース待行列接続中は、前記OSPCBのENQ
ビツト552は1である。つまり、リソース待行
列登録時、該ビツト552を1とし、リソース待
行列切離し時0とする。
本発明においては、上記実行待行列を全プロセ
ツサ共通に1個持つ所に特徴がある。各プロセツ
サのOSDISPは、起動されると本実行待行列をサ
ーチし、実行可能なOSプロセスを1個選択し、
前記RUNビツト551に1を、前記実行プロセ
ツサ番号540に自プロセツサ番号をセツトし、
OSプロセスを動作させる。OSプロセスがリソー
ス持ち、あるいは、終了したタイミングで再び前
記実行待行列を参照し、次のOSプロセスを選択
する。
しかし、本方式の場合、実行可能なOSプロセ
スがないと、新たに起動されたOSプロセスの実
行開始が遅れる可能性がある。すなわち、あるプ
ロセツサがアイドル状態(IDLEルーチン処理中)
である時に、他のプロセツサが実行待行列に新た
なOSPCBを接続しても、前記アイドル中のプロ
セツサでは、該OSPCBに対応するOSプロセスを
選択できない。
そこで、本発明では、OSプロセスデイスパツ
チ要求割込、及び、プロセツサステータスレジス
タ(以下PSRと略す。)により、上記OSプロセス
の選択処理の遅れが発生しない様にしている。
第7図は、PSRの構成図である。
PSR700は、16ビツト構成のレジスタであ
り、プロセツサ1台に1ビツトを割り当てる。図
においてP1はプロセツサ1用,P2はプロセツサ
2用、以下、P16まで、すなわち、プロセツサ16
台までのビツトがアサインされている。
各ビツトは、0の時、該当プロセツサにてOS
プロセスを実行中でない、1の時、該当プロセツ
サにてOSプロセス実行中であることを示し、OS
プロセス起動時に1をセツトし、実行可能なOS
プロセスが存在しない時に0をセツトする。
第8図は、PSRの配置を示すシステム構成図
である。
PSR700は、MCU301の内部に実装さ
れ、各プロセツサからセツト・リセツトが可能と
なつている。
今、P321,322,323でOSプロセス実行中、
P324ではOSプロセス実行中でないとすると、
PSR700のP321〜323に対応したビツトが1と
なつており、P324に対応するビツトは0となつ
ている。この状態で、P321で新たなOSプロセス
の起動要求が発生した場合、P321からPSR70
0を参照し、ビツトが0となつているプロセツサ
を見つけ出す。本例では、P324のビツトが0で
あるから、P321からP324へOSプロセスデイスパ
ツチ要求割込をかける。本割込は、前記したシス
テムバス311の割込機能を利用して行なう。す
なわち、MS101上に、交信エリア800を設
け、該エリア800に、交信情報、すなわち、
OSプロセスデイスパツチ要求メツセージをセツ
トして、連絡割込をかけるわけである。
第9図にOSプロセスデイスパツチ要求割込処
理の概略フローを示す。
OSプロセスデイスパツチ要求割込処理900
は、まず、PSR700を参照してOSプロセス実
行中でないプロセツサを検出する(ブロツク90
1)。もし、すべてのプロセツサでOSプロセス実
行中なら、何もしないでリターンする(ブロツク
902)。これは、新たに起動されたOSプロセス
のOSPCBは既に実行待行列に接続されているた
め、やがていずれかのプロセツサにより選択され
るためである。PSR700をチエツクの結果、
OSプロセス実行中でないプロセツサがあれば、
該プロセツサに対して連絡割込をかける(ブロツ
ク903)。
以上、OSプロセスを制御するための機構を説
明したが、次にOSプロセス制御のためのプログ
ラム概略フローを図を用いて説明する。OSプロ
セス制御プログラムは、第4図において示した様
に、OSDISP,OSプロセス起動ルーチン,OSプ
ロセス終了ルーチン,リソース占有ルーチン,リ
ソース解放ルーチンからなる。
第10図は、OSDISP431の概略処理フロー
を示す。
まず、OSプロセス実行待行列の先頭から
OOSPCBをサーチしていき、実行可能なOSプロ
セスを選択する(ブロツク1001)。実行可能
なOSプロセスがなければ、ブロツク1004へ
進む。(ブロツク1002)。実行可能なOSプロ
セスがあれば(ブロツク1002)、OSPCBの
RUNビツトを1として実行プロセツサ番号をセ
ツト後OSPCBのプログラム先頭アドレスを取り
出し、該アドレスにジヤプする(ブロツク100
3)。一方、ブロツク1004では、PSR700
の自ブロセツサに対応するビツトを0として、
TKDISPにリンクする。
第11図は、OSプロセスの起動処理の概略フ
ローを示す。
起動処理432では、ブロツク1101でパラ
メータを取り込む。起動処理のパラメータとして
は、どのOSプロセスを起動するかを示す番号を
渡す。該番号をOSプロセス番号と呼び、OSプロ
セスを識別するために、OSPCBに1対1対応に
採番されている。したがつて、OSプロセス番号
により該当OSPCBのアドレスが計算できる。次
に該当OSPCBを実行待行列に接続する(ブロツ
ク1102)。その後、OSプロセスデイスパツチ
要求割込をかける(ブロツク1103)。該処理
は、第9図を用いて既に説明した様に、PSRを
参照してOSプロセス実行中でないプロセツサに
対して割込をかけるものである。
第12図は、OSプロセスの終了処理の概略フ
ローを示す。
終了処理433、まず実行待行列から該当
OSPCBを削除する(ブロツク1201)。次に
OSPCBのステータスエリアを0クリアする(ブ
ロツク1202)。その後、OSDISPにリンクし、
次に実行すべきOSプロセスの選択処理に移る。
該終了処理によりOSPCB内Rビツトが0となる。
第13図は、OSプロセスのリソース待ち処理
の概略フローを示す。
リソース待ち処理434は、ステータス操作
(ブロツク1301)と待行列操作(ブロツク1
302)からなる。ブロツク1301では、
OSPCB内のENQビツトを1とすることにより、
該OSプロセスをリソース待ち状態とする。次に、
OSPCB内ポインタ2エリアを使用してリソース
待ち行列に登録する。リソース待行列のポインタ
RSQBのアドレスは、本ルーチンのパラメータと
してもろい、該当OSPCBは該アドレスに接続さ
れた待行列に追加されることになる。
第14図は、リソース解除処理の概略フローで
あり、パラメータとして与えられたRSQBアドレ
スからOSPCBの待行列をサーチし、OSPCBがな
くなるまで、OSPCBの待行列からの削除をくり
返す。すなわち、該当リソースにOSPCBの待ち
行列があるかどうかチエツクし(ブロツク140
1)、あれば先頭OSPCBを待行列かり削除する
(ブロツク1402)。次に、該OSPCBのステー
タスエリアのENQビツトを0とし待ち表示をク
リアする(ブロツク1403)。最後に、OSプロ
セスデイスパツチ要求割込をかける(ブロツク1
404)が、本処理は第9図で示したルーチンに
リンクすることで実現される。そして、次の
OSPCBを調べ、もしなければリターンする。
以上本発明によるOSプロセス制御機構を使用
すると、第2図に示した従来のマルチコンピユー
タシステムでの計算機間コミユニケーシヨンは第
15図に示した様になる。
本図では、計算機AがプロセツサA1,A2から
構成され、計算機BがプロセツサB1,B2から構
成されている。計算機間コミユニケーシヨンのた
めのOSプログラムは、詳細に見ると、いくつか
に分割でき並列に処理可能である。すなわち、計
算機A側では、タスクαを応答連絡待ちとする処
理とGM110に交信情報を書き込み計算機Bに
連絡割込をかける処理とが並列処理可能であり、
計算機B側では、タスクβを起動する処理とGM
110に応答情報を書き込み計算機Aに連絡割込
をかける処理とが並列処理可能である。そこで、
これらの処理をそれぞれ1個のOSプロセスとし
て登録する。
以下、図を用いて処理の流れを説明する。
計算機Aのタスクαから、計算機Bのタスクβ
に対する起動要求が出された場合、タスク起動
SVC処理OS231に制御が移る。該OS231で
は、OSプロセスa1501とOSプロセスb15
02を起動するだけ処理を終わる。起動された
OSプロセスa,bは、プロセツサA1,A2で独
立して動作を開始し、タスクαを応答連絡待ち状
態とすると同時に、計算機Bに連絡割込をかけ
る。計算機B側では、連絡割込により割込処理
OS233が起動される。該OS233では、OS
プロセスc1503とOSプロセスd1504に
起動をかける。起動されたOSプロセスc,dは、
プロセツサB1,B2で独立して動作を開始し、OS
プロセスc1503は、GMのコミユニケーシヨ
ンブロツクを参照して、タスクβを起動する。一
方、OSプロセスd1504は、計算機Aに対し
て連絡割込をかけ応答を返す。
上記した様に、OSの一部をOSプロセスとして
登録することにより、OSの並列処理が可能とな
り性能向上が図れる。
第16図は、マルチコンピユータシステムにお
ける計算機間コミユニケーシヨンのタイムチヤー
トを示したものである。
図のaは、従来のOSによる場合、bは本発明
による場合を示している。
タスクαがタスクβの起動要求を出してから再
び動作するまでの時間、及び、タスクαがタスク
βの起動要求を出してからタスクβが動作するま
での時間とともに、本発明による場合の方が短縮
されており、OSの応答性が向上している。
本発明により、複数のプロセツサから構成され
るマルチプロセツサにおいて、OSの一部をOSプ
ロセスとして実現し、各OSプロセスを複数のプ
ロセツサで並列動作させ、OSの応答性、ひいて
は、システムの性能を向上することが可能とな
る。
【図面の簡単な説明】
第1図は、従来のマルチコンピユータシステム
のシステム構成図、第2図は、従来のコンピユー
タ間コミユニケーシヨンの全体処理図、第3図
は、本発明を実現するマルチコンピユータシステ
ムのシステム構成図、第4図は、本発明による
OSの全体プログラム構成図、第5図は、OSPCB
のテーブル構成図、第6図は、OSPCBによる待
行列構成図、第7図は、PSRの構成図、第8図
は、PSRの配置を示すシステム構成図、第9図
は、OSプロセスデイスパツチ要求割込処理フロ
ー、第10図は、OSDISPの処理フロー、第11
図は、OSプロセスの起動処理フロー、第12図
は、OSプロセスの終了処理フロー、第13図は、
OSプロセスのリソース処理フロー、第14図は、
OSプロセスのリソース解除処理フロー、第15
図は、本発明を用いた計算機間コミユニケーシヨ
ンの全体処理図、第16図は、計算機間コミユニ
ケーシヨンにのけるタイムチヤートを示す。

Claims (1)

  1. 【特許請求の範囲】 1 複数のプロセツサと、該プロセツサが共通に
    参照し得るメモリと、該メモリの読み出し書き込
    みを制御するメモリ制御装置とを備えたマルチプ
    ロセツサシステムにおいて、 OSプログラムモジユールのうちで独立並列処
    理可能なプログラムモジユールのそれぞれに対応
    して、待ち行列ポインタとを有する管理テーブ
    ル、及び該プログラムモジユールの実行待ち行列
    を該メモリ上に設けるとともに、 前記各プロセツサは、 前記管理テーブルを前記待ち行列に登録する手
    段と、 各該プロセツサ毎に独立して、前記待ち行列か
    ら実行可能な前記プログラムモジユールの前記管
    理テーブルを検出し、該プログラムモジユールを
    実行させる手段と、 該プログラムモジユールの終了に伴い、該管理
    テーブルを該待ち行列から削除する手段を有し、 上記各手段を実行することにより、前記OSプ
    ログラムモジユールの並列処理を行なうことを特
    徴とするマルチプロセツサシステム。 2 特許請求の範囲第1項記載のマルチプロセツ
    サシステムにおいて、 前記メモリは、前記各プロセツサに1ビツトが
    割当てられ、前記各プロセツサから共通に参照更
    新可能なレジスタを有するとともに、 前記各プロセツサは、 前記プログラムモジユールの実行に先立ち、自
    プロセツサに割り当てられた前記レジスタのビツ
    トをセツトする手段、 自プロセツサで実行すべきプログラムモジユー
    ルが存在しないことを検出した時点で該ビツトを
    リセツトする手段を有し、 上記各手段を実行することにより、自プロセツ
    サで発生した前記プログラムモジユールの起動要
    求を、前記レジスタのビツトがリセツトされてい
    るプロセツサに割込みをかけて連絡することを特
    徴とするマルチプロセツサシステム。 3 特許請求の範囲第2項記載のマルチプロセツ
    サシステムにおいて、 前記各プロセツサは、自プロセツサで実行中の
    プログラムモジユールが占有中のシステム共有リ
    ソースを解決する場合にも、上記各手段を実行す
    ることにより、他の前記プログラムモジユールの
    起動要求を、前記レジスタのビツトがリセツトさ
    れているプロセツサに割込みをかけて連絡するこ
    とを特徴とするマルチプロセツサシステム。 4 特許請求の範囲第1項記載のマルチプロセツ
    サシステムにおいて、 前記管理テーブルは、該管理テーブルに対応し
    た前記プログラムモジユールが、あるプロセツサ
    で実行中であることを示す排他フラグと、該プロ
    セツサの識別情報を有するとともに、 前記各プロセツサは、前記プログラムモジユー
    ルを実行するに先立ち、前記排他フラグ及び前記
    プロセツサ識別情報を前記管理テーブルにセツト
    する手段、及び、前記プログラムモジユールの処
    理終了時に前記排他フラグをリセツトする手段を
    有し、 該排他フラグのセツト中は、前記プロセツサ識
    別情報により識別されるプロセツサのみが前記プ
    ログラムモジユールを実行することを特徴とする
    マルチプロセツサシステム。
JP57036407A 1982-03-10 1982-03-10 マルチプロセッサシステム Granted JPS58154058A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP57036407A JPS58154058A (ja) 1982-03-10 1982-03-10 マルチプロセッサシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP57036407A JPS58154058A (ja) 1982-03-10 1982-03-10 マルチプロセッサシステム

Publications (2)

Publication Number Publication Date
JPS58154058A JPS58154058A (ja) 1983-09-13
JPH0449146B2 true JPH0449146B2 (ja) 1992-08-10

Family

ID=12468980

Family Applications (1)

Application Number Title Priority Date Filing Date
JP57036407A Granted JPS58154058A (ja) 1982-03-10 1982-03-10 マルチプロセッサシステム

Country Status (1)

Country Link
JP (1) JPS58154058A (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0642234B2 (ja) * 1985-05-10 1994-06-01 株式会社日立製作所 並列処理システム
JPS6249563A (ja) * 1985-08-29 1987-03-04 Nec Corp 機械翻訳装置
US5109329A (en) * 1987-02-06 1992-04-28 At&T Bell Laboratories Multiprocessing method and arrangement

Also Published As

Publication number Publication date
JPS58154058A (ja) 1983-09-13

Similar Documents

Publication Publication Date Title
US4435755A (en) Balanced channel finding method
US6711605B2 (en) Multi OS configuration method and computer system
EP0370008B1 (en) Distributed file server architecture
US5530897A (en) System for dynamic association of a variable number of device addresses with input/output devices to allow increased concurrent requests for access to the input/output devices
US20070074214A1 (en) Event processing method in a computer system
JPS58151655A (ja) 情報処理装置
JPH05250337A (ja) 処理をプロセッサにディスパッチするためのマイクロプログラム手段を有するマルチプロセッサシステム
JPH0449146B2 (ja)
CA1302580C (en) Apparatus and method for using lockout for synchronization of access to main memory signal groups in a multiprocessor data processing system
JPS6239789B2 (ja)
JP2986930B2 (ja) 対称型マルチプロセッサのタスクスケジューリング方式
US7320044B1 (en) System, method, and computer program product for interrupt scheduling in processing communication
JP3252517B2 (ja) 入出力制御方法および入出力制御システム
JPH0754467B2 (ja) データ処理装置
US20090019259A1 (en) Multiprocessing method and multiprocessor system
JP2795312B2 (ja) プロセス間通信スケジューリング方式
JPH04355836A (ja) 仮想計算機間データ転送処理装置
JPH08106440A (ja) 分散共有メモリ計算機システム
JPH10320218A (ja) データ転送処理における連携ジョブ自動起動方法
JPH07306800A (ja) デバッグ方式
JPH02129724A (ja) プログラム実行方式
JPH07114522A (ja) マルチプロセッサシステム
JPH07234850A (ja) マルチプロセッサの装置と方法
JPH041370B2 (ja)
JPH03219357A (ja) プログラム実行管理方式