JPH04229331A - 組込型マルチタスクオペレーティングシステムの例外処理方法 - Google Patents

組込型マルチタスクオペレーティングシステムの例外処理方法

Info

Publication number
JPH04229331A
JPH04229331A JP3110805A JP11080591A JPH04229331A JP H04229331 A JPH04229331 A JP H04229331A JP 3110805 A JP3110805 A JP 3110805A JP 11080591 A JP11080591 A JP 11080591A JP H04229331 A JPH04229331 A JP H04229331A
Authority
JP
Japan
Prior art keywords
task
user task
issued
system call
cpu
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
JP3110805A
Other languages
English (en)
Inventor
Keizo Baba
馬場 圭三
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.)
Ricoh Co Ltd
Original Assignee
Ricoh 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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP3110805A priority Critical patent/JPH04229331A/ja
Publication of JPH04229331A publication Critical patent/JPH04229331A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Control By Computers (AREA)

Abstract

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

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、複数のユーザタスクを
並列して処理可能な組込型マルチタスクオペレーティン
グシステムの例外処理方法に関する。
【0002】
【従来の技術】例えば、ファクシミリ装置など、マイク
ロコンピュータシステムを利用して動作制御を行なって
いる装置で、複数のタスク(処理単位)を並列的に実行
する必要がある場合、その制御システムとして、マルチ
タスクオペレーティングシステムを使用している。
【0003】このようなマルチタスクオペレーティング
システムでは、装置の制御ソフトウェアが完成するまで
、何度か制御ソフトウェアの機能検査、いわゆる、デバ
ッグ作業を行なう必要があり、その便宜のための種々の
機能を備えている。
【0004】例えば、ユーザタスクプログラム(以下、
単にプログラムという)の実行状況を1ステップずつ検
査できるトレース機能、プログラムを任意の時点で停止
できるブレーク機能、および、プログラムの不都合(以
下、バグという)によりシステムが暴走したときにシス
テムを停止するウォッチドッグタイマ機能などである。
【0005】
【発明が解決しようとする課題】しかしながら、このよ
うな従来装置では、デバッグ中にシステムが暴走したと
き、暴走を引き起こしたタスクのみならず、他のタスク
の実行状態を変化させることが有り、このような場合、
どのタスクがバグをもっているかオペレータが判断でき
ないという不都合を生じていた。
【0006】また、完成した制御ソフトウェアを組込ん
だ装置を稼働中、その装置の動作環境によっては、シス
テム内部のバスにノイズが混入してバス上のデータが破
壊され、システムが暴走して制御不可能な状態になった
り、装置に組込まれている機器などを破壊するという不
都合を生じていた。
【0007】本発明は、このような実情に鑑みてなされ
たものであり、デバッグ作業を効率よく行なえるととも
に、システム暴走時の影響を抑制できる組込型マルチタ
スクオペレーティングシステムの例外処理方法を提供す
ることを目的としている。
【0008】
【課題を解決するための手段】本発明は、装置機能検査
時、未定義機能のシステムコールが、同一ユーザタスク
から所定回数連続して発行されると、そのユーザタスク
を強制待ち状態に遷移させるようにしたものである。
【0009】また、装置稼働時、未定義機能のシステム
コールが、同一ユーザタスクから所定回数連続して発行
されると、そのユーザタスクを強制的に終了させるよう
にしたものである。
【0010】
【作用】したがって、装置機能検査時、システム暴走し
たときの原因となったユーザタスクが強制待ち状態に遷
移させるので、そのシステム暴走の影響が他のユーザタ
スクに影響を及ぼすことが防止され、装置機能検査を効
率よく行なうことができる。また、装置稼働時、システ
ム暴走したときの原因となったユーザタスクが強制終了
されるので、そのシステム暴走の影響が他のユーザタス
クに影響を及ぼすことが防止される。
【0011】
【実施例】以下、添付図面を参照しながら、本発明の実
施例を詳細に説明する。
【0012】図1は、本発明の一実施例にかかる装置モ
デルを示している。
【0013】同図において、CPU(中央処理装置)1
は、この装置の動作制御を行なうものであり、ROM(
リード・オンリ・メモリ)2は、CPU1が実行する処
理プログラムおよびその処理プログラムを実行するため
に必要な種々のデータを記憶するものであり、RAM(
ランダム・アクセス・メモリ)3は、CPU1が実行す
る処理プログラムのワークエリアなどをなすものである
【0014】I/Oポート4は、周辺装置5,6とCP
U1を接続するためのものであり、周辺装置5,6は、
それぞれこの装置の機能を実現するためのものである。 例えば、ファクシミリ装置の場合、画像を読み取るため
のスキャナおよび画像を記録出力するためのプロッタな
どがこの周辺装置5,6に相当する。
【0015】この装置モデルでは、図2に示すように、
システムが階層化されている。
【0016】同図において、システム資源は、CPU1
、RAM3のワークエリア、および、周辺装置5,6な
どをあらわし、ユーザタスクは、この装置の処理機能を
実現するソフトウェアの処理単位をあらわし、マルチタ
スクオペレーティングシステム(以下、OSと言う)は
、ユーザタスクの実行を効率よく処理するためのシステ
ムソフトウェアをあらわす。
【0017】このOSは、複数のユーザタスクを並列的
に実行する機能を備えており、本実施例では、ユーザタ
スクからの処理の実行要求は、システムコールという所
定の形式のデータを発行するという形態で行なわれる。 また、このシステムコールの発行は、所定のレジスタに
実行要求する処理機能をあらわす機能コードをセットし
た状態で、ソフトウェア割り込みを発行することで行な
われる。
【0018】また、この装置モデルでは、図3(a)に
示すように、OSのプログラムが配置されるOS領域、
ユーザタスクのプログラムが配置されるユーザタスク領
域、ワーク領域、および、データテーブル領域に、CP
U1のメモリ空間が分割されている。
【0019】ここで、ユーザタスク領域には、同図(b
)に示すように、複数のタスクが記憶されている。
【0020】以上の構成で、この装置モデルのソフトウ
ェアをデバッグするときに、ユーザタスクからシステム
コールが発行されたときにOSが実行する処理例を図4
に示す。
【0021】まず、ソフトウェア割り込みが入力される
と、OSは、その時点で実行中のタスクを待機状態(W
AIT状態)に遷移させるとともにそのときのCPU1
のレジスタの内容を所定の領域に退避し(処理101)
、発行されたシステムコールの機能が未定義のものであ
るかどうかを調べる(判断102)。
【0022】判断102の結果がNOになるときには、
正常なシステムコールであるので、そのときに指定され
た機能コードに対応した処理を実行し(処理103)、
その処理を終了すると、実行可能な状態(READY状
態)に登録されている複数のタスクの中から、所定の実
行スケジュールにしたがって次に実行するタスクを選択
し(処理104)、その選択したタスクを実行するため
にレジスタの内容を選択タスクに対応した内容に更新し
て(処理105)、そのタスクを実行する状態に遷移す
る。
【0023】また、判断102の結果がYESになると
きには、不正なシステムコールを発行したタスクを記憶
するための変数I_TCBが、システムコールを発行し
たタスクの識別情報C_TCBに等しいかどうかを調べ
て(判断106)、判断106の結果がNOになるとき
には、変数I_TCBに識別情報C_TCBの内容をセ
ットし(処理107)、同一タスクが不正なシステムコ
ールを連続して発行した数を記憶するためのカウンタI
_CNTに所定値Nをセットして(処理108)、処理
104に移行して、実行中断したタスクの実行を再開す
る。
【0024】また、判断106の結果がYESになると
きには、カウンタI_CNTをデクリメントし(処理1
09)、カウンタI_CNTの値が0に等しいかどうか
を調べる(判断110)。
【0025】判断110の結果がNOになるときには、
そのときに発行されたシステムコールの機能を実行せず
に、処理104に移行し、実行中断したタスクの実行を
再開する。
【0026】また、判断110の結果がYESになると
きには、同一タスクが不正なシステムコールをN回連続
して発行した場合であり、そのタスクが異常な状態なの
で、所定の例外処理ルーチン(図示略)を実行し(処理
111)、実行中のタスクを強制待ち状態(SUSPE
ND状態)に遷移させて(処理112)、変数I_TC
Bに所定値NULLをセットするとともに(処理113
)、カウンタI_CNTに所定値Nをセットし(処理1
14)、処理104に移行して、実行中断したタスクの
実行を再開する。
【0027】このようにして、本実施例では、デバッグ
作業時に同一タスクが不正なシステムコールを連続して
N回発行したとき、そのシステムコールを発行したユー
ザタスクが異常であると判定し、そのユーザタスクを異
常状態のままSUSPEND状態に遷移させているので
、このユーザタスクの異常が原因となって他のタスクの
実行状態まで異常になるような事態を防止できる。
【0028】また、適当なタイミングでブレークさせる
と、その異常状態のままSUSPEND状態に遷移させ
たタスクを適切にトレースすることができ、したがって
、効率的なデバッグ作業を行なうことができる。
【0029】また、この装置モデルのソフトウェアのデ
バッグが完了して、この装置モデルを実際に稼働すると
きに、ユーザタスクからシステムコールが発行されたと
きにOSが実行する処理例を図5に示す。
【0030】まず、ソフトウェア割り込みが入力される
と、OSは、その時点で実行中のタスクをWAIT状態
に遷移させるとともにそのときのCPU1のレジスタの
内容を所定の領域に退避し(処理201)、発行された
システムコールの機能が未定義のものであるかどうかを
調べる(判断202)。
【0031】判断202の結果がNOになるときには、
正常なシステムコールであるので、そのときに指定され
た機能コードに対応した処理を実行し(処理203)、
その処理を終了すると、実行可能な状態(READY状
態)に登録されている複数のタスクの中から、所定の実
行スケジュールにしたがって次に実行するタスクを選択
し(処理204)、その選択したタスクを実行するため
にレジスタの内容を選択タスクに対応した内容に更新し
て(処理205)、そのタスクを実行する状態に遷移す
る。
【0032】また、判断202の結果がYESになると
きには、変数I_TCBが、システムコールを発行した
タスクの識別情報C_TCBに等しいかどうかを調べて
(判断206)、判断206の結果がNOになるときに
は、変数I_TCBに識別情報C_TCBの内容をセッ
トし(処理207)、カウンタI_CNTに所定値Nを
セットして(処理208)、処理204に移行し、実行
中断したタスクの実行を再開する。
【0033】また、判断206の結果がYESになると
きには、カウンタI_CNTをデクリメントし(処理2
09)、カウンタI_CNTの値が0に等しいかどうか
を調べる(判断210)。
【0034】判断210の結果がNOになるときには、
そのときに発行されたシステムコールの機能を実行せず
に、処理204に移行し、実行中断したタスクの実行を
再開する。
【0035】また、判断210の結果がYESになると
きには、同一タスクが不正なシステムコールをN回連続
して発行した場合であり、そのタスクが異常な状態なの
で、所定の例外処理ルーチン(図示略)を実行し(処理
211)、実行中のタスクに対応した終了ルーチンを実
行してそのタスクが使用しているシステム資源を全て解
放させ(処理212)、変数I_TCBに所定値NUL
Lをセットするとともに(処理213)、カウンタI_
CNTに所定値Nをセットし(処理214)、処理20
4に移行して、実行中断したタスクの実行を再開する。
【0036】このようにして、本実施例では、装置稼働
時に同一タスクが不正なシステムコールを連続してN回
発行したとき、そのシステムコールを発行したユーザタ
スクが異常であると判定し、そのユーザタスクを強制的
に終了させているので、このユーザタスクの異常が原因
となって他のタスクの実行状態まで異常になるような事
態を防止できる。
【0037】また、そのときに、異常なユーザタスクに
対応した終了ルーチンを実行させて、そのユーザタスク
が使用していたシステム資源を解放するとともに、その
ユーザタスクが他のユーザタスク(以下、子タスクとい
う)を起床したり、生成した場合には、その子タスクを
消滅させて、ワークエリアを解放させるようにしている
【0038】なお、上述した実施例では、ソフトウェア
割り込みを利用してシステムコールを実現しているが、
システムコールの実現形態がこの実施例と相違する場合
にも、本発明を同様にして適用することができる。
【0039】
【発明の効果】以上説明したように、本発明によれば、
装置機能検査時、システム暴走したときの原因となった
ユーザタスクが強制待ち状態に遷移させるので、そのシ
ステム暴走の影響が他のユーザタスクに影響を及ぼすこ
とが防止され、装置機能検査を効率よく行なうことがで
きる。また、装置稼働時、システム暴走したときの原因
となったユーザタスクが強制終了されるので、そのシス
テム暴走の影響が他のユーザタスクに影響を及ぼすこと
が防止されるという効果を得る。
【図面の簡単な説明】
【図1】本発明の一実施例にかかる装置モデルを示すブ
ロック図。
【図2】図1の装置モデルのシステム構成の概略を示す
概略図。
【図3】図1の装置モデルのメモリ空間の分割態様を例
示した概略図。
【図4】図1の装置モデルのソフトウェアをデバッグす
るときにユーザタスクからシステムコールが発行された
ときにOSが実行する処理例を示すフローチャート。
【図5】図1の装置モデルの稼働時にユーザタスクから
システムコールが発行されたときにOSが実行する処理
例を示すフローチャート。

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】  複数のユーザタスクを並列して処理可
    能な組込型マルチタスクオペレーティングシステムの例
    外処理方法において、装置機能検査時、未定義機能のシ
    ステムコールが、同一ユーザタスクから所定回数連続し
    て発行されると、そのユーザタスクを強制待ち状態に遷
    移させることを特徴とする組込型マルチタスクオペレー
    ティングシステムの例外処理方法。
  2. 【請求項2】  複数のユーザタスクを並列して処理可
    能な組込型マルチタスクオペレーティングシステムの例
    外処理方法において、装置稼働時、未定義機能のシステ
    ムコールが、同一ユーザタスクから所定回数連続して発
    行されると、そのユーザタスクを強制的に終了させるこ
    とを特徴とする組込型マルチタスクオペレーティングシ
    ステムの例外処理方法。
