JPS6385828A - 高級言語処理方法 - Google Patents

高級言語処理方法

Info

Publication number
JPS6385828A
JPS6385828A JP22955486A JP22955486A JPS6385828A JP S6385828 A JPS6385828 A JP S6385828A JP 22955486 A JP22955486 A JP 22955486A JP 22955486 A JP22955486 A JP 22955486A JP S6385828 A JPS6385828 A JP S6385828A
Authority
JP
Japan
Prior art keywords
task
execution
level
internal
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.)
Granted
Application number
JP22955486A
Other languages
English (en)
Other versions
JPH0820962B2 (ja
Inventor
Yuji Kawamori
川森 祐二
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.)
Anritsu Corp
Original Assignee
Anritsu Corp
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 Anritsu Corp filed Critical Anritsu Corp
Priority to JP22955486A priority Critical patent/JPH0820962B2/ja
Publication of JPS6385828A publication Critical patent/JPS6385828A/ja
Publication of JPH0820962B2 publication Critical patent/JPH0820962B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)

Abstract

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

Description

【発明の詳細な説明】
(産業上の利用分野) 本発明は、高級言語処理方法、特に高級言語で記述され
たプログラムを実行するパーソナルコンピュータやオフ
ィスコンピュータの如き小中製電子計算機において、高
級言語によって記述された複数のタスクケ、指定した優
先度に従って実行条件の変化に実時間で応答し並行して
実行する多重タスクが可能な高級言語処理方法に関する
ものである。 (従来の技術) 電子計算機が本来の計算機能を離れ、制御器機としてあ
らゆる産業に使用されるようになってきた。電子計算機
の有用性が認識され、その利用分野が拡大するにつれ、
電子計算機自体にも大きな進歩がみられ、マイクロコン
ピュータやオフィスコンピュータ等の中小電子計算機に
も、実時間処理、多重プログラミング処理が行われるよ
うになってきている。 高級言語、例えばRASIC,C0BOL、FOR番T
RAべPL/I等によって記述した複数の処理部分(タ
スク)を、指定した優先度(順位狐従2でCT5J使用
の制御権を切り換え、実行条件の変化に実時間に応答し
て複数個のタスクを並行して実行する機能、すなわち多
重タスク機能を有する高級言語処理系と己ては、従来、
次に説明する2つの方式のものが知られている。 @1の方式は、高級言語の命令ステップとに無関係にタ
スク間の実行権の切換を行うものである。 、各タスク
は起動されると実行可能状態となり、さらに実行可能状
態のタスクのうちで最も高い優先度を有するタスクが、
実行状態となって、高級言語で記述されたプログラムが
実行される。高級言語の命令が特定の事象の発生を待つ
という内容であれば、そのタスクは待ち状態となり、こ
の場合、他に実行可能状態のタスクが存在すれば、この
ようなタスクのうちで最も高い優先度を有するタスクが
代わって実行状態となる。待ち状態となった前記タスク
は、待っている事象が発生すると実行可能状態となり、
再び各タスクの優先度に応じて実行権の切換が行われる
。 この方式では、上記の規則に従って、各タスクに割り当
てられている優先度と事象の発生に実時1■で対応して
タスクの実行権の切換が行われる。 そして高級言語の命令は、CPUの機械語の複数の命令
によって構成されるものであるため、一般には成るタス
クの実行中に他のより高い優先度を有するタスクが実行
可能状態になった場合には、実行中の高級言語の命令の
途中であっても実行権の切換が行われるようになってい
る。 筆2の方式に一品級賃語の命令ステップを最/トの実行
単位としてタスク間の実行権の切換を行うものである。 この方式では起動されている各タスクの中から実行状態
とするタスクを決定する条件は、第1の方式と同じであ
るが、成るタスクが実行状態とな9得る条件が満たされ
ても、その時点で他のタスクにおいて高級言語の命令を
実行中であった場合に框、その命令の実行が完了してか
ら実行権の切換が行われるようになっている。 (発明が解決しようとする問題点) このような従来の高級言語処理系においては、前記第1
の方式、第2の方式とも次に述べるような欠点があった
。すなわち、 第1の方式においては、各タスクの処理内容が高級言語
の命令で記述されているにもかかわらず、各タスク間の
実行権の切換は高級言語の命令を構成する機械語を単位
として行われるため、プログラム全体としての実行順序
が高級言語処理系内部の条件に依存することになり、実
行結果を把遅することが困難であった。つまり、例えば
機械制御環ヲ実行するプログラムにおいて、どのような
順で該プログラムが実行されているか後に検討する場合
や、機械制御が予想通シ制御されない場合の動作確認の
検討等、実行結果金理解しにくい欠点があった。 第2の方式においては、高級言語の一命令の実行が終了
するまでタスク間の実行権の切換が待たされるため、実
際に実行権の切換が行われるまでの遅れ時間が大きくな
り、実時間処理が困難となる。また高級言語の各命令の
実行時間に各命令の内容によって異なるので、このよう
な遅れ時間は一定とならず、応答性の点で欠点があった
。 高級言語で記述されたプログラムによって、実行条件の
変化に実時間で応答し、複数のタスクを並行して実行し
ようとする場合、応答性と実行結果の理解のしやすさと
は相反する問題であシ、どちらを優先させるかに各タス
クの実行内容によって決定されるべきものである。 本発明は、上記の欠点を解決することを目的としており
、一つの高級言語処理系において、高級言語の命令を構
成する機械語を単位として実行権の切換がなされるタス
クと、高級言語の命令を単位として実行権の切換が行わ
れるタスクとを複合して記述し実行できるようにして、
応答性と実行結果の理解のしやすさとを同時に可能なら
しめた高級言語処理方法を提供することを目的としてい
る。 C問題点を解決するための手段) そのため本発明の高級言語処理方法は単一のCPU″I
t用いて、複数個の独立した処理手順を持つタスクを起
動し、外部条件の発生に即応して実行可能状態にあるタ
スクの中で最も高い優先度が割り当てられているタスク
に実行権ケ与えるタスク管理機能を有するオペレーティ
ングシステムと、高級言語で記述されたアプリケ−ジョ
ンプログラムと、前記アプリケーションプログラムから
命令を読み出して解読すると共は、命令実行中の優先屁
を所定の値に設定する命令実行管理部とその実行部とを
有し、前記オペレーティングシステムの管理下でタスク
の一つとして起動されて前記アプリケーションプログラ
ムによって定義されたタスクが実行される高級官給処理
プログラムとを備え、単一のCPUで多重タスク処理を
行う高級言語処理方法において、前記アプリケーション
プログラムを複数の上位タスク群に分割すると共は、該
上位タスク群に所定の優先度をそれぞれ割り当て、さら
に各上位タスク内を複数の内部タスク群に分割すると共
は、該内部タスク群に所定の優先度をそれぞれ割り当て
る。そして上位タスク内において、いずれの内部タスク
よりも優先度の高い実行レベルを各上位タスク群のそれ
ぞれに設けておく。 所定の優先権が割り当てられている各上位タスク群内の
各内部タスク間において、高級言語の一命令を実行する
直前に該命令が属する内部タスクの優先度を該内部タス
クが属する上位タスク内に設けられた前記実行レベルの
値に設定し、該高級言語の一命令実行後には本来の割り
当てられた所定の優先度に戻し、その後のCPUの実行
処理に当ってにオペレーティングシステムのタスク管理
機能に内部タスクの実行権の切換を安ねる構成とする。 これによって各上位タスク内においては、高級言語の一
命令実行中は前記実行レベルの設定により内部タスク相
互間の実行権の切換を抑制して高級言語の一命令を不可
分の処理として実行し、一方、上位タスク相互間におい
てはオペレーティングシステムのタスク管理機能により
、CPUの機械語を単位として実行権の切換を行い、高
級言語を単位と
【−で実行権の切換がなされる内部タス
ク群と、CPUの機械fMを単位として実行権の切換が
なされる上位タスク群とを複合して実行処理できるよう
にしたことを特徴としている。 以下図面を参照しながら本発明の一実施例を説明する。 (実施例) 第1図に本発明に係る高級言語処理方法によりタスクの
実行権の切換制御のため各タスクに優先度を割り当てる
優先度割当て説明図、第2図は優先度表示説明図、第3
図に本発明に係る高級言語処理方法によって実行される
タスクの構成説明図である。 第3図において、2はコーザプログラムであつて、例え
ばFORTRAN、 C0BOL、RASIC、P L
/I等高等高諸言語述されたアプリケーションプログラ
ムである。該コーザプログラム2に複数Nの上位タスク
群1−1.1−2.・・・・・・、1−Nに分割され、
単一のCPUがこれらのN個の上位タスク全それぞれ独
自の流れ金もって並行して実行する。これらの各上位タ
スク1−1.1−2.・・・・・・、1−Nはさらに複
数の内部タスクの集まシとして構成されている。例えば
#1上位タスク11−1i、個の内部タスク11−1.
11−2.・・・・・・s 11−M、a#2上位タス
ク11−2f1.個の内部タスク12−1.12−2.
・・・・・・、11−M2の様に構成されている。これ
らの各内部タスクは前記の如く高級言語の命令によって
記述された独立した処理手順を持つプログラムである。 前記N個の上位タスク群、及び各上位タスク内の各内部
タスクには、それぞれ重複がない優先度、すなわち優先
順位が割り当てられる。 第1図に示すようは、各上位タスク1−1 、.1−2
.・・・・・・、1−N[ri重複のない優先度人を1
゜2.3.・・・、Nの順に割り当て、さらに上位タス
ク内の各内部タスクに対してもその内部タスクが属して
いる上位タスク内で、重複のない優先[Bが1.2.3
.・・・の順にそれぞれ割り当てられる。 内部タスクの優先KFI、第2図図示の如く上位タスク
優先麗人を示す上位桁3と内部タスク優先度Bを示す下
位桁4と全合成した合成値5の値Pで示される。オペレ
ーティングシステムは、この優先度?示す合成値Pのよ
シ小さなタスクを優先度が高いものとして管理する。そ
して各上位タスク1−1.1−2.・−・−,1−NK
H5内部p、x−りに割り当てられた内部タスク優先度
とは別に「実行ンベル」と呼ばれる優先度が設けられて
いる。該「実行レベル」は当該「実行レベル」が属する
上位タスク内において最も優先度の高い順位が割り当て
られている。つまり第2図に示された下位桁4の値Bが
「0」であり、該「実行レベル」が属する上位タスク内
のどの内部タスクよりも高い優先度を有する。また「実
行レベル」は特定のタスクに割り当てられるものではな
く、後に説明する様に高級言語の命令実行時は、−時的
に実行されるべき内部タスクの優先度全格上げするため
に使用されるものである。 そしてさらは、これらのいずれの「実行レベル」よシさ
らに優先度の高い値を持つ割込レベル10が設けられて
いる。該割込レベル10は第2図に示された上位桁3の
値A及び下位桁4の値B共に「0」であり、合成匝5の
値Pが「00」で表わされる優先度を持っている。 第1図に示された優先度の割り当てによって、成る上位
タスク、例えば#3上位タスク1−3に属するどの内部
タスク13−1.13−2.・・・・・・。 13− M5よりも高い優先度ケ持つ上位タスク、例え
ば#1上位タスク1−1内の内部タスク1]−1,11
−2,・・・・・・、11−Mlよりに優先度が低く、
またより低い優先度r持つ上位タスク、例えば#5上位
タスク1−5内の内部タスク15−1.15−2.・・
・・・・、15−M、、よりは優先度が高くなる。 CPUが成る上位タスク内の成る内部タスクの高級言語
の一命令の実行を開始するごとは、該内部タスクの優先
度に一時的に置換され、当該内部タスクが属する上位タ
スク内に設けられている実行レベルの優先度の値に設定
される。該命令の実行が終了した時に本来の優先度に戻
される。 このような優先度の割り当て及び各上位タスク内に実行
レベル及び割込レベルを設けることにより、上位タスク
内の内部タスク相互間では、高級言語の一命令を単位と
1.てタスクの実行権が切り換えられ、一方、上位タス
ク相互間でにオペレーティングシステムのタスク管理機
能の下で冒級言語の命令ステップとに無関係は、CPU
の機械語を単位としてタスクの実行権が切り換えられる
構成となる。 次は、第4図のバーPウェアの構成例、第5図の高級言
語処理系の論理的構成例ケ用いて、本発明に係る高級言
語処理方法が用いられる高級言語処理系の全体的な構成
及びその処理を説明する。 第4図において、CPU411、例えば16ビット等の
マイクロプロセッサ、O8C≠4は水晶振動子等で構成
される発振6である。高級言語処理系全構成するソフト
ウェアの一部ハ、ROM42に記憶されており、電源投
入時に起動されて補助記憶装!4gから入出力制御回路
45を介してRAM43へ必要なソフトウェアがローP
され、オペレーティングシステムの操作が可能となる。 オペレーティングシステムに対する指示にキーデー44
6から入力され、システムからのメツセージはCRT4
7に載承される。捕助記憶装ft48ニフログラムやデ
ータを記憶するために用いられる。 第5図において、CPUの使用権、メモリ、その他のハ
ードウェアは、オペレーティングシステム52によって
管理される資源51として位置付けられている。 高級言語処理プログラム53にオペレーティングシステ
ム52の管理によってCPUの使用権、メモリ會与えら
れ、また、オペレーティングシステム52を介してハー
ドウェア全アクセスする。 オペレーティングシステム52はタスク管理、事象管理
、メモリ管理、入出力管理の各拶能ゲ有する。タスク管
理機能にメモリに格杷されているプログラム?指定の番
地から起動1.(タスクの起動)、さらは、他に起動さ
れているタスクがある場合には各タスクの優先厩に従っ
て実行権の切換ケ行う(優先順位方式の場合)。この場
合、実行権の切換にCPUの機械語?単位と17で行わ
れる。事象管理機能ばハードウェアから発生する条件の
変化を検出【7、その変化に対応して起動されているタ
スクの状態を変更する。例えば、タスクが成る条件の変
化を待つことをオペレーティングシステム52に要求す
ると、該タスクは「実行状態」から「待ち状態」に変更
される。また、「待ち状態」にあるタスクに待っている
条件が満された時、「実行可能状態」に変更される。前
記のタスク管理機能汀、このようなタスクの状態の変化
に対応して実行権の切換を行う。高級言語処理プログラ
ム53は命令実行管理部と命令実行部とから成り、オペ
レーティングシステム52の・g理の下にタスクの一つ
として実行される。高級言語処理プログラム53は高級
言語で記述されたアプリケーションプログラム54を一
命令ずつ読み出【−で実行すべき内容を解読して実行す
るが、実際に実行されるのに高級宮崎処理プログラム5
3に含まれている命令実行管理部ならびに命令実行部で
ある。高級宮崎処理プログラム53はアプリケーション
プログラム54の内容に従ってオペレーティングシステ
ム52に対してタスクケ登録し起動′に要求する。 第6図は高級言語処理系の命令実行管理部の実行手順?
示すフローチャートである。上記第3図に示されたタス
ク構成′に持つ高級言語で記述されたコーザプログラム
2の各内部タスクは、起動されるとプログラムを実行す
るために必要なメモリを個別に与えられ、高級言語処理
プログラム53の命令実行管理部の開始番地から第6図
に示されたフローチャートに従ってその実行を開始する
。 該命令実行管理部に個別にメモリに与えられている各タ
スクによって論理的に同時に実行できる再入可能な形式
で作られている。 命令実行管理部は高級言語で記述されたアプリケーショ
ンプログラム54から命令全−個ずつ読み出して実行す
るという動作?繰返し実行する。 高級言語処理プログラム53に対してアプリケーション
プログラム54の実行開始が指示されると、高級言語処
理プログラム53は命令読み出しのポインタケアプリケ
ーションプログラム54の先頭に設定し、CPUの命令
の実行開始番地を示すポインタを第6図におけるステッ
プS1に設定12てオペレーティングシステム52にタ
スクの起IItjJヲ要求する。このようにして起動さ
れたタスクに実行権1与えられると、dX6図に示され
たステップS1から実行を開始し、ステップS】からス
テップS2、ステップS3、ステップS4、ステップS
5、ステップS6、ステップS7、ステップS8、ステ
ップS9と実行し、これ以後通常にステップS9からス
テップS3、ステップS7、ステップS8、そしてステ
ップS9の順に実行する。 ステップS8で実行する高級言語の命令がアプリケーシ
ョンプログラムによって定義したタスクを起動するとい
う内容であった場合には、前記のアプリケーションプロ
グラム54を実行開始するための処理と同様の処理によ
って、オペレーティングシステムにタスクの起動管要求
する。従って命令集荷管理部に起動されているアプリケ
ーションプログラムのタスクの個数と同じ数だけ個別の
プログラムを並行して実行することになる。例えば第3
図に示されたユーザプログラム2において、#1上位タ
スク]−1.$2上位タスク1−2、#3上位タスク】
−3の3個のプログラムが上記説明の如く起動されたと
き、これら#1上位タスク1−1のプログラム、#2上
位タスク1−2のプログラム、#3上位タスク1−3の
プログラムの3個の個別の各プログラムが独自に並行し
て実行される。 ところで、例えば#2上位タスク1−2に属する内部タ
スク12−2が実行されるべく、ステップS1の割込み
フラグがオンにセットされ、これから実行してもよいと
いう条件が確定17たとき、すなわち内部タスク12−
2の成る命令を始める直前は、該内部タスク12−2に
予め割り当てられている所定の優先度のPの値22が、
第1図で説明した如く該内部タスク12−2が属する上
位タスク1−2に設けられた「実行レベル」の優先度の
値20に一時的に置換され設定される(ステップ82)
。このような特別の優先度が設定された状態の下で、該
内部タスク12−2の成る命令が実行される。そして該
命令の実行を繰返E、ている間は、ステップS2の処理
によって該内部タスク】2−2の優先度框「実行レベル
」の値20が保持されているので、該内部タスク】2−
2内のどのような優先mV持つ内部タスク12−1゜1
2−3.・・・・・・、、32−M2が実行可能状態と
なったとしても、ステップS3に達するまでは実行中の
内部タスク12−2が実行権?保持する。このステップ
S3で判断に用いられるフラグは、新たに実行可能状態
になった他の内部タスクが実行中の内部タスク12−2
に対して実行権の切換を要求するための情報であり、こ
の高級言語の一命令の実行が終了した時、必要な場合に
限って七の実行権ケ切り換える処理を行うためのもので
ある。 従ってステップS3で割込みフラグがオンであることを
検出すると、ステップS1で立てられていてられている
本来の所定の優先度に戻される。すなわち優先度の値2
2に設定される(ステップS5)。 ここで、他により高い優先1ffi’l−持ち、かつ実
行可能状態になっている内部タスク、例えば内部タスク
11−3とすると、該内部タスク1]−32>(属する
#1上位タスク1−1に設けられた「実行レベル」の優
先度の値10が内部タスク11−3に設定され、該内部
タスク11−3に実行権が移る。従って該内部タスク1
1−3が属する#1上位タスク1−1のプログラムが、
@6図のフローチャートに従って実行される。その後、
実行権を移された内部タスクJ 1−3が待ち状態にな
るか実行を停止すると、実行可能状態にある内部タス&
  +  M     ′−1+ −1M  #  +
   A   1   /’l   −n  /F)1
