JP2643804B2 - デバッグ方式 - Google Patents

デバッグ方式

Info

Publication number
JP2643804B2
JP2643804B2 JP5304356A JP30435693A JP2643804B2 JP 2643804 B2 JP2643804 B2 JP 2643804B2 JP 5304356 A JP5304356 A JP 5304356A JP 30435693 A JP30435693 A JP 30435693A JP 2643804 B2 JP2643804 B2 JP 2643804B2
Authority
JP
Japan
Prior art keywords
task
target task
priority
dispatch
super
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
JP5304356A
Other languages
English (en)
Other versions
JPH07160530A (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.)
NEC Corp
Original Assignee
Nippon Electric Co 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 Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
Priority to JP5304356A priority Critical patent/JP2643804B2/ja
Publication of JPH07160530A publication Critical patent/JPH07160530A/ja
Application granted granted Critical
Publication of JP2643804B2 publication Critical patent/JP2643804B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、リアルタイムオペレー
ティングが稼働する組み込みシステムをデバッグするデ
バッグ方式に利用する。特に、リアルタイムオペレーテ
ィングシステム(RTOS) に状態遷移が発生した時点での
ブレーク状態およびレディ状態の任意のタスクをデバッ
グするデバッグ方式に関するものである。
【0002】
【従来の技術】図5はデバッグ方式のリアルタイムオペ
レーティングシステムのタスクの状態遷移図である。図
6はデバッグ方式のリアルタイムオペレーティングシス
テムのOS資源の管理状態を示す図である。図7は従来
例のデバッグ方式のリアルタイムオペレーティングシス
テムのレディキューのキュー変化を示す図である。図5
において、システムコールの略語のフルスペリングは次
のとおりである。cre -tsk() はcreate task 、sta - t
sk() は start task 、del - tsk() はdelete task 、e
xt - tsk() はexit task 、exd - tsk() はexit and de
lete task、ter- tsk() はterminate task、sus - ts
k() はsuspend task、rsm - tsk() はresume task およ
び wup- tsk() はwake up taskを示す。また、図6にお
いて、tcb- adr() はget task-control-block address
を示す。
【0003】従来、デバッグ方式は、特に組み込みシス
テムなどで使用される目的で開発されたリアルタイムオ
ペレーティングシステム(以下、リアルタイムOSと云
う。)の場合に、デッドラインを持つ複数のアプリケー
ションタスクを並行動作させながら、目的の処理を行
う。
【0004】複数のタスクを並行動作させるOSには様
々な種類がある。OSによってタスクが取り得る状態の
数や種類が異なる。その中の一つの例としてここでは、
ITRON OS(アイトロンOS、industrial TRON
OS)で採用されている状態を説明する。ITRON O
Sでは、タスクは以下の七つの状態の内のどれかになっ
ている。
【0005】実効状態 RUN 実効可能状態 READY 待ち状態 WAIT 二重待ち状態 WAIT−SUSPEND 強制待ち状態 SUSPEND 休止状態 DORMANT 未登録状態 NON−EXTISTENCE 前記の状態がどのように変化するかを図5に示す。
【0006】組み込みシステムにOSを使用して稼働さ
せる場合に、OSが管理するさまざまな資源(タスク、
フラグ、セマフォ、メールボックス、メモリプール、メ
モリブロック)等は、OSによって様々な状態の間を遷
移させられる。かつ、必ずOSによって一貫性が保たれ
ながら状態遷移する。
【0007】例として、図6にITRON準拠のOSで
あるRX116においてOS資源がどのように管理され
ているかの概念図を示す。タスクは、RUN、READ
Y、SLEEP(WAITに含まれる)、SUSPEN
D、WAIT−SUSPEND等の内のどれかの状態に
なっている。前記の状態遷移途中の状態で存在すること
はあり得ない。
【0008】中央処理装置(以下、CPUと云う。)が
実行しているタスクは必ず、RUN状態である。よっ
て、再実行、ステップ実行等のデバッグ操作を行うため
に、タスクは必ずRUN状態になっていなければなら
い。
【0009】SUSPEND状態やWAIT状態のタス
クを強制的に実行することは危険である。OSが自分の
資源を操作しているときに、SUSPEND状態やWA
IT状態のタスクが実行されることは想定していない。
OSは自分が管理しているOS資源が他の要因によりO
S管理状態以外の状況に変更されている可能性は考慮し
ていない。無駄なチェックを省き、性能を向上させるた
めである。
【0010】OS管理する状態以外にならないようにす
るために、デバッガは前記のようなタスクを実行させな
い。
【0011】このような条件の元では、ターゲットタス
クが最高プライオリティになるのを待たねばデバッグが
できない。しかし、このようなデバッグ方法が使えるの
は、他のタスクに不具合がない場合のみである。他のタ
スクに不具合がある場合には、ターゲットタスクが最高
プライオリティになるより先に組み込みシステムが暴走
し、結果としてターゲットタスクのデバッグが行えなく
なる。
【0012】そこで、ターゲットタスクを最高プライオ
リティにするために、従来はプライオリティを高くする
必要があった。プライオリティを高くすることによっ
て、RUN状態に移行させデバッグ停止状態にする。
【0013】ところが、一度プライオリティを高くする
と、元に戻すときに、元あったプライオリティキューの
再後尾に接続されるので、最初の状態から変化する欠点
があった。
【0014】このことを詳細に説明する。例えば、図7
(A)の場合にTaskCをデバッグすることを考える。こ
こで、TaskCをデバッグするためにchg - pri (change
priority )システムコールを発行してプライオリティ
を上げると図7(B)のようになる。OSによって、Ta
skCが選択され、デバッグのための実行が可能となる。
デバッグが終了した後に、もとのプライオリティに戻す
と図7(C)のようになる。
【0015】このようにしてTaskCがプライオリティ3
のキューの最後尾になる。TaskCを前記キューの最初に
移動するためには、rot - rdq (rotate ready queue)
システムコールを六回発行するか、TaskDからTaskIに
関してTaskCに行ったのと同じ操作を繰り返さなければ
ならない。その場合のchg - pri システムコール発行回
数は12回である。システムコール発行する回数を決定
するためには、あらかじめレディキューに接続されてい
るタスクの数を調べなければならない。
【0016】ここでは、キューの先頭にあるタクを例と
して挙げたので、元の状態に戻す手段が存在した。しか
し、図7(D)の位置にあるタスクをデバッグした場合
に元の状態に戻すことはさらに困難になる。
【0017】
【発明が解決しようとする課題】このような従来例のデ
バッグ方式では、デバッグ途上の組み込みシステムをデ
バッグする場合に、ターゲットタスクが最高プライオリ
ティになるのを待っていると、ターゲットタスク以外の
タスクが不具合を持っている場合に組み込みシステムが
暴走して、結果としてターゲットタスクのデバッグが不
可能になる欠点があった。特に、リアルタイムアプリケ
ーションにおいては、タスク間の起動順序等によって動
作が大きく変化するために、いちがいに不具合をもって
いるタスクを停止すれば済むわけではない。
【0018】また、前述のように、従来のシステムコー
ルのみを組み合わせた場合に、レディキューの順序を元
の位置に回復するための手段が存在しなかったり、可能
であったとしても多くのオーバヘッドが生じる。
【0019】本発明は前記の欠点を解決するもので、レ
ディ状態のタスクおよび状態遷移が発生した時点でのブ
レーク状態のタスクをデバッグすることができ、かつデ
バッグ終了後もレディキューの順序が変化せずまたレデ
ィ状態になった時点のオペレーションシステム資源を維
持しながらデバッグできるデバッグ方式を提供すること
を目的とする。
【0020】
【課題を解決するための手段】本発明の第一の観点は、
システムサービスを提供する提供手段、タスクを選出す
る順序を定めるスケジュール手段、ディスパッチするタ
ーゲットタスクを保持するディスパッチターゲットタス
ク保持手段およびこのディスパッチターゲットタスク保
持手段からのターゲットタスクをディスパッチするディ
スパッチ手段を含むリアルタイムオペレーティングシス
テムと、デバッガとを備えたデバッグ方式において、前
記デバッガは、前記リアルタイムオペレーティングシス
テムが用いる運用上のプライオリティとは独立のスーパ
プライオリティによりデバッグの対象となるターゲット
タスクを実行する手段を備えたことを特徴とする。これ
により、運用上のプライオリティを変更することなく優
先度を高くしてデバックすることができる。前記デバッ
ガは、前記リアルタイムオペレーティングシステムに対
してデバッグの対象となるターゲットタスクをスーパプ
ライオリティで実行すべきことを示すスーパプライオリ
ティ識別子をセットする手段を含み、前記リアルタイム
オペレーティングシステムは、前記スーパプライオリテ
ィ識別子がセットされているときにはデバッグの対象と
なるターゲットタスクを優先的に実行する手段を含むこ
とがよい。この場合、前記優先的に実行する手段は、前
記スケジュール手段によるタスク選出の順序に従うこと
なくデバッグの対象となるターゲットタスクを前記ディ
スパッチターゲットタスク保持手段にセットする手段を
含むことがよい。
【0021】また、本発明は、前記リアルタイムオペレ
ーティングシステムに、前記スーパプライオリティ識別
子がセットされているか否かを検出し検出結果を出力す
る検出手段を含み、前記デバッガは、タスクがブレーク
ポイントで停止状態のときレディ状態にあるターゲット
タスクをデバッグするユーザのコマンドを入力してデバ
ッグ対象のターゲットタスクを指定しこの指定したター
ゲットタスクをディスパッチするダミーシステムコール
を前記システムサービス提供手段に出力するコマンド解
釈部と、この指定されたターゲットタスクの実行再開点
にブレークポイントをセットするブレークポイント管理
手段と、この指定されたターゲットタスクを選択して前
記ディスパッチターゲットタスク保持手段にセットし前
記スーパプライオリティ識別子をセットする選択手段と
を含むことができる。
【0022】さらに、本発明は、前記システムサービス
提供手段は前記ダミーシステムコールに基づき処理を行
う手段を含み、前記ディスパッチ手段は前記検出結果が
セットされている場合に前記スケジュール手段をバイパ
スしてディスパッチターゲットタスク保持手段にセット
されたターゲットタスクをディスパッチする手段を含む
ことができる。
【0023】本発明の第二の観点は、前記デバッグ方式
において、前記リアルタイムオペレーティングシステム
に、前記スーパプライオリティ識別子がセットされてい
るか否かを検出し検出結果を出力する検出手段を含み、
前記デバッガは、タスクがブレークポイントで停止状態
のときレディ状態にないターゲットタスクをデバッグす
るユーザのコマンドを入力してデバッグ対象のターゲッ
トタスクを指定し前記システムサービス提供手段にタス
クの実行を再開させるコマンド解釈部と、この指定され
たターゲットタスクに実行再開点のブレークポイントを
セットするブレークポイント管理手段と、この指定され
たターゲットタスクを選択して前記スーパプライオリテ
ィタスク保持手段にセットする選択手段とを含むことを
特徴とする。
【0024】また、本発明は、前記システムサービス提
供手段は、タスクをレディキューに接続するオペレーテ
ィング資源管理手段を含み、前記オペレーティングサー
ビス資源管理手段は、前記システムサービス提供手段が
システムサービスを行った各時点で前記スーパプライオ
リティタスク保持手段の内容と前記レディキューに接続
されたタスクとを比較し比較結果が一致した場合に前記
スーパプライオリティ識別子をセットする手段を含み、
前記検出手段は前記検出結果がセットされている場合に
は前記スーパプライオリティタスク保持手段の内容を前
記ディスパッチターゲットタスク保持手段にセットする
手段を含み、前記スケジュール手段は前記検出結果がセ
ットされていない場合には次にディスパッチするタスク
を前記ディスパッチターゲットタスク保持手段にセット
する手段を含み、前記ディスパッチ手段は前記ディスパ
ッチターゲットタスク保持手段にセットされたタスクを
ディスパッチする手段を含むことができる。
【0025】
【作用】デバッガは、タスクがブレークポイントで停止
しているときにレディ状態のターゲットタスクをデバッ
グするユーザのコマンドを入力したとき、リアルタイム
オペレーティングシステムにスーパプライオリティ識別
子をセットし、また、ディスパッチターゲットタスク保
持手段にデバッグ対象ターゲットをセットし、さらにダ
ミーシステムコールを提供手段に与える。リアルタイム
オペレーティングシステムでは、検出手段でスーパプラ
イオリティ識別子がセットされているか否かを検出し、
検出した場合にはディスパッチターゲットタスク保持手
段に保持されたターゲットタスクをディスパッチし、タ
ーゲットタスクの実行開始点でブレークが発生しターゲ
ットタスクのデバッグが開始する。
【0026】また、デバッガは、タスクがブレークポイ
ントで停止しているときにレディ状態でないターゲット
タスクをデバッグするユーザのコマンドを入力したと
き、スーパプライオリティタスク保持手段にターゲット
タスクをセットしてターゲットシステムの実行を再開さ
せる。リアルタイムオペレーティングシステムでは、オ
ペレーティングシステム資源管理手段でシステムサービ
スを行った各時点でスーパプライオリティタスク保持手
段の内容とレディキューの内容とを比較し一致した場合
にはスーパプライオリティ識別子をセットする。検出手
段は、スーパプライオリティ識別子がセットされている
か否かを検出し、検出した場合にはスーパプライオリテ
ィタスク保持手段の内容をディスパッチターゲットタス
ク保持手段にセットする。検出しない場合にはスケジュ
ール手段は次にディスパッチするタスクをディスパッチ
ターゲット保持手段にセットする。ディスパッチ手段は
ディスパッチターゲットタスク保持手段の内容をディス
パッチし、ディスパッチされたタスクがスーパプライオ
リティタスクでないときにはシステムサービスを行な
い、スーパプライオリティタスクのときにはターゲット
タスクの実行開始点でブレークが発生しターゲットタス
クのデバッグが開始する。
【0027】以上によりレディ状態のタスクおよび状態
遷移が発生した時点でのブレーク状態のタスクをデバッ
グすることができ、かつデバッグ終了後もレディキュー
の順序が変化せずまたレディ状態になった時点のオペレ
ーションシステム資源を維持しながらデバッグできる。
【0028】
【実施例】本発明の実施例について図面を参照して説明
する。
【0029】図1は本発明一実施例デバッグ方式のブロ
ック構成図である。図1において、デバッグ方式は、シ
ステムサービスを提供する提供手段7、タスクを選出す
る順序を定めるスケジュール手段11、ディスパッチす
るターゲットタスクを保持するディスパッチターゲット
タスク保持手段10およびディスパッチターゲットタス
ク保持手段10からのターゲットタスクをディスパッチ
するディスパッチ手段12を含むリアルタイムオペレー
ティングシステム5と、デバッガ1とを備える。
【0030】ここで本発明の特徴とするところは、デバ
ッガ1からリアルタイムオペレーティングシステム5に
対して、運用上のプライオリティよりさらに優先度を高
くしてデバッグを行うためのスーパプライオリティ識別
子(SuperPriorityTask 識別子)6をセットする手段を
設けたことにある。
【0031】また、リアルタイムオペレーティングシス
テム5に、スーパプライオリティ識別子がセットされて
いるか否かを検出し検出結果を出力する検出手段として
SuperPriorityTask 検出手段9を含み、デバッガ1は、
タスクがブレークポイントで停止状態のときレディ状態
にあるターゲットタスクをデバッグするユーザのコマン
ドを入力してデバッグ対象のターゲットタスクを指定し
この指定したターゲットタスクをディスパッチするダミ
ーシステムコールをシステムサービス提供手段7に出力
するコマンド解釈部4と、この指定されたターゲットタ
スクの実行再開点にブレークポイントをセットするブレ
ークポイント管理手段2と、この指定されたターゲット
タスクを選択してディスパッチターゲットタスク保持手
段10にセットしSuperPriorityTask 識別子6をセット
する選択手段としてデバッグ対象タスク選択手段3とを
含む。
【0032】さらに、システムサービス提供手段7は前
記ダミーシステムコールに基づき処理を行う手段を含
み、ディスパッチ手段12は前記検出結果がセットされ
ている場合にスケジュール手段11をバイパスしてディ
スパッチターゲットタスク保持手段10にセットされた
ターゲットタスクをディスパッチする手段を含む。
【0033】このような構成のデバッグ方式の動作につ
いて説明する。
【0034】図2は本発明のデバッグ方式の動作を示す
図である。図2において、任意のターゲットタスクを指
定し、指定したターゲットタスクがデバッグ停止状態に
なるまでのフローを示す。まず、どれかのタスクがブレ
ークポイントで停止している状態が図2(1)である。
【0035】この時点でユーザは、コマンドによってレ
ディ状態にあるターゲットタスクを指定することができ
るようになる。それが、図2(2)である。ユーザがコ
マンドでターゲットタスクを指定すると、デバッガ1は
ターゲットタスクの実行再開点にブレークポイントをセ
ットする。デバッグを停止させるためである。
【0036】その後に、デバッグ1がSuperPriorityTas
k 識別子6をセットし、ディスパッチターゲットタスク
保持手段10にターゲットタスクをセットする〔図2
(3)〕。この後に、ターゲットタスクをディスパッチ
させるためデバッガ1がダミーシステムコールを発行す
る〔図2(4)〕。
【0037】ダミーシステムコールを発行すると、指定
されたシステムコールがシステムサービス提供手段7に
て処理され、SuperPriorityTask 検出手段9はSuperPri
orityTask 識別子6を検出する。SuperPriorityTask 識
別子6が検出されると、スケジュール手段11をバイパ
スし、ディスパッチ手段12が実行される〔図2
(5)〕。
【0038】ディスパッチ手段12はディスパッチター
ゲットタスク保持手段10に保持されたターゲットタス
クをディスパッチする〔図2(6)〕。
【0039】ディスパッチが発生し、ターゲットタスク
が実行を開始する。実行を開始した時点で、図2(2)
にてセットしたブレークポイントに達して停止する〔図
27)〕。
【0040】この状態がデバッグ停止状態である。デバ
ッガは安全に、すなわちOSの管理状態の元でタスクを
デバッグ可能となる(図2(8)〕。
【0041】図3は本発明の他の実施例デバッグ方式の
ブロック構成図である。図4は本発明他の実施例デバッ
グ方式の動作を示す図である。図3および図4を参照し
て、指定したタスク状態が遷移したときに、その時点で
デバッグできる例について説明する。
【0042】まず、図3において、1AはRTOS用の
デバッガ、2はブレークポイント管理手段、3Aはデバ
ッグ対象タスク選択手段、4はコマンド解釈部、5Aは
リアルタイムオペレーティングシステム、6はSuperPri
orityTask 識別子、14はSuperPriorityTask 保持手
段、7Aはシステムサービス提供手段(タスク管理、フ
ラグ管理、セマフォ管理、メールボックス管理、メモリ
プール管理)、8AはOS資源管理手段(レディキュー
管理、タイマキュー管理、OS資源待ち管理)、9Aは
SuperPriorityTask 検出手段、10はディスパッチター
ゲットタスク保持手段、11はスケジュール手段および
12はディスパッチ手段、13はOS資源である。OS
資源13には、図6に示すようにタスク、フラグ、セマ
フォ、メールボックス、メモリプール等が含まれる。
【0043】図4に、レディ状態でない任意のターゲッ
トタスクがレディ状態に遷移する時点が検出され、デバ
ッグ停止状態になるまでのフローを示す。図4におい
て、まず、どれかのタスクがブレークポイントで停止し
ている状態が図4(1)である。どれかのタスクがブレ
ークポイントで停止した時点から、ユーザのデバッグ操
作が開始される〔図4(1)〕。レディ状態にないタス
ク中で、レディ状態になったことを検出したいデバッグ
対象のターゲットタスクを、ユーザが入力するコマンド
に従って、デバッグ1がSuperPriorityTask 保持手段1
4にセットする。さらに、ユーザが入力するコマンドに
従って、デバッガ1がターゲットタスクの実行開始点に
ブレークポイントをセットする〔図4(2)〕。
【0044】ユーザが入力するコマンドに従い、ターゲ
ットシステムの実行を再開する。この時点からターゲッ
トシステム側で並行プログラミングされたタスクが動作
を開始する〔図4(3)〕。
【0045】並行プログラミングされたタスクが動作を
開始すると、システムサービスを行った各時点で、レデ
ィキュー管理手段を含むOS資源管理手段8Aが、シス
テムサービスを行った結果としてOS資源管理手段8A
がレディキューに接続したタスクとSuperPriorityTask
保持手段14の内容とを比較し、それが同一の場合には
SuperPriorityTask 識別子6をセットする〔図4
(4))。
【0046】SuperPriorityTask 検出手段9Aによっ
て、SuperPriorityTask 識別子6がセットされているか
どうかをチェックする。セットされている場合には〔図
4(5)〕、SuperPriorityTask 保持手段14の内容を
ディスパッチターゲットタスク保持手段10にコピーす
る〔図4(6)〕。コピー後にスケジュール手段11を
スキップし、ディスパッチ手段12へ移行する。セット
されていない場合には〔図4(5)〕、スケジュール手
段11へ移行する。スケジュール手段11では、レディ
キュー状態のタスクの中の最高プライオリティキュー
(SuperPriorityTask とは異なる)に接続されたタスク
の中で最も最初にプライオリティキューに接続されたタ
スクをディスパッチターゲットタスク保持手段10にセ
ットする〔図4(7)〕。
【0047】ディスパッチ手段12は、ディスパッチタ
ーゲットタスク保持手段10の内容をディスパッチする
〔図4(8)〕。
【0048】ディスパッチ手段12でディスパッチされ
たタスクがSuperPriorityTask か否かをチェックし、Su
perPriorityTask の場合には〔図4(9)〕、ターゲッ
トタスクの実行開始点でブレーク発生し〔図4(1
0)〕、ターゲットタスクのデバッグを開始する〔図4
(11)〕。
【0049】ディスパッチ手段12でディスパッチされ
たタスクがSuperPriorityTask でないの場合には〔図4
(9)〕、図4(4)に戻り動作を繰り返す。
【0050】ここで、リアルタイムオペレーティングシ
ステム用のデバッガはすべてターゲットシステム内に存
在する必要がない。例えば、リアルタイムオペレーティ
ングシステム用のデバッガをホスト部とターゲット部と
に分割しコマンド解釈部はホスト側に移しても良い。
【0051】
【発明の効果】以上説明したように、本発明は、レディ
状態のタスクであれば、レディキューの中のいかなる場
所においてもレディキューの状態を変化させずにデバッ
グを実行することができる。また、タスクが待ち状態か
らレディ状態になった時点でシステムを停止することが
でき、ターゲットタスクがレディ状態になった時点のシ
ステムの状態(OS資源の状態)を維持しながらのデバ
ッグができる。さらに、該当タスクを実行状態にし実行
させてから中断するために、ブレークさせたタスクはカ
ーネル内部状態と一致したままデバッグができる優れた
効果がある。
【図面の簡単な説明】
【図1】本発明一実施例デバッグ方式のブロック構成
図。
【図2】本発明のデバッグ方式の動作を示す図。
【図3】本発明他の実施例デバッグ方式のブロック構成
図。
【図4】本発明他の実施例デバッグ方式の動作を示す
図。
【図5】デバッグ方式のリアルタイムオペレーティング
システムのタスクの状態遷移図。
【図6】デバッグ方式のリアルタイムオペレーティング
システムのOS資源の管理状態を示す図。
【図7】従来例のデバッグ方式のリアルタイムオペレー
ティングシステムのレディキューのキュー変化を示す
図。
【符号の説明】
1、1A デバッガ(RTOS用) 2 ブレークポイント管理手段 3、3A デバッグ対象タスク選択手段 4、4A コマンド解釈部 5、5A リアルタイムオペレーティングシステム(RT
OS) 6 SuperPriorityTask 識別子 7、7A システムサービス提供手段 8、8A OS資源管理手段 9、9A SuperPriorityTask 検出手段 10 ディスパッチターゲットタスク保持手段 11 スケジュール手段 12 ディスパッチ手段 13 OS資源 14 SuperPriorityTask 保持手段 101 RUN状態のタスク 102 プライオリティが1に接続されたタスク(RE
ADY状態) 103 プライオリティが2に接続されたタスク(RE
ADY状態) 104、105 プライオリティが3に接続されたタス
ク(READY状態) 106 フラグ待ちキューに接続されたタスク(WAI
T状態) 107、114、116 セマフォ待ちキューに接続さ
れたタスク(WAIT状態) 108、113、117 メッセージ待ちキューに接続
されたタスク(WAIT状態) 109 メモリブロッック待ちキューに接続されたタス
ク(WAIT状態) 110 メッセージ待ちキューに接続されたタスク(W
AIT状態) 111 メモリブロック待ちキューに接続されたタスク
(WAIT状態) 112 登録キューのみに接続されたタスク(DORM
ANT状態) 115、120、121 タイマキューに接続されたタ
スク(WAIT状態) 118 登録キューのみに接続されたタスク(SUSP
END状態) 119 セマフォ待ちキューに接続されたタスク(WA
IT−SUSPEND状態) 122 スリープしているタスク(WAIT状態) 123 タイマキューに接続されたタスク(WAIT−
SUSPEND状態) 124 スリープしているタスク(WAIT−SUSP
END状態) 201、202 タスク122を周期的に起床するため
のタイマ管理ブロック 301 メッセージ 1000 Task Reg. Queue Header 1001 Flag Reg. Queue Header 1002 Semaphore Reg. Queue.Queue Header 1003 Mail Box Reg. Queue Header 1004 Mail Pool Reg. Queue Header 1005 Timer Queue 2001、2002 Flag 2003、2004 Semaphore 2005、2006 Mail Box 2007、2008 Memory Pool

