JPH10105415A - リアルタイムos - Google Patents

リアルタイムos

Info

Publication number
JPH10105415A
JPH10105415A JP25287696A JP25287696A JPH10105415A JP H10105415 A JPH10105415 A JP H10105415A JP 25287696 A JP25287696 A JP 25287696A JP 25287696 A JP25287696 A JP 25287696A JP H10105415 A JPH10105415 A JP H10105415A
Authority
JP
Japan
Prior art keywords
task
time
control block
real
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
JP25287696A
Other languages
English (en)
Inventor
Yasuhiro Inoue
康博 井ノ上
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.)
NIPPON DENKI MICOM TECHNOL KK
Original Assignee
NIPPON DENKI MICOM TECHNOL KK
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 NIPPON DENKI MICOM TECHNOL KK filed Critical NIPPON DENKI MICOM TECHNOL KK
Priority to JP25287696A priority Critical patent/JPH10105415A/ja
Publication of JPH10105415A publication Critical patent/JPH10105415A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 リアルタイムOSを使用する際に同時に動作
しないタスク間でTCBとスタック領域を共有して使用
するRAM容量を低減し、かつ、タスクをシステムの動
作単位に分割をすることにより、タスク(プログラム)
の再利用性を向上させる。 【解決手段】 タスクのうち、複数の同時に使用しない
タスク1をグループ化し、グループ化されたタスク内
で、複数の同時に使用しないタスクがタスク制御ブロッ
クとスタック領域2とを共有し、スタック領域の使用を
排他的に制御し、使用するメモリ容量(RAM)10を
低減する。実際には、タスクの起動システムコールによ
り、タスクのタスク制御ブロック待ちタスクキューにキ
ューイングし、タスク制御ブロックを使用しているタス
クが実行を終了する毎にタスク制御ブロックを開放し、
キューイングされたタスクが実行される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、リアルタイムOS
に関し、特に、組込用途のマイクロコンピュータの省メ
モリ組込型リアルタイムOSに関する。
【0002】
【従来の技術】従来のリアルタイムOSでは、個々のタ
スクを管理するためにタスク制御ブロック(TCB)を
使用している。このTCBは、タスク1個につき、1個
必要で、システム起動時に静的に生成される。このTC
Bには、タスクの動作に必要な情報が格納されており、
OSはTCBを参照することでタスクの状態やその他の
各種情報を知ることができる。TCB内の情報を変更す
るには、OSのシステムコールを使用して、OSがその
内容を変更する。ユーザが直接操作することはできな
い。また、タスク固有のメモリ空間はそのタスクのスタ
ック領域として、システム起動時に静的に生成される。
つまり、リアルタイムOSを使用したシステムでは、以
下のRAMが必要となる。
【0003】タスク数×TCBサイズ+Σタスクnのス
タックサイズ+タスク以外に必要なメモリ。
【0004】図18〜図21に、従来のリアルタイムO
Sの動作例を示す。図18は、システムが起動した直後
の状態である。タスク1がRUN状態になり、その他の
タスクはドルマント状態である。その後、タスク1はタ
スク2を起動し、タスク2のプライオリティがタスク1
のプライオリティよりも高いので、タスク2がRUN状
態になり、タスク1はレディ状態となる(図19)。タ
スク2が処理を終了すると、再びタスク1がRUN状態
となる(図20)。その後、タスク1がタスク3を起動
すると、タスク3のプライオリティがタスク1のプライ
オリティよりも高いので、タスク3がRUN状態にな
り、タスク1はレディ状態となる(図21)。
【0005】
【発明が解決しようとする課題】上述した従来のリアル
タイムOSでは、すべてのタスクのためのTCBとスタ
ック領域を静的に確保し、同時に動作しないタスクのた
めのメモリ空間が別々に存在する。従って、静的に生成
するタスク1個につき、1組のTCBとスタック領域が
必要になり、多くのタスクを生成すると、多くのメモリ
(RAM)を必要とするという問題を有している。
【0006】また、リアルタイムOSのタスク分割にお
いて、各タスクをシステム中の1個の動作を基準に分割
して定義すると、タスクの数が多くなり、使用するRA
Mの容量が増える。一方、RAMの使用量を低減するた
めにタスクの数を少なくするには、いくつかの動作を1
個のタスクにまとめることになるが、タスクの内容が複
雑になり、他のシステムへの流用が困難になるという問
題を有している。
【0007】従って、本発明の目的は、リアルタイムO
Sを使用する際に同時に動作しないタスクでTCBとス
タック領域を共有して使用するRAM容量を低減し、か
つ、タスクをシステムの動作単位に分割することによ
り、タスク(プログラム)の再利用性を向上させること
のできるリアルタイムOSを提供することにある。
【0008】
【課題を解決するための手段】本発明は、タスクの動作
に必要な情報が格納されるタスク制御ブロック(TC
B)を参照することによって、タスクの状態およびその
他の各種情報を制御するリアルタイムOSにおいて、タ
スクのうち、複数の同時に使用しないタスクをグループ
化し、グループ化されたタスク内で、複数の同時に使用
しないタスクがタスク制御ブロックとスタック領域とを
共有し、スタック領域の使用を排他的に制御し、使用す
るメモリ容量(RAM)を低減することを特徴とするリ
アルタイムOSである。
【0009】また、タスクの起動システムコールによ
り、タスクのタスク制御ブロック待ちタスク行列(TC
B待ちタスクキュー)にキューイングし、タスク制御ブ
ロックを使用しているタスクが実行を終了する毎にタス
ク制御ブロックを開放し、タスク制御ブロック待ちキュ
ーにキューイングされた(TCB待ち状態)タスクが実
行されると好ましい。
【0010】さらに、タスクのタスク制御ブロック待ち
キューが、先入れ先出し法(FIFO)で処理されると
好ましい。
【0011】またさらに、タスクのタスク制御ブロック
待ちキューがプライオリチィ順で処理されると好まし
い。
【0012】また、タスク制御ブロックの他に副タスク
制御ブロックを有すると良い。
【0013】さらに、この副タスク制御ブロックが、タ
スク1個につき1個用意されると良い。
【0014】またさらに、この副タスク制御ブロックが
タスク本体を管理し、タスク制御ブロックがタスクの動
作を管理すると良い。
【0015】本発明は、特に、複数の同時に動作しない
タスクをグループ化し、そのグループ内のタスクが1組
のTCBとスタック領域を利用する。
【0016】複数の同時に動作しないタスクが1組のT
CBとスタック領域を使用することにより、システム中
のメモリ(RAM)を有効に利用できる。
【0017】また、その結果RAMの使用量を増加させ
ることなくタスク分割することが可能になるので、作成
したタスク(プログラム)の再利用性を向上させること
ができる。
【0018】
【発明の実施の形態】本発明の実施例について図面を参
照して詳細に説明する。
【0019】図1〜図6は、本発明の第1の実施例を示
す図である。本発明のリアルタイムOSの動作時のTC
Bとスタック領域の使用状況を示す。ここでは、タスク
1,タスク2,タスク3の3つのタスクが存在し、タス
ク2とタスク3が同時に動作しないタスクである。した
がって、タスク2およびタスク3がグループ化されてい
る。
【0020】図1は、システムが起動した直後の状態で
ある。符号10はRAM,符号20はROMを示してい
る。図1では、タスク1がRUN状態になり、その他の
タスクはドルマント(DORMANT)状態である。
【0021】その後、タスク1はタスク2を起動する。
タスク2の使用するTCBは、タスク初期化情報からT
CB2であるとわかる。TCB2は現在使用されていな
いので、タスク2はTCB2を獲得して起動処理が行わ
れる。タスク2のプライオリティがタスク1のプライオ
リティよりも低いので、タスク1がRUN状態のまま
で、タスク2はレディ(READY)状態となる(図
2)。
【0022】続いて、タスク1がタスク3を起動するシ
ステムコールを発行する。タスク2の場合と同様に、タ
スク初期化情報から、タスク3が使用するTCBもTC
B2である。しかし、タスク3が使用するTCB2は、
タスク2が使用しているので、システムコールには“T
CBが使用中である”というエラーが返る(図3)。
【0023】次に、タスク1のプライオリティを下げて
タスク2をRUN状態にし、タスク2が実行され、処理
を終了すると、タスク2はTCB2を解放する(図
4)。
【0024】タスク2が処理を終了すると、再びタスク
1がRUN状態となり、再度タスク3を起動するシステ
ムコールを発行する(図5)。
【0025】今回は、タスク3の使用するTCB2は使
用されていないので、タスク3がTCB2を獲得して、
RUN状態となる(図6)。
【0026】TCB2を使用するタスクグループのう
ち、動作するタスクは1個だけなので、タスクのスタッ
ク領域はタスクごとに存在する必要はなく、タスクグル
ープに1個、つまり、TCBごとに1個存在すればよ
い。
【0027】第1の実施例では、タスクを起動するシス
テムコールを発行して、そのタスクが使用するTCBが
他のタスクに使用されていると、エラーが返り、そのT
CBが開放されてから再度タスクを起動するシステムコ
ールを発行する必要がある。
【0028】図7〜図11は、本発明の第2の実施例を
示す。第2の実施例では、タスクの起動要求をキューイ
ングする方式を示す。ここでは、タスク1〜タスク5の
5つのタスクが存在し、タスク2〜タスク5が同時に動
作しないタスクである。したがって、タスク2へタスク
5がグループ化されている。本実施例のリアルタイムO
Sでは、TCBの他に副タスク制御ブロック(以下Su
bTCB)という制御ブロックを導入する。このSub
TCBは、タスク1個につき1個用意される。つまり、
従来のリアルタイムOSでは、TCBがタスクのすべて
を管理していたのに対し、本実施例のリアルタイムOS
ではTCBがタスクの動作を管理し、SubTCBがタ
スク本体(プログラム)を管理することになる。
【0029】図7は、システムが起動した直後の状態で
ある。タスク1が RUN状態になり、その他のタスク
はドルマント状態である。その後、タスク1はタスク2
を起動する。タスク2の使用するTCBは、タスク2の
タスク初期化情報からTCB2であるとわかる。TCB
2は現在使用されていないので、タスク2はTCB2を
獲得して起動処理が行われる。タスク2のプライオリテ
ィがタスク1のプライオリティよりも低いので、タスク
1がRUN状態のままで、タスク2はレディ状態となる
(図8)。
【0030】続いて、タスク1がタスク3を起動するシ
ステムコールを発行する。タスク2の場合と同様に、タ
スク3のタスク初期化情報から、タスク3が使用するT
CBもTCB2である。しかし、タスク3が使用するT
CB2は、タスク2が使用しているので、タスク3のS
ubTCBはTCB2の待ちタスクキュー(TCB待ち
タスクキュー)にリンクされる(図9)。
【0031】さらに、タスク4,タスク5も起動され、
同じくTCB2のTCB待ちタスクキューにリンクされ
る。この時のタスク3,タスク4,タスク5の状態を
“TCB待ち状態”と呼ぶ(図10)。
【0032】次に、タスク1のプライオリティを下げて
タスク2をRUN状態にし、タスク2が実行され、処理
を終了すると、タスク2はTCB2を解放し、OSは、
TCB待ちキューの先頭にリンクされたSubTCBの
タスクにTCBを割り当ててスケジューリングを行う。
タスク3の初期プライオリティがタスク1のプライオリ
ティより高ければ、タスク3がRUN状態となり、タス
ク1はレディ状態となる。タスク4,タスク5はTCB
待ち状態のままである(図11)。
【0033】以後、TCB2を使用しているタスクが終
了する毎に、TCB2が解放され、TCB2に対してT
CB待ち状態のタスクが順次レディ状態またはRUN状
態に遷移する。
【0034】第2の実施例では、TCB待ちのタスクは
起動要求があった順に起動されるが、第3の実施例で
は、TCB待ちのタスクの起動順序をそのタスクが持つ
プライオリティの高い順に変更する。
【0035】図12〜図17に第3の実施例のTCBお
よびスタック領域の使用状況を示す。ここでは、タスク
1〜タスク5の5つのタスクが存在し、タスク2〜タス
ク5が同時に動作しないタスクである。したがって、タ
スク2〜タスク5がグループ化されている。本実施例の
リアルタイムOSでは、第2の実施例と同様に、TCB
の他に副タスク制御ブロック(以下SubTCB)とい
う制御ブロックを導入し、第の実施例ではTCBにあっ
たタスクのプライオリティ情報をSubTCBに移動す
る。
【0036】図12は、システムが起動した直後の状態
である。タスク1がRUN状態になり、その他のタスク
はドルマント状態である。
【0037】その後、タスク1はタスク2を起動する。
タスク2の使用するTCBは、タスク2のタスク初期化
情報からTCB2であるとわかる。TCB2は現在使用
されていないので、タスク2はTCB2を獲得して起動
処理が行われる。タスク2のプライオリティがタスク1
のプライオリティよりも低いので、タスク1がRUN状
態のままで、タスク2はレディ状態となる(図13)。
【0038】続いて、タスク1がタスク3を起動するシ
ステムコールを発行する。タスク2の場合と同様に、タ
スク3のタスク初期化情報から、タスク3が使用するT
CBもTCB2である。しかし、タスク3が使用するT
CB2は、タスク2が使用しているので、タスク3のS
ubTCBはTCB2の待ちキューにリンクされる(図
14)。
【0039】タスク3は、タスク2よりプライオリティ
が高いが、現在実行中またはレディ状態のタスクをTC
B待ち状態にすると、スタック内の情報が失われてしま
うので、タスク2をTCB待ちにして、タスク3をレデ
ィにすることはしない。
【0040】さらに、タスク1がタスク4を起動する。
タスク4はタスク3よりもプライオリティが高いので、
TCB2の待ちタスクキューのタスク3の前にリンクさ
れる。つづいてタスク5も起動され、タスク5はタスク
4と同じプライオリティであるので、TCB2の待ちタ
スクキューのタスク4の後ろにリンクされる。これは、
同一プライオリティのタスクでは、ファースト・カム・
ファースト・サービス(First Come Fir
stService;FCFS)処理に従っているため
である(図15)。
【0041】次に、タスク1がタスク3のプライオリテ
ィをタスク4のプライオリティよりも高くするシステム
コールを発行すると、TCB2の待ちタスクキューは変
更される(図16)。
【0042】その後、タスク1のプライオリティを下げ
てタスク2をRUN状態にし、タスク2が実行され、処
理を終了すると、タスク2はTCB2を解放し、OS
は、TC3待ちキューの先頭にリンクされたSubTC
BのタスクにTCBを割り当ててスケジューリングを行
う。タスク3のその時点でのプライオリティがタスク1
のプライオリティより高ければ、タスク3がRUN状態
となり、タスク1はレディ状態となる。タスク4,タス
ク5はTCB待ち状態のままである(図17)。
【0043】以後、TCB2を使用しているタスクが終
了する毎に、TCB2が解放され、TCB2に対してT
CB待ち状態のタスクが順次レディ状態またはRUN状
態に遷移する。
【0044】
【発明の効果】本発明によると、同時に動作しないタス
クでTCBとスタック領域を共有することによりRAM
の利用効率が向上する。従って、複数のタスクでTCB
とスタック領域を共有することにより、使用するメモリ
(RAM)を低減することができるという効果を奏す
る。
【0045】また、本発明によると、使用するRAM容
量を増加させることなく、システムの動作にあわせたタ
スク分割をすることにより、タスクの再利用が容易にな
るという効果も奏する。
【図面の簡単な説明】
【図1】本発明の第1の実施例のリアルタイムOS起動
時のメモリマップを示すブロック図である。
【図2】第1の実施例のリアルタイムOS起動後の状態
を示すブロック図である。
【図3】第1の実施例のリアルタイムOS起動後の状態
を示すブロック図である。
【図4】第1の実施例のリアルタイムOS起動後の状態
を示すブロック図である。
【図5】第1の実施例のリアルタイムOS起動後の状態
を示すブロック図である。
【図6】第1の実施例のリアルタイムOS起動後の状態
を示すブロック図である。
【図7】本発明の第2の実施例のリアルタイムOS起動
時のメモリマップを示すブロック図である。
【図8】第2の実施例のリアルタイムOS起動後の状態
を示すブロック図である。
【図9】第2の実施例のリアルタイムOS起動後の状態
を示すブロック図である。
【図10】第2の実施例のリアルタイムOS起動後の状
態を示すブロック図である。
【図11】第2の実施例のリアルタイムOS起動後の状
態を示すブロック図である。
【図12】本発明の第3の実施例のリアルタイムOS起
動時のメモリマップを示すブロック図である。
【図13】第3の実施例のリアルタイムOS起動後の状
態を示すブロック図である。
【図14】第3の実施例のリアルタイムOS起動後の状
態を示すブロック図である。
【図15】第3の実施例のリアルタイムOS起動後の状
態を示すブロック図である。
【図16】第3の実施例のリアルタイムOS起動後の状
態を示すブロック図である。
【図17】第3の実施例のリアルタイムOS起動後の状
態を示すブロック図である。
【図18】従来のリアルタイムOS起動時のメモリマッ
プを示すブロック図である。
【図19】従来のリアルタイムOS起動後のメモリマッ
プを示すブロック図である。
【図20】従来のリアルタイムOS起動後のメモリマッ
プを示すブロック図である。
【図21】従来のリアルタイムOS起動後のメモリマッ
プを示すブロック図である。
【符号の説明】
10 RAM 20 ROM

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】タスクの動作に必要な情報が格納されるタ
    スク制御ブロックを参照することによって、前記タスク
    の状態およびその他の各種情報を制御するリアルタイム
    OSにおいて、 前記タスクのうち、複数の同時に使用しないタスクをグ
    ループ化し、グループ化されたタスク内で、前記複数の
    同時に使用しないタスクが前記タスク制御ブロックとス
    タック領域とを共有し、前記スタック領域の使用を排他
    的に制御し、使用するメモリ容量(RAM)を低減する
    ことを特徴とするリアルタイムOS。
  2. 【請求項2】前記タスクの起動システムコールにより、
    前記タスクのタスク制御ブロック待ちタスクキューにキ
    ューイングし、前記タスク制御ブロックを使用している
    タスクが実行を終了する毎に前記タスク制御ブロックを
    開放し、前記タスク制御ブロック待ちキューにキューイ
    ングされたタスクが実行されることを特徴とする、請求
    項1に記載のリアルタイムOS。
  3. 【請求項3】前記タスクの前記タスク制御ブロック待ち
    キューが、先入れ先出し法で処理されることを特徴とす
    る、請求項2に記載のリアルタイムOS。
  4. 【請求項4】前記タスクの前記タスク制御ブロック待ち
    キューがプライオリチィ順で処理されることを特徴とす
    る、請求項2に記載のリアルタイムOS。
  5. 【請求項5】前記タスク制御ブロックの他に副タスク制
    御ブロックを有することを特徴とする請求項1〜4のい
    ずれかに記載のリアルタイムOS。
  6. 【請求項6】前記副タスク制御ブロックが、タスク1個
    につき1個用意されることを特徴とする1〜5のいずれ
    かに記載のリアルタイムOS。
  7. 【請求項7】前記副タスク制御ブロックがタスク本体を
    管理し、前記タスク制御ブロックがタスクの動作を管理
    することを特徴とする、請求項5または6に記載のリア
    ルタイムOS。
