JPH02231640A - タスクのデイスパツチングを同期化する方法 - Google Patents
タスクのデイスパツチングを同期化する方法Info
- Publication number
- JPH02231640A JPH02231640A JP2019392A JP1939290A JPH02231640A JP H02231640 A JPH02231640 A JP H02231640A JP 2019392 A JP2019392 A JP 2019392A JP 1939290 A JP1939290 A JP 1939290A JP H02231640 A JPH02231640 A JP H02231640A
- Authority
- JP
- Japan
- Prior art keywords
- thread
- layer
- task
- resource
- queue
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 claims description 31
- 238000004891 communication Methods 0.000 description 40
- 230000006854 communication Effects 0.000 description 40
- 230000006870 function Effects 0.000 description 24
- 230000008569 process Effects 0.000 description 9
- 238000012545 processing Methods 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 101100382827 Arabidopsis thaliana CCB4 gene Proteins 0.000 description 3
- 101100327149 Arabidopsis thaliana CCB1 gene Proteins 0.000 description 2
- 101100327159 Arabidopsis thaliana CCB2 gene Proteins 0.000 description 2
- 101100382826 Arabidopsis thaliana CCB3 gene Proteins 0.000 description 2
- 101100438795 Arabidopsis thaliana CCMB gene Proteins 0.000 description 2
- 101100495075 Arabidopsis thaliana CCMC gene Proteins 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 239000002131 composite material Substances 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 101710187010 Cannabinoid receptor 1 Proteins 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 239000013256 coordination polymer Substances 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/45—Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
- G06F8/458—Synchronisation, e.g. post-wait, barriers, locks
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Multi Processors (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
A.産業上の利用分野
本発明はマルチタスキングオペレーティングシステム(
OS )と、OS!モデルを利用する層構造(ないしは
階層式)通信サブシステムを有するCPUに関し、さら
に詳しくいえば、CPUに基づく1以上のアプリケーシ
ョンによって指定されるような通信サブシステム機能の
実行においてオペレーティングシステムのタスクを最大
にディスパツチする方法に関する。
OS )と、OS!モデルを利用する層構造(ないしは
階層式)通信サブシステムを有するCPUに関し、さら
に詳しくいえば、CPUに基づく1以上のアプリケーシ
ョンによって指定されるような通信サブシステム機能の
実行においてオペレーティングシステムのタスクを最大
にディスパツチする方法に関する。
B.従来の技術及びその課題
(1) マルチタスキング
タスクは作業又は計算のアクテイビテイについてのOS
のダイスパッチ可能な単位である。マルチタスキングを
遂行することによって、すなわちタスク間の切替えを行
うことによって、OSは対話式にかつバッチ処理でCP
Uのアクセス権を分配すること、及びCPUのスルーグ
ット及び利用度の向上の両方が可能とある。
のダイスパッチ可能な単位である。マルチタスキングを
遂行することによって、すなわちタスク間の切替えを行
うことによって、OSは対話式にかつバッチ処理でCP
Uのアクセス権を分配すること、及びCPUのスルーグ
ット及び利用度の向上の両方が可能とある。
各アプリケーションは、CPUで走行する場合、1以上
のOSタスクによって明示される。すなわち、OSは有
限個のタスクを1つのアプリケーション又は複数のアプ
リケーションによって指定される対応する機能に割当て
てデイスパツチする。
のOSタスクによって明示される。すなわち、OSは有
限個のタスクを1つのアプリケーション又は複数のアプ
リケーションによって指定される対応する機能に割当て
てデイスパツチする。
普通、タスクの数は現に実行すべきアプリケーションに
よって求められる機能の数よりもずっと少ない。
よって求められる機能の数よりもずっと少ない。
タスク(プロセスともいう)は実行中の1つのプログラ
ムである。タスクは実行に応じてその状態を変える。タ
スクの状態は現在のアクテイビテイ(新、アクティブ、
待機、停止)によって定義される。タスクの状態ベクト
ル表示は9タスク制御ブロック(TCB )”と呼ばれ
る構成を有する。
ムである。タスクは実行に応じてその状態を変える。タ
スクの状態は現在のアクテイビテイ(新、アクティブ、
待機、停止)によって定義される。タスクの状態ベクト
ル表示は9タスク制御ブロック(TCB )”と呼ばれ
る構成を有する。
CPUの利用度を最大にするためには、タスクは常に走
行させておくべきである。直列的なマシンの場合、これ
は待ち行列化されたアクセスによって達成される。換言
すれば、実行の準備を完了し待機しているタスクは作業
又はタスク準備完了待ち行列と呼ばれるリストで保存さ
れる。OSスケジューラ/ディスパッチャは準備完了し
ている待ち行列中のタスクが次にCPUへのアクセス権
が与えられるものかどうかを周期的に判断する。
行させておくべきである。直列的なマシンの場合、これ
は待ち行列化されたアクセスによって達成される。換言
すれば、実行の準備を完了し待機しているタスクは作業
又はタスク準備完了待ち行列と呼ばれるリストで保存さ
れる。OSスケジューラ/ディスパッチャは準備完了し
ている待ち行列中のタスクが次にCPUへのアクセス権
が与えられるものかどうかを周期的に判断する。
走行しているタスクはそれが終了するか、待ち状態に入
るか(たとえばI/Oの遂行によシ引き起こされる)、
有効期限を過ぎたか、又は先取りされるまでは実行を継
続する。CPUのスケジューリングに関するさらなる詳
細はPeterson及びSt lberschatz
による”Operating SystemConce
pts”(Adison−Wesley社)の第91頁
ないし第129頁を参照されたい。
るか(たとえばI/Oの遂行によシ引き起こされる)、
有効期限を過ぎたか、又は先取りされるまでは実行を継
続する。CPUのスケジューリングに関するさらなる詳
細はPeterson及びSt lberschatz
による”Operating SystemConce
pts”(Adison−Wesley社)の第91頁
ないし第129頁を参照されたい。
(2)層構造(ないしは階層式)通信サブシステム共有
メモリの利益のないCPU間通信はそのアクテイビテイ
を互いに調整するための基準としてメッセージの受渡し
によっている。これは、しばしば、′分散式同期“と呼
ばれている。コンピュータ及びそれらのアプリケーショ
ンは、メッセージを交換することによって通信するとき
、通信が行われる様式を管理するための確立されたプロ
トコルのセットが存在しなければならない。プロトコル
の1つのセットはOSIアーキテクチャの1つのモデル
に関するISOの国際標準7498であらわされる。
メモリの利益のないCPU間通信はそのアクテイビテイ
を互いに調整するための基準としてメッセージの受渡し
によっている。これは、しばしば、′分散式同期“と呼
ばれている。コンピュータ及びそれらのアプリケーショ
ンは、メッセージを交換することによって通信するとき
、通信が行われる様式を管理するための確立されたプロ
トコルのセットが存在しなければならない。プロトコル
の1つのセットはOSIアーキテクチャの1つのモデル
に関するISOの国際標準7498であらわされる。
ISO標準によれば、6開放型システム”は1レイヤ”
又は機能の階層的構造としてネットワークのノードをあ
らわす。各1レイヤ”は階層におけるそれよりも上位の
1レイヤ”でアクセス可能であり、使用できる関連する
機能の集合である。
又は機能の階層的構造としてネットワークのノードをあ
らわす。各1レイヤ”は階層におけるそれよりも上位の
1レイヤ”でアクセス可能であり、使用できる関連する
機能の集合である。
さらに、1開放型システム間相互接続”は2位の開放型
システム間の通信のために用いられるプロトコルのセッ
トのことをいう。
システム間の通信のために用いられるプロトコルのセッ
トのことをいう。
ISOの標準OS■モデルは7つのレイヤを記述してい
る。これらのレイヤは、上位から下位の順に、(7)ア
プリケーションレイヤ、(6)プレゼンテーションレイ
ヤ、(5)セッションレイヤ、(4)}?yスポートレ
イヤ、(3)ネットワークレイヤ、(2)データリンク
レイヤ、及び(1)物理レイヤである。実際的には、こ
れらのレイヤは多様に併合され又は削除される。たとえ
ば、レイヤ(1)ないし(3)は生のビットストリーム
の伝送と、送信点及び受信点の間の電気的協同と、自動
エラ一検出及び回復と、パケット及び経路指定管理とを
含む1つの通信レイヤとして組み合わせることができる
。さらに、レイヤ(6)ないし(7)は情報の表示及び
使用を主目的とするよう単一のアプリケーションレイヤ
として組み合わせることができる。
る。これらのレイヤは、上位から下位の順に、(7)ア
プリケーションレイヤ、(6)プレゼンテーションレイ
ヤ、(5)セッションレイヤ、(4)}?yスポートレ
イヤ、(3)ネットワークレイヤ、(2)データリンク
レイヤ、及び(1)物理レイヤである。実際的には、こ
れらのレイヤは多様に併合され又は削除される。たとえ
ば、レイヤ(1)ないし(3)は生のビットストリーム
の伝送と、送信点及び受信点の間の電気的協同と、自動
エラ一検出及び回復と、パケット及び経路指定管理とを
含む1つの通信レイヤとして組み合わせることができる
。さらに、レイヤ(6)ないし(7)は情報の表示及び
使用を主目的とするよう単一のアプリケーションレイヤ
として組み合わせることができる。
OSIは、多重レイヤアーキテクチャとして、確実な通
信を確立し、メッセージがその送信と同じ順序で受信さ
れることを保証する。OSIでは、各レイヤはサービス
提供者としてみることができる。すなわち、各レイヤは
そのレイヤ又はそれよシ上位のユーザにサービスを提供
し、これによシそのユーザは他のノードと対等に通信す
ることができる。
信を確立し、メッセージがその送信と同じ順序で受信さ
れることを保証する。OSIでは、各レイヤはサービス
提供者としてみることができる。すなわち、各レイヤは
そのレイヤ又はそれよシ上位のユーザにサービスを提供
し、これによシそのユーザは他のノードと対等に通信す
ることができる。
1つのレイヤは最下位すなわち物理レイヤに到達するま
でその階層Kおけるすぐ下のレイヤとの接続を確立する
ことKよってこれらのサービスを提供する。このとき、
メッセージにはその宛先への物理的な経路に関する情報
が与えられる。宛先ノードでは、逆の順序で同じプロセ
スが繰返される。分散式プロセス管理についてのさらに
詳細な説明が必要であれば、Maekawaらによる”
Operating Systems−Advance
d Concepts”( Be n j ami n
/Cummi nga社)の第177頁ないし第206
頁を参照されたい。
でその階層Kおけるすぐ下のレイヤとの接続を確立する
ことKよってこれらのサービスを提供する。このとき、
メッセージにはその宛先への物理的な経路に関する情報
が与えられる。宛先ノードでは、逆の順序で同じプロセ
スが繰返される。分散式プロセス管理についてのさらに
詳細な説明が必要であれば、Maekawaらによる”
Operating Systems−Advance
d Concepts”( Be n j ami n
/Cummi nga社)の第177頁ないし第206
頁を参照されたい。
起点ホストノードにおいてメッセージがレイヤを垂直下
方に通過すること、物理的な経路又はレイヤを介して宛
先ノードに向かって水平的に伝送されること、及びその
宛先ノードヘ向かって垂直的に進むことについては従来
技術においてよく説明されている。しかしながら、従来
技術で指摘されている問題のほとんどは水平的な、すな
わち、対等な側面を強調する通信k関するものである。
方に通過すること、物理的な経路又はレイヤを介して宛
先ノードに向かって水平的に伝送されること、及びその
宛先ノードヘ向かって垂直的に進むことについては従来
技術においてよく説明されている。しかしながら、従来
技術で指摘されている問題のほとんどは水平的な、すな
わち、対等な側面を強調する通信k関するものである。
たとえば、セッションの確立、経路指定及びノイズの存
在下又は可変の帯域幅の存在下における同期の維持など
である。このような技術を開示するものとしては、米国
特許第4736369号がある。
在下又は可変の帯域幅の存在下における同期の維持など
である。このような技術を開示するものとしては、米国
特許第4736369号がある。
実際、従来技術の立場から通信サブシステムの!成’!
tKマルチタスキングマネジメントを接続するというア
プローチは、寛大にいえば、記載されていないわけでは
ない。たとえば、M.Purserによる″Data
Communications forProgra
mmers”(Addiso Wesley社)、第5
章第72ないし第92頁には、同期的サブシステムレベ
ルで可用度に基づいてOSのタスクのディスパッチを行
うことが記載されている。同様に、M.Stella
Atkinsによる” Experimentsin
SR with Different Upca
llProgram Structures 、AC
M Transactionsof Compute
r Systems、第6巻第4号、1988年11
月は、階層式通信サブシステムのOSマネジメントを開
示するものとして参照すべきである。
tKマルチタスキングマネジメントを接続するというア
プローチは、寛大にいえば、記載されていないわけでは
ない。たとえば、M.Purserによる″Data
Communications forProgra
mmers”(Addiso Wesley社)、第5
章第72ないし第92頁には、同期的サブシステムレベ
ルで可用度に基づいてOSのタスクのディスパッチを行
うことが記載されている。同様に、M.Stella
Atkinsによる” Experimentsin
SR with Different Upca
llProgram Structures 、AC
M Transactionsof Compute
r Systems、第6巻第4号、1988年11
月は、階層式通信サブシステムのOSマネジメントを開
示するものとして参照すべきである。
1988年12月9日付けの米国特許出願第28240
9号には、第1のCPUにおけるアプリケーションが通
信サブシステムを介して他のCPUにデータを送る場合
、“スレッド(thread)”と呼ばれる構造を用い
てデータ送信コマンドを表わすということが開示されて
いる。スレッドは対応するレイヤの関連する機能への一
連の呼出しを記述する。すなわち、各スレッドは対応す
るレイヤによって遂行すべき作業についての一連の要求
を含む。
9号には、第1のCPUにおけるアプリケーションが通
信サブシステムを介して他のCPUにデータを送る場合
、“スレッド(thread)”と呼ばれる構造を用い
てデータ送信コマンドを表わすということが開示されて
いる。スレッドは対応するレイヤの関連する機能への一
連の呼出しを記述する。すなわち、各スレッドは対応す
るレイヤによって遂行すべき作業についての一連の要求
を含む。
各スレッドはサブシステムの資源についての1つの要求
を構成し、タスクがOSに対して有するのと同じように
、サブシステムに対して一定の関係を有する。したがっ
て、各スレッドは1組の状態のうちの1つを呈する(新
、アクティブ、待機又は停止)。とこに、通信サブシス
テムの目的は,,そのスループット及び利用度を高める
ため同時に複数のスレッドを生成し管理することである
。
を構成し、タスクがOSに対して有するのと同じように
、サブシステムに対して一定の関係を有する。したがっ
て、各スレッドは1組の状態のうちの1つを呈する(新
、アクティブ、待機又は停止)。とこに、通信サブシス
テムの目的は,,そのスループット及び利用度を高める
ため同時に複数のスレッドを生成し管理することである
。
レイヤ、タイ、スレッド及びタスク
前掲の米国特許出願にも記載されるように、′コネクシ
ョン制御ブロック(CCB)”は階層式通信サブシステ
ムにおける各レイヤのコネクション制御状態を定義する
ために用いられる1つの構造である。各レイヤは対応す
るスレッド釦おける原始によって呼出すことのできるC
PUで結び付けられるトランザクション指向のサブルー
チンを複数個有している。
ョン制御ブロック(CCB)”は階層式通信サブシステ
ムにおける各レイヤのコネクション制御状態を定義する
ために用いられる1つの構造である。各レイヤは対応す
るスレッド釦おける原始によって呼出すことのできるC
PUで結び付けられるトランザクション指向のサブルー
チンを複数個有している。
レイヤ間の相互関係は対応するレイヤに関連するCCB
間の優先度を確立したコネクションによって定義される
。CCB間の関係は”タイ(tie)”と呼ばれ、結合
されたCCBの定義されたセットは”タイグループ(t
ie group)”と呼ばれる。
間の優先度を確立したコネクションによって定義される
。CCB間の関係は”タイ(tie)”と呼ばれ、結合
されたCCBの定義されたセットは”タイグループ(t
ie group)”と呼ばれる。
タイを生成する仁とにより、一定の環境において走行す
る場合に同じレイヤ内で結合された全てのCCBを介す
る作業の直列化が可能となる。すなわち、タイグループ
は通信サブシステム資源とみなすことができる。したが
って、1つのOSのタスクを1つのCPUの資源に結合
するととと、1つのスレッドを1つのタイプグループに
結合することとの間Kは類似性がある。
る場合に同じレイヤ内で結合された全てのCCBを介す
る作業の直列化が可能となる。すなわち、タイグループ
は通信サブシステム資源とみなすことができる。したが
って、1つのOSのタスクを1つのCPUの資源に結合
するととと、1つのスレッドを1つのタイプグループに
結合することとの間Kは類似性がある。
本発明の目的はCPUに基づくマルチタスキングオペレ
ーティングシステムのディスパッチングと、1以上のア
プリケーションによってCPUに存在する階層式通信サ
ブシステムに置かれた同時的ないしは並行的な要求とを
同期化する方法を提供することである。
ーティングシステムのディスパッチングと、1以上のア
プリケーションによってCPUに存在する階層式通信サ
ブシステムに置かれた同時的ないしは並行的な要求とを
同期化する方法を提供することである。
本発明の他の目的はOS及び通信サブシステムのレベル
におけるCPUのスループット及び利用度を高めること
である。
におけるCPUのスループット及び利用度を高めること
である。
C.課題を解決するための手段
この目的を達成するため、本発明の方法は、CPUに基
づく第1のマルチタスキングオペレーティングシステム
からのタスクのデイスパンチングと、呼出し可能な資源
のセットを含むCPUに基づく第2のマルチタスキング
オペレーティングシステムによって適時にディスパツチ
される機能呼出しのスレッドとを同期化する下記の(a
)ないし(C)のステップを有する。
づく第1のマルチタスキングオペレーティングシステム
からのタスクのデイスパンチングと、呼出し可能な資源
のセットを含むCPUに基づく第2のマルチタスキング
オペレーティングシステムによって適時にディスパツチ
される機能呼出しのスレッドとを同期化する下記の(a
)ないし(C)のステップを有する。
(a) 下記の(イ)ないし(ハ)の条件で、スレッ
ドによる所有権を、そのスレッドにおける機能呼出しに
よって指名される第2のマルチタスキングオペレーティ
ングシステムの資源のうちの1つに結び付けるステップ
。
ドによる所有権を、そのスレッドにおける機能呼出しに
よって指名される第2のマルチタスキングオペレーティ
ングシステムの資源のうちの1つに結び付けるステップ
。
(イ)そのスレッドはその資源に対してエンキュ一され
た唯一のスレッドであるとと。
た唯一のスレッドであるとと。
(口)そのスレッドは他のいかなる資源も所有しないこ
と。
と。
(ハ)上記(イ)及び(口)でないときは、その資源に
おける機能呼出しによって指名される各資源に対して資
源をエンキューすること。
おける機能呼出しによって指名される各資源に対して資
源をエンキューすること。
(b) タスクに対して資源を所有するスレッドをエ
ンキューし、次に利用可能なタスクをタスクのスレッド
の待ち行列における最初のスレッドに結び付けて、結び
付けられたタスクによって最初のスレッドの機能呼出し
のうちの所定の1つを実行するステップ。
ンキューし、次に利用可能なタスクをタスクのスレッド
の待ち行列における最初のスレッドに結び付けて、結び
付けられたタスクによって最初のスレッドの機能呼出し
のうちの所定の1つを実行するステップ。
(c) 実行の後、最初に結び付けられたスレッドに
対しその資源の所有権を解放させ、その同じ資源に対し
て待ち行列化された次のスレッドをその資源の所有者と
してタスクに対してエンキューするステップ。
対しその資源の所有権を解放させ、その同じ資源に対し
て待ち行列化された次のスレッドをその資源の所有者と
してタスクに対してエンキューするステップ。
以下、本発明の作用を実施例とともに説明する。
D.実施例
はじめに本発明の実施例を概説する。本発明の実施例は
以下のことを前提とする。
以下のことを前提とする。
第1に、1つのOSのタスクは1つのスレッドが処理中
であるレイヤ内において1つのタイグループについて所
有権のある間、そのスレッドに結び付けるべきである。
であるレイヤ内において1つのタイグループについて所
有権のある間、そのスレッドに結び付けるべきである。
第2に、スレッドはそのスレッドのサービス要求が既に
ちょうど1つのタイグループに結び付けられている場合
にのみ、タスクに結び付けるためスレッドの作業待ち行
列で利用可能となる。
ちょうど1つのタイグループに結び付けられている場合
にのみ、タスクに結び付けるためスレッドの作業待ち行
列で利用可能となる。
本発明によれば、各タスクは、作業のために準備完了な
場合、スレッドの作業待ち行列から最高優先順位のスレ
ッドを取得しそれを実行する。作業待ち行列上のいかな
るスレッドも、1つのタイグループにつき1つのスレッ
ドだけが一時に実行できるという制限を満たすことがわ
かっている。
場合、スレッドの作業待ち行列から最高優先順位のスレ
ッドを取得しそれを実行する。作業待ち行列上のいかな
るスレッドも、1つのタイグループにつき1つのスレッ
ドだけが一時に実行できるという制限を満たすことがわ
かっている。
さらに、それは、スレッドが最初K1つのタイグループ
の所有者となるまで(結び付けられるまで)、作業待ち
行列に置く仁とができない場合である。
の所有者となるまで(結び付けられるまで)、作業待ち
行列に置く仁とができない場合である。
同じタイグループについての付加的なスレッドはタイグ
ループ制御ブロックで待ち行列化される。
ループ制御ブロックで待ち行列化される。
本発明に基づく方法がサービス要求を実行する場合、そ
れを処理したスレッドに対し、そのタイグループの所有
権を解放させる。ζれによれば、そのタイグループに対
して待ち行列化された待機中の次のスレッドがそのタイ
グループの所有者となシ、利用可能なスレッドの作業待
ち行列に置かれる。
れを処理したスレッドに対し、そのタイグループの所有
権を解放させる。ζれによれば、そのタイグループに対
して待ち行列化された待機中の次のスレッドがそのタイ
グループの所有者となシ、利用可能なスレッドの作業待
ち行列に置かれる。
スレッドについてのサービス要求が実行されると、それ
はそのスレッドから削除される。付加的なサービス要求
があれば、そのスレッドは対応するタイグループで待ち
行列化される。そのスレッドがタイグループの待ち行列
の最初のものであるときは、それはそのタイグループの
所有者となシ、作業待ち行列に置く必要なしに、現タス
クによって実行する仁とができる。この特徴によれば、
1つのアプリケーションからの単一のデータ要求はシス
テム内でコネクションが存在しない場合に同じタスクを
用いて通信レイヤを通過することが可能となる。もしそ
のスレッドがタイグループの待ち行列において最初のも
のでなかったとすれば、そのタスクは当該スレッドの処
理を停止して作業待ち行列からの別のスレッドの取得を
試行するととになろう。この放棄されたスレッドはタイ
グループの待ち行列に残って、そのスレッドがタイグル
ープの所有者になる場合に同じタスクによって作業待ち
行列に置かれる。
はそのスレッドから削除される。付加的なサービス要求
があれば、そのスレッドは対応するタイグループで待ち
行列化される。そのスレッドがタイグループの待ち行列
の最初のものであるときは、それはそのタイグループの
所有者となシ、作業待ち行列に置く必要なしに、現タス
クによって実行する仁とができる。この特徴によれば、
1つのアプリケーションからの単一のデータ要求はシス
テム内でコネクションが存在しない場合に同じタスクを
用いて通信レイヤを通過することが可能となる。もしそ
のスレッドがタイグループの待ち行列において最初のも
のでなかったとすれば、そのタスクは当該スレッドの処
理を停止して作業待ち行列からの別のスレッドの取得を
試行するととになろう。この放棄されたスレッドはタイ
グループの待ち行列に残って、そのスレッドがタイグル
ープの所有者になる場合に同じタスクによって作業待ち
行列に置かれる。
以下、図面を参照しながら、実施例を詳細に説明する。
前掲の米国特許出願において指摘されるように、OSは
通信サブシステムのレイヤを構成する機能が有限状態機
械との一貫性を保つように遂行される通信サブシステム
のための走行時間の環境を提供する。すなわち、典型的
なレイヤは自己のCCBK訃いて状態遷移テーブルを含
む。さらに、典型的なレイヤは自己のCCBにおいて各
コネクションの現在の状態を保有している。あるコネク
ションについての作業の1単位を遂行するために1つの
レイヤが呼出されたとき(この意味では、1つのサービ
スを提供する1つのレイヤK対する各要求は作業の1単
位とみることができる)、そのレイヤはその要求を処理
するソフトウエアをみつけるためのパラメータとして、
現在の状態、サービス要求入力及び状態遷移テーブルを
取得する。
通信サブシステムのレイヤを構成する機能が有限状態機
械との一貫性を保つように遂行される通信サブシステム
のための走行時間の環境を提供する。すなわち、典型的
なレイヤは自己のCCBK訃いて状態遷移テーブルを含
む。さらに、典型的なレイヤは自己のCCBにおいて各
コネクションの現在の状態を保有している。あるコネク
ションについての作業の1単位を遂行するために1つの
レイヤが呼出されたとき(この意味では、1つのサービ
スを提供する1つのレイヤK対する各要求は作業の1単
位とみることができる)、そのレイヤはその要求を処理
するソフトウエアをみつけるためのパラメータとして、
現在の状態、サービス要求入力及び状態遷移テーブルを
取得する。
もちろん、探知されたソフトウエアの実行によって、そ
のコネクション及びレイヤの状態は変化し、出力が生成
される場合もある。
のコネクション及びレイヤの状態は変化し、出力が生成
される場合もある。
前述の如く、1つのサービスを提供する1つのレイヤに
対する各要求は作業の1単位とみなされる。さらに、前
述したように1つのレイヤは関連する呼出し可能な機能
のセットを有する。したがって、そのオペレーティング
システムは、そのようなシステムの全てがするように、
その要求K応答してそのレイヤを呼出して、関連するプ
ロセス又は機能が完了したときにそこから戻る。各要求
すなわち作業の単位は特定のCCBと関連している。
対する各要求は作業の1単位とみなされる。さらに、前
述したように1つのレイヤは関連する呼出し可能な機能
のセットを有する。したがって、そのオペレーティング
システムは、そのようなシステムの全てがするように、
その要求K応答してそのレイヤを呼出して、関連するプ
ロセス又は機能が完了したときにそこから戻る。各要求
すなわち作業の単位は特定のCCBと関連している。
現に実行中のレイヤが別のレイヤに存在する1つの機能
を呼出す場合、その要求又は呼出しの次の走行がスケジ
ュールされる。同じCCB(レイヤ)について発行され
る全ての要求は発行された順序で実行する仁とが必要で
ある。
を呼出す場合、その要求又は呼出しの次の走行がスケジ
ュールされる。同じCCB(レイヤ)について発行され
る全ての要求は発行された順序で実行する仁とが必要で
ある。
ISOのOSI参照モデル
第1図について説明する。第1図には7つのレイヤのI
SO OSI参照モデルが示されている。
SO OSI参照モデルが示されている。
前述の如く、階層式通信の原理に違反しないで複数のレ
イヤをいっしょにすることができる。この原理は各レイ
ヤが他のレイヤとは無関係に実行可能であるが所定の順
序で走行されるいわゆる原始( primitive)
によって呼出される機能のセントを構成するというもの
である。これらの機能のうち幾つかは隣接するレイヤに
存する機能を呼出すことがある。すなわち、レイヤNに
おけるある機能がレイヤN−1におけるある機能を呼出
すととがある。とれらの2つのレイヤ間のインターフェ
ースはサービスアクセス点を介して命令するζとができ
゛る。よシ下位のレイヤは概念的にはより上位へのサー
ビス提供者である。よシ下位のレイヤの立場からは、そ
の上位のレイヤはサービスユーザである。
イヤをいっしょにすることができる。この原理は各レイ
ヤが他のレイヤとは無関係に実行可能であるが所定の順
序で走行されるいわゆる原始( primitive)
によって呼出される機能のセントを構成するというもの
である。これらの機能のうち幾つかは隣接するレイヤに
存する機能を呼出すことがある。すなわち、レイヤNに
おけるある機能がレイヤN−1におけるある機能を呼出
すととがある。とれらの2つのレイヤ間のインターフェ
ースはサービスアクセス点を介して命令するζとができ
゛る。よシ下位のレイヤは概念的にはより上位へのサー
ビス提供者である。よシ下位のレイヤの立場からは、そ
の上位のレイヤはサービスユーザである。
OSIのレイヤ及びメッセージ処理
第2図について説明する。第2図にはデータ構造及びそ
れについて行われる変更が示されている。
れについて行われる変更が示されている。
これらの変更はアクションがアプリケーションレイヤか
ら物理レイヤに垂直下方に通る際に様々なレイヤにおけ
る機能によって行われる。アプリケーションレイヤ及び
プレゼンテーションレイヤはユーザ間通信を定義し(ユ
ーザ相互間通信プロトコル)、セッションレイヤ及ヒト
ランスホートレイヤはプロセス間通信を定義し(プロセ
ス相互間通信プロトコル)、ネットワークレイヤ、デー
タリンクレイヤ及び物理レイヤは実際のデータ伝送を定
義する(コンピュータ相互間通信プロトコル)。
ら物理レイヤに垂直下方に通る際に様々なレイヤにおけ
る機能によって行われる。アプリケーションレイヤ及び
プレゼンテーションレイヤはユーザ間通信を定義し(ユ
ーザ相互間通信プロトコル)、セッションレイヤ及ヒト
ランスホートレイヤはプロセス間通信を定義し(プロセ
ス相互間通信プロトコル)、ネットワークレイヤ、デー
タリンクレイヤ及び物理レイヤは実際のデータ伝送を定
義する(コンピュータ相互間通信プロトコル)。
図示されるように、CPUAが3つのレイヤ(すなわち
、アプリケーションレイヤ、中間レイヤ及び通信レイヤ
)を介してメッセージMをCPUBに送シたいものと仮
定する。連続的なレイヤを構成する各プロセスが呼出さ
れるとき、各プロセスはそのメッセージに対して作用す
る。し念がつて、メッセージMがアプリケーションレイ
ヤによって生成された場合、中間レイヤはそのメッセー
ジをK1(M)となるように変更する。次に、通信装置
レイヤがその結果をK2(K1(M))に変更する。こ
の合成メッセージはネットワークを介して送られ、宛先
のCPUBでK2(K1(M))として受信される。こ
の合成メッセージは逆のレイヤの頴序で分解されるので
、論証上、各レイヤは対等に通信することができるとい
える。したがって、CPUBのアプリケーションレイヤ
がもとのままの原メッセージMを受信する唯一のレイヤ
であることを維持しながら、中間のレイヤAはメッセー
ジK1(M)を中間のレイヤBへ送る。
、アプリケーションレイヤ、中間レイヤ及び通信レイヤ
)を介してメッセージMをCPUBに送シたいものと仮
定する。連続的なレイヤを構成する各プロセスが呼出さ
れるとき、各プロセスはそのメッセージに対して作用す
る。し念がつて、メッセージMがアプリケーションレイ
ヤによって生成された場合、中間レイヤはそのメッセー
ジをK1(M)となるように変更する。次に、通信装置
レイヤがその結果をK2(K1(M))に変更する。こ
の合成メッセージはネットワークを介して送られ、宛先
のCPUBでK2(K1(M))として受信される。こ
の合成メッセージは逆のレイヤの頴序で分解されるので
、論証上、各レイヤは対等に通信することができるとい
える。したがって、CPUBのアプリケーションレイヤ
がもとのままの原メッセージMを受信する唯一のレイヤ
であることを維持しながら、中間のレイヤAはメッセー
ジK1(M)を中間のレイヤBへ送る。
コネクション、制御ブロック及びレイヤ意味のある作業
を遂行するため、一方の終点のユーザはターゲットの終
点との1コネクション”を確立する。このアクションは
呼出し(calling又はiHv6king)をした
ユーザに必要なサービスを提供する適切なレイヤを介す
る経路をたどる。
を遂行するため、一方の終点のユーザはターゲットの終
点との1コネクション”を確立する。このアクションは
呼出し(calling又はiHv6king)をした
ユーザに必要なサービスを提供する適切なレイヤを介す
る経路をたどる。
1コネクション制御ブロック(CCB)”と呼ばれる構
造は1つのレイヤが別のレイヤのサービスを要求する場
合に2つのシステムの終点間の全体的なコネクションの
1部を表わしている。これは次のことを意味する。すな
わち、1つのCCBはレイヤ間の各境界に存在し、各シ
ステム内の“コネクション”は関連するCCBの連鎖に
よって定義される。
造は1つのレイヤが別のレイヤのサービスを要求する場
合に2つのシステムの終点間の全体的なコネクションの
1部を表わしている。これは次のことを意味する。すな
わち、1つのCCBはレイヤ間の各境界に存在し、各シ
ステム内の“コネクション”は関連するCCBの連鎖に
よって定義される。
コネクション、CCB及びレイヤの間の対話の例第3図
について説明する。第3図には、9つの異なるタイグル
ープK属する複数個のCCBが示されている。これはタ
スクへのスレッドを設定する通信サブシステムであるこ
とを思い出されたい。
について説明する。第3図には、9つの異なるタイグル
ープK属する複数個のCCBが示されている。これはタ
スクへのスレッドを設定する通信サブシステムであるこ
とを思い出されたい。
さらに、1つのレイヤにつき複数の呼出しが許される。
また、1つのタイグループにつき一時に1つの呼出しだ
けが許される。
けが許される。
サブシステムがスレッドの実行について3つの利用可能
なタスクを持っていると仮定する。
なタスクを持っていると仮定する。
例−1 同一レイヤの複数の吐出し
C・CB1、CCB2及びCCB3によって表わされる
3つのアプリケーションが同時にデータを送るものと想
定する。このサブシステムは各アプリケーションの送信
をサービスするためタスクを割振るので、タイグループ
Ti、T2及びT3のためにそれぞれ1つ、すなわち、
レイヤ6の3つの同時的な呼出しが存在することになる
。レイヤ5に進むと、T4、T5及びT6について5つ
の同時的な呼出しが存在する。レイヤ4に進むと、T7
及びT8のためにそれぞれ1つ、すなわち、レイヤ4の
同時的な呼出しは2つだけである。CCB4及びCCB
5からの要求は順次的に処理され、1つのタスクがアイ
ドル状態となる。
3つのアプリケーションが同時にデータを送るものと想
定する。このサブシステムは各アプリケーションの送信
をサービスするためタスクを割振るので、タイグループ
Ti、T2及びT3のためにそれぞれ1つ、すなわち、
レイヤ6の3つの同時的な呼出しが存在することになる
。レイヤ5に進むと、T4、T5及びT6について5つ
の同時的な呼出しが存在する。レイヤ4に進むと、T7
及びT8のためにそれぞれ1つ、すなわち、レイヤ4の
同時的な呼出しは2つだけである。CCB4及びCCB
5からの要求は順次的に処理され、1つのタスクがアイ
ドル状態となる。
例−2 同一のコネクションについての複数の呼出し
1つのタスクがアイドル状態になるときにCCB1によ
って表わされるアプリケーションについてネットワーク
を介してデータを到着させることによって例1を続けて
みよう。レイヤ4がCCE4及びCCB 5のために呼
出される一方で、タスクがCCB7についてレイヤ3を
呼出すのに使用される。CCB4及びCCB7はCCB
1によつて表わされるコネクションのためのものなの
で、レイヤ3において1つ及びレイヤ4において1つ、
すなわち、同一のアプリケーションコネクションについ
て2つの同時的な呼出しが存在する。
って表わされるアプリケーションについてネットワーク
を介してデータを到着させることによって例1を続けて
みよう。レイヤ4がCCE4及びCCB 5のために呼
出される一方で、タスクがCCB7についてレイヤ3を
呼出すのに使用される。CCB4及びCCB7はCCB
1によつて表わされるコネクションのためのものなの
で、レイヤ3において1つ及びレイヤ4において1つ、
すなわち、同一のアプリケーションコネクションについ
て2つの同時的な呼出しが存在する。
例−3 レイヤ間においてタスクの切替えがない場合
6つのアプリケーションがデータ送信要求を発行する前
に例−2のネットワークを介するデータの到着が行われ
ると仮定する。1つのタスクは入力データを処理すべく
、T9VCついてレイヤ3を、次にT7についてレイヤ
4を次にT4についてレイヤ5を呼出すのに使用される
。これらのアプリケーションがデータを送信すると、レ
イヤ5がCCB4について呼出される一方でレイヤ6が
CCB1及びCCB2について呼出される。CCB3に
ついてのレイヤ6の呼出しは3つ全てがアクティブなの
で使用可能なタスクを待たなければならない。同じコネ
クションのうちの1つについてレイヤ5の呼込みが存在
する一方で、異なるコネクションについてレイヤ6の2
つの呼出しが存在する。しかしながら、レイヤの境界を
越えたというだけでタスクの切替えは必要ない。
に例−2のネットワークを介するデータの到着が行われ
ると仮定する。1つのタスクは入力データを処理すべく
、T9VCついてレイヤ3を、次にT7についてレイヤ
4を次にT4についてレイヤ5を呼出すのに使用される
。これらのアプリケーションがデータを送信すると、レ
イヤ5がCCB4について呼出される一方でレイヤ6が
CCB1及びCCB2について呼出される。CCB3に
ついてのレイヤ6の呼出しは3つ全てがアクティブなの
で使用可能なタスクを待たなければならない。同じコネ
クションのうちの1つについてレイヤ5の呼込みが存在
する一方で、異なるコネクションについてレイヤ6の2
つの呼出しが存在する。しかしながら、レイヤの境界を
越えたというだけでタスクの切替えは必要ない。
本発明に基づく方法を実行するためのホス}CPUの環
境 本発明はマルチタスキングオペレーティングシステムを
有する汎用コンピュータにおいて好都合に実現すること
ができる。そのようなコンピュータは、たとえば、タイ
ムシェアリング機能(TSO)を有するIBM MV
S オペレーティングシステムを用いるIBM/36
0又は670のアーキテクチャによるCPUである。I
BM/360のアーキテクチャによるCPUは米国特許
第3400371号に開示されている。
境 本発明はマルチタスキングオペレーティングシステムを
有する汎用コンピュータにおいて好都合に実現すること
ができる。そのようなコンピュータは、たとえば、タイ
ムシェアリング機能(TSO)を有するIBM MV
S オペレーティングシステムを用いるIBM/36
0又は670のアーキテクチャによるCPUである。I
BM/360のアーキテクチャによるCPUは米国特許
第3400371号に開示されている。
TSOを有するMVSオペレーティングシステムはIB
M社の刊行物GC28−1 1 50″’MVS/Ex
tended Architecture Syst
@mProgramming Library : S
ystem Macrosand Facilitie
a”第1巻で説明されている。
M社の刊行物GC28−1 1 50″’MVS/Ex
tended Architecture Syst
@mProgramming Library : S
ystem Macrosand Facilitie
a”第1巻で説明されている。
OSIモデルに従う階層式通信サブシステムは1988
年9月20日に発表されたIBM開放型システム間相互
接続、バージョン1、リリース1によって示されている
。このサブシステムの動作の原理はIBM社の刊行物で
あるGL23−0184″System/370 M
VS and VM OSI/Communic
ation Subsystem GeneralI
nformation manual”に教示されてい
る。
年9月20日に発表されたIBM開放型システム間相互
接続、バージョン1、リリース1によって示されている
。このサブシステムの動作の原理はIBM社の刊行物で
あるGL23−0184″System/370 M
VS and VM OSI/Communic
ation Subsystem GeneralI
nformation manual”に教示されてい
る。
標準的なMVSや、ロック管理、割込みもしくは監視K
よるサブシステムの呼出しならびにタスクの記入及び待
機などのその他のオペレーティングシステムサービスに
ついては、当業者には周知であるので、詳細な説明は省
略する。
よるサブシステムの呼出しならびにタスクの記入及び待
機などのその他のオペレーティングシステムサービスに
ついては、当業者には周知であるので、詳細な説明は省
略する。
PASCALによるインプリメンテーション以下の表は
本発明に基づく方法をPASCALでインプリメントし
た例を示すものである。PASCALの場合、データ構
造、サブルーチン機能及びグロシージャは明示的に宣言
する必要がある。
本発明に基づく方法をPASCALでインプリメントし
た例を示すものである。PASCALの場合、データ構
造、サブルーチン機能及びグロシージャは明示的に宣言
する必要がある。
構造的にいうと、シンタックスは構造及び変数の各々の
定義、サブルーテン機能又はプロシージャの各々の記述
で始まク、主グロシージャで終る。
定義、サブルーテン機能又はプロシージャの各々の記述
で始まク、主グロシージャで終る。
サブルーチン機能又はプロシージャの前の記述の程度に
応じて、主プログラムは上記機能及びプロシージャに対
する呼出しにすぎない場合もある。
応じて、主プログラムは上記機能及びプロシージャに対
する呼出しにすぎない場合もある。
主プログラムは呼出しの順序、条件及び繰返しを定義す
る。
る。
シンタックスは次のように表わすζとができる。
第1表
Program (名前〉
Type <大域構造の定義〉
Mar (大域変数〉
Procedure (名前1〉 くパラメータ/値
〉Type <ローカル構造〉 Var <ローカル変数〉 Begin End ; Begin (“主プロシージャ*)Whil
g<条件)Do I3egin gamel; End End . Lock UnLock Wait Post InvokeLayer EnqTie DeqTie EnqWork Ge t Wo r k GetNext タスク直列化の要求 タスク直列化の解放 非アクティブ期間中のタスクの延期 タスク実行の再開 指定された通信レイヤへの制御権 の移転 タイグループ待ち行列へのスレッ ドの付加 タイグループ待ち行列からのスレ ッドの削除 作業待ち行列へのスレッドの付加 実行準備の完了の最高優先頴位の スレッドの取得 次のサービス要求へのスレッドの 進行 Execute 作業のデイスノくツチングを制御
するメインルーチン このルーチンは通信サブシステムにおいてタスクの実行
ごとに実行される。
〉Type <ローカル構造〉 Var <ローカル変数〉 Begin End ; Begin (“主プロシージャ*)Whil
g<条件)Do I3egin gamel; End End . Lock UnLock Wait Post InvokeLayer EnqTie DeqTie EnqWork Ge t Wo r k GetNext タスク直列化の要求 タスク直列化の解放 非アクティブ期間中のタスクの延期 タスク実行の再開 指定された通信レイヤへの制御権 の移転 タイグループ待ち行列へのスレッ ドの付加 タイグループ待ち行列からのスレ ッドの削除 作業待ち行列へのスレッドの付加 実行準備の完了の最高優先頴位の スレッドの取得 次のサービス要求へのスレッドの 進行 Execute 作業のデイスノくツチングを制御
するメインルーチン このルーチンは通信サブシステムにおいてタスクの実行
ごとに実行される。
Start Thread新スレッドの開始\
\
\
\
\
\
\
一品ギ
\
\
\
\
\
\
\
\
\
\
ComSys
第2表について説明する。プログラム又はセグメントは
ComSysと記してある。ComSysはPASCA
L言語のシンタックスに従っている。
ComSysと記してある。ComSysはPASCA
L言語のシンタックスに従っている。
先にリストしたようK,OSのサービスについての参照
を含む全てのグロシージャは主グロシージャExacu
te に先行する。また、プロシージャStart
Threadが識別される。StartThreadは
選択されたComSysサブルーチンと交差接続される
。さらに、Start ThreadはCPUホスト
に基づくデータ送信を行うアプリケーション又は遠隔の
ホストアプリケーションからネットワークを介して到着
するデータによって外部からの呼出しが可能である。
を含む全てのグロシージャは主グロシージャExacu
te に先行する。また、プロシージャStart
Threadが識別される。StartThreadは
選択されたComSysサブルーチンと交差接続される
。さらに、Start ThreadはCPUホスト
に基づくデータ送信を行うアプリケーション又は遠隔の
ホストアプリケーションからネットワークを介して到着
するデータによって外部からの呼出しが可能である。
セグメン}ComSysの開始についていうと、主要な
構造の各々は制御ブロックによって表わされることがわ
かる。これらは、タイグループブロック、スレッドブロ
ック、作業要求ブロック及びコネクション制御ブロック
(CCB)である。ロックブロック及び最も重要な作業
待ち行列も表わされている。これらの全ての構造はPA
SCALのレコードタイプを使用している。このタイプ
によれば、1つのフォーム内における異種データタイプ
の原始の連関が可能となる。
構造の各々は制御ブロックによって表わされることがわ
かる。これらは、タイグループブロック、スレッドブロ
ック、作業要求ブロック及びコネクション制御ブロック
(CCB)である。ロックブロック及び最も重要な作業
待ち行列も表わされている。これらの全ての構造はPA
SCALのレコードタイプを使用している。このタイプ
によれば、1つのフォーム内における異種データタイプ
の原始の連関が可能となる。
プロシージャExecuteは各作業タスクの主処理ル
ープである。基本ループはWHI LE−Doタイプで
、プール条件″RUNNING″が真である限り継続す
る。
ープである。基本ループはWHI LE−Doタイプで
、プール条件″RUNNING″が真である限り継続す
る。
次に、プロシージャExecuteに続くグロシージャ
Start Threadについて説明する。新しい
スレッドはCPUに基づくデータ送信を行っているアプ
リケーション又は遠隔のホストに基づくアプリケーショ
ンからネットワークを介して到着するデータなどのよう
な通信サブシステムへの外部からの刺激によって生成さ
れる。さらに、これらの通信サブシステム自身は自己の
通常の処理期間中に付加的なスレッドを生成する場合が
ある。
Start Threadについて説明する。新しい
スレッドはCPUに基づくデータ送信を行っているアプ
リケーション又は遠隔のホストに基づくアプリケーショ
ンからネットワークを介して到着するデータなどのよう
な通信サブシステムへの外部からの刺激によって生成さ
れる。さらに、これらの通信サブシステム自身は自己の
通常の処理期間中に付加的なスレッドを生成する場合が
ある。
したがって、グロシージャStart Thread
はプロシージャExecuteによっては直接的には呼
出されない。
はプロシージャExecuteによっては直接的には呼
出されない。
Start Thsadは指定されたサービス又は作業
要求を含む新しいスレッドを生成する。スレッドは、そ
れが形成された後、そのサービス又は作業要求において
指定されたCCBによって示されるような適切なタイグ
ループに待ち行列化される。
要求を含む新しいスレッドを生成する。スレッドは、そ
れが形成された後、そのサービス又は作業要求において
指定されたCCBによって示されるような適切なタイグ
ループに待ち行列化される。
そのスレッドがタイグループの所有者である場合、それ
は使用可能なタスクがそれをみつけることができる作業
待ち行列に付加される。そのスレッドがタイグループの
所有者でない場合には、このときには作業待ち行列に置
かれない。しかしながら、そのスレッドがタイグループ
の所有者となるときは、グロシージャExecuteに
よって作業待ち行列に置かれる。
は使用可能なタスクがそれをみつけることができる作業
待ち行列に付加される。そのスレッドがタイグループの
所有者でない場合には、このときには作業待ち行列に置
かれない。しかしながら、そのスレッドがタイグループ
の所有者となるときは、グロシージャExecuteに
よって作業待ち行列に置かれる。
グロシージャExscuteは通信サブシステムにおい
てスレッドを処理する各タスクによって実行される。各
タスクは作業の準備が完了したとき、作業待ち行列から
最高優先順位のスレッドを取得し、それを実行する。作
業待ち行列上のスレッドは一時に1タイグループにつき
1つのスレッドだけが実行できるという制限を満たすこ
とがわがつている。というのは、スレッドはそれが最初
にタイグループの所有者になるまでは作業待ち行列に置
くことができないからである。同じタイグループについ
ての付加的なスレッドはタイグループ制御ブロックで待
ち行列化される。WHILE−RUNNING−DOル
ープで最初に呼出される機能はGetWorkであるこ
とに留意されたい。プロ’/−ジャGetWorkは1
つのロックを作業待ち行列に置いてその作業待ち行列を
テストする。
てスレッドを処理する各タスクによって実行される。各
タスクは作業の準備が完了したとき、作業待ち行列から
最高優先順位のスレッドを取得し、それを実行する。作
業待ち行列上のスレッドは一時に1タイグループにつき
1つのスレッドだけが実行できるという制限を満たすこ
とがわがつている。というのは、スレッドはそれが最初
にタイグループの所有者になるまでは作業待ち行列に置
くことができないからである。同じタイグループについ
ての付加的なスレッドはタイグループ制御ブロックで待
ち行列化される。WHILE−RUNNING−DOル
ープで最初に呼出される機能はGetWorkであるこ
とに留意されたい。プロ’/−ジャGetWorkは1
つのロックを作業待ち行列に置いてその作業待ち行列を
テストする。
それは1つのスレッドを取得しそのスレッド及びそのロ
ックの両方を待ち行列から除去する。
ックの両方を待ち行列から除去する。
次に、プロシージャExeeateはそのスレッドによ
って指定されたサービス要求を実行する。スレッドがな
い場合にはこのときは作業は遂行されず、グロシージャ
Exscuteは1つのスレッドが生成され作業待ち行
列に置かれるまで、待ち状態にされる。WHI LE−
RUNNING−DOループ内でネストされた最初のW
HILE−Doループについて言及すると、作業はグロ
シージャInvoke Layer によって指定され
た通信レイヤに制御権を移すことによって遂行される。
って指定されたサービス要求を実行する。スレッドがな
い場合にはこのときは作業は遂行されず、グロシージャ
Exscuteは1つのスレッドが生成され作業待ち行
列に置かれるまで、待ち状態にされる。WHI LE−
RUNNING−DOループ内でネストされた最初のW
HILE−Doループについて言及すると、作業はグロ
シージャInvoke Layer によって指定され
た通信レイヤに制御権を移すことによって遂行される。
プロシージャInvoke Layer は関連する
CCHにおいて指名されたレイヤを呼出すことによって
指定されたスレッドについてトップサービス要求を実行
する。このレイヤは処理のため作業要求及びCCBに渡
される。通信レイヤは通常は有限状態機械として記述さ
れる。そのCCBは入力として現在の状態及び作業要求
を含む。そのレイヤのプロセスは付加的なサービス要求
を生成することがあるので、状態遷移を表わすためのC
CBを更新する。
CCHにおいて指名されたレイヤを呼出すことによって
指定されたスレッドについてトップサービス要求を実行
する。このレイヤは処理のため作業要求及びCCBに渡
される。通信レイヤは通常は有限状態機械として記述さ
れる。そのCCBは入力として現在の状態及び作業要求
を含む。そのレイヤのプロセスは付加的なサービス要求
を生成することがあるので、状態遷移を表わすためのC
CBを更新する。
付加的にいえば、Invoke Layer, Loc
k,Unlock,Wait及びPost のような多
くの定義された機能は明示コードを記述しないが、これ
らは標準的なオペレーティングシステムサービスを要求
する。
k,Unlock,Wait及びPost のような多
くの定義された機能は明示コードを記述しないが、これ
らは標準的なオペレーティングシステムサービスを要求
する。
Invoke Layerルーチンによってサービス要
求が実行されると、そのタイグループの所有権は解放さ
れる。これはプロシージャDeqTieによって実現さ
れる。グロシージャpsq ’ri 13 hソoタイ
グループに関連するFIFO待ち行列から1つのスレッ
ドを削除する。その待ち行列における次の最初のスレッ
ドは、もしあれば、次のタイグループの所有者になる。
求が実行されると、そのタイグループの所有権は解放さ
れる。これはプロシージャDeqTieによって実現さ
れる。グロシージャpsq ’ri 13 hソoタイ
グループに関連するFIFO待ち行列から1つのスレッ
ドを削除する。その待ち行列における次の最初のスレッ
ドは、もしあれば、次のタイグループの所有者になる。
新しい所有者はその作業待ち行列に置かれるので、それ
を実行すべキタスクについての探索を継続することかで
きる。
を実行すべキタスクについての探索を継続することかで
きる。
もし付加的なサービス又は作業要求が存在するなら、そ
のスレッドは自己のタイグループで待ち行列化される。
のスレッドは自己のタイグループで待ち行列化される。
もしそのスレッドが待ち行列における最初のものであれ
ば、このスレッドがタイグループの所有者となり、作業
待ち行列に置く必要なしに、現タスクによって実行でき
る。この特徴によれば、アプリケーションからの単一の
データ要求を、システム内でコネクションが存在しない
ときに、同じタスクを用いて通信レイヤを通すことが可
能となる。仮シにそのスレッドがタイグループの待ち行
列の最初のものでないとすれば、そのタスクはこのスレ
ッドの処理を停止して、作業待ち行列から別のスレッド
を取得しなければならなかったであろう。放棄されたス
レッドはタイグループの待ち行列に残って、そのスレッ
ドがタイグループの所有者になったとき何らかのタスク
によって作業待ち行列に置かれる。
ば、このスレッドがタイグループの所有者となり、作業
待ち行列に置く必要なしに、現タスクによって実行でき
る。この特徴によれば、アプリケーションからの単一の
データ要求を、システム内でコネクションが存在しない
ときに、同じタスクを用いて通信レイヤを通すことが可
能となる。仮シにそのスレッドがタイグループの待ち行
列の最初のものでないとすれば、そのタスクはこのスレ
ッドの処理を停止して、作業待ち行列から別のスレッド
を取得しなければならなかったであろう。放棄されたス
レッドはタイグループの待ち行列に残って、そのスレッ
ドがタイグループの所有者になったとき何らかのタスク
によって作業待ち行列に置かれる。
グロシージャExecute内では、それは、実行され
たばかりの作業要求を除去し同じスレッドについて次の
作業要求を取得するグロシージャGetNextへの呼
出しである。別の作業要求がそのスレッドについて存在
すれば、タイグループに関連する待ち行列にそのスレッ
ドを付加するため、プロシージャEnq Tieが呼出
される。その待ち行列において最初のものであれば、こ
のスレッドはタイグループの所有者となシ、グロシージ
ャExecuteはネストされたWHILE−DOルー
プ内に残って、同じスレッドについての次の作業要求を
処理する。もしこのスレッドがタイグループの所有者で
ないなら、プロシージャExecuteは他のWHI
LE−RUNNING−Doループに残って、グロシー
ジャGetWorkへの呼出シを介して別のスレッドを
選択する。
たばかりの作業要求を除去し同じスレッドについて次の
作業要求を取得するグロシージャGetNextへの呼
出しである。別の作業要求がそのスレッドについて存在
すれば、タイグループに関連する待ち行列にそのスレッ
ドを付加するため、プロシージャEnq Tieが呼出
される。その待ち行列において最初のものであれば、こ
のスレッドはタイグループの所有者となシ、グロシージ
ャExecuteはネストされたWHILE−DOルー
プ内に残って、同じスレッドについての次の作業要求を
処理する。もしこのスレッドがタイグループの所有者で
ないなら、プロシージャExecuteは他のWHI
LE−RUNNING−Doループに残って、グロシー
ジャGetWorkへの呼出シを介して別のスレッドを
選択する。
E.発明の効果
以上説明したように、本発明によれば、1以上のCPU
に基づくアプリケーションによって指定されるような通
信サブシステムの実行においてオペレーティングシステ
ムのディスパッチングを最大に行うことができる。
に基づくアプリケーションによって指定されるような通
信サブシステムの実行においてオペレーティングシステ
ムのディスパッチングを最大に行うことができる。
第1図は1つのホスト内のメッセージ処理の垂直方向の
動き及びホスト間の水平方向の動きを強調して示した複
数のレイヤを有するISO OSI参照モデルを表わ
す図、第2図はデータ構造及びそれについて行われる変
更を示す図、第5図は本発明に基づくタイグループカテ
ゴリの要約した表現を示す図である。
動き及びホスト間の水平方向の動きを強調して示した複
数のレイヤを有するISO OSI参照モデルを表わ
す図、第2図はデータ構造及びそれについて行われる変
更を示す図、第5図は本発明に基づくタイグループカテ
ゴリの要約した表現を示す図である。
Claims (1)
- 【特許請求の範囲】 CPUに基づく第1のマルチタスキングオペレーティン
グシステムからのタスクのディスパッチングと、呼出し
可能な資源のセットを含むCPUに基づく第2のマルチ
タスキングオペレーティングシステムによつて適時にデ
ィスパッチされる機能呼出しのスレツドとを同期化する
下記の(a)ないし(c)のステップを有する方法。 (a)下記の(イ)ないし(ハ)の条件で、スレツドに
よる所有権を、そのスレツドにおける機能呼出しによつ
て指名される第2のマルチタスキングオペレーティング
システムの資源のうちの1つに結び付けるステップ。 (イ)そのスレツドはその資源に対してエンキューされ
た唯一のスレツドであること。 (ロ)そのスレツドは他のいかなる資源も所有しないこ
と。 (ハ)上記(イ)及び(ロ)でないときは、その資源に
おける機能呼出しによつて指名される各資源に対して資
源をエンキューすること。 (b)タスクに対して資源を所有するスレツドをエンキ
ューし、次に利用可能なタスクをタスクのスレツドの待
ち行列における最初のスレツドに結び付けて、結び付け
られたタスクによつて最初のスレツドの機能呼出しのう
ちの所定の1つを実行するステップ。 (c)実行の後、最初に結び付けられたスレツドに対し
その資源の所有権を解放させ、その同じ資源に対して待
ち行列化された次のスレツドをその資源の所有者として
タスクに対してエンキユーするステップ。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US30474089A | 1989-01-31 | 1989-01-31 | |
US304740 | 1989-01-31 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH02231640A true JPH02231640A (ja) | 1990-09-13 |
JPH0563821B2 JPH0563821B2 (ja) | 1993-09-13 |
Family
ID=23177778
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019392A Granted JPH02231640A (ja) | 1989-01-31 | 1990-01-31 | タスクのデイスパツチングを同期化する方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US5319782A (ja) |
EP (1) | EP0381655A3 (ja) |
JP (1) | JPH02231640A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001331391A (ja) * | 2000-05-22 | 2001-11-30 | Nec Miyagi Ltd | Osiエージェントにおけるcmip要求の並列処理方式 |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5247675A (en) * | 1991-08-09 | 1993-09-21 | International Business Machines Corporation | Preemptive and non-preemptive scheduling and execution of program threads in a multitasking operating system |
US5553305A (en) * | 1992-04-14 | 1996-09-03 | International Business Machines Corporation | System for synchronizing execution by a processing element of threads within a process using a state indicator |
US5892944A (en) * | 1993-07-20 | 1999-04-06 | Kabushiki Kaisha Toshiba | Program execution and operation right management system suitable for single virtual memory scheme |
US5586318A (en) * | 1993-12-23 | 1996-12-17 | Microsoft Corporation | Method and system for managing ownership of a released synchronization mechanism |
JP2856681B2 (ja) * | 1994-01-27 | 1999-02-10 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 外部事象を処理する方法およびシステム |
US5675796A (en) * | 1994-04-08 | 1997-10-07 | Microsoft Corporation | Concurrency management component for use by a computer program during the transfer of a message |
US6148325A (en) * | 1994-06-30 | 2000-11-14 | Microsoft Corporation | Method and system for protecting shared code and data in a multitasking operating system |
SE9404294D0 (sv) * | 1994-12-09 | 1994-12-09 | Ellemtel Utvecklings Ab | sätt och anordning vid telekommunikation |
US6182108B1 (en) | 1995-01-31 | 2001-01-30 | Microsoft Corporation | Method and system for multi-threaded processing |
US6732138B1 (en) | 1995-07-26 | 2004-05-04 | International Business Machines Corporation | Method and system for accessing system resources of a data processing system utilizing a kernel-only thread within a user process |
JPH09511858A (ja) * | 1995-08-18 | 1997-11-25 | インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン | Osiエージェントにおける要求の並列実行 |
US5796954A (en) * | 1995-10-13 | 1998-08-18 | Apple Computer, Inc. | Method and system for maximizing the use of threads in a file server for processing network requests |
GB2308040A (en) * | 1995-12-09 | 1997-06-11 | Northern Telecom Ltd | Telecommunications system |
US5946463A (en) * | 1996-07-22 | 1999-08-31 | International Business Machines Corporation | Method and system for automatically performing an operation on multiple computer systems within a cluster |
US6195764B1 (en) | 1997-01-30 | 2001-02-27 | Fujitsu Network Communications, Inc. | Data encoder/decoder for a high speed serial link |
US5907702A (en) * | 1997-03-28 | 1999-05-25 | International Business Machines Corporation | Method and apparatus for decreasing thread switch latency in a multithread processor |
TW405090B (en) * | 1997-04-04 | 2000-09-11 | Ibm | Predictive cache loading by program address discontinuity history |
US6119170A (en) * | 1997-12-29 | 2000-09-12 | Bull Hn Information Systems Inc. | Method and apparatus for TCP/IP multihoming on a host system configured with multiple independent transport provider systems |
US7143410B1 (en) * | 2000-03-31 | 2006-11-28 | Intel Corporation | Synchronization mechanism and method for synchronizing multiple threads with a single thread |
US6834385B2 (en) * | 2001-01-04 | 2004-12-21 | International Business Machines Corporation | System and method for utilizing dispatch queues in a multiprocessor data processing system |
US7007244B2 (en) * | 2001-04-20 | 2006-02-28 | Microsoft Corporation | Method and system for displaying categorized information on a user interface |
FI114663B (fi) * | 2001-12-20 | 2004-11-30 | Nokia Corp | Menetelmä ja järjestelmä käyttöjärjestelmätoimintojen suorittamiseksi sekä elektroniikkalaite |
US20080195447A1 (en) * | 2007-02-09 | 2008-08-14 | Eric Bouillet | System and method for capacity sizing for computer systems |
US9032484B2 (en) | 2011-10-31 | 2015-05-12 | International Business Machines Corporation | Access control in a hybrid environment |
US9053141B2 (en) | 2011-10-31 | 2015-06-09 | International Business Machines Corporation | Serialization of access to data in multi-mainframe computing environments |
US9722908B2 (en) | 2013-10-17 | 2017-08-01 | International Business Machines Corporation | Problem determination in a hybrid environment |
DE102021104420A1 (de) * | 2021-02-24 | 2022-08-25 | Robert Bosch Gesellschaft mit beschränkter Haftung | Verfahren zum Betreiben eines Bordnetzes, Bordnetz, und Steuergerät |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB1054725A (ja) * | 1964-04-06 | |||
US4369494A (en) * | 1974-12-09 | 1983-01-18 | Compagnie Honeywell Bull | Apparatus and method for providing synchronization between processes and events occurring at different times in a data processing system |
US4387427A (en) * | 1978-12-21 | 1983-06-07 | Intel Corporation | Hardware scheduler/dispatcher for data processing system |
US4380798A (en) * | 1980-09-15 | 1983-04-19 | Motorola, Inc. | Semaphore register including ownership bits |
DE3173549D1 (en) * | 1981-03-16 | 1986-03-06 | Ibm | Improvements to digital data processing apparatus |
US4553202A (en) * | 1982-05-06 | 1985-11-12 | International Business Machines Corporation | User controlled dialog resource switching in a multi-tasking word processor |
US4800521A (en) * | 1982-09-21 | 1989-01-24 | Xerox Corporation | Task control manager |
US4604694A (en) * | 1983-12-14 | 1986-08-05 | International Business Machines Corporation | Shared and exclusive access control |
US4736318A (en) * | 1985-03-01 | 1988-04-05 | Wang Laboratories, Inc. | Data processing system having tunable operating system means |
US4719569A (en) * | 1985-10-11 | 1988-01-12 | Sun Microsystems, Inc. | Arbitrator for allocating access to data processing resources |
US4736369A (en) * | 1986-06-13 | 1988-04-05 | International Business Machines Corp. | Adaptive session-level pacing |
US4965719A (en) * | 1988-02-16 | 1990-10-23 | International Business Machines Corporation | Method for lock management, page coherency, and asynchronous writing of changed pages to shared external store in a distributed computing system |
US5003470A (en) * | 1988-12-09 | 1991-03-26 | International Business Machines Corporation | Method for tying and untying path access in a CPU-based, layered communications system |
-
1990
- 1990-01-30 EP EP19900850040 patent/EP0381655A3/en not_active Withdrawn
- 1990-01-31 JP JP2019392A patent/JPH02231640A/ja active Granted
-
1993
- 1993-02-16 US US08/018,341 patent/US5319782A/en not_active Expired - Lifetime
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001331391A (ja) * | 2000-05-22 | 2001-11-30 | Nec Miyagi Ltd | Osiエージェントにおけるcmip要求の並列処理方式 |
Also Published As
Publication number | Publication date |
---|---|
JPH0563821B2 (ja) | 1993-09-13 |
EP0381655A2 (en) | 1990-08-08 |
US5319782A (en) | 1994-06-07 |
EP0381655A3 (en) | 1992-12-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH02231640A (ja) | タスクのデイスパツチングを同期化する方法 | |
US5659701A (en) | Apparatus and method for distributed program stack | |
US6167423A (en) | Concurrency control of state machines in a computer system using cliques | |
US7827559B1 (en) | Framework for executing multiple threads and sharing resources in a multithreaded computer programming environment | |
WO2021088419A1 (zh) | 一种多业务请求进程调用fpga设备的方法及相关装置 | |
KR100958303B1 (ko) | 멀티코어 시스템 환경에서 내부 코어 간 통신채널을 이용한 모듈 디바이스의 동적 적재 및 실행을 통한 부하 균등화 시스템 및 방법 | |
US9052957B2 (en) | Method and system for conducting intensive multitask and multiflow calculation in real-time | |
EP1150208A2 (en) | Multiprocessor object control | |
JP5516398B2 (ja) | マルチプロセッサシステム、マルチプロセッサシステムのos間デバイス共有方法 | |
EP0817017A2 (en) | Application program interface system | |
US8161484B2 (en) | Prevention of deadlock in a distributed computing environment | |
US6470346B2 (en) | Remote computation framework | |
JP2002505471A (ja) | 遠隔処理の中断および継続の方法と装置 | |
US20140068165A1 (en) | Splitting a real-time thread between the user and kernel space | |
US6101533A (en) | Multiple interface data communication system and method utilizing multiple connection library interfaces with buffer and lock pool sharing | |
JP4183712B2 (ja) | マルチプロセッサシステムにおいてプロセッサタスクを移動するデータ処理方法、システムおよび装置 | |
JP4489958B2 (ja) | イベントベースシステムの同時処理 | |
KR20010098904A (ko) | 멀티프로세서 객체 제어 | |
Ayres et al. | Stage: Python with actors | |
US6934953B2 (en) | Deferred procedure call in interface description language | |
Wang et al. | COTS simulation package (CSP) interoperability-a solution to synchronous entity passing | |
US5392426A (en) | Method and apparatus for use in program operation, control and control block management and storage | |
EP0509946A2 (en) | Apparatus and method for implementing a distributed program stack | |
Ii | An overview of real-time ANSAware 1.0 | |
Li | Distributing Real-Time Objects: Some Early Experiences |