Claims (7)

    (57)【特許請求の範囲】
  1. 【請求項1】 システムサービスを提供する提供手段、
    タスクを選出する順序を定めるスケジュール手段、ディ
    スパッチするターゲットタスクを保持するディスパッチ
    ターゲットタスク保持手段およびこのディスパッチター
    ゲットタスク保持手段からのターゲットタスクをディス
    パッチするディスパッチ手段を含むリアルタイムオペレ
    ーティングシステムと、デバッガとを備えたデバッグ方
    式において、 前記デバッガは、前記リアルタイムオペレーティングシ
    ステムが用いる運用上のプライオリティとは独立のスー
    パプライオリティによりデバッグの対象となるターゲッ
    トタスクを実行する手段を備えたことを特徴とするデバ
    ッグ方式。
  2. 【請求項2】 前記デバッガは、前記リアルタイムオペ
    レーティングシステムに対してデバッグの対象となるタ
    ーゲットタスクをスーパプライオリティで実行すべきこ
    とを示すスーパプライオリティ識別子をセットする手段
    を含み、 前記リアルタイムオペレーティングシステムは、前記ス
    ーパプライオリティ識別子がセットされているときには
    デバッグの対象となるターゲットタスクを優先的に実行
    する手段を含む 請求項1記載のデバッグ方式。
  3. 【請求項3】 前記優先的に実行する手段は、前記スケ
    ジュール手段によるタスク選出の順序に従うことなくデ
    バッグの対象となるターゲットタスクを前記ディスパッ
    チターゲットタスク保持手段にセットする手段を含む
    求項2記載のデバッグ方式。
  4. 【請求項4】 前記リアルタイムオペレーティングシス
    テムに、前記スーパプライオリティ識別子がセットされ
    ているか否かを検出し検出結果を出力する検出手段を含
    み、 前記デバッガは、タスクがブレークポイントで停止状態
    のときレディ状態にあるターゲットタスクをデバッグす
    るユーザのコマンドを入力してデバッグ対象のターゲッ
    トタスクを指定しこの指定したターゲットタスクをディ
    スパッチするダミーシステムコールを前記システムサー
    ビス提供手段に出力するコマンド解釈部と、この指定さ
    れたターゲットタスクの実行再開点にブレークポイント
    をセットするブレークポイント管理手段と、この指定さ
    れたターゲットタスクを選択して前記ディスパッチター
    ゲットタスク保持手段にセットし前記スーパプライオリ
    ティ識別子をセットする選択手段とを含む請求項記載
    のデバッグ方式。
  5. 【請求項5】 前記システムサービス提供手段は前記ダ
    ミーシステムコールに基づき処理を行う手段を含み、前
    記ディスパッチ手段は前記検出結果がセットされている
    場合に前記スケジュール手段をバイパスしてディスパッ
    チターゲットタスク保持手段にセットされたターゲット
    タスクをディスパッチする手段を含む請求項記載のデ
    バッグ方式。
  6. 【請求項6】 請求項記載のデバッグ方式において、 前記リアルタイムオペレーティングシステムに、前記ス
    ーパプライオリティ識別子がセットされているか否かを
    検出し検出結果を出力する検出手段を含み、 前記デバッガは、タスクがブレークポイントで停止状態
    のときレディ状態にないターゲットタスクをデバッグす
    るユーザのコマンドを入力してデバッグ対象のターゲッ
    トタスクを指定し前記システムサービス提供手段にタス
    クの実行を再開させるコマンド解釈部と、この指定され
    たターゲットタスクに実行再開点のブレークポイントを
    セットするブレークポイント管理手段と、この指定され
    たターゲットタスクを選択して前記スーパプライオリテ
    ィタスク保持手段にセットする選択手段とを含むことを
    特徴とするデバッグ方式。
  7. 【請求項7】 前記システムサービス提供手段は、タス
    クをレディキューに接続するオペレーティング資源管理
    手段を含み、 前記オペレーティングサービス資源管理手段は、前記シ
    ステムサービス提供手段がシステムサービスを行った各
    時点で前記スーパプライオリティタスク保持手段の内容
    と前記レディキューに接続されたタスクとを比較し比較
    結果が一致した場合に前記スーパプライオリティ識別子
    をセットする手段を含み、 前記検出手段は前記検出結果がセットされている場合に
    は前記スーパプライオリティタスク保持手段の内容を前
    記ディスパッチターゲットタスク保持手段にセットする
    手段を含み、 前記スケジュール手段は前記検出結果がセットされてい
    ない場合には次にディスパッチするタスクを前記ディス
    パッチターゲットタスク保持手段にセットする手段を含
    み、 前記ディスパッチ手段は前記ディスパッチターゲットタ
    スク保持手段にセットされたタスクをディスパッチする
    手段を含む請求項記載のデバッグ方式。
