JPH10149294A - オペレーティングシステム - Google Patents

オペレーティングシステム

Info

Publication number
JPH10149294A
JPH10149294A JP30765496A JP30765496A JPH10149294A JP H10149294 A JPH10149294 A JP H10149294A JP 30765496 A JP30765496 A JP 30765496A JP 30765496 A JP30765496 A JP 30765496A JP H10149294 A JPH10149294 A JP H10149294A
Authority
JP
Japan
Prior art keywords
task
function
stack
address
program
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.)
Withdrawn
Application number
JP30765496A
Other languages
English (en)
Inventor
Toshio Matsuki
敏夫 松木
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP30765496A priority Critical patent/JPH10149294A/ja
Publication of JPH10149294A publication Critical patent/JPH10149294A/ja
Withdrawn legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 1個のマイクロコントローラ上で動作するプ
ログラムを、簡便な構成により、見かけ上、並行動作さ
せる。 【解決手段】 スタック内容解析部101は、タスク登
録システムコール203の発生時に、スタックフレーム
を解析し、何処のアドレスから呼び出されたかの情報を
獲得する。タスク管理情報生成部102は、新たに生成
されるタスクの管理に必要な変数領域を確保する。スタ
ック領域獲得部103は、新たに生成されるタスクが使
用するスタック領域を確保する。タスク消滅プログラム
アドレス設定部104は、タスクとして登録される関数
の実行の終了後に分岐すべきタスク消滅プログラムのア
ドレスを設定する。タスク登録部105はタスクを登録
する。従って、タスク登録システムコールを発行した関
数が、そのシステムコールの発生後その関数が終了する
までの期間で、その関数をタスクとして生成できる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はオペレーティングシ
ステムの改良に関し、詳しくは、1個のマイクロコント
ローラ上で動作するプログラムを、見かけ上、並行動作
させる技術に関する。
【0002】
【従来の技術】近年、マイクロプロセッサを用いる分野
においても、リアルタイムオペレーティングシステムが
多用されつつある。その理由は、1個のマイクロコント
ローラで複数の機能を実現する処理を行わせようとする
場合、それ等複数の機能の並行動作が可能であれば、そ
の各機能相互の動作を独立して別々に開発することがで
き、開発効率が高まるからである。
【0003】
【発明が解決しようとする課題】従来のオペレーティン
グシステムでは、並行動作させるために、システムコー
ルと呼ばれる制御コマンドを用い、アプリケーション側
でそれ等の制御コマンドを操っていた。従って、従来で
は、プログラマーは、機能分割されたタスクと呼ばれる
プログラム群をどのように制御するかを、常に意識して
コーディングする必要があり、現状では、タスクの管理
を複雑にしないように、タスクの数は制限されている。
【0004】また、最近、オブジェクト指向言語を用い
たプログラミングも行われつつある。このオブジェクト
指向言語は、機能的にまとまったプログラムの一部をブ
ラックボックス的に扱い、事象駆動によりプログラムを
動作させることができ、従って、本質的に並行動作をさ
せるプログラムを記述することに向いているが、現在の
オブジェクト指向言語の処理系は、逐次処理を行うオブ
ジェクトしか出力できない。一方、並行動作させる言語
も、研究レベルでの発表がされているが、実際には、殆
ど使用されていない。
【0005】並行動作の具体例を示す。複数の処理の中
でプログラム処理により『3秒間ブザーを鳴らす』処理
がある場合に、他の処理と並行動作が可能であれば、
『3秒間ブザーを鳴らす』というタスクを起動させ、そ
の後、3秒も待つことなく次の処理へ進むことができ
る。この『3秒間ブザーを鳴らす』タスクは、実際に3
秒間ブザーを鳴らした後に消滅する。
【0006】従来のオペレーティングシステムでは、
『3秒間ブザーを鳴らす』タスクを予め登録しておき、
このタスクを起動するシステムコールを発生させ、この
システムコールにより、『3秒間ブザーを鳴らす』タス
クを起動する。このタスクを起動した時点で次の処理へ
進むことができる。即ち、『3秒間ブザーを鳴らす』タ
スクが自らブザーを鳴らすので、3秒間待つ必要はな
い。
【0007】しかし、タスクの登録、システムコールの
発生、更には役割を終えたタスクの消滅の手続き等、手
続きが多い欠点がある。
【0008】一方、逐次処理で行う場合には、必ず3秒
間待つ必要がある。オブジェクト指向言語であっても同
様である。割込み処理を用いれば、オペレーティングシ
ステムと同様な処理に可能になるが、プログラムが複雑
になる欠点がある。
【0009】従来では、システムの性能向上が必要な場
合に、タスクの管理が複雑なオペレーティングシステム
はさほど使われず、割込み処理を駆使するのが一般的で
ある。この割込み処理は、通常、デバッグを困難にする
ため、この割込処理が増えるほど、開発効率が低下して
いた。
【0010】
【課題を解決するための手段】本発明の目的は、タスク
の生成、消滅等を関数単位で簡単に行い得るオペレーテ
ィングシステムを提供することにある。
【0011】前記の目的達成のため、請求項1記載のオ
ペレーティングシステムは、タスク登録システムコール
の発生時に、スタックフレームを解析し、少くとも何処
のアドレスから呼び出されたかの情報を獲得するスタッ
ク内容解析部と、新たに生成されるタスクの管理に必要
な変数領域をメモリ上に確保するタスク管理情報生成部
と、新たに生成されるタスクが使用するスタック領域を
メモリ上に確保するスタック領域獲得部と、タスクとし
て登録される関数の実行の終了後に分岐すべきタスク消
滅プログラムのアドレスをスタックに設定するタスク消
滅プログラムアドレス設定部と、タスクを登録するタス
ク登録部とから成るタスク生成部を備えたことを特徴と
する。
【0012】また、請求項2記載の発明は、前記請求項
1記載のオペレーティングシステムにおいて、タスク登
録システムコールは、呼び出されてタスクになる関数の
中で発生させることを特徴とする。
【0013】更に、請求項3記載の発明は、前記請求項
1記載のオペレーティングシステムにおいて、スタック
フレームは、呼び出されてタスクになる関数の中でタス
クの実行に必要な領域分を指定されることを特徴とす
る。
【0014】加えて、請求項4記載の発明は、前記請求
項1記載のオペレーティングシステムにおいて、スタッ
ク内容解析部は、システムコールを発生した関数を呼出
した元の関数が何処のアドレスからそのシステムコール
を行ったかの情報をスタックフレームから獲得し、タス
ク登録部よりタスクが登録された後、タスクIDを持っ
て、前記呼出元の関数の中の関数呼び出し処理の次の処
理を実行することを特徴とする。
【0015】以上の構成により、本発明では、タスク登
録システムコールを発生させた関数又はサブルーチン
が、そのシステムコールを発生させた後、その関数又は
サブルーチンの実行が終了するまでの期間のみ、その関
数又はサブルーチンをタスクとして、生成することがで
きる。従って、呼び出し先の関数の中に、タスク登録シ
ステムコールを発生させる関数、又はサブルーチン呼び
出しを設けるだけで、プログラムの並行動作を容易に行
うことができ、システムの性能向上と開発効率の向上と
を同時に一挙に達成できる。
【0016】
【発明の実施の形態】以下、本発明の実施形態を図面を
参照しながら説明する。
【0017】図1は、本発明のオペレーティングシステ
ムのタスク生成部を示す。図2は、前記タスク生成部が
使用される際での元の関数からの処理の流れを示す。
【0018】図2において、200は、タスクにしよう
とする関数を呼び出す元のプログラム(元の関数)であ
って、この呼出元の関数200には、その関数の中から
タスクにしようとする関数を呼び出す処理201が含ま
れる。
【0019】202は、前記関数を呼び出す処理201
により呼び出された関数であって、この呼び出された関
数202の先頭には、タスク登録システムコール203
が含まれる。前記呼び出された関数202は、タスクの
実行に必要なスタックフレームのサイズ(領域分)をタ
スク登録システムコール203の引数として指定する。
【0020】100は、本発明に係るオペレーティング
システムのタスク生成部であって、前記呼び出された関
数202のタスク登録システムコール203により、こ
のタスク生成部100に遷移する。
【0021】前記タスク生成部100において、101
はスタック内容解析部、102はタスク管理情報生成
部、103はスタック領域獲得部、104はタスク消滅
プログラムアドレス設定部、105はタスク登録部であ
る。
【0022】前記スタック内容解析部101は、前記タ
スク登録システムコール203を発生させた関数202
が生成したスタックフレームを解析し、何処のアドレス
から呼出されたか、更にそのシステムコールを発生した
関数202を呼出した元の関数200が何処のアドレス
からそのシステムコールを行ったかの情報を獲得する。
引数があれば、この内容解析部101は、その情報を獲
得する。
【0023】前記タスク管理情報生成部102は、新た
に生成されるタスクのために、オペレーティングシステ
ムがタスク管理に必要な変数領域をメモリ上に確保し、
その変数領域を初期化する。
【0024】前記スタック領域獲得部103は、新たに
生成されるタスクが使用するスタック領域をメモリ上に
確保する。
【0025】前記タスク消滅プログラムアドレス設定部
104は、タスク消滅プログラムの先頭アドレスを設定
する。一般的には、タスクとして登録される関数が、そ
の実行の終了後に読出し元に戻るために、スタックから
戻りアドレス(呼出し元のアドレス)を読出し、その戻
りアドレスへ分岐するが、実行終了後にタスク消滅プロ
グラムへ分岐するようにスタックにそのアドレスを設定
する。
【0026】タスク登録部105は、タスクを登録し、
タスクがオペレーティングシステムでスケジュリングで
きるように処理する。
【0027】タスク登録部105よりタスクが登録され
た後は、タスクIDを持って元の関数200にディスパ
ッチして、この元の関数200のタスク関数呼び出し処
理201の次の処理207を実行する。この時には、遅
延ディスパッチを行ってもよい。
【0028】図3は、本実施の形態のオペレーティング
システムにおけるスタックの内部構成の説明図である。
同図において、300は呼び出された関数202がタス
ク登録システムコールを発生させた時のスタックポイン
タ(SP)の位置を示す。301は、前記タスク登録シ
ステムコールが発生させた関数202が持つスタック領
域である。この領域301において、302は前記タス
ク登録システムコール203の次のアドレスの格納場
所、304は呼び出し元の関数200のタスク関数呼び
出し201の次のアドレスの格納場所、303は前記タ
スク関数呼び出し201の引数領域である。
【0029】また、305は、タスク生成部100のよ
るタスク生成で確保されたスタック領域である。このス
タック領域305において、306は登録されたタスク
の初期スタックポインタの位置、前記引数領域303を
コピーした領域、308は生成したタスクの消滅プログ
ラムを呼出すためのアドレスの格納場所である。
【0030】
【発明の効果】以上説明したように、本発明のオペレー
ティングシステムによれば、1個のマイクロコントロー
ラ上で動作するプログラムを、簡便な構成を用いて、見
かけ上、並行動作させることができるので、オペレーテ
ィングシステムのタスクスケジュリング機構をより一層
活用することができ、システムの性能の向上及びシステ
ム開発効率の向上を同時に図ることができる。しかも、
使用する言語に拘らずに使用可能であるので、適用範囲
が広い。
【図面の簡単な説明】
【図1】本発明の実施の形態におけるオペレーティング
システムのタスク生成部の構成を示すブロック図であ
る。
【図2】同実施の形態のタスク生成部が使用される際の
呼び出し元の関数からの処理の流れを示した図である。
【図3】同実施の形態のスタックの内部構成の概略を示
す説明図である。
【符号の説明】
100 タスク生成部 101 スタック内容解析部 102 タスク管理情報生成部 103 スタック領域獲得部 104 タスク消滅プログラムアドレス設定部 105 タスク登録部 200 呼び出し元の関数 202 タスクにしようとする関数 203 タスク登録システムコール

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 タスク登録システムコールの発生時に、
    スタックフレームを解析し、少くとも何処のアドレスか
    ら呼び出されたかの情報を獲得するスタック内容解析部
    と、 新たに生成されるタスクの管理に必要な変数領域をメモ
    リ上に確保するタスク管理情報生成部と、 新たに生成されるタスクが使用するスタック領域をメモ
    リ上に確保するスタック領域獲得部と、 タスクとして登録される関数の実行の終了後に分岐すべ
    きタスク消滅プログラムのアドレスをスタックに設定す
    るタスク消滅プログラムアドレス設定部と、 タスクを登録するタスク登録部とから成るタスク生成部
    を備えたことを特徴とするオペレーティングシステム。
  2. 【請求項2】 タスク登録システムコールは、呼び出さ
    れてタスクになる関数の中で発生させることを特徴とす
    る請求項1記載のオペレーティングシステム。
  3. 【請求項3】 スタックフレームは、呼び出されてタス
    クになる関数の中でタスクの実行に必要な領域分を指定
    されることを特徴とする請求項1記載のオペレーティン
    グシステム。
  4. 【請求項4】 スタック内容解析部は、システムコール
    を発生した関数を呼出した元の関数が何処のアドレスか
    らそのシステムコールを行ったかの情報をスタックフレ
    ームから獲得し、 タスク登録部よりタスクが登録された後、タスクIDを
    持って、前記呼出元の関数の中の関数呼び出し処理の次
    の処理を実行することを特徴とする請求項1記載のオペ
    レーティングシステム。