m&llF  、!?A番 え frい場合、該内部タ
スク12−2[再び実行権が与えられて、該内部タスク
12−2の優先度に該内部タスク12−2の属する#2
上位タスク1−2に設けられた「実行レベル」の優先度
の値に)に再び置換設定され、ステップS6から実行が
再開される。一方、該内部タスク12−2の優先度よシ
高い内部タスクが存在する場合、該内部タスク12−2
より高い優先度ケ有する内部タスクに実行権が移り、該
内部タスク12−2の優先度が最も高くなるまで内部タ
スク12−2への実行権の切換が待たされる。 また、第6図のステップS8において実行される命令の
内容が、一定時間の経過を待ったり、外部条件の変化を
待つなどの内部タスク] 2−2’に待ち状態にする命
令であった場合には、第7図に示される手順でその命令
が実行される。すなわち、ステップ5IIH内部タスク
12−2が待ち状態になった後、条件が満たされた時に
実行すべきステップS13及びステップS14の処理を
最優先で実行できるようにするための準備である。ここ
で、「割込レベル」は、高級言語処理プログラム53に
よって起動された内部タスクのどの内部タスクの優先度
より常に高い優先度金有している。 すなわち第1図で説明した如く優先度の値Pが最も高い
「00」の値を持っている。 該内部タスク12−2の優先度ケ「割込レベル」の優先
度の値「OO」に変更した後(ステップ511)、直ち
に命令の内容に応答した事滅が発生するまで該内部タス
ク12−2i待ち状態に変わる。この時、他に実行可能
状態になっている内部タスクが存在すれば、それらの中
で最も高い優先度を有する内部タスク、例えば#3上位
タスク1−3内の内部タスク13−4が最も優先順位が
高いものとすれば、該内部タスク13−4に実行権が与
えられる。従って該内部タスク13−41!第6図に示
されたフローチャートに従ってそのプログラムが実行さ
れる。 待ち状態となった内部タスク12−2t’!指定された
条件が発生すると直ちに実行状態となって、割込フラグ
をオンにすると共は、該内部タスク12−2に予め割υ
当てられている本来の所定の優先度の値22を設定する
(ステップ813.14)。 ここでに高級言語の命令を実行中の内部タスク13−4
に対してステップ813によって該内部タスク12−2
に実行権の切換を要求するだけで、ステップ14を実行
すると命令を実行中の内部タスク13−4に一旦実行権
が戻される。そして命令を実行中の内部タスク13−4
が、独自の第6図に示されるステップS3に達して前記
内部タスク12−2に起因する割込フラグを検出L7、
さらにステップS4,85に経て内部タスク13−4の
優先度?本来の予め定められている所定の優先度の値3
4に設定された時点で、実行可能状態にある内部タスク
の内、該内部タスク12−2の優先反が最も高い場合は
、該内部タスク12−2に実行権の切換が行われ、第7
区の手順を実行し停止していた該内部タスク12−2H
実行権が与えられることとなり、ステップ815からそ
の実行全再開する。また、該内部タスク12−2の優先
度より高い内部タスクが存在する場合、該内部タスク1
2−2より高い優先度を有する内部タスクに実行権が移
り、該内部タスク12−2の優先度が最も高くなるまで
実行権の切換が待たされることに前記の場合と同様であ
る。 以上に内部タスク12−2を主にP3部タスク11−3
及び内部タスク13−4に例にあげ説明してきたが、こ
れらの内部タスク11−3及び内部タスク13−4それ
ぞれが内部タスク12−2の立場に置かれ、その処理が
上記と同様の過程?経ることは勿論のこと、他の内部タ
スクについても全く同様の処理が行われることば言うま
でもない。 このように各上位タスク内にどの内部タスクより優先度
の高い実行レベルをそれぞれ設け、また最も優先度の高
い割込レベルを設け、該割込Vベル及び該実行レベルを
用いることにより、高級言語を単位と1−で実行暢の切
換が行われる内部タスク群と、CPUの機械語を単位と
1−で実行権の切換が行われる上位タスク群と1ra合
して実行できる。従って従来の相反する応答性とユーザ
プログラムの使いやすさとを同時に解決することができ
る。すなわち実時間処理で実行することができると共は
、抜根CPUの実行結果を容易に知ることができる。ま
た、中小電子計算機においても、ユーザが高級言語で容
易に多重タスクのプログラムを記述することができるよ
うになる。 次に本発明に係る高級言語処理方法を自動制御システム
に応用した例について説明する。 表−1 上記の表−1にそのプログラムの一例、第8図に自動制
御システムの一構成例である。表−1のプログラムで使
用した高級言語は、JIS規格(JIS  C6207
)により定められているBASIC言語は、さらに覆数
の独立した実行手順をタスクと1.て記述する機能を付
加したものである。 第8図において、高級言語処理装置84は第4図に示し
たとおりのハードウェア構成を持ち、この自動制御シス
テムにおけるコントローラである。 この自動制御システムは、製造ライン81上を運ばれる
試料82が所定の位置に達した時、アダプタ88が荷つ
センサによって試料82の位置を検出し、制御回路87
を経て高級言語処理装置84に割込み信号と(7て伝え
、これ全契機として高級と によって、試料82の調整(ADJUST )をアダプ
タ88を介して行うとともに調整結果を測定器86によ
って測定し、そのデータを外部補助記憶装置85にファ
イルとして記録する。 表−1のプログラムに2つの上位タスクDATAおよび
C0NTR0Lにより構成されており、それぞれ独立に
行番号を持つプログラムとなっている。各々のプログラ
ムにおいて、先頭の行の命令PROGRAM i上位タ
スクの名前を宣言する。上位タスクDATA i、さら
に行番号30〜行番号250の内部タスク5AVEDA
TAと行番号270〜行番号380の内部タスクMEA
SUREの2つの上位タスクで構成されている。行番号
30の命令PARACT U内部タスクの名前5AVE
DATAと優先度を宣言し、行番号250の命令END
 PARACT H内部タスクの終りケ表す。同様は、
行番号270から行番号380までが、2番目の内部タ
スクMEASUREである。上位タスクC0NTR0L
 fl内部タスクMAIN k 1個たけ持つ。上位タ
スクDATAの行番号20の命! PROCIThF!
Q RVンNT ケ戟M JIK 急のa 6fr〜f
ARンun %、= 官言するとともに1.、  )T
Iウェア条件との対応を定義する。この宣言は上位タス
ク内の各内部タスクに対して共通の宣言であシ、行番号
2oにおいてに事象名避ASIEND ’r、第8図の
測定器86がら測定完了信号が発生するという条件に対
応づけている。また、上位タスクC0NTR0Lの行番
号2oにおいて框、事象基ADJUSTを、第8図のア
ダプタ88から試料検出信号が発生するという条件に対
応づけている。その他、表−1のプログラムに含まれる
命令の中で主要なものについて、その機能全簡単に示す
。 COM      上位タスク内のC0MM0N 変数
全宣言する。 LOAD TASK   上位タスクを指定した名前の
ファイルからメモリにローPする。 5TART TASK  上位タスクを起動する。 5TART     内部タスクを起動する。 C0NNECT EVENT事象の発生を有効にする。 W人IT EVENT   指定した事象が発生するま
で内部タスクを待ち状態にする。 次に表−1のプログラムの動作について概要を説明する
。 まず、上位タスクDATA  kメモリに格納して起動
すると、最初の内部タスク5AVEDATA が実行を
開始スる。この内部タスクは、内部タスクMFJASU
REによってC0MM0N 変数を用いたノ々ソファに
書き込まれたデータを順番に読み出してファイルに格納
する。バッファt!100個のデータを格納できる容量
を有し、最終データの次に先頭のデータをアクセスする
ことによってリング状に繰返し使用される。ノ5ツファ
のアクセス位[iCOMMON変数の5AVEPTによ
り書込み位置が示され、READPTにより読出し位置
が示される。内部タスク5AVEDATA i行番号1
00.行番号110で上位タスクC0NTR0L  ’
i起動し、行番号120で内部タスク′MEASURE
を起動し、行番号330で事象MEASENDの発生を
有効にした後、行番号140がら行番号200までのル
ープによってバッファから読み出【−たデータ?順番に
ファイルに書き込む。 内部タスクMEASURE u、行番号310)Wkl
TEVENT命令によって第8図の測定器86からデー
タを読み出[、てバッファに書き込む。 上位タスクC0NTR0L [、第8図のアダプタ88
から試料検出信号が発生するまで待った後、アダプタ8
8へ試料82を調整するためのデータと測定開始を指定
するデータとを送出する。表−1のプログラムでは上位
タスクC0NTR0Lの優先度が最も高く、上位タスク
DATA内でに内部タスクMEASUREの方が内部タ
スクSA■DATAよりも優先度が高くなっている。そ
のため内部タスク5AVEDATA )行番号140か
ら行番号200までのループを実行中に測定完了信号が
発生すると、実行中の一命令が終了してから内部タスク
MEASUREに実行権が与えられて行番号320〜行
番号360が実行される。一方、2つの上位タスクの間
では上位タスクC0NTR0Lの方が優先度が高いため
、事象ADJUSTが発生すると上位タスクDATA内
で高級言語の命令ケ実行中であるかどうかにかかわらず
、直ちに上位タスクC0NTR0L内の内部タスクMA
 INに実行権が与えられて行番号70〜行番号9oが
実行される。 第9図ta、=−Xのプログラムに関する3つの内部タ
スクについて高級言語処理プログラムの実行管理部の実
行手順を個別に表わしたものである。 内部タスク5AVEDATA t’!、通常ステップ5
103゜5107.’1S108,5109の経路を繰
返したどってプログラムの行番号140〜行番号200
を実行【7ている。内部タスクMEASURE nプロ
グラムの行番号310’に実行すると4!象MEASE
NDが発生するまで待ち状態となるが、この行の実行は
、第9図においてはステップS211.5212に対応
する。そして事象MIEASENDが発生すると、行番
号ステップ5213.5214が実行され、その後内部
タスク5AVEDATAによって実行中であった命令の
実行が終了すると、ステップ5103゜5104.S]
05が順に実行され、ここでタスクの実行権の切換が起
きて、内部タスクMEASUREに実行権が与えられて
、ステップS2] 3.5214.5215と実行が行
われる。以後プログラムの行番号320〜行番号36o
、行命号300と実行されて、再び行番号310が実行
されると、内部タスクSA■DATA  に実行権が切
換えられて、ステップ8106から実行を再開する。こ
のようにして上位タスクDATA 内の2つの並列処理
部相互間では、RAS I C言語の一命令の実行が終
了するのを待ってから実行権の切換が行われる。また、
上位タスクC0NTR0Lに属する唯一の内部タスクM
AINi、プログラムの行番号60を実行すると事象A
DJUSTが発生する畦で待ち状態となるが、この行の
実行は、第9図においてにス・テップ5311.531
2に対応する。そ1.て事象ADJUSTが発生すると
ステップ5313.5314が実行され、さらに直ちに
ステップ5315が実行され、プログラムの行番号70
〜行番号909行番号50が実行される。この場合に事
象が発生すると、上位タスクDATA内でRASIeの
命令が実行途中であっても、直ちに上位タスクC0NT
R0Lに実行権が与えられる。 以上説明したようは、表−1のプログラムでにRASI
C言語の命令を単位として実行権の切換が行われる2つ
の内部タスクを持つ上位タスクと、これらの内部タスク
内のRAS I C言語の命令の実行とに独立して実行
権を得ることのできる別の上位タスクとが複合して実行
される。 (発明の効果) 以上説明した如く、本発明によれば、高級言語テ記述す
れたプログラムにおいて、高級言語の命令を構成する機
械語を単位として実行権の切換がなされるタスクと、高
級言語の命令を単位として実行権の切換がなされるタス
クの両方全実行することができる。従って前者の最小限
の遅れ時間で条件の装出に応答すべき処理に適した応答
性の利点と、後者のタスク間で共通の変数(C0MM0
N変数)を用いて容易にデータの変換ができる利点、及
び全体としての実行経過全高級言語の命令會単位として
把握することができるので、プログラムの開発、動作確
認の作業効率が良い利点が共に残存する。そしてこの両
者を複合して実行できることにより、処理対象の性格に
応じて両者を使い分け、プログラムの応答性とプログラ
ムの作りやすさとを両立させることが可能となる。
【図面の簡単な説明】
第1図に本発明に係る高級言語処理方法によりタスクの
実行権の切換制御のため各タスクに優先度會割り当てる
優先度割轟て説明図、第2図は優先度表示説明図、$3
図に本発明に係る高級言語処理方法によって実行される
タスクの構成説明図、第4図はハードウェア構成例、第
5図に高級言語処理系の論理的構成例、第6図に高級言
語処理系の命令実行管理部の実行手順を示すフローチャ
ート、第7図は待ち命令の実行手順を示すフローチャー
ト、第8図は自動制御システムの一構成例、第9図に3
つの内部タスクについて高級言語処理プログラムの実行
管理部の実行手順を個別に示したフローチャートである
。 図中、1−1.1−2.・・・・・・、1−N框上位タ
スク、2にユーザプログラム、Ioa割込レベル、11
−1.12−1.・・・・・・、lN−1に実行レペ−
1,12−2,・・・・・・、12−轡、・・・・・・
、IN−l、lN−2,・・・・・・、IN−MNげ内
部タスク、4 lはCPU、42はROM、43にRA
M、44はO20,45に入出力制御回路、46にキー
ゼ−y、4rにCRT、4Bは補助記憶装置、49は周
辺装置、51は資源、52はオペレーティングシステム
、53は高級言語処理プログラム、54はアプリケーシ
ョンプログラム、81に製造ライン、82に試料、84
框高級言語処理装置、85に外部補助記憶装置、86は
測定器、87は制御回路、88はアダプタを表わしてい
る。 特許出願人  アンリツ株式会社 第1図 第2囚 第3図 ta4図 第5図 第6(至) 第71111 第8図