JP25287696A 1996-09-25 1996-09-25 リアルタイムos Pending JPH10105415A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP25287696A JPH10105415A (ja) 1996-09-25 1996-09-25 リアルタイムos

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP25287696A JPH10105415A (ja) 1996-09-25 1996-09-25 リアルタイムos

Publications (1)

Publication Number Publication Date
JPH10105415A true JPH10105415A (ja) 1998-04-24

Family

ID=17243399

Family Applications (1)

Application Number Title Priority Date Filing Date
JP25287696A Pending JPH10105415A (ja) 1996-09-25 1996-09-25 リアルタイムos

Country Status (1)

Country Link
JP (1) JPH10105415A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011216118A (ja) * 2000-11-27 2011-10-27 Arm Ltd データ処理命令を実行するためのデータ処理装置および方法
WO2024050965A1 (zh) * 2022-09-08 2024-03-14 深圳市正浩创新科技股份有限公司 任务执行方法、计算机可读介质及电子设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011216118A (ja) * 2000-11-27 2011-10-27 Arm Ltd データ処理命令を実行するためのデータ処理装置および方法
WO2024050965A1 (zh) * 2022-09-08 2024-03-14 深圳市正浩创新科技股份有限公司 任务执行方法、计算机可读介质及电子设备

Similar Documents