JP30765496A 1996-11-19 1996-11-19 オペレーティングシステム Withdrawn JPH10149294A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP30765496A JPH10149294A (ja) 1996-11-19 1996-11-19 オペレーティングシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP30765496A JPH10149294A (ja) 1996-11-19 1996-11-19 オペレーティングシステム

Publications (1)

Publication Number Publication Date
JPH10149294A true JPH10149294A (ja) 1998-06-02

Family

ID=17971652

Family Applications (1)

Application Number Title Priority Date Filing Date
JP30765496A Withdrawn JPH10149294A (ja) 1996-11-19 1996-11-19 オペレーティングシステム

Country Status (1)

Country Link
JP (1) JPH10149294A (ja)

Similar Documents

Publication Publication Date Title
JP2692609B2 (ja) マルチタスクのプログラムデバッグ方法とその装置
JP2001202253A (ja) データ処理方法およびデータ処理装置
CN107451045A (zh) 一种异常信息定位的方法及装置
JPH10149294A (ja) オペレーティングシステム
US5765148A (en) Database processing apparatus and database processing method for variable length objects, and computer-readable memory medium for storing database processing program
JP2589791B2 (ja) ループ制御装置
JP2001255912A (ja) モーションプログラムの実行方法
JPS63163636A (ja) 並列処理実行方式
JP3039450B2 (ja) スタック領域の切替方法、方式およびスタック領域切替プログラムを記録した記憶媒体
JPH05241890A (ja) データトレース方式
JPH0764802A (ja) リアルタイムシステムのシミュレーション装置
JPS61180344A (ja) 高級言語のステツプ実行システム
JPS63138427A (ja) 配列に対する命令のスケジユ−リング処理方式
Mohr Distillations of dynamic partitioning experience
JPH03103926A (ja) プロローグインタプリタ・コンパイラのインタフェース方法
JPH03255535A (ja) 中央処理装置
JPH04128936A (ja) プログラム実行環境切換え方式
JPH04311225A (ja) マイクロプロセッサ命令実行方式
JPS6121532A (ja) スケジユ−リング方法
Lee Implementing threads in Standard ML
JPH0816371A (ja) シミュレーションプログラム生成方式
JPH01200440A (ja) プログラムデバツグ方法
JPH09185525A (ja) プロトコルデバッグ方式
JPH06161826A (ja) データ駆動型計算機のシミュレーションシステム
JPH10283193A (ja) 高速インタプリタ方式

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20040203