Claims (1)

  1. 【特許請求の範囲】 単一のCPUを用いて、複数個の独立した処理手順を持
    つタスクを起動し、外部条件に即応して実行可能状態に
    あるタスクの中で最も高い優先度が割り当てられている
    タスクに実行権を与えるタスク管理機能を有するオペレ
    ーティングシステムと、 高級言語で記述されたアプリケーションプログラムと、 前記アプリケーションプログラムから命令を読み出して
    解読すると共に、命令実行中の優先度を所定の値に設定
    する命令実行管理部とその実行部とを有し、前記オペレ
    ーティングシステムの管理下でタスクの一つとして起動
    されて前記アプリケーションプログラムによって定義さ
    れたタスクが実行される高級言語処理システムとを備え
    、単一のCPUで多重タスク処理を行う高級言語処理方
    法において、 前記アプリケーションプログラムを複数の上位タスク群
    に分割すると共に、該上位タスク群に所定の優先度をそ
    れぞれ割り当て、 さらに、各上位タスク内を複数の内部タスク群にそれぞ
    れ分割すると共に、該内部タスク群に所定の優先度をそ
    れぞれ割り当て、 かつ、上位タスク内において、いずれの内部タスクより
    も優先度の高い実行レベルを各上位タスク群のそれぞれ
    に設け、 所定の優先度が割り当てられている各上位タスク群内の
    各内部タスク間において、実行権の切換えを行い高級言
    語の一命令を実行する場合は、その直前に該命令が属す
    る内部タスクの優先度を前記実行レベルの値に設定する
    ステップと、高級言語の一命令実行中は前記実行レベル
    の設定により内部タスク相互間の実行権の切換を抑制し
    て高級言語の一命令を不可分の処理として実行するステ
    ップと、該高級言語の一命令実行後には前記上位タスク
    内の本来の割り当てられた所定の優先度に戻すステップ
    と、上位タスク相互間においては実行権の切換を行う場
    合にはオペレーティングシステムのタスク管理機能によ
    り、CPUの機械語を単位として実行権の切換を行うス
    テップとを備え、高級言語を単位として実行権の切換が
    なされる内部タスク群と、CPUの機械語を単位として
    実行権の切換がなされる上位タスク群とを複合して実行
    処理できることを特徴とする高級言語処理方法。