JP5304356A 1993-12-03 1993-12-03 デバッグ方式 Expired - Lifetime JP2643804B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5304356A JP2643804B2 (ja) 1993-12-03 1993-12-03 デバッグ方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5304356A JP2643804B2 (ja) 1993-12-03 1993-12-03 デバッグ方式

Publications (2)

Publication Number Publication Date
JPH07160530A JPH07160530A (ja) 1995-06-23
JP2643804B2 true JP2643804B2 (ja) 1997-08-20

Family

ID=17932038

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5304356A Expired - Lifetime JP2643804B2 (ja) 1993-12-03 1993-12-03 デバッグ方式

Country Status (1)

Country Link
JP (1) JP2643804B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7140018B1 (en) * 2000-06-20 2006-11-21 International Business Machines Corporation Method of using a distinct flow of computational control as a reusable abstract data object
JP2002140208A (ja) * 2000-10-31 2002-05-17 Toshiba Corp 性能シミュレーション装置および性能シミュレーション方法および性能シミュレーションプログラムを記録した記録媒体
EP1530137A1 (en) * 2003-11-10 2005-05-11 Robert Bosch Gmbh Simulation system and computer-implemented method for simulation and verifying a control system
US20170161114A1 (en) * 2015-12-08 2017-06-08 Advanced Micro Devices, Inc. Method and apparatus for time-based scheduling of tasks
CN110737522B (zh) * 2019-10-16 2023-03-03 福州物联网开放实验室有限公司 一种嵌入式操作系统的待机任务调度方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0266640A (ja) * 1988-08-31 1990-03-06 Nec Corp デバッガタスクスケジューリング方式
JPH0327451A (ja) * 1989-06-23 1991-02-05 Matsushita Electric Ind Co Ltd リアルタイムオペレーティングシステム

