JPH04322331A - マルチタスク制御装置 - Google Patents
マルチタスク制御装置Info
- Publication number
- JPH04322331A JPH04322331A JP3092002A JP9200291A JPH04322331A JP H04322331 A JPH04322331 A JP H04322331A JP 3092002 A JP3092002 A JP 3092002A JP 9200291 A JP9200291 A JP 9200291A JP H04322331 A JPH04322331 A JP H04322331A
- Authority
- JP
- Japan
- Prior art keywords
- task
- address
- tcb
- page
- task control
- 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
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【0001】
【産業上の利用分野】本発明は、1つのマイクロプロセ
ッサで複数の固有の目的を持つプログラム(以下、タス
クと称す)を処理させるためのマルチタスクオペレーテ
ィングシステムにおいて、各タスクが各種の待ち行列を
構成する際のマルチタスク制御装置に関するものである
。
ッサで複数の固有の目的を持つプログラム(以下、タス
クと称す)を処理させるためのマルチタスクオペレーテ
ィングシステムにおいて、各タスクが各種の待ち行列を
構成する際のマルチタスク制御装置に関するものである
。
【0002】
【従来の技術】近年、マルチタスク制御装置は、1つの
マイクロプロセッサで複数のタスクを切り換えながら実
行させ、資源を有効に利用するためのリアルタイムオペ
レーティングシステム(以下、リアルタイムOSと称す
)として、8ビットマイクロプロセッサなどの安価なマ
イクロプロセッサでも応用されてきている。
マイクロプロセッサで複数のタスクを切り換えながら実
行させ、資源を有効に利用するためのリアルタイムオペ
レーティングシステム(以下、リアルタイムOSと称す
)として、8ビットマイクロプロセッサなどの安価なマ
イクロプロセッサでも応用されてきている。
【0003】しかしながら、安価ではあるが機能の低い
マイクロプロセッサで応用されるほど、リアルタイムO
Sを使った時のメモリの冗長性やタスク実行におけるオ
ーバーヘッドが問題となっている。
マイクロプロセッサで応用されるほど、リアルタイムO
Sを使った時のメモリの冗長性やタスク実行におけるオ
ーバーヘッドが問題となっている。
【0004】以下に、従来のマルチタスク制御装置につ
いて説明する。一般に、リアルタイムOSでは、各タス
クを切り換えながら実行するのに必要なタスク制御情報
を、タスクごとにブロック化して保存しており、これを
タスク制御ブロック(以下、TCBと称す)と呼んでい
る。
いて説明する。一般に、リアルタイムOSでは、各タス
クを切り換えながら実行するのに必要なタスク制御情報
を、タスクごとにブロック化して保存しており、これを
タスク制御ブロック(以下、TCBと称す)と呼んでい
る。
【0005】図6は、64Kバイトのアドレス空間を持
った8ビットのマイクロプロセッサで、タスク数が3の
従来のマルチタスク制御装置の機能ブロック図である。
った8ビットのマイクロプロセッサで、タスク数が3の
従来のマルチタスク制御装置の機能ブロック図である。
【0006】図6において、TCB初期化情報601は
、各TCBの初期情報が記録された読み出し専用ファイ
ルである。TCB配置手段602は、TCB初期化情報
601からTCBを生成するための初期情報を読み出し
、TCBを生成した後にメモリ603上の任意のアドレ
スに配置するもので、ここでは13F9h(16進表示
)から配置している。メモリ603は、配置されたTC
Bや接続キューを記憶しておくためのもので、第1〜第
3タスクのTCB604〜606は、TCB配置手段6
02によって配置された各タスクのTCBで、その内容
は後述する図7(a)である。接続キュー607は、待
ち行列の先頭のTCBのアドレスを示すものである。 タスク接続管理手段608は、各TCBを操作してタス
クの待ち行列を管理するものである。
、各TCBの初期情報が記録された読み出し専用ファイ
ルである。TCB配置手段602は、TCB初期化情報
601からTCBを生成するための初期情報を読み出し
、TCBを生成した後にメモリ603上の任意のアドレ
スに配置するもので、ここでは13F9h(16進表示
)から配置している。メモリ603は、配置されたTC
Bや接続キューを記憶しておくためのもので、第1〜第
3タスクのTCB604〜606は、TCB配置手段6
02によって配置された各タスクのTCBで、その内容
は後述する図7(a)である。接続キュー607は、待
ち行列の先頭のTCBのアドレスを示すものである。 タスク接続管理手段608は、各TCBを操作してタス
クの待ち行列を管理するものである。
【0007】図7(a)は、図6におけるメモリ603
上に配置される各タスクのTCB604〜606の内の
1つで、従来構成の一例を示したTCB構成図である。
上に配置される各タスクのTCB604〜606の内の
1つで、従来構成の一例を示したTCB構成図である。
【0008】図7(a)において、701は各種の待ち
行列を構成する時にタスクのつながりを示して待ち行列
を構成するため、次のタスクのTCBアドレスを保存す
る16ビットのタスク接続ポインタである。702〜7
05はその他のタスク管理情報で、ここではたとえば以
下のように構成される。
行列を構成する時にタスクのつながりを示して待ち行列
を構成するため、次のタスクのTCBアドレスを保存す
る16ビットのタスク接続ポインタである。702〜7
05はその他のタスク管理情報で、ここではたとえば以
下のように構成される。
【0009】702はタスク状態を示す8ビットの情報
で、該当タスクが実行状態なのか休止状態なのかなどの
タスクの状態が保存され、703はタスク優先順位を示
す8ビットの情報である。704は16ビットのタイム
アウトカウンタで、該当タスクが時間待ち状態の時にタ
スクの時間管理が行われる。705は16ビットのタス
クスタックポインタで、該当タスクが実行状態でなくな
る際のスタックポインタが保存される。
で、該当タスクが実行状態なのか休止状態なのかなどの
タスクの状態が保存され、703はタスク優先順位を示
す8ビットの情報である。704は16ビットのタイム
アウトカウンタで、該当タスクが時間待ち状態の時にタ
スクの時間管理が行われる。705は16ビットのタス
クスタックポインタで、該当タスクが実行状態でなくな
る際のスタックポインタが保存される。
【0010】図7(b)は、TCB接続の1例を示した
TCB接続図で、例えば実行待ちした際のタスクの待ち
行列を示したものである。
TCB接続図で、例えば実行待ちした際のタスクの待ち
行列を示したものである。
【0011】図7(b)において、接続キュー711は
タスク先頭指示手段であり、待ち行列の先頭タスクのT
CBアドレスを8ビットずつ上位と下位に分けて指し示
した16ビットの接続キューである。タスク接続ポイン
タ712,713,714はタスク接続指示手段であり
、該タスクの次に待ちとなっているタスクのTCBアド
レスを指し示すものである。
タスク先頭指示手段であり、待ち行列の先頭タスクのT
CBアドレスを8ビットずつ上位と下位に分けて指し示
した16ビットの接続キューである。タスク接続ポイン
タ712,713,714はタスク接続指示手段であり
、該タスクの次に待ちとなっているタスクのTCBアド
レスを指し示すものである。
【0012】図6における接続キュー607,第1タス
クのTCB604,第2タスクのTCB605,第3タ
スクのTCB606は、それぞれ図7(b)の接続キュ
ー711,第1タスクのTCB713,第2タスクのT
CB712,第3タスクのTCB714に対応する。
クのTCB604,第2タスクのTCB605,第3タ
スクのTCB606は、それぞれ図7(b)の接続キュ
ー711,第1タスクのTCB713,第2タスクのT
CB712,第3タスクのTCB714に対応する。
【0013】以上のように構成された従来のマルチタス
ク制御装置について、以下図6、図7(b)、図8およ
び図9を用いて説明する。
ク制御装置について、以下図6、図7(b)、図8およ
び図9を用いて説明する。
【0014】まず、図6のTCB配置手段602は、T
CB初期化情報601からTCBの初期情報を受け、各
タスクのTCBを生成し、メモリ603の任意の場所か
ら順に(ここでは13F9(16進表示)番地から)T
CBを配置する。メモリ603上に配置されたTCB6
04〜606は以降タスク接続管理手段608によって
管理される。TCB配置手段602とタスク接続管理手
段608の処理の詳細を図8と図9に示す。
CB初期化情報601からTCBの初期情報を受け、各
タスクのTCBを生成し、メモリ603の任意の場所か
ら順に(ここでは13F9(16進表示)番地から)T
CBを配置する。メモリ603上に配置されたTCB6
04〜606は以降タスク接続管理手段608によって
管理される。TCB配置手段602とタスク接続管理手
段608の処理の詳細を図8と図9に示す。
【0015】図7(b)では、実行待ちタスクの順番が
、第2タスク−第1タスク−第3タスクであった時のタ
スク制御ブロックの行列である。
、第2タスク−第1タスク−第3タスクであった時のタ
スク制御ブロックの行列である。
【0016】接続キュー711の内容は、行列の先頭と
なる第2タスクのTCB712の先頭アドレスを示し、
その内容は1401(16進数表示)となり、第2タス
クのTCB712のタスク接続ポインタの内容は、第1
タスクのTCB713の先頭アドレスを示すために13
F9(16進数表示)であり、第1タスクのTCB71
3のタスク接続ポインタの内容は、第3タスクのTCB
714の先頭アドレスを示すために1409(16進数
表示)となる。
なる第2タスクのTCB712の先頭アドレスを示し、
その内容は1401(16進数表示)となり、第2タス
クのTCB712のタスク接続ポインタの内容は、第1
タスクのTCB713の先頭アドレスを示すために13
F9(16進数表示)であり、第1タスクのTCB71
3のタスク接続ポインタの内容は、第3タスクのTCB
714の先頭アドレスを示すために1409(16進数
表示)となる。
【0017】第3タスクのTCB714のタスク接続ポ
インタの内容は、この後につながるTCBがないことを
示す特別なコード(例えばFFFF(16進数表示))
となる。
インタの内容は、この後につながるTCBがないことを
示す特別なコード(例えばFFFF(16進数表示))
となる。
【0018】このように、それぞれのTCBの先頭アド
レスを順次指し示して、待ち行列を構成する。
レスを順次指し示して、待ち行列を構成する。
【0019】図8は図6におけるTCB配置手段602
の処理を示すフロー図である。図8において、ステップ
801は、TCBの配置アドレスの初期値13F9(1
6進数表示)とタスクのカウント値Nを設定している。 ステップ802は、N番目のTCBの初期化情報を読み
込んで、ステップ803でTCBの生成を行い、ステッ
プ804では生成したTCBを配置アドレスより順に配
置する。ステップ805は、次のTCBのために配置ア
ドレスをTCBのサイズだけ移動させ、Nを1増やすこ
とによって次のTCBを対照にしている。ステップ80
6は、次のTCB初期化情報をみて、まだタスクが存在
するかを判定し、存在すればステップ802へ、存在し
なければ終了する。
の処理を示すフロー図である。図8において、ステップ
801は、TCBの配置アドレスの初期値13F9(1
6進数表示)とタスクのカウント値Nを設定している。 ステップ802は、N番目のTCBの初期化情報を読み
込んで、ステップ803でTCBの生成を行い、ステッ
プ804では生成したTCBを配置アドレスより順に配
置する。ステップ805は、次のTCBのために配置ア
ドレスをTCBのサイズだけ移動させ、Nを1増やすこ
とによって次のTCBを対照にしている。ステップ80
6は、次のTCB初期化情報をみて、まだタスクが存在
するかを判定し、存在すればステップ802へ、存在し
なければ終了する。
【0020】図9は、図6のタスク接続管理手段605
の処理を示したフロー図である。図9において、ステッ
プ901は、図6の接続キュー607の下位8ビットを
読み込んで、ステップ902は、図6の接続キュー60
7の上位8ビットを読み込んで、ステップ903は、ス
テップ901とステップ902読み込んだデータをTC
Bアドレス情報としている。ステップ904で次につな
がるTCBが有るか無いかを判定し、有れば次のステッ
プ905へ戻り、無ければステップ907へ進んでTC
Bの接続を行う。ステップ905は、該TCBのタスク
接続ポインターの下位8ビットを読み込み、次に、ステ
ップ906で該TCBのタスク接続ポインターの上位8
ビットを読み込んでステップ903へ戻る。
の処理を示したフロー図である。図9において、ステッ
プ901は、図6の接続キュー607の下位8ビットを
読み込んで、ステップ902は、図6の接続キュー60
7の上位8ビットを読み込んで、ステップ903は、ス
テップ901とステップ902読み込んだデータをTC
Bアドレス情報としている。ステップ904で次につな
がるTCBが有るか無いかを判定し、有れば次のステッ
プ905へ戻り、無ければステップ907へ進んでTC
Bの接続を行う。ステップ905は、該TCBのタスク
接続ポインターの下位8ビットを読み込み、次に、ステ
ップ906で該TCBのタスク接続ポインターの上位8
ビットを読み込んでステップ903へ戻る。
【0021】
【発明が解決しようとする課題】しかしながら上記のよ
うな構成では、接続キューおよび各TCBのタスク接続
ポインタとして、各16ビットのメモリが使用されてお
り、メモリを多く使用してしまうと同時に、接続キュー
711やタスク接続ポインタ712を参照する際、8ビ
ットのマイクロプロセッサでは2回メモリをアクセスし
なければ16ビットの情報が得られないので、時間がか
かるという問題点を有していた。
うな構成では、接続キューおよび各TCBのタスク接続
ポインタとして、各16ビットのメモリが使用されてお
り、メモリを多く使用してしまうと同時に、接続キュー
711やタスク接続ポインタ712を参照する際、8ビ
ットのマイクロプロセッサでは2回メモリをアクセスし
なければ16ビットの情報が得られないので、時間がか
かるという問題点を有していた。
【0022】本発明はかかる点に鑑み、接続キューやタ
スク接続ポインタのサイズを小さくし、しかも高速に処
理を行うことのできるマルチタスク制御装置を提供する
ことを目的とする。
スク接続ポインタのサイズを小さくし、しかも高速に処
理を行うことのできるマルチタスク制御装置を提供する
ことを目的とする。
【0023】
【課題を解決するための手段】本発明は、複数のタスク
を切り換えながら実行するために必要なタスク管理情報
を保存するN個のタスク制御ブロックと、管理アドレス
を指定して任意の情報を書き込み読み出し可能なメモリ
手段と、前記N個のタスク制御ブロックを配置するアド
レスのメモリ頁を256バイトを1頁として指定する頁
入力手段と、前記N個のタスク制御ブロックが前記メモ
リ手段の前記頁入力手段より入力されたメモリ1頁内の
管理アドレス0番地から255番地までに入るように所
定のアドレス空間に配置するタスク制御ブロック配置手
段と、前記N個のタスク制御ブロックのそれぞれに含ま
れ、複数のタスクの待ち行列を構成するために、次に接
続するタスクのタスク制御ブロックの配置アドレス情報
の下位8ビットを保存してタスクの接続を示すN個のタ
スク接続指示手段と、待ち行列タスクの先頭タスクを示
すために、前記タスクのタスク制御ブロックの配置アド
レス情報の下位8ビットを保存するタスク先頭指示手段
と、前記N個のタスク制御ブロックの先頭のアドレス情
報を検出する配置開始アドレス検出手段と、前記N個の
タスク制御ブロックの最後尾のアドレス情報を検出する
配置終了アドレス検出手段と、前記配置開始アドレス検
出手段と前記配置終了アドレス検出手段より検出された
2つのアドレスが同一頁であるかどうかを判定するアド
レス判定手段と、前記アドレス比較手段の結果が256
以上であれば警告を発行する警告発行手段とにより構成
されている。
を切り換えながら実行するために必要なタスク管理情報
を保存するN個のタスク制御ブロックと、管理アドレス
を指定して任意の情報を書き込み読み出し可能なメモリ
手段と、前記N個のタスク制御ブロックを配置するアド
レスのメモリ頁を256バイトを1頁として指定する頁
入力手段と、前記N個のタスク制御ブロックが前記メモ
リ手段の前記頁入力手段より入力されたメモリ1頁内の
管理アドレス0番地から255番地までに入るように所
定のアドレス空間に配置するタスク制御ブロック配置手
段と、前記N個のタスク制御ブロックのそれぞれに含ま
れ、複数のタスクの待ち行列を構成するために、次に接
続するタスクのタスク制御ブロックの配置アドレス情報
の下位8ビットを保存してタスクの接続を示すN個のタ
スク接続指示手段と、待ち行列タスクの先頭タスクを示
すために、前記タスクのタスク制御ブロックの配置アド
レス情報の下位8ビットを保存するタスク先頭指示手段
と、前記N個のタスク制御ブロックの先頭のアドレス情
報を検出する配置開始アドレス検出手段と、前記N個の
タスク制御ブロックの最後尾のアドレス情報を検出する
配置終了アドレス検出手段と、前記配置開始アドレス検
出手段と前記配置終了アドレス検出手段より検出された
2つのアドレスが同一頁であるかどうかを判定するアド
レス判定手段と、前記アドレス比較手段の結果が256
以上であれば警告を発行する警告発行手段とにより構成
されている。
【0024】
【作用】本発明は上記した構成により、タスク制御ブロ
ック配置手段が、各タスクのTCBを256バイトを1
頁として指定した頁メモリの管理アドレス0番地から2
55番地の間に入るように固定的に配置し、タスク先頭
指示手段とタスク接続指示手段がアドレス情報の下位8
ビットで指示することによって、タスク接続処理などの
TCBの操作を8ビットの演算で実施できるため高速に
処理でき、また、接続キューやTCBを構成するタスク
接続ポインタを8ビットで構成できるので、メモリの使
用量を小さくできる。
ック配置手段が、各タスクのTCBを256バイトを1
頁として指定した頁メモリの管理アドレス0番地から2
55番地の間に入るように固定的に配置し、タスク先頭
指示手段とタスク接続指示手段がアドレス情報の下位8
ビットで指示することによって、タスク接続処理などの
TCBの操作を8ビットの演算で実施できるため高速に
処理でき、また、接続キューやTCBを構成するタスク
接続ポインタを8ビットで構成できるので、メモリの使
用量を小さくできる。
【0025】
【実施例】図1は本発明の第1の実施例(請求項1)で
あって、64Kバイトのアドレス空間を持った8ビット
のマイクロプロセッサで、タスク数N=3で頁入力手段
から値として7が入力された場合のマルチタスク制御装
置の構成を示す機能ブロック図である。
あって、64Kバイトのアドレス空間を持った8ビット
のマイクロプロセッサで、タスク数N=3で頁入力手段
から値として7が入力された場合のマルチタスク制御装
置の構成を示す機能ブロック図である。
【0026】図1において、1はTCBを生成する際に
必要な初期情報が保存されたTCB初期化情報、11は
256バイトを1頁としてTCBを配置するメモリの頁
を入力する頁入力手段、2はTCB初期化情報1を元に
TCBを作成し、メモリ3上の頁入力手段11によって
指定された頁の0番地から順に配置するTCB配置手段
である。3はTCBや接続キューを配置するためのメモ
リ、4,5,6はそれぞれTCB配置手段2によって、
メモリ3の0番地から順に配置された第1〜第3タスク
のTCBである。7は、待ち行列の先頭タスクのTCB
アドレスの下位8ビットを示す接続キューであり、0番
地から255番地に存在する必要はない。8は、頁入力
手段11によって入力されたメモリ頁のメモリ3上に配
置された各タスクのTCB4〜6、および接続キュー7
を操作してタスクの接続行列を構成管理するタスク接続
管理手段である。
必要な初期情報が保存されたTCB初期化情報、11は
256バイトを1頁としてTCBを配置するメモリの頁
を入力する頁入力手段、2はTCB初期化情報1を元に
TCBを作成し、メモリ3上の頁入力手段11によって
指定された頁の0番地から順に配置するTCB配置手段
である。3はTCBや接続キューを配置するためのメモ
リ、4,5,6はそれぞれTCB配置手段2によって、
メモリ3の0番地から順に配置された第1〜第3タスク
のTCBである。7は、待ち行列の先頭タスクのTCB
アドレスの下位8ビットを示す接続キューであり、0番
地から255番地に存在する必要はない。8は、頁入力
手段11によって入力されたメモリ頁のメモリ3上に配
置された各タスクのTCB4〜6、および接続キュー7
を操作してタスクの接続行列を構成管理するタスク接続
管理手段である。
【0027】図2(a)は、図1におけるメモリ3上に
配置される各タスクのTCB4〜6の内の1つで、7バ
イトのTCBの構成例を示したTCB構成図である。
配置される各タスクのTCB4〜6の内の1つで、7バ
イトのTCBの構成例を示したTCB構成図である。
【0028】図2(a)において、201は各種の待ち
行列を構成する時にタスクのつながりを示して待ち行列
を構成するため、次のタスクのTCBアドレスの下位8
ビットのみを保存する8ビットのタスク接続ポインタで
ある。
行列を構成する時にタスクのつながりを示して待ち行列
を構成するため、次のタスクのTCBアドレスの下位8
ビットのみを保存する8ビットのタスク接続ポインタで
ある。
【0029】202〜205はその他のタスク管理情報
であり、ここでは従来例の図7(a)の702〜705
と全く同じに構成される。
であり、ここでは従来例の図7(a)の702〜705
と全く同じに構成される。
【0030】図2(b)は、TCB接続の1例を示した
TCB接続図であり、例えば実行待ちした際のタスクの
待ち行列を示したものである。
TCB接続図であり、例えば実行待ちした際のタスクの
待ち行列を示したものである。
【0031】図2(b))において、接続キュー211
はタスク先頭指示手段であり、待ち行列の先頭タスクの
TCBアドレスの下位だけを指し示す8ビットの接続キ
ューである。
はタスク先頭指示手段であり、待ち行列の先頭タスクの
TCBアドレスの下位だけを指し示す8ビットの接続キ
ューである。
【0032】タスク接続ポインタ212,213,21
4はタスク接続指示手段であり、該タスクの次に待ちと
なっているタスクのTCBアドレスの下位8ビットを指
し示すものである。
4はタスク接続指示手段であり、該タスクの次に待ちと
なっているタスクのTCBアドレスの下位8ビットを指
し示すものである。
【0033】図1における接続キュー7,第1タスクの
TCB4,第2タスクのTCB5,第3タスクのTCB
6は、それぞれ図2(b)の接続キュー211,第1タ
スクのTCB213,第2タスクのTCB212,第3
タスクのTCB214に対応する。
TCB4,第2タスクのTCB5,第3タスクのTCB
6は、それぞれ図2(b)の接続キュー211,第1タ
スクのTCB213,第2タスクのTCB212,第3
タスクのTCB214に対応する。
【0034】以上のように構成されたこの実施例のマル
チタスク制御装置において、以下図1,図2(b),図
3及び図4を用いて、その動作を説明する。
チタスク制御装置において、以下図1,図2(b),図
3及び図4を用いて、その動作を説明する。
【0035】図1で頁入力手段11からTCBの配置メ
モリ頁(ここでは7頁)を入力すると、TCB配置手段
2は、TCB初期化情報1からTCBの初期情報を受け
TCBを作成し、メモリの7頁目の先頭である0700
(16進表示)番地から順に配置する。メモリ3上に配
置されたTCB4,5,6は、以降タスク接続管理手段
8に頁入力手段11から配置頁情報をもらい、この頁情
報を基に管理を行う。
モリ頁(ここでは7頁)を入力すると、TCB配置手段
2は、TCB初期化情報1からTCBの初期情報を受け
TCBを作成し、メモリの7頁目の先頭である0700
(16進表示)番地から順に配置する。メモリ3上に配
置されたTCB4,5,6は、以降タスク接続管理手段
8に頁入力手段11から配置頁情報をもらい、この頁情
報を基に管理を行う。
【0036】図2(b)では、実行待ちタスクの順番が
、第2タスク−第1タスク−第3タスクであった時のタ
スク制御ブロックの待ち行列である。
、第2タスク−第1タスク−第3タスクであった時のタ
スク制御ブロックの待ち行列である。
【0037】接続キュー211の内容は、行列の先頭と
なる第2タスクのTCB212の先頭アドレスの下位8
ビットを示し、その内容は07(16進数表示)となり
、第2タスクのTCB212のタスク接続ポインタの内
容は、第1タスクのTCB213の先頭アドレスの下位
8ビットを示すために00(16進数表示)であり、第
1タスクのTCB213のタスク接続ポインタの内容は
、第3タスクのTCB214の先頭アドレスの下位8ビ
ットを示すために0E(16進数表示)となる。第3タ
スクのTCB214のタスク接続ポインタの内容は、こ
の後につながるTCBがないことを示す特別なコード(
例えばFF(16進数表示))となる。
なる第2タスクのTCB212の先頭アドレスの下位8
ビットを示し、その内容は07(16進数表示)となり
、第2タスクのTCB212のタスク接続ポインタの内
容は、第1タスクのTCB213の先頭アドレスの下位
8ビットを示すために00(16進数表示)であり、第
1タスクのTCB213のタスク接続ポインタの内容は
、第3タスクのTCB214の先頭アドレスの下位8ビ
ットを示すために0E(16進数表示)となる。第3タ
スクのTCB214のタスク接続ポインタの内容は、こ
の後につながるTCBがないことを示す特別なコード(
例えばFF(16進数表示))となる。
【0038】このように、それぞれのTCBの先頭アド
レスの下位8ビットを順次指し示して、待ち行列を構成
する。
レスの下位8ビットを順次指し示して、待ち行列を構成
する。
【0039】図3は図1におけるTCB配置手段2の処
理を示すフロー図である。図3において、ステップ30
1は、配置ページとして頁アドレスを読み込み(ここで
は7)、TCB初期化情報ファイルからTCBの配置ア
ドレスの初期値とタスクのカウント値Nを設定している
。ステップ302は、N番目のTCBの初期化情報を読
み込んで、ステップ303でTCBの生成を行い、ステ
ップ304では生成したTCBを配置アドレスより順に
配置する。ステップ305は、次のTCBのために配置
アドレスをTCBのサイズだけ移動させ、Nを1増やす
ことによって次のTCBを対照にしている。ステップ3
06は、次のTCB初期化情報をみて、まだタスクが存
在するかを判定し、存在すればステップ302へ、存在
しなければ終了する。
理を示すフロー図である。図3において、ステップ30
1は、配置ページとして頁アドレスを読み込み(ここで
は7)、TCB初期化情報ファイルからTCBの配置ア
ドレスの初期値とタスクのカウント値Nを設定している
。ステップ302は、N番目のTCBの初期化情報を読
み込んで、ステップ303でTCBの生成を行い、ステ
ップ304では生成したTCBを配置アドレスより順に
配置する。ステップ305は、次のTCBのために配置
アドレスをTCBのサイズだけ移動させ、Nを1増やす
ことによって次のTCBを対照にしている。ステップ3
06は、次のTCB初期化情報をみて、まだタスクが存
在するかを判定し、存在すればステップ302へ、存在
しなければ終了する。
【0040】図4は、図1のタスク接続管理手段5の処
理を示したフロー図である。図4において、ステップ4
01は、図1の接続キュー7を読み込んで、ステップ4
11では、上位アドレス8ビットに頁アドレスを設定し
、ステップ402は、ステップ401で読み込んだデー
タをTCBアドレス情報としている。ステップ403は
、次につながるTCBが有るか無いかを判定し、あれば
次のステップ404へ行き、無ければステップ405で
TCBの接続を行う。ステップ404では、示されたア
ドレスのTCBのタスク接続ポインタを読み込み、ステ
ップ402へ戻る。
理を示したフロー図である。図4において、ステップ4
01は、図1の接続キュー7を読み込んで、ステップ4
11では、上位アドレス8ビットに頁アドレスを設定し
、ステップ402は、ステップ401で読み込んだデー
タをTCBアドレス情報としている。ステップ403は
、次につながるTCBが有るか無いかを判定し、あれば
次のステップ404へ行き、無ければステップ405で
TCBの接続を行う。ステップ404では、示されたア
ドレスのTCBのタスク接続ポインタを読み込み、ステ
ップ402へ戻る。
【0041】なお、本実施例でTCBの配置アドレスの
初期値は0としたが、0から255番地までにTCBが
配置されれば、初期値は0から255のどこであっても
かまわない。
初期値は0としたが、0から255番地までにTCBが
配置されれば、初期値は0から255のどこであっても
かまわない。
【0042】図5は本発明の第2の実施例(請求項2)
におけるマルチタスク制御装置の構成を示す機能ブロッ
ク図である。
におけるマルチタスク制御装置の構成を示す機能ブロッ
ク図である。
【0043】第1の実施例と異なるのは、TCB配置手
段502からTCBの配置開始アドレスを検出して出力
する配置開始アドレス検出手段509と、TCBの配置
終了アドレスを検出して出力する配置終了アドレス検出
手段519と、この2つのアドレスが同一頁に存在して
いるかどうかを判定する配置アドレス判定手段510と
、判定結果によってエラーを出力する警告手段511を
設けた点である。
段502からTCBの配置開始アドレスを検出して出力
する配置開始アドレス検出手段509と、TCBの配置
終了アドレスを検出して出力する配置終了アドレス検出
手段519と、この2つのアドレスが同一頁に存在して
いるかどうかを判定する配置アドレス判定手段510と
、判定結果によってエラーを出力する警告手段511を
設けた点である。
【0044】以上のように構成されたこの実施例のマル
チタスク制御装置において、以下図5を用いてその動作
を説明する。
チタスク制御装置において、以下図5を用いてその動作
を説明する。
【0045】配置開始アドレス検出手段509はTCB
配置手段502がTCBの配置を開始した際の配置開始
アドレスを検出して出力し、配置終了アドレス検出手段
519はTCB配置手段502がTCBの配置を完了し
た際の配置終了アドレスを検出して出力する。配置アド
レス判定手段510では、この2つのアドレスが256
バイトを1頁として管理するメモリの同一頁に存在する
かどうかを判定し、同一頁で無ければ、警告手段511
はエラーを出力して警告を発する。
配置手段502がTCBの配置を開始した際の配置開始
アドレスを検出して出力し、配置終了アドレス検出手段
519はTCB配置手段502がTCBの配置を完了し
た際の配置終了アドレスを検出して出力する。配置アド
レス判定手段510では、この2つのアドレスが256
バイトを1頁として管理するメモリの同一頁に存在する
かどうかを判定し、同一頁で無ければ、警告手段511
はエラーを出力して警告を発する。
【0046】
【発明の効果】以上説明したように、本発明によれば、
TCBを配置する頁アドレスを入力する頁入力手段と、
指定された頁アドレス空間にタスク制御ブロックを配置
する手段と、管理アドレスが0番地から255番地まで
であることを前提に下位8ビットのアドレスでタスク接
続を行うタスク接続指示手段やタスク先頭指示手段を設
けることにより、タスク接続指示手段やタスク先頭指示
手段は指示アドレスの下位8ビットのみを保存していれ
ばよいため、メモリの使用領域を少なくすることが可能
になるばかりでなく、8ビットデータバスのマイクロプ
ロセッサでは、1回のメモリアクセスを行うだけで次に
接続されたTCBのアドレスを参照できるため、タスク
接続管理手段はタスク接続処理を高速に行うことができ
る。
TCBを配置する頁アドレスを入力する頁入力手段と、
指定された頁アドレス空間にタスク制御ブロックを配置
する手段と、管理アドレスが0番地から255番地まで
であることを前提に下位8ビットのアドレスでタスク接
続を行うタスク接続指示手段やタスク先頭指示手段を設
けることにより、タスク接続指示手段やタスク先頭指示
手段は指示アドレスの下位8ビットのみを保存していれ
ばよいため、メモリの使用領域を少なくすることが可能
になるばかりでなく、8ビットデータバスのマイクロプ
ロセッサでは、1回のメモリアクセスを行うだけで次に
接続されたTCBのアドレスを参照できるため、タスク
接続管理手段はタスク接続処理を高速に行うことができ
る。
【0047】また、TCBを配置した際の配置アドレス
が255を越えた場合にこれを警告する警告手段を設け
ることにより、マルチタスク制御装置の誤動作を事前に
知ることができる。
が255を越えた場合にこれを警告する警告手段を設け
ることにより、マルチタスク制御装置の誤動作を事前に
知ることができる。
【図1】本発明の第1の実施例におけるマルチタスク制
御装置の構成を示す機能ブロック図
御装置の構成を示す機能ブロック図
【図2】(a)は第1の実施例におけるタスク制御ブロ
ックの1構成例を示したTCB構成図 (b)は第1の実施例におけるタスク制御ブロックをつ
ないで待ち行列を構成した際のタスク接続図
ックの1構成例を示したTCB構成図 (b)は第1の実施例におけるタスク制御ブロックをつ
ないで待ち行列を構成した際のタスク接続図
【図3】同
実施例におけるTCB配置手段の処理の内容を示すフロ
ー図
実施例におけるTCB配置手段の処理の内容を示すフロ
ー図
【図4】同実施例におけるタスク接続管理手段の処理手
順を示すフロー図
順を示すフロー図
【図5】本発明の第2の実施例におけるマルチタスク制
御装置の構成を示す機能ブロック図
御装置の構成を示す機能ブロック図
【図6】従来のマルチタスク制御装置の構成を示す機能
ブロック図
ブロック図
【図7】(a)は従来のタスク制御ブロックの1構成例
を示したTCB構成図 (b)は従来のタスク制御ブロックをつないで待ち行列
を構成した際のタスク接続図
を示したTCB構成図 (b)は従来のタスク制御ブロックをつないで待ち行列
を構成した際のタスク接続図
【図8】従来のTCB配置手段の処理の内容を示すフロ
ー図
ー図
【図9】従来のタスク接続管理手段の処理手順の1例を
示すフロー図
示すフロー図
1 TCB初期化情報
2 TCB配置手段
3 メモリ
4,213 第1タスクのTCB
5,212 第2タスクのTCB
6,214 第3タスクのTCB
7,211 接続キュー
8 タスク接続管理手段
11 頁入力手段
201 タスク接続ポインタ
Claims (2)
- 【請求項1】複数のタスクを切り換えながら実行するた
めに必要なタスク管理情報を保存するN個のタスク制御
ブロックと、管理アドレスを指定して任意の情報を書き
込み・読み出し可能なメモリ手段と、前記N個のタスク
制御ブロックを配置するアドレスのメモリ頁を、256
バイトを1頁として指定する頁入力手段と、前記N個の
タスク制御ブロックが前記メモリ手段の前記頁入力手段
より入力されたメモリ1頁内の管理アドレス0番地から
255番地までに入るように所定のアドレス空間に配置
するタスク制御ブロック配置手段と、前記N個のタスク
制御ブロックのそれぞれに含まれ、複数のタスクの待ち
行列を構成するために、次に接続するタスクのタスク制
御ブロックの配置アドレス情報の下位8ビットを保存し
て、タスクの接続を示すN個のタスク接続指示手段と、
待ち行列タスクの先頭タスクを示すために、前記タスク
のタスク制御ブロックの配置アドレス情報の下位8ビッ
トを保存するタスク先頭指示手段と、を備えたマルチタ
スク制御装置。 - 【請求項2】複数のタスクを切り換えながら実行するた
めに必要なタスク管理情報を保存するN個のタスク制御
ブロックと、管理アドレスを指定して任意の情報を書き
込み・読み出し可能なメモリ手段と、前記N個のタスク
制御ブロックを配置するアドレスのメモリ頁を、256
バイトを1頁として指定する頁入力手段と、前記N個の
タスク制御ブロックが前記メモリ手段の前記頁入力手段
より入力されたメモリ1頁内の管理アドレス0番地から
255番地までに入るように所定のアドレス空間に配置
するタスク制御ブロック配置手段と、前記N個のタスク
制御ブロックの先頭のアドレス情報を検出する配置開始
アドレス検出手段と、前記N個のタスク制御ブロックの
最後尾のアドレス情報を検出する配置終了アドレス検出
手段と、前記配置開始アドレス検出手段と前記配置終了
アドレス検出手段より検出された2つのアドレスが同一
頁であるかどうかを判定するアドレス判定手段と、前記
アドレス比較手段の結果が256以上であれば警告を発
行する警告発行手段と、を備えたマルチタスク制御装置
。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP3092002A JPH04322331A (ja) | 1991-04-23 | 1991-04-23 | マルチタスク制御装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP3092002A JPH04322331A (ja) | 1991-04-23 | 1991-04-23 | マルチタスク制御装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH04322331A true JPH04322331A (ja) | 1992-11-12 |
Family
ID=14042223
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP3092002A Pending JPH04322331A (ja) | 1991-04-23 | 1991-04-23 | マルチタスク制御装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH04322331A (ja) |
-
1991
- 1991-04-23 JP JP3092002A patent/JPH04322331A/ja active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2829091B2 (ja) | データ処理システム | |
| JPH02227763A (ja) | データ転送制御システム | |
| JP2001195384A (ja) | 処理装置及び処理装置の入出力ピンを制御する方法 | |
| JP3619532B2 (ja) | 半導体集積回路装置 | |
| JPH10207717A (ja) | マイクロコンピュータ | |
| JPH0916409A (ja) | マイクロコンピュータ | |
| JP3144842B2 (ja) | マイクロプロセッサ | |
| JPH04322331A (ja) | マルチタスク制御装置 | |
| JP2005293596A (ja) | データ要求のアービトレーション | |
| JPH0546412A (ja) | マルチタスク制御装置 | |
| JP3206580B2 (ja) | Dmaデータ転送制御方法及び入出力処理装置 | |
| JPH07325779A (ja) | 入出力制御装置 | |
| JP2001255902A (ja) | デュアルポートメモリ、そのデータ転送方法、及びデュアルポートメモリを用いる制御システム | |
| JPH11306040A (ja) | エミュレータのトレース装置 | |
| US20240281311A1 (en) | Queue adjustments to avoid message underrun and usage spikes | |
| JP3613274B2 (ja) | 情報処理装置 | |
| JPS62120542A (ja) | 情報処理装置 | |
| JPH03188531A (ja) | 時分割マルチタスク実行装置 | |
| JPH0413716B2 (ja) | ||
| JP2003186666A (ja) | マイクロコンピュータおよびdma制御回路 | |
| JPH03111961A (ja) | マルチcpuのプログラムロード方式 | |
| JPH0736806A (ja) | Dma方式 | |
| JP2000029508A (ja) | プログラマブルコントローラ | |
| JPH04184525A (ja) | 磁気ディスク装置 | |
| JPS61123937A (ja) | データ処理装置のデータ駆動型制御方式 |