JP22955486A 1986-09-30 1986-09-30 高級言語処理方法 Expired - Lifetime JPH0820962B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP22955486A JPH0820962B2 (ja) 1986-09-30 1986-09-30 高級言語処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP22955486A JPH0820962B2 (ja) 1986-09-30 1986-09-30 高級言語処理方法

Publications (2)

Publication Number Publication Date
JPS6385828A true JPS6385828A (ja) 1988-04-16
JPH0820962B2 JPH0820962B2 (ja) 1996-03-04

Family

ID=16893987

Family Applications (1)

Application Number Title Priority Date Filing Date
JP22955486A Expired - Lifetime JPH0820962B2 (ja) 1986-09-30 1986-09-30 高級言語処理方法

Country Status (1)

Country Link
JP (1) JPH0820962B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05216692A (ja) * 1991-09-06 1993-08-27 Internatl Business Mach Corp <Ibm> プログラム実行を管理する方法およびシステム

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4831599B2 (ja) * 2005-06-28 2011-12-07 ルネサスエレクトロニクス株式会社 処理装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05216692A (ja) * 1991-09-06 1993-08-27 Internatl Business Mach Corp <Ibm> プログラム実行を管理する方法およびシステム

Also Published As

Publication number Publication date
JPH0820962B2 (ja) 1996-03-04