Publication Publication Date Title
JP3920818B2 (ja) スケジューリング方法および情報処理システム
JP4057989B2 (ja) スケジューリング方法および情報処理システム
US5168566A (en) Multi-task control device for central processor task execution control provided as a peripheral device and capable of prioritizing and timesharing the tasks
CN101896886B (zh) 一种用于计算机系统的资源分配方法及进程执行方法
JP2561801B2 (ja) プロセス・スケジューリングの管理方法およびシステム
US20090165003A1 (en) System and method for allocating communications to processors and rescheduling processes in a multiprocessor system
JPH07504058A (ja) マルチタスク低電力制御装置
JPH09128252A (ja) 優先度付きタスク実行制御方法及びデータ処理装置
JP2011526040A (ja) オペレーションの保護モードスケジューリング
JP3215264B2 (ja) スケジュール制御装置とその方法
CN115576683B (zh) 一种协程池调度管理方法、系统、装置及存储介质
US7590990B2 (en) Computer system
JP3644042B2 (ja) マルチタスク処理装置
JP2902746B2 (ja) 仮想計算機制御方式
JP2005327007A (ja) 組込みコンピュータ制御プログラム、そのプログラムを記録した記録媒体、及び組込みシステム
KR20080013993A (ko) 데이터 처리장치 내의 데이터 엔진의 사용
JPH05108380A (ja) データ処理システム
JP3524961B2 (ja) マルチプロセッサシステムおよび同システムにおけるタスクスケジューリング方法
CN112948069A (zh) 用于运行计算单元的方法
JPH11249917A (ja) 並列型計算機及びそのバッチ処理方法及び記録媒体
JP7608760B2 (ja) トランザクション制御装置、トランザクション制御方法、及び、プログラム
JP2535632B2 (ja) デ―タ処理システム
JPH0351920A (ja) 資源待ち合わせ制御方式
JPH01193947A (ja) フアイルアクセル処理方式
JPS58154058A (ja) マルチプロセッサシステム