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

高級言語処理方法

Info

Publication number
JPH0820962B2
JPH0820962B2 JP22955486A JP22955486A JPH0820962B2 JP H0820962 B2 JPH0820962 B2 JP H0820962B2 JP 22955486 A JP22955486 A JP 22955486A JP 22955486 A JP22955486 A JP 22955486A JP H0820962 B2 JPH0820962 B2 JP H0820962B2
Authority
JP
Japan
Prior art keywords
task
execution
internal
level
priority
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 - Lifetime
Application number
JP22955486A
Other languages
English (en)
Other versions
JPS6385828A (ja
Inventor
祐二 川森
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)

Description

【発明の詳細な説明】 (産業上の利用分野) 本発明は、高級言語処理方法、特に高級言語で記述さ
れたプログラムを実行するパーソナルコンピユータやオ
フイスコンピユータの如き小中型電子計算機において、
高級言語によつて記述された複数のタスクを、指定した
優先度に従つて実行条件の変化に実時間で応答し並行し
て実行する多重タスクが可能な高級言語処理方法に関す
るものである。
(従来の技術) 電子計算機が本来の計算機能を離れ、制御器機として
あらゆる産業に使用されるようになつてきた。電子計算
機の有用性が認識され、その利用分野が拡大するにつ
れ、電子計算機自体にも大きな進歩がみられ、マイクロ
コンピュータやオフイスコンピユータ等の中小計算機に
も、実時間処理、多重プログラミング処理が行われるよ
うになつてきている。
高級言語、例えばBASIC、COBOL、FORTRAN、PL/I等に
よつて記述した複数の処理部分(タスク)を、指定した
優先度(順位)に従つてCPU使用の制御権を切り換え、
実行条件の変化に実時間に応答して複数個のタスクを並
行して実行する機能、すなわち多重タスク機能を有する
高級言語処理系としては、従来、次に説明する2つの方
式のものが知られている。
第1の方式は、高級言語の命令ステツプとは無関係に
タスク間の実行権の切換を行うものである。各タクスは
起動されると実行可能状態となり、さらに実行可能状態
のタスクのうちで最も高い優先度を有するタスクが、実
行状態となつて、高級言語で記述されたプログラムが実
行される。高級言語の命令が特定の事象の発生を持つと
いう内容であれば、そのタスクは待ち状態となり、この
場合、他に実行可能状態のタスクが存在すれば、このよ
うなタスクのうちで最も高い優先度を有するタスクが代
わつて実行状態となる。待ち状態となつた前記タスク
は、待つている事象が発生すると実行可能状態となり、
再び各タスクの優先度に応じて実行権の切換が行われ
る。
この方式では、上記の規則に従つて、各タスクに割り
当てられている優先度と事象の発生に実時間で対応して
タスクの実行権の切換が行われる。そして高級言語の命
令は、CPUの機械語の複数の命令によつて構成されるも
のであるため、一般には或るタスクの実行中に他のより
高い優先度を有するタスクが実行可能状態になつた場合
には、実行中の高級言語の命令の途中であつても実行権
の切換が行われるようになつている。
第2の方式は、高級言語の命令ステツプを最小の実行
単位としてタスク間の実行権の切換を行うものである。
この方式では起動されている各タスクの中から実行状態
とするタスクを決定する条件は、第1の方式と同じであ
るが、或るタスクが実行状態となり得る条件が満たされ
ても、その時点で他のタスクにおいて高級言語の命令を
実行中であつた場合には、その命令の実行が完了してか
ら実行権の切換が行われるようになつている。
(発明が解決しようとする問題点) このような従来の高級言語処理系においては、前記第
1の方式、第2の方式とも次に述べるような欠点があつ
た。すなわち、 第1の方式においては、各タスクの処理内容が高級言
語の命令で記述されているにもかかわらず、各タスク間
の実行権の切換は高級言語の命令を構成する機械語を単
位として行われるため、プログラム全体としての実行順
序が高級言語処理系内部の条件に依存することになり、
実行結果を把握することが困難であつた。つまり、例え
ば機械制御等を実行するプログラムにおいて、どのよう
な順で該プログラムが実行されてているか後に検討する
場合や、機械制御が予想通り制御されない場合の動作確
認の検討等、実行結果を理解しにくい欠点があつた。
第2の方式においては、高級言語の一命令の実行が終
了するまでタスク間の実行権の切換が待たされるため、
実際に実行権の切換が行われるまでの遅れ時間が大きく
なり、実時間処理が困難となる。また高級言語の各命令
の実行時間は各命令の内容によつて異なるので、このよ
うな遅れ時間は一定とならず、応答性の点で欠点があつ
た。
高級言語で記述されたプログラムによつて、実行条件
の変化に実時間で応答し、複数のタスクを並行して実行
しようとする場合、応答性と実行結果の理解のしやすさ
とは相反する問題であり、どちらを優先させるかは各タ
スクの実行内容によつて決定されるべきものである。
本発明は、上記の欠点を解決することを目的としてお
り、一つの高級言語処理系において、高級言語の命令を
構成する機械語を単位として実行権の切換がなされるタ
スクと、高級言語の命令を単位として実行権の切換が行
われるタスクとを複合して記述し実行できるようにし
て、応答性と実行結果の理解のしやすさとを同時に可能
ならしめた高級言語処理方法を提供することを目的とし
ている。
(問題点を解決するための手段) そのため本発明の高級言語処理方法は単一のCPUを用
いて、複数個の独立した処理手順を持つタスクを起動
し、外部条件の発生に即応して実行可能状態にあるタス
クの中で最も高い優先度が割り当てられているタスクに
実行権を与えるタスク管理機能を有するオペレーテイン
グシステムと、高級言語で記述されたアプリケーシヨン
プログラムと、前記アプリケーシヨンプログラムから命
令を読み出して解読すると共に、命令実行中の優先度を
所定の値に設定する命令実行管理部とその実行部とを有
し、前記オペレーテイングシステムの管理下でタスクの
一つとして起動されて前記アプリケーシヨンプログラム
によつて定義されたタスクを実行する高級言語処理プロ
グラムとを備え、単一のCPUで多重タスク処理を行う高
級言語処理方法において、前記アプリケーシヨンプログ
ラムを複数の上位タスク群に分割すると共に、該上位タ
スク群に所定の優先度をそれぞれ割り当て、さらに各上
位タスク内を複数の内部タスク群にそれぞれ分割すると
共に、該内部タスク群に所定の優先度をそれぞれ割り当
てる。そして上位タスク内において、いずれの内部タス
クよりも優先度の高い実行レベルを各上位タスク群のそ
れぞれに設けておく。所定の優先権が割り当てられてい
る各上位タスク群内の各内部タスク間において、高級言
語の一命令を実行する直前に該命令が属する内部タスク
の優先度を該内部タスクが属する上位タスク内に設けら
れた前記実行レベルの値に設定し、該高級言語の一命令
実行後には本来の割り当てられた所定の優先度に戻し、
その後のCPUの実行処理に当つてはオペレーテイングシ
ステムのタスク管理機能に内部タスクの実行権の切換を
委ねる構成とする。これによつて各上位タスク内におい
ては、高級言語の一命令実行中は前記実行レベルの設定
により内部タスク相互間の実行権の切換を抑制して高級
言語の一命令を不可分の処理として実行し、一方、上位
タスク相互間においてはオペレーテイングシステムのタ
スク管理機能により、CPUの機械語を単位として実行権
の切換を行い、高級言語を単位として実行権の切換がな
される内部タスク群と、CPUの機械語を単位として実行
権の切換がなされる上位タスク群とを複合して実行処理
できるようにしたことを特徴としている。
以下図面を参照しながら本発明の一実施例を説明す
る。
(実施例) 第1図は本発明に係る高級言語処理方法によりタスク
の実行権の切換制御のため各タスクに優先度を割り当て
る優先度割当て説明図、第2図は優先度表示説明図、第
3図は本発明に係る高級言語処理方法によつて実行され
るタスクの構成説明図である。
第3図において、2はコーザプログラムであつて、例
えばFORTRAN,COBOL,BASIC,PL/I等高級言語で記述された
アプリケーシヨンプログラムである。該コーザプログラ
ム2は複数Nの上位タスク群1−1,1−2,……,1−Nに
分割され、単一のCPUがこれらのN個の上位タスクをそ
れぞれ独自の流れをもつて並行して実行する。これらの
各上位タスク1−1,1−2,……,1−Nはさらに複数の内
部タスクの集まりとして構成されている。例えば♯1上
位タスク1−1はM1個の内部タスク11−1,11−2,……,1
1−M1,♯2上位タスク1−2はM2個の内部タスク12−
1,12−2,……,11−M2の様に構成されている。これらの
各内部タスクは前記の如く高級言語の命令によつて記述
された独立した処理手順を持つプログラムである。
前記N個の上位タスク群、及び各上位タスク内の各内
部タスクには、それぞれ重複がない優先度、すなわち優
先順位が割り当てられる。
第1図に示すように、各上位タスク1−1,1−2,……,
1−Nには重複のない優先度Aを1,2,3,…,Nの順に割り
当て、さらに上位タスク内の各内部タスクに対してもそ
の内部タスクが属している上位タスク内で、重複のない
優先度Bが1,2,3,…の順にそれぞれ割り当てられる。
内部タスクの優先度は、第2図図示の如く上位タスク
優先度Aを示す上位桁3と内部タスク優先度Bを示す下
位桁4とを合成した合成値5の値Pで示される。オペレ
ーテイングシステムは、この優先度を示す合成値Pのよ
り小さなタスクを優先度が高いものとして管理する。そ
して各上位タスク1−1,1−2,……,1−Nには、内部タ
スクに割り当てられた内部タスク優先度とは別に「実行
レベル」と呼ばれる優先度が設けられている。該「実行
レベル」は当該「実行レベル」が属する上位タスク内に
おいて最も優先度の高い順位が割り当てられている。つ
まり第2図に示された下位桁4の値Bが「0」であり、
該「実行レベル」が属する上位タスク内のどの内部タス
クよりも高い優先度を有する。また「実行レベル」は特
定のタスクに割り当てられるものではなく、後に説明す
る様に高級言語の命令実行時に、一時的に実行されるべ
き内部タスクの優先度を格上げするために使用されるも
のである。
そしてさらに、これらのいずれの「実行レベル」より
さらに優先度の高い値を持つ割込レベル10が設けられて
いる。該割込レベル10は第2図に示された上位桁3の値
A及び下位桁4の値B共に「0」であり、合成値5の値
Pが「00」で表わされる優先度を持つている。
第1図に示された優先度の割り当てによつて、或る上
位タスク、例えば♯3上位タスク1−3に属するすべて
の内部タスク13−1,13−2,…….13−M3は♯3上位タス
ク1−3よりも高い優先度を持つ上位タスク、例えば♯
1上位タスク1−1内の内部タスク11−1,11−2,……,1
1−M1よりは優先度が低く、またより低い優先度を持つ
上位タスク、例えば♯5上位タスク1−5内の内部タス
ク15−1,15−2,……,15−M5よりは優先度が高くなる。
CPUが或る上位タスク内の或る内部タスクの高級言語
の一命例の実行を開始するごとに、該内部タスクの優先
度は一時的に置換され、当該内部タスクが属する上位タ
スク内に設けられている実行レベルの優先度の値に設定
される。該命令の実行が終了した時に本来の優先度に戻
される。
このような優先度の割り当て及び各上位タスク内に実
行レベル及び割込レベルを設けることにより、上位タス
ク内の内部タスク相互間では、高級言語の一命令を単位
としてタスクの実行権が切り換えられ、一方、上位タス
ク相互間ではオペレーテイングシステムのタスク管理機
能の下で高級言語の命令ステツプとは無関係に、CPUの
機械語を単位としてタスクの実行権が切り換えられる構
成となる。
次に、第4図のハードウエアの構成図、第5図の高級
言語処理系の論理的構成例を用いて、本発明に係る高級
言語処理方法が用いられる高級言語処理系の全体的な構
成及びその処理を説明する。
第4図において、CPU41は、例えば16ビツト等のマイ
クロプロセツサ、OSC44は水晶振動子等で構成される発
振器である。高級言語処理系を構成するソフトウエアー
の一部は、ROM42に記憶されており、電源投入時に起動
されて補助記憶装置48から入出力制御回路45を介してRA
M43へ必要なソフトウエアがロードされ、オペレーテイ
ングシステムの操作が可能となる。オペレーテイングシ
ステムに対する指示はキーボード46から入力され、シス
テムからのメツセージはCRT47に表示される。補助記憶
装置48はプログラムやデータを記憶するために用いられ
る。
第5図において、CPUの使用権、メモリ、その他のハ
ードウエアは、オペレーテイングシステム52によつて管
理される資源51として位置付けられている。
高級言語処理プログラム53はオペレーテイングシステ
ム52の管理によつてCPUの使用権、メモリを与えられ、
また、オペレーテイングシステム52を介してハードウエ
アをアクセスする。オペレーテイングシステム52はタス
ク管理、事象管理、メモリ管理、入出力管理の各機能を
有する。タスク管理機能はメモリに格納されているプロ
グラムを指定の番地から起動し(タスクの起動)、さら
に、他に起動されているタスクがある場合には各タスク
の優先度に従つて実行権の切換を行う(優先順位方式の
場合)。この場合、実行権の切換はCPUの機械語を単位
として行われる。事象管理機能はハードウエアから発生
する条件の変化を検出し、その変化に対応して起動され
ているタスクの状態を変更する。例えば、タスクが或る
条件の変化を待つことをオペレーテイングシステム52に
要求すると、該タスクは「実行状態」から「待ち状態」
に変更される。また、「待ち状態」にあるタスクは待つ
ている条件が満された時、「実行可能状態」に変更され
る。前記のタスク管理機能は、このようなタスクの状態
の変化に対応して実行権の切換を行う。高級言語処理プ
ログラム53は命令実行管理部と命令実行部とから成り、
オペレーテイングシステム52の管理の下にタスクの一つ
として実行される。高級言語処理プログラム53は高級言
語で記述されたアプリケーシヨンプログラム54を一命令
ずつ読み出して実行すべき内容を解読して実行するが、
実際に実行されるのは高級言語処理プログラム53に含ま
れている命令実行管理部ならびに命令実行部である。高
級言語処理プログラム53はアプリケーシヨンプログラム
54の内容に従つてオペレーテイングシステム52に対して
タスクを登録し起動を要求する。
第6図は高級言語処理系の命令実行管理部の実行手順
を示すフローチヤートである。上記第3図に示されたタ
スク構成を持つ高級言語で記述されたコーザプログラム
2の各内部タスクは、起動されるとプログラムを実行す
るために必要なメモリを個別に与えられ、高級言語処理
プログラム53の命令実行管理部の開始番地から第6図に
示されたフローチヤートに従つてその実行を開始する。
該命令実行管理部は個別にメモリに与えられている各タ
スクによつて論理的に同時に実行できる再入可能な形式
で作られている。
命令実行管理部は高級言語で記述されたアプリケーシ
ヨンプログラム54から命令を一個ずつ読み出して実行す
るという動作を繰返し実行する。高級言語処理プログラ
ム53に対してアプリケーシヨンプログラム54の実行開始
が指示されると、高級言語処理プログラム53は命令読み
出しのポインタをアプリケーシヨンプログラム54の先頭
に設定し、CPUの命令の実行開始番地を示すポインタを
第6図におけるステツプS1に設定してオペレーテイング
システム52にタスクの起動を要求する。このようにして
起動されたタスクは実行権を与えられると、第6図に示
されたステツプS1から実行を開始し、ステツプS1からス
テツプS2、ステツプS3、ステツプS4、ステツプS5、ステ
ツプS6、ステツプS7、ステツプS8、ステツプS9と実行
し、これ以後通常はステツプS9からステツプS3、ステツ
プS7、ステツプS8、そしてステップS9の順に実行する。
ステツプS8で実行する高級言語の命令がアプリケーシヨ
ンプログラムによつて定義したタスクを起動するという
内容であつた場合には、前記のアプリケーシヨンプログ
ラム54を実行開始するための処理と同様の処理によつ
て、オペレーテイングシステムにタスクの起動を要求す
る。従つて命令実行管理部は起動されているアプリケー
シヨンプログラムのタスクの個数と同じ数だけ個別のプ
ログラムを並行して実行することになる。例えば第3図
に示されたユーザプログラム2において、♯1上位タス
ク1−1,♯2上位タスク1−2、♯3上位タスク1−3
の3個のプログラムが上記説明の如く起動されたとき、
これら♯1上位タスク1−1のプログラム、♯2上位タ
スク1−2のプログラム、♯3上位タスク1−3のプロ
グラムの3個の個別の各プログラムが独自に並行して実
行される。
ところで、例えば♯2上位タスク1−2に属する内部
タスク12−2が実行されるべく、ステツプS1の割込みフ
ラグがオンにセットされ、これから実現してもよいとい
う条件が確定したとき、すなわち内部タスク12−2の或
る命令を始める直前に該内部タスク12−2に予め割り当
てられている所定の優先度のPの値22が、第1図で説明
した如く該内部タスク12−2が属する上位タスク1−2
に設けられた「実行レベル」の優先度の値20に一時的に
置換され設定される(ステツプS2)。このような特別の
優先度が設定された状態の下で、該内部タスク12−2の
或る命令が実行される。そして該命令の実行を繰返して
いる間は、ステツプS2の処理によつて該内部タスク12−
2の優先度は「実行レベル」の値20が保持されているの
で、該内部タスク12−2内のどのような優先度を持つ内
部タスク12−1,12−3,……,12−M2が実行可能状態とな
つたとしても、ステツプS3に達するまでは実行中の内部
タスク12−2が実行権を保持する。このステツプS3で判
断に用いられるフラグは、新たに実行可能状態になつた
他の内部タスクが実行中の内部タスク12−2に対して実
行権の切換を要求するための情報であり、この高級言語
の一命令の実行が終了した時、必要な場合に限つてその
実行権を切り換える処理を行うためのものである。従つ
てステツプS3で割込みフラグがオンであることを検出す
ると、ステツプS1で立てられているフラグをクリアし
(ステップS4)、実行中であつても内部タスク12−2の
優先度は予め割り当てられている本来の所定の優先度に
戻される。すなわち優先度の値22に設定される(ステツ
プS5)。
ここで、他により高い優先度を持ち、かつ実行可能状
態になつている内部タスク、例えば内部タスク12−1と
すると、内部タスク12−1が属する♯2上位タスク1−
2に設けられた「実行レベル」の優先度の値20が内部タ
スク12−1に設定され、該内部タスク12−1に実行権が
移る。従って該内部タスク12−1が、第6図のフローチ
ャートに従って実行される。その後、実行権を移された
内部タスク12−1が待ち状態になるか実行を停止する
と、実行可能状態にある内部タスクの内、該内部タスク
12−2の優先度が最も高い場合、該内部タスク12−2は
再び実行権が与えられて、該内部タスク12−2の優先度
は該内部タスク12−2の属する♯2上位タスク1−2に
設けられた「実行レベル」の優先度の値20に再び置換設
定され、ステツプS6から実行が再開される。一方、該内
部タスク12−2の優先度より高い内部タスクが存在する
場合、該内部タスク12−2より高い優先度を有する内部
タスクに実行権が移り、該内部タスク12−2の優先度が
最も高くなるまで内部タスク12−2への実行権の切換が
待たされる。
また、第6図のステツプS8において実行される命令の
内容が、一定時間の経過を待つたり、外部条件の変化を
待つなどの内部タスク12−2を待ち状態にする命令であ
つた場合には、第7図に示される手順でその命令が実行
される。すなわち、ステツプS11は内部タスク12−2が
待ち状態になつた後、条件が満たされた時に実行すべき
ステツプS13及びステツプS14の処理を最優先で実行でき
るようにするための準備である。ここで「割込レベル」
は、高級言語処理プログラム53によつて起動された内部
タスクのどの内部タスクの優先度より常に高い優先度を
有している。すなわち第1図で説明した如く優先度の値
Pが最も高い「00」の値を待つている。
該内部タスク12−2の優先度を「割込レベル」の優先
度の値「00」に変更した後(ステツプS11)、直ちに命
令の内容に応答した事象が発生するまで該内部タスク12
−2は待ち状態に変わる。この時、他に実行可能状態に
なつている内部タスクが存在すれば、それらの中で最も
高い優先度を有する内部タスク、例えば♯2上位タスク
1−2内の内部タスク12−3が最も優先順位が高いもの
とすれば、該内部タスク12−3に実行権が与えられる。
従って該内部タスク12−3は第6図に示されたフローチ
ヤートに従つてそのプログラムが実行される。
待ち状態となつた内部タスク12−2は指定された条件
が発生すると直ちに実行状態となつて、割込フラグをオ
ンにすると共に、該内部タスク12−2に予め割り当てら
れている本来の所定の優先度の値22を設定する(ステツ
プS13,14)。ここでは高級言語の命令を実行中の内部タ
スク12−3に対してステップS13によって該内部タスク1
2−2に実行権の切換を要求するだけで、ステップ14を
実行すると命令を実行中の内部タスク12−3に一旦実行
権が戻される。そして命令を実行中の内部タスク12−3
が、独自の第6図に示されるステップS3に達して前記内
部タスク12−2に起因する割込フラグを検出し、さらに
ステップS4,S5を経て内部タスク12−3の優先度を本来
の予め定められている所定の優先度の値23に設定された
時点で、実行可能状態にある内部タスクの内、該内部タ
スク12−2の優先度が最も高い場合に、該内部タスク12
−2に実行権の切換が行われ、第7図の手順を実行し停
止していた該内部タスク12−2は実行権が与えられるこ
ととなり、ステツプS15からその実行を再開する。ま
た、該内部タスク12−2の優先度より高い内部タスクが
存在する場合、該内部タスク12−2より高い優先度を有
する内部タスクに実行権が移り、該内部タスク12−2の
優先度が最も高くなるまで実行権の切換が待たされるこ
とは前記の場合と同様である。
以上は♯2上位タスク1−2に属する内部タスクの動
作について内部タスク12−2を主に内部タスク12−1及
び内部タスク12−3を例にあげて説明してきたが、これ
らの内部タスク12−1及び内部タスク12−3それぞれが
内部タスク12−2の立場に置かれ、その処理が上記と同
様の過程を経ることは勿論のこと、他の上位タスク(♯
1上位タスク1−1及び♯3上位タスク1−3)に属す
る内部タスクについても全く同様の処理が行われること
は言うまでもない。
このように各上位タスク内にどの内部タスクより優先
度の高い実行レベルをそれぞれ設け、また最も優先度の
高い割込レベルを設け、該割込レベル及び該実行レベル
を用いることにより、高級言語を単位として実行権の切
換が行われる内部タスク群と、CPUの機械語を単位とし
て実行権の切換が行われる上位タスク群とを複合して実
行できる。従つて従来の相反する応答性とユーザプログ
ラムの使いやすさとを同時に解決することができる。す
なわち実時間処理で実行することができると共に、後程
CPUの実行結果を容易に知ることができる。また、中小
電子計算機においても、ユーザが高級言語で容易に多重
タスクのプログラムを記述することができるようにな
る。
次に本発明に係る高級言語処理方法を自動制御システ
ムに応用した例について説明する。
上記の表−1はそのプログラムの一例、第8図は自動
制御システムの一構成例である。表−1のプログラムで
使用した高級言語は、JIS規格(JIS C6207)により定め
られているBASIC言語に、さらに複数の独立した実行手
順をタスクとして記述する機能を付加したものである。
第8図において、高級言語処理装置84は第4図に示し
たとおりのハードウエア構成を持ち、この自動制御シス
テムにおけるコントローラである。この自動制御システ
ムは、製造ライン81上を運ばれる試料82が所定の位置に
達した時、アダプタ88が持つセンサによつて試料82の位
置を検出し、制御回路87を経て高級言語処理装置84に割
込み信号として伝え、これを契機として高級言語処理装
置84が実行する表−1のプログラムによつて、試料82の
調整(ADJUST)をアダプタ88を介して行うとともに調整
結果を測定器86によつて測定し、そのデータを外部補助
記憶装置85にフアイルとして記録する。
表−1のプログラムは2つの上位タスクDATAおよびCO
NTROLにより構成されており、それぞれ独立に行番号を
持つプログラムとなつている。各々のプログラムにおい
て、先頭の行の命令PROGRAMは上位タスクの名前を宣言
する。上位タスクDATAは、さらに行番号30〜行番号250
の内部タスクSAVEDATAと行番号270〜行番号380の内部タ
スクMEASUREの2つの内部タスクで構成されている。行
番号30の命令PARACTは内部タスクの名前SAVEDATAと優先
度を宣言し、行番号250の命令END PARACTは内部タスク
の終りを表す。同様に、行番号270から行番号380まで
が、2番目の内部タスクMEASUREである。上位タスクCON
TROLは内部タスクMAINを1個だけ持つ。上位タスクDATA
の行番号20の命令PROCESS EVENTは外部事象の名前MEASE
NDを宣言するとともに、ハードウエア条件との対応を定
義する。この宣言は上位タスク内の各内部タスクに対し
て共通の宣言であり、行番号20においては事象名MEASEN
Dを、第8図の測定器86から測定完了信号が発生すると
いう条件に対応づけている。また、上位タスクCONTROL
の行番号20においては、事象名ADJUSTを、第8図のアダ
プタ88から試料検出信号が発生するという条件に対応づ
けている。その他、表−1のプログラムに含まれる命令
の中で主要なものについて、その機能を簡単に示す。
COM 上位タスク内のCOMMON変数を宣 言する。
LOAD TASK 上位タスクを指定した名前のフア イルからメモリにロードする。
START TASK 上位タスクを起動する。
START 内部タスクを起動する。
CONNECT EVENT 事象の発生を有効にする。
WAIT EVENT 指定した事象が発生するまで内部 タスクを待ち状態にする。
次に表−1のプログラムの動作について概要を説明す
る。
まず、上位タスクDATAをメモリに格納して起動する
と、最初の内部タスクSAVEDATAが実行を開始する。この
内部タスクは、内部タスクMEASUREによつてCOMMON変数
を用いたバツフアに書き込まれたデータを順番に読み出
してフアイルに格納する。バツフアは100個のデータを
格納できる容量を有し、最終データの次は先頭のデータ
をアクセスすることによつてリング状に繰返し使用され
る。バツフアのアクセス位置はCOMMON変数のSAVEPTによ
り書込み位置が示され、READPTにより読出し位置が示さ
れる。内部タスクSAVEDATAは行番号100,行番号110で上
位マスクCONTROLを起動し、行番号120で内部タスクMEAS
UREを起動し、行番号130で事象MEASENDの発生を有効に
した後、行番号140から行番号200までのループによつて
バツフアから読み出したデータを順番にフアイルに書き
込む。
内部タスクMEASUREは、行番号310のWAITEVENT命令に
よつて第8図の測定器86からデータを読み出してバツフ
アに書き込む。
上位タスクCONTROLは、第8図のアダプタ88から試料
検出信号が発生するまで待つた後、アダプタ88へ試料82
を調整するためのデータと測定開始を指定するデータと
を送出する。表−1のプログラムでは上位タスクCONTRO
Lの優先度が最も高く、上位タスクDATA内では内部タス
クMEASUREの方が内部タスクSAVEDATAよりも優先度が高
くなつている。そのため内部タスクSAVEDATAの行番号14
0から行番号200までのループを実行中に測定完了信号が
発生すると、実行中の一命令が終了してから内部タスク
MEASUREに実行権が与えられて行番号320〜行番号360が
実行される。一方、2つの上位タスクの間では上位タス
クCONTROLの方が優先度が高いため、事象ADJUSTが発生
すると上位タスクDATA内で高級言語の命令を実行中であ
るかどうかにかかわらず、直ちに上位タスクCONTROL内
の内部タスクMAINに実行権が与えられて行番号70〜行番
号90が実行される。
第9図は、表−1のプログラムに関する3つの内部タ
スクについて高級言語処理プログラムの実行管理部の実
行手順を個別に表わしたものである。
内部タスクSAVEDATAは、通常ステツプS103,S107,S10
8,S109の経過を繰返したどつてプログラムの行番号140
〜行番号200を実行している。内部タスクMEASUREはプロ
グラムの行番号310を実行すると事象MEASENDが発生する
まで待ち状態となるが、この行の実行は、第9図におい
てはステツプS211,S212に対応する。そして事象MEASEND
が発生すると、ステツプS213,S214が実行され、その後
内部タスクSAVEDATAによつて実行中であつた命令の実行
が終了すると、ステツプS103,S104,S105が順に実行さ
れ、ここでタスクの実行権の切換が起きて、内部タスク
MEASUREに実行権が与えられて、ステツプS213,S214,S21
5と実行が行われる。以後プログラムの行番号320〜行番
号360,行番号300と実行されて、再び行番号310が実行さ
れると、内部タスクSAVEDATAに実行権が切換えられて、
ステツプS106から実行を再開する。このようにして上位
タスクDATA内の2つの並列処理部相互間では、BASIC言
語の一命令の実行が終了するのを待つてから実行権の切
換が行われる。また、上位タスクCONTROLに属する唯一
の内部タスクMAINは、プログラムの行番号60を実行する
と事象ADJUSTが発生するまで待ち状態となるが、この行
の実行は、第9図においてはステツプS311,S312に対応
する。そして事象ADJUSTが発生するとステツプS313,S31
4が実行され、さらに直ちにステツプS315が実行され、
プログラムの行番号70〜行番号90,行番号50が実行され
る。この場合は事象が発生すると、上位タスクDATA内で
BASICの命令が実行途中であつても、直ちに上位タスクC
ONTROLに実行権が与えられる。
以上説明したように、表−1のプログラムではBASIC
言語の命令を単位として実行権の切換が行われる2つの
内部タスクを持つ上位タスクと、これらの内部タスク内
のBASIC言語の命令の実行とは独立して実行権を得るこ
とのできる別の上位タスクとが複合して実行される。
(発明の効果) 以上説明した如く、本発明によれば、高級言語で記述
されたプログラムにおいて、高級言語の命令を構成する
機械語を単位として実行権の切換がなされるタスクと、
高級言語の命令を単位として実行権の切換がなされるタ
スクの両方を実行することができる。従つて前者の最小
限の遅れ時間で条件の変化に応答すべき処理に適した応
答性の利点と、後者のタスク間で共通の変数(COMMON変
数)を用いて容易にデータの変換ができる利点、及び全
体としての実行経過を高級言語の命令を単位として把握
することができるので、プログラムの開発、動作確認の
作業効率が良い利点が共に残存する。そしてこの両者を
複合して実行できることにより、処理対象の性格に応じ
て両者を使い分け、プログラムの応答性とプログラムの
作りやすさとを両立させることが可能となる。
【図面の簡単な説明】
第1図は本発明に係る高級言語処理方法によりタスクの
実行権の切換制御のため各タスクに優先度を割り当てる
優先度割当て説明図、第2図は優先度表示説明図、第3
図は本発明に係る高級言語処理方法によつて実行される
タスクの構成説明図、第4図はハードウエア構成例、第
5図は高級言語処理系の論理的構成例、第6図は高級言
語処理系の命令実行管理部の実行手順を示すフローチヤ
ート、第7図は待ち命令の実行手順を示すフローチヤー
ト、第8図は自動制御システムの一構成例、第9図は3
つの内部タスクについて高級言語処理プログラムの実行
管理部の実行手順を個別に示したフローチヤートであ
る。 図中、1−1,1−2,……,1−Nは上位タスク、2はユー
ザプログラム、10は割込レベル、11−1,12−1,……,1N
−1は実行レベル、11−1,11−2,……,11−M1,12−1,12
−2,……,12−M2,……,1N−1,1N−2,……,1N−MNは内
部タスク、41はCPU、42はROM、43はRAM、44はOSC、45は
入出力制御回路、46はキーボード、47はCRT、48は補助
記憶装置、49は周辺装置、51は資源、52はオペレーテイ
ングシステム、53は高級言語処理プログラム、54はアプ
リケーシヨンプログラム、81は製造ライン、82は試料、
84は高級言語処理装置、85は外部補助記憶装置、86は測
定器、87は制御回路、88はアダプタを表わしている。

