JPH04314141A - マルチタスク制御方法とその機構 - Google Patents
マルチタスク制御方法とその機構Info
- Publication number
- JPH04314141A JPH04314141A JP3079474A JP7947491A JPH04314141A JP H04314141 A JPH04314141 A JP H04314141A JP 3079474 A JP3079474 A JP 3079474A JP 7947491 A JP7947491 A JP 7947491A JP H04314141 A JPH04314141 A JP H04314141A
- Authority
- JP
- Japan
- Prior art keywords
- task
- execution
- tasks
- job
- identification name
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/362—Debugging of software
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【0001】
【産業上の利用分野】本発明は情報処理システムにおけ
るタスク制御技術に関し、特にマルチプロセッサシステ
ム上でタスクが並列に動作するマルチタスクジョブにか
かわるタスク制御方式とその機構に関する。
るタスク制御技術に関し、特にマルチプロセッサシステ
ム上でタスクが並列に動作するマルチタスクジョブにか
かわるタスク制御方式とその機構に関する。
【0002】
【従来の技術】一般に、情報処理システムにおけるプロ
セッサのデバッグにおいては、プログラムのソースコー
ド上にデバッグルーチンに制御を渡すための命令コード
を埋め込むことによりブレークポイントが設定され、ブ
レークポイントに到達した時点でのタスクの実行状態が
保存され、この状態をもとにデバッグすることが可能で
あった。
セッサのデバッグにおいては、プログラムのソースコー
ド上にデバッグルーチンに制御を渡すための命令コード
を埋め込むことによりブレークポイントが設定され、ブ
レークポイントに到達した時点でのタスクの実行状態が
保存され、この状態をもとにデバッグすることが可能で
あった。
【0003】
【発明が解決しようとする課題】近年においてはデータ
処理の高速化を狙って1つのジョブを1つのタスクとし
て唯一のプロセッサ上で逐次処理するのではなく、一連
の独立した複数のタスクで構成されるマルチタスクジョ
ブとして各タスクを複数のプロセッサ上で並列に実行さ
せる方式が多く用いられるようになってきた。
処理の高速化を狙って1つのジョブを1つのタスクとし
て唯一のプロセッサ上で逐次処理するのではなく、一連
の独立した複数のタスクで構成されるマルチタスクジョ
ブとして各タスクを複数のプロセッサ上で並列に実行さ
せる方式が多く用いられるようになってきた。
【0004】上述した従来のプログラムデバッグ方式で
は各タスクに閉じてブレークポイントが設定されるため
、あるタスクがブレークポイントに到達したことを同一
マルチタスクジョブを構成する他のタスクは一般に認識
することができず、そのまま実行を継続していた。この
ため、あるタスクがブレークポイントに到達した地点で
の関連する他タスクの実行状態を調べることが不可能で
あり、また他タスクが実行を継続することによってタス
ク間共通変数が更新されるなどマルチタスクジョブのデ
バッグには多くの時間を必要としていた。
は各タスクに閉じてブレークポイントが設定されるため
、あるタスクがブレークポイントに到達したことを同一
マルチタスクジョブを構成する他のタスクは一般に認識
することができず、そのまま実行を継続していた。この
ため、あるタスクがブレークポイントに到達した地点で
の関連する他タスクの実行状態を調べることが不可能で
あり、また他タスクが実行を継続することによってタス
ク間共通変数が更新されるなどマルチタスクジョブのデ
バッグには多くの時間を必要としていた。
【0005】本発明は上記問題を解決するものであって
、マルチタスクジョブを構成する任意のタスクがブレー
クポイントに到達した時点あるいは例外を発生した時点
で、同一マルチタスクジョブを構成するすべてのタスク
に関し、その実行環境を保持した状態で実行を抑止し、
その後の任意の時点で再実行可能とすることにより、マ
ルチタスクジョブのデバックを容易にすることを目的と
したマルチタスク制御方法とその機構を提供することに
ある。
、マルチタスクジョブを構成する任意のタスクがブレー
クポイントに到達した時点あるいは例外を発生した時点
で、同一マルチタスクジョブを構成するすべてのタスク
に関し、その実行環境を保持した状態で実行を抑止し、
その後の任意の時点で再実行可能とすることにより、マ
ルチタスクジョブのデバックを容易にすることを目的と
したマルチタスク制御方法とその機構を提供することに
ある。
【0006】
【課題を解決するための手段】本発明のマルチタスク制
御方法は、マルチタスクジョブを構成する任意のタスク
が予め設定された停止点あるいは例外を発生した時点で
当該タスクと同一マルチタスクジョブグループ内のすべ
てのタスクの実行を停止し、任意の時点で当該マルチタ
スクジョブグループのすべてのタスクの実行を再開する
ようにして実現される。
御方法は、マルチタスクジョブを構成する任意のタスク
が予め設定された停止点あるいは例外を発生した時点で
当該タスクと同一マルチタスクジョブグループ内のすべ
てのタスクの実行を停止し、任意の時点で当該マルチタ
スクジョブグループのすべてのタスクの実行を再開する
ようにして実現される。
【0007】また、本発明のマルチタスク制御機構は、
各プロセッサで実行中のタスクが各々属するマルチタス
クジョブグループを認識する手段と、任意のプロセッサ
に対し実行中タスクの一時中断指示を行なう手段と、任
意のマルチタスクジョブグループに属するすべてのタス
クが実行状態へ遷移することを抑止する手段と、当該タ
スクの実行状態への遷移抑止を解除する手段とを含む。
各プロセッサで実行中のタスクが各々属するマルチタス
クジョブグループを認識する手段と、任意のプロセッサ
に対し実行中タスクの一時中断指示を行なう手段と、任
意のマルチタスクジョブグループに属するすべてのタス
クが実行状態へ遷移することを抑止する手段と、当該タ
スクの実行状態への遷移抑止を解除する手段とを含む。
【0008】
【実施例】次に、本発明について図面を参照して説明す
る。
る。
【0009】なお、説明の便宜上、以下ではプロセッサ
数,マルチタスクジョブを構成するタスク数とも4個で
ある場合を例にするが、それ以上の場合にも本発明は適
応可能である。また、1つのマルチタスクジョブに注目
して説明しているが、同様のことがジョブ単位に行なわ
れる。
数,マルチタスクジョブを構成するタスク数とも4個で
ある場合を例にするが、それ以上の場合にも本発明は適
応可能である。また、1つのマルチタスクジョブに注目
して説明しているが、同様のことがジョブ単位に行なわ
れる。
【0010】図1は本発明の一実施例を示すマルチプロ
セッサシステムの構成図であり、4台のプロセッサ1〜
4と,主記憶5と,システム制御装置6とを有している
。各プロセッサ1〜4は通常のプロセッサであり、主記
憶5はプロセッサ1〜4上で動作するタスクの制御情報
,プロセッサおよびデータ等を格納する。システム制御
装置6はプロセッサ1〜4と主記憶5との間のアクセス
を制御する。
セッサシステムの構成図であり、4台のプロセッサ1〜
4と,主記憶5と,システム制御装置6とを有している
。各プロセッサ1〜4は通常のプロセッサであり、主記
憶5はプロセッサ1〜4上で動作するタスクの制御情報
,プロセッサおよびデータ等を格納する。システム制御
装置6はプロセッサ1〜4と主記憶5との間のアクセス
を制御する。
【0011】図2は主記憶5の説明図である。同図に示
したように、主記憶5はシステム領域51とユーザ領域
52に分れる。システム領域51には、実行中タスク管
理テーブル510とタスクグループ識別名管理テーブル
511が存在する。ユーザ領域52はジョブ毎に分割使
用され、1つのジョブに割当てられた領域は、さらにマ
ルチタスクジョブを構成するタスク毎の個別領域530
(i)(i=1〜4)とタスク間共通領域520から構
成される。
したように、主記憶5はシステム領域51とユーザ領域
52に分れる。システム領域51には、実行中タスク管
理テーブル510とタスクグループ識別名管理テーブル
511が存在する。ユーザ領域52はジョブ毎に分割使
用され、1つのジョブに割当てられた領域は、さらにマ
ルチタスクジョブを構成するタスク毎の個別領域530
(i)(i=1〜4)とタスク間共通領域520から構
成される。
【0012】各タスク毎の識別領域530(i)内には
タスク制御ブロック5300(i)が存在し、さらに各
々のタスク制御ブロック5300(i)内に設けられた
タスクグループ制御ブロックポインタ5310(i)に
よってポイントされる1つのタスクグループ制御ブロッ
ク5200がタスク間共通領域520に存在する。タス
クグループ制御ブロック5200には、以下のようなフ
ィールドが含まれている。
タスク制御ブロック5300(i)が存在し、さらに各
々のタスク制御ブロック5300(i)内に設けられた
タスクグループ制御ブロックポインタ5310(i)に
よってポイントされる1つのタスクグループ制御ブロッ
ク5200がタスク間共通領域520に存在する。タス
クグループ制御ブロック5200には、以下のようなフ
ィールドが含まれている。
【0013】・実行中タスクカウンタ5210当該タス
クグループ内に属するタスクのうち図1のプロセッサ1
〜4の何れかの上で動作しているタスク数を保持する。
クグループ内に属するタスクのうち図1のプロセッサ1
〜4の何れかの上で動作しているタスク数を保持する。
【0014】・ディスパッチング制御フラグ5220当
該タスクグループ内に属するすべてのタスクのディスパ
ッチングを一括して管理するフラグであり、図1のすべ
てのプロセッサ1〜4に割当て可能(=0)または不可
能(≠0)を保持する。割当て不可能の場合、タスク割
当て機構によりプロセッサ1〜4への割当てが抑止され
る。
該タスクグループ内に属するすべてのタスクのディスパ
ッチングを一括して管理するフラグであり、図1のすべ
てのプロセッサ1〜4に割当て可能(=0)または不可
能(≠0)を保持する。割当て不可能の場合、タスク割
当て機構によりプロセッサ1〜4への割当てが抑止され
る。
【0015】・タスクグループ識別名保持エリア523
0 当該タスクグループ内に属するすべてのタスクに共通に
割当てられるタスクグループ識別名を保持する。本タス
クグループ識別名はタスク割当て機構によって1つのタ
スクグループの割当てられ、1つのタスクグループ内で
少なくとも1つのタスクがプロセッサ1〜4上で実行中
に有効となる。
0 当該タスクグループ内に属するすべてのタスクに共通に
割当てられるタスクグループ識別名を保持する。本タス
クグループ識別名はタスク割当て機構によって1つのタ
スクグループの割当てられ、1つのタスクグループ内で
少なくとも1つのタスクがプロセッサ1〜4上で実行中
に有効となる。
【0016】図3はシステム領域51に唯一存在する実
行中タスク管理テーブル510の内容例を示す図であり
、プロセッサ毎に実行中タスク識別名5100(j)(
j=1〜4)と当該実行中タスクに割当てられたタスク
グループ識別名5101(j)を含んでいる。タスクグ
ループ識別名5101(j)はタスク割当て機構によっ
てタスクグループ単位に付与される識別名であり、同一
タスクグループに属するタスクが異なるプロセッサ上で
実行中のときには同一値が各々のタスクグループ識別名
5101(j)フィールドに設定される。なお、プロセ
ッサj上に実行中タスクが存在しないときはプロセッサ
空き状態とし、実行中タスク識別名5100(j)に当
該状態を識別可能な値が設定される。
行中タスク管理テーブル510の内容例を示す図であり
、プロセッサ毎に実行中タスク識別名5100(j)(
j=1〜4)と当該実行中タスクに割当てられたタスク
グループ識別名5101(j)を含んでいる。タスクグ
ループ識別名5101(j)はタスク割当て機構によっ
てタスクグループ単位に付与される識別名であり、同一
タスクグループに属するタスクが異なるプロセッサ上で
実行中のときには同一値が各々のタスクグループ識別名
5101(j)フィールドに設定される。なお、プロセ
ッサj上に実行中タスクが存在しないときはプロセッサ
空き状態とし、実行中タスク識別名5100(j)に当
該状態を識別可能な値が設定される。
【0017】図4はシステム領域51に唯一存在するタ
スクグループ識別名管理テーブル511の内容例を示す
図であり、タスクグループ識別名使用表示5110(k
)(k=1〜4)を含んでいる。タスクグループ識別名
使用表示5110(k)は未使用(=0),使用中(≠
0)の状態をとり、高々プロセッサ台数分のエリアが使
用される。1つのタスクグループの最初のタスクが図1
のプロセッサ1〜4の何れかの上で実行を開始するとき
、当該タスクグループに未使用のタスクグループ識別名
kが割当てられ、タスクグループ識別名使用表示511
0(k)が使用中となる。1つのタスクグループ内にプ
ロセッサ1〜4上で実行中のタスクが存在しなくなった
とき、使用中であったタスクグループ識別名kに対応す
るタスクグループ識別名使用表示5110(k)が未使
用状態になる。
スクグループ識別名管理テーブル511の内容例を示す
図であり、タスクグループ識別名使用表示5110(k
)(k=1〜4)を含んでいる。タスクグループ識別名
使用表示5110(k)は未使用(=0),使用中(≠
0)の状態をとり、高々プロセッサ台数分のエリアが使
用される。1つのタスクグループの最初のタスクが図1
のプロセッサ1〜4の何れかの上で実行を開始するとき
、当該タスクグループに未使用のタスクグループ識別名
kが割当てられ、タスクグループ識別名使用表示511
0(k)が使用中となる。1つのタスクグループ内にプ
ロセッサ1〜4上で実行中のタスクが存在しなくなった
とき、使用中であったタスクグループ識別名kに対応す
るタスクグループ識別名使用表示5110(k)が未使
用状態になる。
【0018】図5および図6はタスク割当て機構のうち
上記タスクグループ識別名を制御する処理例を示す流れ
図であり、図5はタスクロールイン時の処理を,図6は
タスクロールアウト時の処理をそれぞれ示す。なお、6
1〜6Aおよび71〜76は各ステップを示す。
上記タスクグループ識別名を制御する処理例を示す流れ
図であり、図5はタスクロールイン時の処理を,図6は
タスクロールアウト時の処理をそれぞれ示す。なお、6
1〜6Aおよび71〜76は各ステップを示す。
【0019】図7は例外処理機能のうちタスクがブレー
クポイントに到達したとき,あるいは例外が発生したと
きのタスク停止時の処理例を示す流れ図であり、81〜
87は各ステップを示す。
クポイントに到達したとき,あるいは例外が発生したと
きのタスク停止時の処理例を示す流れ図であり、81〜
87は各ステップを示す。
【0020】図8は割込み処理機構のうちのプロセッサ
割込み信号受信時の処理例を示す流れ図であり、91〜
93は各ステップを示す。
割込み信号受信時の処理例を示す流れ図であり、91〜
93は各ステップを示す。
【0021】図9は例外処理機構のうちデバッグあるい
は例外処理を完了したときのタスク再開時の処理例を示
す流れ図であり、101はステップを示す。
は例外処理を完了したときのタスク再開時の処理例を示
す流れ図であり、101はステップを示す。
【0022】次に、各図を参照して本実施例の動作を説
明する。
明する。
【0023】まず、タスク割当て機構により1つのマル
チタスクジョブ内の1つのタスクが次に実行されるタス
クとして選択されると、図5に示したようにそのタスク
対応のタスク制御ブロック5300(i)内のタスクグ
ループ制御ブロックポインタ5310(i)を用いてタ
スクグループ制御ブロック5200内のディスパッチン
グ制御フラグ5220を読出し、当該表示をチェックす
る(61)。ディスパッチング不可状態(≠0)であれ
ば、処理終了となり当該タスクはディスパッチングされ
ない。ディスパッチング可能状態(=0)であれば、タ
スク実行環境が実行先のプロセッサにロールインされる
(62)。
チタスクジョブ内の1つのタスクが次に実行されるタス
クとして選択されると、図5に示したようにそのタスク
対応のタスク制御ブロック5300(i)内のタスクグ
ループ制御ブロックポインタ5310(i)を用いてタ
スクグループ制御ブロック5200内のディスパッチン
グ制御フラグ5220を読出し、当該表示をチェックす
る(61)。ディスパッチング不可状態(≠0)であれ
ば、処理終了となり当該タスクはディスパッチングされ
ない。ディスパッチング可能状態(=0)であれば、タ
スク実行環境が実行先のプロセッサにロールインされる
(62)。
【0024】次にタスクグループ制御ブロック5200
の実行中タスクカウンタ5210を読出し、当該カウン
タをチェックする(63)。当該タスクグループ内に図
1のプロセッサ1〜4上で実行中のタスクが存在しない
場合、すなわち実行中タスクカウンタ5210が“0”
であれば、図4に示したシステム領域51内のタスクグ
ループ識別名管理テーブル511から当該タスクグルー
プに付与するための未使用(=0)のタスクグループ識
別名kを選択し(64)、対応するタスクグループ識別
名使用表示5110(k)を使用中状態(=1)とする
(65)。さらに、タスクグループ制御ブロック520
0のタスクグループ識別名保持エリア5230に付与さ
れたタスクグループ識別名kを設定する(66)。
の実行中タスクカウンタ5210を読出し、当該カウン
タをチェックする(63)。当該タスクグループ内に図
1のプロセッサ1〜4上で実行中のタスクが存在しない
場合、すなわち実行中タスクカウンタ5210が“0”
であれば、図4に示したシステム領域51内のタスクグ
ループ識別名管理テーブル511から当該タスクグルー
プに付与するための未使用(=0)のタスクグループ識
別名kを選択し(64)、対応するタスクグループ識別
名使用表示5110(k)を使用中状態(=1)とする
(65)。さらに、タスクグループ制御ブロック520
0のタスクグループ識別名保持エリア5230に付与さ
れたタスクグループ識別名kを設定する(66)。
【0025】ステップ63においてすでに当該タスクグ
ループ内に図1のプロセッサ1〜4上で実行中のタスク
が存在する場合、すなわち実行中タスクカウンタ521
0が“0”でなければ、タスクグループ制御ブロック5
200のタスクグループ識別名保持エリア5230に設
定されているタスクグループ識別名kを読出す(67)
。
ループ内に図1のプロセッサ1〜4上で実行中のタスク
が存在する場合、すなわち実行中タスクカウンタ521
0が“0”でなければ、タスクグループ制御ブロック5
200のタスクグループ識別名保持エリア5230に設
定されているタスクグループ識別名kを読出す(67)
。
【0026】次に、当該タスク名およびステップ64ま
たはステップ67で得られたタスクグループ識別名kを
、図3で示したシステム領域51内の実行中タスク管理
テーブル510の実行先プロセッサjに対応した実行中
タスク識別名5100(j)およびタスクグループ識別
名5101(j)フィールドに各々設定する(68)。
たはステップ67で得られたタスクグループ識別名kを
、図3で示したシステム領域51内の実行中タスク管理
テーブル510の実行先プロセッサjに対応した実行中
タスク識別名5100(j)およびタスクグループ識別
名5101(j)フィールドに各々設定する(68)。
【0027】次に、タスクグループ制御ブロック520
0内の実行中タスクカウンタ5210を+1して元の位
置へ書戻し(69)、当該タスクを起動する(6A)。
0内の実行中タスクカウンタ5210を+1して元の位
置へ書戻し(69)、当該タスクを起動する(6A)。
【0028】次にタスクロールアウト時の処理を説明す
る。あるタスクが実行中に実行権を失い実行状態から一
時別の状態に遷移する場合、タスク割当て機構により図
6に示した以下のような処理が遂行される。
る。あるタスクが実行中に実行権を失い実行状態から一
時別の状態に遷移する場合、タスク割当て機構により図
6に示した以下のような処理が遂行される。
【0029】まず、タスクグループ制御ブロック520
0内の実行中タスクカウンタ5210を読出し、その値
を−1して元の位置へ書戻す(71)。次に、ステップ
71で更新された実行中タスクカウンタ5210をチェ
ックする(72)。当該タスクが、そのタスクグループ
におけるプロセッサ1〜4上で実行中の最後のタスクで
あった場合、すなわち実行中タスクカウンタ5210が
“0”のとき、タスクグループ識別ブロック5200内
のタスクグループ識別名保持エリア5230に設定され
ているタスクグループ識別名kを読出し(73)、シス
テム領域51内のタスクグループ識別名管理テーブル5
11内の対応するタスクグループ識別名使用表示511
0(k)を未使用状態(=0)とする(74)。
0内の実行中タスクカウンタ5210を読出し、その値
を−1して元の位置へ書戻す(71)。次に、ステップ
71で更新された実行中タスクカウンタ5210をチェ
ックする(72)。当該タスクが、そのタスクグループ
におけるプロセッサ1〜4上で実行中の最後のタスクで
あった場合、すなわち実行中タスクカウンタ5210が
“0”のとき、タスクグループ識別ブロック5200内
のタスクグループ識別名保持エリア5230に設定され
ているタスクグループ識別名kを読出し(73)、シス
テム領域51内のタスクグループ識別名管理テーブル5
11内の対応するタスクグループ識別名使用表示511
0(k)を未使用状態(=0)とする(74)。
【0030】ステップ72においてすでに当該タスクグ
ループ内にプロセッサ1〜4上で実行中のタスクが存在
する場合、すなわち実行中タスクカウンタ5210が“
0”でなければ、ステップ73,ステップ74を実行し
ない。
ループ内にプロセッサ1〜4上で実行中のタスクが存在
する場合、すなわち実行中タスクカウンタ5210が“
0”でなければ、ステップ73,ステップ74を実行し
ない。
【0031】次に当該タスクにかかる実行環境をロール
アウトする(75)。その後、システム領域51内の実
行中タスク管理テーブル510内の、当該タスクが実行
していたプロセッサjに対応した実行中タスク識別名5
100(j)フィールドをプロセッサ空き状態に設定す
る(76)。
アウトする(75)。その後、システム領域51内の実
行中タスク管理テーブル510内の、当該タスクが実行
していたプロセッサjに対応した実行中タスク識別名5
100(j)フィールドをプロセッサ空き状態に設定す
る(76)。
【0032】次にタスク停止時の処理を説明する。ある
タスクが実行中に予め設定された停止ポイントあるいは
例外を発生した場合、例外処理機構により図7に示した
以下のような処理が遂行される。
タスクが実行中に予め設定された停止ポイントあるいは
例外を発生した場合、例外処理機構により図7に示した
以下のような処理が遂行される。
【0033】まず、図6に示した各ステップにしたがっ
て実行中のタスクのロールアウトを行なう(81)。次
にタスクグループ制御ブロック5200内に含まれるデ
ィスパッチング制御フラグ5220をディスパッチング
不可状態(=1)に設定する(82)。次にシステム領
域51内の実行中タスク管理テーブル510をサーチし
、当該タスクと同一タスクグループ識別名を保持してい
るタスクを実行しているすべてのプロセッサを見つける
(83)。ステップ83で該当するプロセッサが存在し
ているかどうかチェックし(84)、存在している場合
にはステップ83で得られた全プロセッサに対し割込み
を発生させる(85)。ステップ85でのプロセッサ割
込み手段としては一般にプロセッサ間通信が用いられる
。その後、割込み先プロセッサからのリプライ信号を受
け取り(86)、デバッグ処理あるいは例外処理に制御
を渡す(87)。
て実行中のタスクのロールアウトを行なう(81)。次
にタスクグループ制御ブロック5200内に含まれるデ
ィスパッチング制御フラグ5220をディスパッチング
不可状態(=1)に設定する(82)。次にシステム領
域51内の実行中タスク管理テーブル510をサーチし
、当該タスクと同一タスクグループ識別名を保持してい
るタスクを実行しているすべてのプロセッサを見つける
(83)。ステップ83で該当するプロセッサが存在し
ているかどうかチェックし(84)、存在している場合
にはステップ83で得られた全プロセッサに対し割込み
を発生させる(85)。ステップ85でのプロセッサ割
込み手段としては一般にプロセッサ間通信が用いられる
。その後、割込み先プロセッサからのリプライ信号を受
け取り(86)、デバッグ処理あるいは例外処理に制御
を渡す(87)。
【0034】ステップ84において、該当するプロセッ
サが存在しない場合、直ちにデバッグ処理あるいは例外
処理に制御を渡す(87)。
サが存在しない場合、直ちにデバッグ処理あるいは例外
処理に制御を渡す(87)。
【0035】次にプロセッサ割込み信号受信時の処理を
説明する。図7のステップ85で発生されたプロセッサ
割込み信号を受信した場合、割込み処理機構により図8
に示した以下のような処理が遂行される。
説明する。図7のステップ85で発生されたプロセッサ
割込み信号を受信した場合、割込み処理機構により図8
に示した以下のような処理が遂行される。
【0036】まず、図6に示したステップにしたがって
実行中のタスクのロールアウトを行なう(91)。次に
送信元プロセッサに対しリプライ信号を送信し(92)
、タスク割当て機構に制御を渡す(93)。このとき、
同一タスクが再びディスパッチされることはない。 なぜなら、図7で示したタスク停止時処理のステップ8
2において当該タスクグループはディスパッチング不可
状態になっているからである。
実行中のタスクのロールアウトを行なう(91)。次に
送信元プロセッサに対しリプライ信号を送信し(92)
、タスク割当て機構に制御を渡す(93)。このとき、
同一タスクが再びディスパッチされることはない。 なぜなら、図7で示したタスク停止時処理のステップ8
2において当該タスクグループはディスパッチング不可
状態になっているからである。
【0037】次にタスク再開時の処理を説明する。デバ
ッグ処理あるいは例外処理完了時、例外処理機構により
図9に示した以下のような処理が遂行される。
ッグ処理あるいは例外処理完了時、例外処理機構により
図9に示した以下のような処理が遂行される。
【0038】すなわち、タスクグループ制御ブロック5
200内に含まれるディスパッチング制御フラグ522
0をディスパッチング可能状態(=0)に設定する(1
01)。これにより、以降、タスクロールイン処理にお
いて当該マルチタスクジョブグループ内のすべてのタス
クのディスパッチングが可能となる。
200内に含まれるディスパッチング制御フラグ522
0をディスパッチング可能状態(=0)に設定する(1
01)。これにより、以降、タスクロールイン処理にお
いて当該マルチタスクジョブグループ内のすべてのタス
クのディスパッチングが可能となる。
【0039】
【発明の効果】以上説明したように本発明は、マルチタ
スクジョブを構成する任意のタスクがブレークポイント
に到達した時点あるいは例外を発生した時点で、同一マ
ルチタスクジョブを構成するすべてのタスクに関し、そ
の実行環境を保持した状態で実行を抑止し、その後の任
意の時点で再実行可能とすることにより、マルチタスク
ジョブのデバックを容易にするという効果がある。
スクジョブを構成する任意のタスクがブレークポイント
に到達した時点あるいは例外を発生した時点で、同一マ
ルチタスクジョブを構成するすべてのタスクに関し、そ
の実行環境を保持した状態で実行を抑止し、その後の任
意の時点で再実行可能とすることにより、マルチタスク
ジョブのデバックを容易にするという効果がある。
【0040】なお、本発明において、実行が抑止される
のは同一マルチタスクジョブに属するタスクのみであり
、ジョブグループが異なる場合にはそのタスクの実行に
はなんら影響を及ぼさない。
のは同一マルチタスクジョブに属するタスクのみであり
、ジョブグループが異なる場合にはそのタスクの実行に
はなんら影響を及ぼさない。
【図1】本発明の一実施例を示す構成図
【図2】主記憶
5の説明図
5の説明図
【図3】実行中タスク管理テーブルの例を示す説明図
【
図4】タスクグループ識別名管理テーブルの例を示す説
明図
図4】タスクグループ識別名管理テーブルの例を示す説
明図
【図5】タスクロールイン時の処理を示す流れ図
【図6
】タスクロールアウト時の処理を示す流れ図
】タスクロールアウト時の処理を示す流れ図
【図7】タ
スク停止時の処理を示す流れ図
スク停止時の処理を示す流れ図
【図8】プロセッサ割込
み信号受信時の処理を示す流れ図
み信号受信時の処理を示す流れ図
【図9】タスク再開時の処理を示す流れ図
1〜4 プロセッサ
5 主記憶
6 システム制御装置
51 システム領域
52 ユーザ領域
510 実行中タスク管理テーブル511
タスクグループ識別名管理テーブル520 タ
スク間共通領域
タスクグループ識別名管理テーブル520 タ
スク間共通領域
Claims (2)
- 【請求項1】 マルチタスクジョブを構成する複数の
タスクを複数のプロセッサ上で並列に実行するマルチプ
ロセッサシステムにおけるマルチタスク制御方法におい
て、マルチタスクジョブを構成する任意のタスクが予め
設定された停止点あるいは例外を発生した時点で当該タ
スクと同一マルチタスクジョブグループ内のすべてのタ
スクの実行を停止し、任意の時点で当該マルチタスクジ
ョブグループのすべてのタスクの実行を再開することを
特徴とするマルチタスク制御方法。 - 【請求項2】 マルチタスクジョブを構成する複数の
タスクを複数のプロセッサ上で並列に実行するマルチプ
ロセッサシステムにおけるマルチタスク制御機構におい
て、各プロセッサで実行中のタスクが各々属するマルチ
タスクジョブグループを認識する手段と、任意のプロセ
ッサに対し実行中タスクの一時中断指示を行なう手段と
、任意のマルチタスクジョブグループに属するすべての
タスクが実行状態へ遷移することを抑止する手段と、当
該タスクの実行状態への遷移抑止を解除する手段とを含
むことを特徴とするマルチタスク制御機構。
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP3079474A JPH04314141A (ja) | 1991-04-12 | 1991-04-12 | マルチタスク制御方法とその機構 |
| EP19920106232 EP0508444A3 (en) | 1991-04-12 | 1992-04-10 | Multitask controlling method and apparatus for use in implementing the same |
| CA 2065764 CA2065764A1 (en) | 1991-04-12 | 1992-04-10 | Multitask controlling method and apparatus for use in implementing the same |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP3079474A JPH04314141A (ja) | 1991-04-12 | 1991-04-12 | マルチタスク制御方法とその機構 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH04314141A true JPH04314141A (ja) | 1992-11-05 |
Family
ID=13690890
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP3079474A Pending JPH04314141A (ja) | 1991-04-12 | 1991-04-12 | マルチタスク制御方法とその機構 |
Country Status (3)
| Country | Link |
|---|---|
| EP (1) | EP0508444A3 (ja) |
| JP (1) | JPH04314141A (ja) |
| CA (1) | CA2065764A1 (ja) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2003162426A (ja) * | 2001-11-28 | 2003-06-06 | Hitachi Ltd | 複数cpuの協調デバッグ回路を備えるコンピュータシステム及びデバッグ方法 |
| US6718484B1 (en) | 1999-11-08 | 2004-04-06 | Fujitsu Limited | Debugging method and apparatus for multitask programs and recording medium storing a program realizing the debugging method and apparatus |
| JP2019091492A (ja) * | 2015-01-19 | 2019-06-13 | 東芝メモリ株式会社 | メモリ装置及び不揮発性メモリの制御方法 |
| US11042331B2 (en) | 2015-01-19 | 2021-06-22 | Toshiba Memory Corporation | Memory device managing data in accordance with command and non-transitory computer readable recording medium |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4502116A (en) * | 1982-11-17 | 1985-02-26 | At&T Bell Laboratories | Multiple processor synchronized halt test arrangement |
-
1991
- 1991-04-12 JP JP3079474A patent/JPH04314141A/ja active Pending
-
1992
- 1992-04-10 CA CA 2065764 patent/CA2065764A1/en not_active Abandoned
- 1992-04-10 EP EP19920106232 patent/EP0508444A3/en not_active Withdrawn
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6718484B1 (en) | 1999-11-08 | 2004-04-06 | Fujitsu Limited | Debugging method and apparatus for multitask programs and recording medium storing a program realizing the debugging method and apparatus |
| JP2003162426A (ja) * | 2001-11-28 | 2003-06-06 | Hitachi Ltd | 複数cpuの協調デバッグ回路を備えるコンピュータシステム及びデバッグ方法 |
| JP2019091492A (ja) * | 2015-01-19 | 2019-06-13 | 東芝メモリ株式会社 | メモリ装置及び不揮発性メモリの制御方法 |
| US11042331B2 (en) | 2015-01-19 | 2021-06-22 | Toshiba Memory Corporation | Memory device managing data in accordance with command and non-transitory computer readable recording medium |
Also Published As
| Publication number | Publication date |
|---|---|
| EP0508444A2 (en) | 1992-10-14 |
| CA2065764A1 (en) | 1992-10-13 |
| EP0508444A3 (en) | 1993-01-13 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US4809157A (en) | Dynamic assignment of affinity for vector tasks | |
| US7962913B2 (en) | Scheduling threads in a multiprocessor computer | |
| US8176489B2 (en) | Use of rollback RCU with read-side modifications to RCU-protected data structures | |
| US4819234A (en) | Operating system debugger | |
| US5193186A (en) | Processor system for executing processes in parallel under multitask, control method of waiting for event of process | |
| US9436498B2 (en) | Runtime analysis and control to monitor the status of the threads during execution of folded thread | |
| US20070130569A1 (en) | Method, apparatus and program storage device for providing a no context switch attribute that allows a user mode thread to become a near interrupt disabled priority | |
| CN1367432A (zh) | 防止多处理器计算机中各处理器间进程发生冲突的方法 | |
| JPH04314141A (ja) | マルチタスク制御方法とその機構 | |
| KR102003721B1 (ko) | Gpu 커널 트랜잭션화 방법 및 컴퓨팅 장치 | |
| EP0223463B1 (en) | Multiprocessor data processing system | |
| JPH07141208A (ja) | マルチタスク処理装置 | |
| GB1495729A (en) | Apparatus and method for handling exceptions in a data processing system | |
| JP3075359B2 (ja) | プログラムデバッグ開始処理方式 | |
| TW482960B (en) | Method for preventing process contradiction between each processors in a multi-processor computer | |
| JPH05108374A (ja) | マルチタスク実行装置 | |
| JP2571260B2 (ja) | 論理時計による動作環境選択処理方式 | |
| JPS62113238A (ja) | 電子計算機システムにおけるプログラム修正装置 | |
| JPS61233838A (ja) | 情報処理装置 | |
| JPH04350728A (ja) | 複数タスクの実時間処理装置 | |
| JPH03174633A (ja) | マルチタスク制御方式 | |
| JPH11161506A (ja) | 情報処理装置のディスパッチ方法、情報処理装置及びその記録媒体 | |
| JPS63296162A (ja) | マルチプロセッサシステムのタスクスケジュ−ル方式 | |
| JPH0744405A (ja) | 仮想計算機システムの仮想計算機動作時間計測制御方式 | |
| JPS638841A (ja) | 割込み受取り装置 |