Similar Documents

Publication Publication Date Title
US6539500B1 (en) System and method for tracing
JPS6258341A (ja) 入出力割込処理方式
JPH03109644A (ja) マイクロコンピュータ
JPS61269444A (ja) デ−タ伝送方式
JPS6385828A (ja) 高級言語処理方法
JP3015793B1 (ja) プログラマブルコントロ―ラ
JPH06324861A (ja) Cpu制御システム及び制御方法
JPH03144705A (ja) プログラマブルコントローラの動作状態監視装置
US20230305872A1 (en) Efficient central processing unit overcommit for virtual machines with symmetric multi-processing
JPH0814791B2 (ja) 処理システム
JPS6385829A (ja) 情報処理装置
JPS58103039A (ja) デ−タベ−スシステム
JP2002328832A (ja) メモリコントローラ
JPH059814B2 (ja)
JPS62237558A (ja) 共有メモリのイニシヤライズ制御方式
JPH01169564A (ja) プロセッサ間同期方式
JPH01310466A (ja) マルチプロセッサシステム
JPH0391046A (ja) データ処理装置
JPS63198129A (ja) プロシジヤ中の入力デ−タ処理方式
JPH09146786A (ja) 競合試験システム及び競合試験方法
JPH02108149A (ja) マルチプロセッサの排他制御機構
JPH01321525A (ja) ハードウェアセマフォ
JPH07114479A (ja) 割り込み制御方式
JPH0534698B2 (ja)
JPH04199449A (ja) デバイス制御装置