Claims (1)

    【特許請求の範囲】
  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 JPS6385828A (ja) 1988-04-16
JPH0820962B2 true 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
JP2007011426A (ja) * 2005-06-28 2007-01-18 Nec Electronics Corp 処理装置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2520543B2 (ja) * 1991-09-06 1996-07-31 インターナショナル・ビジネス・マシーンズ・コーポレイション プログラムの実行を管理する方法及びシステム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007011426A (ja) * 2005-06-28 2007-01-18 Nec Electronics Corp 処理装置

Also Published As

Publication number Publication date
JPS6385828A (ja) 1988-04-16

Similar Documents

Publication Publication Date Title
US5274813A (en) Operation system having a migration function which moves saved data associated with an interrupted process to a different save area
US4859995A (en) Mouse pointer with switchable emulation mode
JPS61272833A (ja) デ−タ処理装置
US5968159A (en) Interrupt system with fast response time
JPH0926889A (ja) 仮想計算機システム
JPH0820962B2 (ja) 高級言語処理方法
JPH0736529A (ja) 数値制御装置の制御ソフトウェア実行システム
EP0223463B1 (en) Multiprocessor data processing system
JPH08272755A (ja) プロセッサ切替え装置
JPH02130666A (ja) マルチプロセッサシステムのシステム再構成方式
JP3015793B1 (ja) プログラマブルコントロ―ラ
JPS6029760A (ja) 複写機制御方式
JPS5965306A (ja) シ−ケンス制御装置
JPS59180618A (ja) 周辺装置のプログラム・ロ−デイング制御方式
JPS6385829A (ja) 情報処理装置
JPS61101865A (ja) マルチマイクロプロセツサシステム
JPH03144705A (ja) プログラマブルコントローラの動作状態監視装置
JPH11306040A (ja) エミュレータのトレース装置
JP3022398B2 (ja) 仮想計算機方式
JPH0756633B2 (ja) タスク切換え方式
JPS5965307A (ja) シ−ケンス制御装置
JP2571260B2 (ja) 論理時計による動作環境選択処理方式
JPS635790B2 (ja)
JPH03232051A (ja) セマフォアクセス制御方法
JPH09146786A (ja) 競合試験システム及び競合試験方法