JPH03212742A - 並行処理制御方式 - Google Patents

並行処理制御方式

Info

Publication number
JPH03212742A
JPH03212742A JP933090A JP933090A JPH03212742A JP H03212742 A JPH03212742 A JP H03212742A JP 933090 A JP933090 A JP 933090A JP 933090 A JP933090 A JP 933090A JP H03212742 A JPH03212742 A JP H03212742A
Authority
JP
Japan
Prior art keywords
task
unit
processing
execution
tasks
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
JP933090A
Other languages
English (en)
Inventor
Hirokazu Migaki
三垣 広和
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP933090A priority Critical patent/JPH03212742A/ja
Publication of JPH03212742A publication Critical patent/JPH03212742A/ja
Pending legal-status Critical Current

Links

Abstract

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

Description

【発明の詳細な説明】 [概要] 並行処理を行うオペレーティングシステムにより装置を
制御する並行処理制御方式に関し並行処理プログラムを
容易に効率良く作成でき保守性が容易でかつ装置の動作
を最適化する並行処理制御方式を提供することを目的と
し並行処理される複数のタスクの実行条件が相互に関連
を持つ各タスクを、それぞれ所定長の処理ユニットに分
割してそれぞれに番号を割当て、タスク管理部は、並行
処理される各タスク毎に相互の起動条件を設定してタス
ク実行が可能か否かを判定するタスク実行条件判定手段
をタスクに対応して備え、タスク実行条件判定手段から
の指示により起動する各タスク実行手段を備え、タスク
実丘部は起動すると分割された処理を処理実行手段で実
行すると共に対応するユニットカウンタを歩進し、タス
ク実行条件判定手段は各タスク実行部のユニットカウン
タの値により判定を行うよう構成する。
[産業上の利用分野] 本発明は並行処理を行うオペレーティングシステムによ
り機構部を有する装置を制御するための並行処理制御方
式に関する。
近年、複数の処理が並行して実行される機構部をプログ
ラム制御する技術が各種の分野で利用されている。その
ような制御には複数の機構部の動作状態により相互に関
連がある場合が多く1そのための従来のプログラミング
によってはフラグを用いて動作の関連を付ける等の方法
を用いていたが、プログラムが複雑になってしまい9そ
の改善が望まれている。
[従来の技術] 従来、並行可能な機構部の制御を行うことは各種の分野
で行われている。例えば1部品(または部分装置、素子
)をある場所から取り出して加工位置まで運ぶ機構、運
ばれた装置に対し位置合わせ等の制御を行って第1の加
工を行う機構、加工された部品を他の位置に運ぶ機構、
他の位置で別の加工を行うという制御等がある。
そのような制御動作は、相互に関連をもっているが各機
構が並行して動作することが可能でありプログラムによ
り並行処理制御が行われる。
そのような並行処理制御を行う従来例の説明図を第6図
に示す。
第6図のタスクA9 タスクB、タスクCはそれぞれ並
行動作を行う各機構部の処理を行うプログラムであり、
メインタスクは各タスクA−Cの上位に設けられ、制御
を行うプログラムであり、これらの各プログラムは並行
処理可能なオペレーティングシステムにより制御される
(例えば、32ビツト用のi RMX等)。
従来はタスクAのプログラムの位!alまでは他のタス
クと関係なく動作できるが、a+の後は他のタスクCが
プログラムの位置C2まで終了しないと動作できない場
合、タスクへの位置a1にフラグFal(フラグの名称
)を設けて、処理がこの位置に達するとこのフラグを見
て、オフ(最初はオフ状態になっている)の場合メイン
タスクの制御により動作を停止させる。この状態になる
とメインタスクはその処理を停止して他のタスクについ
て制御を行い5他のタスクCがプログラムの位ic2に
達すると、メインタスクの制御によりタスクAのフラグ
Falをオンにする。これによりタスクAの処理が再開
される。同様にタスクCはそのプログラムの途中の位置
にフラグFclが設けられ、この位置になるとフラグF
clがオフ状態の場合メインタスクの制御により停止し
池のタスクBのプログラムが位iblに達するとフラグ
Fclをオンにする。
このようにフラグにより他のタスクとの相互関係をつけ
る方式の他に、ある処理が他の処理が終了しないと実行
できない時にその処理を[スリープ」 (休み)状態と
して、関連する他の処理の終了により「アクト」状態に
する等の方式もある。
[発明が解決しようとする課題] 上記した従来例のフラグを用いる方式では5全体を制御
するメインタスクは子タスク(タスク実行部等)の数が
増えれば増えるほどフラグの数も多くなるので、フラグ
の制御(各フラグのオン・オフ制御)が複雑になる。さ
らにフラグの管理(フラグに名称を付しその意味を定義
する)が繁雑になり、プログラミングやその後のデバッ
グに多くの時間が必要になると共にプログラムの保守性
が悪いという問題が生じていた。同様なことはスリーブ
を用いる場合にも生していた。
そして、このような処理により並行処理制御される機構
部のサイクルタイム(全タスクが1回動作するのに要す
る時間)を短縮する方式が従来から見出されなかった。
本発明は並行処理プログラムを容易に効率良く作成でき
、保守性が容易でかつ装置の動作を最適化する並行処理
制御方式を提供することを目的とする。
[課題を解決するための手段] 第1図は本発明の原理構成図である。
第1図において、10はタスク管理部、11は各タスク
1 タスク2・・・タスクnのそれぞれに対応して設け
られ、それぞれに予め設定された条件を満たすか否かを
判定して満たす場合実行指令を発生するタスク実行条件
判定手段、12はタスクI −nに対応して分割された
ユニットを実行するタスク実行部、13は各タスク実行
部の処理実行手段、14は各処理実行手段による処理ユ
ニット数を計数するユニットカウンタ、15は所定長の
単位で複数の処理1.処理2 ・に分割された各タスク
ト・タスクnを表す。
本発明は各タスクをそれぞれ所定長の動作単位(ユニッ
ト)により複数個に分割し、各タスク毎にユニットカウ
ンタを設けて動作単位が終了する毎に対応するユニット
カウンタをカウントアツプし、タスク管理部では各タス
ク毎に自タスクの実行条件を判定する。その判定は自タ
スクのユニットカウンタと他タスクのユニットカウンタ
の状態を見て、予め設定された条件が成立するか否かを
識別し1条件が成立するとタスク実行の指示を発生する
ものである。
[作用1 第1図において、予め各タスク1−nをそれぞれ所定処
理量で分割する。その場合、他のタスクの処理が終了し
ないと実行できないプログラム位置で分割する必要があ
る。このようにしてタスクト・タスクnの各タスク15
は、それぞれ第1図に示すように所定個数の処理1.処
理2・・のユニットに分割される。
タスク管理部10では、並列に処理される複数のタスク
1〜nの実行条件を判定するためにそれぞれタスク実行
条件判定手段11が設けられ、各実行条件判定手段はそ
れぞれのタスクの各ユニットが1他のタスクと関連があ
る場合、その何番目のユニットが終了した時起動するか
という実行条件が予め設定しである。
タスク管理部IOが起動して、各タスク実行条件判定手
段11を駆動する。各タスク実行条件判定手段11は各
タスクのユニットカウンタ14の内容を入力して予め設
定された実行条件を満足するか否か判定し1条件が満た
されるとタスク実行部12に実行指示を出力する。各タ
スク実行部はそれぞれ処理実行手段13が起動すると、
その時のユニットカウンタ14により指示されたユニッ
トを処理する。処理が終了すると、ユニットカウンタ1
4をカウントアツプし、そのカウント値はタスク管理部
に入力される。タスク管理部10の各実行条件判定手段
は、それぞれ自己のタスクの実行状態だけでなく、他の
タスクの実行状態を各処理カウンタ値により知ることが
できるので、予め設定された条件を満たす場合は1次の
ユニットの実行指示を出力し7条件が満たされない場合
(他のタスクのある番号のユニット処理が終了しない時
等)は実行指示を発生しない。
このように、各タスクが相互に関連するユニット処理の
関係が分割したタスクの実行状態を各タスク実行部で管
理し、その状態をタスク管理部で識別して条件を判定す
ることにより並行処理プログラムを効率良く作成し、保
守が容易になる。
[実施例] 第2図(a)はタスク構成を示す図、第2図(b)は分
割された各タスクの処理間の関係口、第2図(C)はタ
スク遷移図、第3図は実施例のメインタスクの処理フロ
ー図、第4図はタスクCの処理フロー図第5図はユニッ
トカウンタの値の定義テーブルである。
第2図(a)のタスク構成は1図示しないマイクロプロ
セッサ及びメモリ上に設けられ、複数のタスクA−Cを
制御するメインタスクM及び図示しない制御装置を構成
する複数の機構部に対応したタスクA〜タスクC(メイ
ンタスクに対して子タスクという)とから成る。なお、
上記制御装置の複数の機構部は、各子タスクA−Cの実
行に対応して入出力の動作を実行する。
各タスクを所定長毎に複数のユニットに分割しこの例で
は、タスクAは処理1.処理2の2つにタスクBは処理
1〜処理4の4つに、タスクCは処理1〜処理3の3つ
にそれぞれ分割する。 このように分割する原理を、第
2図(blおよび第2図(C1を用いて説明する。
制御装置の1サイクル内の各タスク動作の相互関係を分
析すると、第2図(b)に示すような関係を持つ場合、
即ち、最初にタスクA5タスクBおよびタスクCが並行
に処理を開始して、タスクAは処理1の単位を実行する
とそれ以上処理を進められない状態になり、タスクCも
処理1の単位を実行すると処理を進められない状態にな
る。このような第2図(b)の関係を勘案すると、各タ
スクABCは第2図(C)のタスク遷移図に示す時間で
それぞれ処理lとして分割される。
さらに、第2図ら)によれば、その後、タスクCはタス
クBの処理2として分割した動作が終了すると、処理2
を実行できるよう条件付けられているので、タスクBを
次に処理2の位置で分割する。
そして、タスクA及びBはタスクCの処l′I2が終了
しないと起動しない位置があり、それぞれの位置をタス
クAでは処理2.タスクBでは処理4として分離する。
なお、タスクBの処理3は自タスクの処理2の終了後無
条件で実行することができる。
このように各タスクを分割すると1各分割された処理の
時間長、処理開始から終了までの時間は第2図(C)に
示されるようになる。この場合、第2図(C)の各分割
された処理単位の長さは、相互の関係により適宜法める
ことができるが、各タスク間で同しような長さにすると
無駄な待ち時間がなくなり、最適な分割にすることがで
きる。
本実施例では、タスクA、B、Cを第2図(b)第2図
(C)に示すように分割した時、各タスクの分割単位(
ユニット)をカウントするユニットカウンタとして、U
A、UB、UCを設ける。そしてこれらの各ユニットカ
ウンタのカウント値の意味を第5図に示す定義テーブル
に示すように定義す上記のユニットカウンタを用いた実
施例のメインタスクの処理フローを第3図に示し、各子
タスクにおける処理フローを代表してタスクCの処理フ
ローを第4図に示す。
第3図に示すメインタスクの処理フローを説明する。
最初に各ユニ7 t・カウンタUA、UB、UC(以下
、単にUA、UB、UCという)を0にリセットして(
ステップ30)待機する。処理開始の指令があると(ス
テップ31)、各ユニットカウンタに1をセントする(
ステップ32)。この状態になると、各タスクは起動状
態になり、各タスクA−Cの条件判定を行うステップ3
3,3947が並列に処理される。この処理は並列処理
可能なオペレーティングシステムの制御により行われる
ステップ47〜52におけるUC(タスクC用)に関す
る処理フローについて説明すると、最初にuc=e o
 o oかが判別される。これは、第5図の定義テーブ
ルによれば正常終了か否かを判断するものである。この
時、UC=1であるからノーであるから次のステップ4
8に移る。ここでUC= 1か判定され、イエスである
からステップ52に移る。このステップは、rTAsK
c (UC);」であり、タスクCを実行することであ
る。
これにより、第4図に示すタスクCの処理が開始される
第4図では、最初にステップ60でuc= iか判定す
る。この時UC=1であるからステップ61に移りタス
クCの処理lが実行される。これが終了すると、ステッ
プ62でUC+ 1が実行され(UC=2になる)、リ
ターンする(メインタスクへ)。この間、ステップ33
〜38及び39〜46においてUA(タスクA)および
UB(タスクB)に関する処理が同様に行われる。
タスクCの処理lが終了してUC=2になった後、ステ
ップ54においてUA、tJB、UCが共にOであるか
判定され、この場合ノーであるから次に■の経路により
再びステップ47の判定が行ねれる。この後、ステップ
48でUC= 1の判定がノーとなるので1次のステッ
プ49に1多りtJc−2か判定される。この場合イエ
スとなるので次のステップ50に進み、ここでUB=3
かを判定する。この判定は、他のタスクBの処理2(第
2図(b)、第2図(C)参照)を終了しているかどう
かをチエツクするものである。
この時、タスクBの処理2が終了したが否かはUBO値
を判別することにより行われ、もしUB−3なら、ステ
ップ52に進み、第4図のタスクCの処理が実行される
。この場合、第4図のステップ63を介して処理2が実
行される(ステップ64)。その後、UCはカウントア
ツプされてUC=3になり(ステップ65)、リターン
する。
続いてステップ54.ステップ47を経てステップ51
に達すると、ここでUC=3であるがらイエスと1ニリ
定されステップ52においてタスクCが実行される。こ
の場合、第4図の処理においてステップ66を介してタ
スクCの処理3(ステップ67)が実行され、UC=8
000 (16進表示)にセットされる(ステップ68
)。
この後、リターンして、ステップ47においてUC=8
000の判定においてイエスの結果がでると、ステップ
53においてLIC=0となる。
上記のような処理が各タスクΔ、Bについても同様に行
われ、メインタスクのステップに示すように第2図(a
)、第2図(b)に示す条件が成立する時に各タスクの
処理が実行される。
各タスクA−Cの全てのタスクが終了すると各カウンタ
UA、UB、UCは共に0となり、この場合、ステップ
54においてイエスと判定され次の終了か否かを判定す
る。この判定は、上記の各タスクA−Cが処理を開始し
て全部が終了するまでを1サイクルとする制御動作が何
回で終了させるか予め設定しておいて、その設定数に達
したか否かを判定するものである。この設定数は1例え
ば1部品の加工制御を行う場合1部品の個数が設定され
る。
もし、終了でない場合は、■の経路でステップ3Iに戻
り、処理開始の指令により再び同様の動作を繰り返す。
上記の第3図及び第4図の動作において、タスクの処理
動作に異常が発生した場合、タスクに対応するユニット
カウンタの値を8001以上の値に設定する。この場合
3 どのタスクの処理が異常終了であるかを後で検出す
ることができる。
このように、タスクの起動はユニ、トカウンタの制御の
みで行うことができ、その制御もタスクl!2移図(第
2図(C))で管理することができる。
[発明の効果1 本発明によれば各タスクの動作順序および並行動作がユ
ニットカウンタで一元管理され、タスク数が多くなって
も容易に制御が可能となり、タスク遷移図を利用して動
作の最適化も容易にできる。
この結果、プログラミングおよびデバッグ期間も大幅に
短縮することが可能となり、プログラムの保守性を良好
にすることができる。
【図面の簡単な説明】
第1図は本発明の原理構成図、第2図(a)はタスク構
成を示す図、第2図(b)は分割された各タスクの処理
間の関係図、第2図(C)はタスク遷移図、第3図は実
施例のメインタスクの処理フロー図、第4図はタスクC
の処理フロー図、第5図はユニットカウンタの値の定義
テーブル、第6図は従来例の説明図である。 第1図中 10:タスク管理部 11:タスク実行条件判定手段 12:タスク実行部 13・処理実行手段 14:ユニットカウンタ 15:タスク

Claims (1)

  1. 【特許請求の範囲】 並行処理を行うオペレーティングシステムにより装置を
    制御するための並行処理制御方式において、 並行処理される複数のタスクの実行条件が相互に関連を
    持つ各タスクを、それぞれ所定長の処理ユニットに分割
    してそれぞれに番号を割当て、タスク管理部(10)は
    、並行処理される各タスク毎に相互の起動条件を設定し
    てタスク実行が可能か否かを判定するタスク実行条件判
    定手段(11)をタスクに対応して備え、 前記タスク実行条件判定手段(11)からの指示により
    起動する各タスク実行部(12)を備え、各タスク実行
    部は起動すると分割された処理を処理実行手段(13)
    で実行すると共に対応するユニットカウンタ(14)を
    歩進し、 上記タスク実行条件判定手段(11)は各タスク実行部
    のユニットカウンタの値により判定を行うことを特徴と
    する並行処理制御方式。
JP933090A 1990-01-18 1990-01-18 並行処理制御方式 Pending JPH03212742A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP933090A JPH03212742A (ja) 1990-01-18 1990-01-18 並行処理制御方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP933090A JPH03212742A (ja) 1990-01-18 1990-01-18 並行処理制御方式

Publications (1)

Publication Number Publication Date
JPH03212742A true JPH03212742A (ja) 1991-09-18

Family

ID=11717462

Family Applications (1)

Application Number Title Priority Date Filing Date
JP933090A Pending JPH03212742A (ja) 1990-01-18 1990-01-18 並行処理制御方式

Country Status (1)

Country Link
JP (1) JPH03212742A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011054161A (ja) * 2009-08-31 2011-03-17 Internatl Business Mach Corp <Ibm> マルチコア/スレッドのワークグループ計算スケジューラ

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011054161A (ja) * 2009-08-31 2011-03-17 Internatl Business Mach Corp <Ibm> マルチコア/スレッドのワークグループ計算スケジューラ

Similar Documents

Publication Publication Date Title
JPH03134709A (ja) 命令リストプログラムがリレーはしご形線図として表現できるかどうかを判定する方法
JPH09128255A (ja) プログラマブル論理制御器
JP2820189B2 (ja) 数値制御装置の制御ソフトウェア実行システム
CN111861381A (zh) 多资金渠道的接入方法及系统
JPH03212742A (ja) 並行処理制御方式
JPH03223901A (ja) 半導体製造装置
JPS58222357A (ja) 駆動制御プログラムデバツグ方式
CN106055322A (zh) 一种流程调度方法及装置
JPS63636A (ja) タスク制御方式
JP2005135137A (ja) 仮想計算機システム
JP2872728B2 (ja) セルコントローラおよびセル制御システム
JP2590872B2 (ja) タスクスケジュール方法
JPH0666063B2 (ja) シーケンス制御装置
JPH06222932A (ja) コンピュータ装置
JPH0198047A (ja) 割込み処理方式
JPH02113363A (ja) マルチプロセッサシステムにおけるタイムスライス制御方式
JPS62196739A (ja) 通信制御装置におけるマイクロプログラム実行軌跡スタツク制御方式
JPS63317834A (ja) ラダ−プログラム処理方式
JPH03237577A (ja) データフロープログラムにおける自動ソート処理方式
JPH04160408A (ja) 数値制御装置
KR20220138137A (ko) Plc 명령어 처리 방법 및 그 장치
JPH04273536A (ja) 仮想計算機入出力装置制御方式
JPH01211036A (ja) モジュール間情報受け渡し処理方式
JPS61112207A (ja) 機器発停制御方式
JPS6385938A (ja) プログラムの多重並行動作制御装置