Also Published As

Publication number Publication date
JPH07160530A (ja) 1995-06-23

Similar Documents

Publication Publication Date Title
US5632032A (en) Cross address space thread control in a multithreaded environment
KR930000592B1 (ko) 타스크 추적장치
JP3571976B2 (ja) デバッグ装置及び方法並びにプログラム記録媒体
JP4476193B2 (ja) 情報処理方法および情報処理装置
JP2003523561A (ja) 組込み型プロセッサにおいてゼロタイムコンテクストスイッチを用いて命令レベルをマルチスレッド化するシステムおよび方法
US7472214B2 (en) Real-time embedded simple monitor method and computer product
JP2011103132A (ja) Os隔離シーケンサー上のユーザーレベルのマルチスレッド化をエミュレートする機構
TW200941340A (en) A method and apparatus for suspending execution of a thread until a specified memory access occurs
JP2643804B2 (ja) デバッグ方式
JP2000066904A (ja) マルチタスク制御方法及び記憶媒体
WO2021046932A1 (zh) 基于实时操作系统的消息驱动方法和装置
JP2001282558A (ja) マルチオペレーティング計算機システム
JP3245500B2 (ja) マルチプログラミングにおける事象管理方式
JP3644042B2 (ja) マルチタスク処理装置
JPH0895803A (ja) タスクスケジュール方法
JPH064364A (ja) Cpu動作記録方式
JPH09160790A (ja) タスクスケジュール装置及びタスクスケジュール方法
JP2006228074A (ja) マルチタスクシステムおよびマルチタスク制御方法
JPH04314141A (ja) マルチタスク制御方法とその機構
JPH06149615A (ja) イベント記録方式
JP2809174B2 (ja) デバッグ装置
JPH11272501A (ja) デバッガの処理方法およびリアルタイムosの処理方法
JPH08320809A (ja) 外乱プロセス排除方式
JPH02156336A (ja) クロック処理方法
JPS60114941A (ja) マルチ・タスク制御用デバイス