JP3110805A 1990-11-29 1991-04-17 組込型マルチタスクオペレーティングシステムの例外処理方法 Pending JPH04229331A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3110805A JPH04229331A (ja) 1990-11-29 1991-04-17 組込型マルチタスクオペレーティングシステムの例外処理方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP32518390 1990-11-29
JP2-325183 1990-11-29
JP3110805A JPH04229331A (ja) 1990-11-29 1991-04-17 組込型マルチタスクオペレーティングシステムの例外処理方法

Publications (1)

Publication Number Publication Date
JPH04229331A true JPH04229331A (ja) 1992-08-18

Family

ID=26450339

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3110805A Pending JPH04229331A (ja) 1990-11-29 1991-04-17 組込型マルチタスクオペレーティングシステムの例外処理方法

Country Status (1)

Country Link
JP (1) JPH04229331A (ja)

Similar Documents

Publication Publication Date Title
JPH05216851A (ja) ユーザプログラムおよびオペレーティングシステム間の高速通信のための方法
JPH0895821A (ja) マルチタスクのプログラムデバッグ方法とその装置
JPH0521251B2 (ja)
JPH04229331A (ja) 組込型マルチタスクオペレーティングシステムの例外処理方法
JP3124788B2 (ja) 組込型マルチタスクオペレーティングシステムの例外処理方法
JPH0328933A (ja) タスク制御方法
JPH0433130A (ja) マルチチップ構成方法
JP4535663B2 (ja) ステートマシン制御方式およびステートマシン
JP2508026B2 (ja) タイマ制御方式
JPH03260838A (ja) Cpu使用時間制限方式
JPS5835648A (ja) プログラム実行制御方式
JPH04264632A (ja) 並列演算処理装置の実行トレース方式
JPS6020771B2 (ja) マイクロ診断方式
JPH01185729A (ja) オーバレイ構造プログラム実行方式
JPH0378034A (ja) プログラム並行実行装置
JPS6339047A (ja) 試験プログラム用スケジユ−ラ
JPH01319854A (ja) 疎結合マルチプロセッサ試験方式
JPS61148535A (ja) 関数型/論理型言語処理装置
JPH07210403A (ja) タスク切換システム
JPH0462093B2 (ja)
JPH10312294A (ja) 情報処理装置、情報処理方法、及び、情報処理プログラムを記録した読み取り可能な記録媒体
JPH11272501A (ja) デバッガの処理方法およびリアルタイムosの処理方法
JPH08272630A (ja) ラダープログラムによるマルチタスク処理方法及び処理装置
JPH01154252A (ja) 並列プロセッサのプログラムデバッグ支援装置
JPS61194531A (ja) 命令実行制御装置