JPH10289114A - マルチタスク制御方法、マルチタスク制御プログラムを記録した記録媒体、およびマルチタスク制御プログラムを組み込んだ電子機器 - Google Patents

マルチタスク制御方法、マルチタスク制御プログラムを記録した記録媒体、およびマルチタスク制御プログラムを組み込んだ電子機器

Info

Publication number
JPH10289114A
JPH10289114A JP9096263A JP9626397A JPH10289114A JP H10289114 A JPH10289114 A JP H10289114A JP 9096263 A JP9096263 A JP 9096263A JP 9626397 A JP9626397 A JP 9626397A JP H10289114 A JPH10289114 A JP H10289114A
Authority
JP
Japan
Prior art keywords
task
execution
tasks
state
time
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
JP9096263A
Other languages
English (en)
Inventor
Sadayoshi Suzuki
定佳 鈴木
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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Priority to JP9096263A priority Critical patent/JPH10289114A/ja
Publication of JPH10289114A publication Critical patent/JPH10289114A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 所要のメモリサイズを削減できるマルチタス
ク制御方法、およびマルチタスク制御プログラムを記録
した記録媒体、ならびにこのマルチタスク制御プログラ
ムを組み込んだ電子機器を提供する。 【解決手段】 タスクBとタスクCとが共にレディ状態
にあって起動要求が競合したときは、原則通り、優先順
位に従って、より高い優先順位のタスクに対してCPU
の占有権が与えられる。タスクBまたはCの実行中にタ
スクAから割込みがあったときは、直ちにCPUの占有
権をタスクAに与える一方、タスクB(またはC)の実
行中にタスクC(またはB)からの割込み要求があった
ときは、そのタスクの優先順位の如何に係わらず、その
実行中のタスクの終了を待ってCPUの占有権を開放す
る。必要なタスク処理のみがリアルタイム動作し、さほ
どリアルタイム性を必要としないタスクは、擬似的なリ
アルタイム動作をする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、電子機器の制御上
必要な個々の機能に対応したプログラムとして設けられ
た複数のタスクを制御するためのマルチタスク制御方
法、およびマルチタスク制御プログラムを記録した記録
媒体、ならびにこのマルチタスク制御プログラムを組み
込んだ電子機器に関する。
【0002】
【従来の技術】従来より、例えば、一般家庭用または業
務用のテレビジョン受像機やコンピュータ用ディスプレ
イ装置等の映像表示装置においては、操作キーから入力
されたデータの処理をするタスク、画面表示の制御を担
当するタスク、あるいは入力される映像・音声信号にお
ける同期信号の周波数測定を担当するタスク等、映像表
示装置が有する各機能ごとにタスクをそれぞれ独立に作
成し、これらのタスクをCPUがOSに従って統括管理
するようになっている。このように複数のタスクに機能
を分担して割り当てることによって、多人数によるプロ
グラムの並行開発が可能となる等、プログラムの開発効
率を向上させることができる。
【0003】このような複数のタスクを管理するマルチ
タスク制御型のOSにおいては、それぞれのタスク処理
をリアルタイムに実行できることが理想であり、このリ
アルタイム処理を実現するため、従来より各種のリアル
タイムOS(RTOS)が提案されている。
【0004】図15は、従来のリアルタイムOSによる
マルチタスク制御方法を表すものである。この例では、
3つのタスクA〜CによるCPUの占有状態をOSが制
御するものとし、このうちタスクAの優先順位が最も高
く(P=1)、タスクBの優先順位が次に高く(P=
2)、タスクCの優先順位がもっとも低い(P=3)も
のとする。
【0005】図15に示したように、当初、最下位優先
順位のタスクCが実行状態であったとする。この状態
で、時刻τ1においてタスクBの起動要求があると、O
SはタスクCによるCPUの占有を一旦中断させ、タス
クBにCPUの占有権を渡す。このとき、タスクCは、
図16に示したように、中断時におけるCPUの状態を
格納した各種レジスタの内容をRAM(Random Access
Memory)内に確保したタスクC用スタック領域に退避
(プッシュ)してその後の処理の再開に備える。さら
に、時間が経過し、時刻τ2において、優先順位が最も
高いタスクAの起動要求があると、OSはタスクBによ
るCPUの占有を一旦中断させ、タスクAにCPUの占
有権を渡す。このとき、タスクBは、中断時におけるC
PUの状態を格納した各種レジスタの内容をRAM内の
タスクB用スタック領域(図16)に退避(プッシュ)
してその後の処理の再開に備える。さらに、時間が経過
して、時刻τ3においてタスクAの実行が終了すると、
タスクAはCPUの占有を開放する。この時点では、タ
スクBおよびタスクCが再開待ち状態になっているが、
タスクBの方がタスクCよりも優先順位が高いので、O
Sは、CPUの占有権をタスクBに与える。このとき、
タスクB用スタック領域(図16)に退避されていた各
レジスタデータがCPU内のレジスタ群にそれぞれ戻さ
れ(ポップされ)、中断時のCPUの状態が復元され
て、タスクBの実行が再開される。さらに、時間が経過
して、時刻τ4においてタスクBの実行が終了すると、
タスクBはCPUの占有を開放する。この時点では、タ
スクCのみが再開待ち状態になっているので、OSは、
CPUの占有権をタスクCに与える。このとき、タスク
C用スタック領域(図16)に退避されていた各レジス
タデータがCPU内のレジスタ群にそれぞれ戻され、中
断時のCPUの状態が復元されて、タスクCの実行が再
開される。なお、図16において、A用スタック領域
は、タスクAの実行中に外部からの割込みが生じた場合
やサブルーチンコールを行った場合等に、その時点のC
PUのレジスタ群の内容を一時退避するためのものであ
る。
【0006】このように、従来は、各タスクに優先順位
を割りつけると共に、あるタスクの実行中に優先順位の
高い他のタスクからの割込み要求があったときは、その
実行中のタスクの処理を必ず中断してその割込み要求を
した上位タスクの実行を即時確保するようにしていた。
このため、OSが管理するすべてのタスクについてそれ
ぞれ専用のスタック領域を用意する必要があった。
【0007】
【発明が解決しようとする課題】ところで、このような
RTOSを用いて構築したシステムとして、TRON(T
he Realtime Operating system Nucleus) と呼ばれるコ
ンピュータアーキテクチャ体系が知られているが、その
中に、機器組込制御用マイクロコンピュータの標準OS
を目指したμITRON(micro Industrial TRON ;マ
イクロアイトロン)と呼ばれるものがある。このμIT
RONでは、汎用性を確保すべく、個々の電子機器から
すれば不必要な機能についてまでリアルタイム性を追求
している。例えば、OSの管理下にあるすべてのタスク
に対してリアルタイム動作が要求されていたり、不必要
なシステムコールが行われる等、過剰な仕様となってい
る場合が多い。具体的には、ある電子機器からみれば不
要なタスク状態管理用フラグが存在していたり、あるい
は不要なプログラムが含まれていること等がある。ここ
で、通常、各タスクはプログラムとしてROM(Read O
nly Memory)に格納されるが、上記のように不要な部分
が多く含まれていると、限られた記憶容量しかもたない
ROMというハードウェア資源が無駄に消費されること
となり、このことがプログラム開発上で大きな障害の原
因となる場合があった。
【0008】また、この種のOSでは、各タスクに平等
にリアルタイム処理を保証する必要があることから、図
15において説明したように、タスクA〜Cのそれぞれ
について専用のスタック領域を用意する必要がある。こ
のため、必要なスタックメモリ容量は、タスク数に応じ
て増加することになる。
【0009】そこで、必要となるスタックメモリの容量
を削減すべく、スタックメモリを共有化することが考え
られるが、この場合には、その共有化のためのプログラ
ム等を別途OSに組み込む必要が生じ、却ってROMの
記憶容量を多く消費する結果となる。
【0010】本発明はかかる問題点に鑑みてなされたも
ので、その目的は、所要のメモリサイズを削減すること
ができるマルチタスク制御方法、およびマルチタスク制
御プログラムを記録した記録媒体、ならびにこのマルチ
タスク制御プログラムを組み込んだ電子機器を提供する
ことにある。
【0011】
【課題を解決するための手段】本発明に係るマルチタス
ク制御方法は、複数のタスクのうち、電子機器を制御す
る上で即時実行の要求される特定のタスクに対しては、
そのタスクの実行を要求する命令に応じて即時そのタス
クを起動させるリアルタイム制御を行う一方、特定のタ
スク以外のタスクに対しては、そのタスクの実行を要求
する命令があった時点において実行状態となっている他
のタスクの実行終了を待って起動させるようにしたもの
である。ここで、特定のタスクの割込みによって実行が
中断されたタスクは、その特定のタスクが実行を終了し
た時点において、優先的に実行を再開するようにするこ
とができる。
【0012】本発明に係るマルチタスク制御プログラム
を記録した記録媒体は、複数のタスクのうち、電子機器
を制御する上で即時実行が要求される特定のタスクに対
しては、そのタスクの実行を要求する命令に応じて即時
そのタスクを起動させるリアルタイム制御を行う一方、
特定のタスク以外のタスクに対しては、そのタスクの実
行を要求する命令があった時点において実行状態となっ
ている他のタスクの実行終了を待って起動させるように
したマルチタスク制御プログラムを記録したものであ
る。
【0013】本発明に係るマルチタスク制御プログラム
を組み込んだ電子機器は、複数のタスクのうち、電子機
器を制御する上で即時実行が要求される特定のタスクに
対しては、そのタスクの実行を要求する命令に応じて即
時そのタスクを起動させるリアルタイム制御を行う一
方、特定のタスク以外のタスクに対しては、そのタスク
の実行を要求する命令があった時点において実行状態と
なっている他のタスクの実行終了を待って起動させるよ
うにしたマルチタスク制御プログラムを組み込んだもの
である。
【0014】本発明に係るマルチタスク制御方法では、
即時実行が要求される特定のタスクに対してのみ限定的
にリアルタイム制御が行われ、それ以外のタスクに対し
てはいわば擬似的なリアルリイム制御が行われる。
【0015】
【発明の実施の形態】以下、本発明の実施の形態につい
て図面を参照して詳細に説明する。
【0016】図1は本発明の一実施の形態に係るマルチ
タスク制御方法が適用される電子機器としての映像表示
装置の概略構成を表すものである。この映像表示装置
は、主制御部31と、ユーザインタフェイス(I/F)
制御部32と、オンスクリーンディスプレイ(OSD)
制御部33と、不揮発性メモリ34と、偏向制御回路3
5とを備え、シリアルバス30によって相互に接続され
ている。本装置はまた、I2 C(Inter Integrated Circ
uit)バス36によって主制御部31に接続されたビデオ
制御回路37と、ビデオ制御回路37およびOSD制御
部33に接続されたRGBデコーダ38と、このRGB
デコーダ38の出力端側に接続されたCRT(陰極線
管)39とを備えている。
【0017】主制御部31は、映像表示装置全体の動作
を制御するためのもので、CRT39における表示画面
の各垂直帰線期間のタイミングごとに偏向制御回路35
から入力される垂直ブランキングパルス(V−BLK−
Pulse)42に同期してバスアクセスを行い、全体
の動作を制御するようになっている。具体的には、RG
B入力端子からビデオ制御回路37に入力されたRGB
信号(R,G,Bの各色信号)43の状態を制御した
り、ユーザインタフェイス制御部32を介し、図示しな
い音量キーやメニューキー等のパネル操作キーから入力
され、またはリモートコントローラ(図示せず)から受
光部を経て送られてきたコマンドデータ等に応じて、シ
リアルバス30に接続された各デバイスや図示しない電
源供給状態表示用の電源LED(発光ダイオード)等を
制御するようになっている。
【0018】ユーザインタフェイス制御部32は、パネ
ル操作キーや受光部等からの入力データをサンプリング
し、主制御部31からの問い合わせに応じてそのサンプ
リングデータをシリアルバス30を介して送出したり、
主制御部31からの要求に応じて電源LEDを点灯させ
る等の制御を行う。OSD制御部33は、主制御部31
からの指示に基づいてCRT39に映像と重畳させて表
示させるキャラクタを表すカラーデータをRGB信号4
1としてRGBデコーダ38に出力するようになってい
る。偏向制御回路35は、CRT39の水平および垂直
ビームの偏向を制御するためのもので、この回路内のい
くつかのデバイスがシリアルバス30を通して主制御部
31から制御されるようになっている。この回路は、例
えば水平同期周波数が31.5kHz、垂直同期周波数
が70/60/50Hzという走査周波数で偏向制御を
行う、いわゆるシングルスキャンシステムを構成してい
る。ビデオ制御回路37は、I2 Cバス36を通して主
制御部31から与えられる指示に基づいて、外部RGB
入力端子から入力されたRGB入力信号43に所定の信
号処理を施し、RGB映像信号45としてRGBデコー
ダ38に入力するという制御を行う。RGBデコーダ3
8は、ビデオ制御回路37からのRGB映像信号45
と、OSD制御部33からのRGB信号41とを混合し
てCRT39に送出するようになっている。
【0019】図2は、図1における主制御部31の概略
構成を表すものである。この主制御部31は、クロック
ジェネレータ10から出力される所定の周波数のクロッ
クに同期して動作するCPU11と、各種のプログラム
を格納したROM12と、ワーク用メモリとしてのRA
M13と、I2 Cバス36とのバス接続を行うバスイン
タフェイス14と、シリアルバス30とのバス接続を行
うバスインタフェイス15と、これらを相互に接続する
内部バス16とを備えている。
【0020】CPU11は、ALU(算術論理演算
部)、インストラクションデコーダ、累算器(アキュム
レータ)、およびタイミング制御部等の各種回路のほ
か、インストラクションレジスタ、フラグレジスタ、プ
ログラムカウンタ等の専用レジスタ、その他、汎用レジ
スタ等(いずれも図示せず)を備えて構成されている。
このCPU11には、図1の偏向制御回路35から一定
周期で垂直ブランキングパルス42が入力されると共
に、その内部では、後述するオペレーティングシステム
が各タスクを制御する際の基準となるOS基準割込信号
が一定周期で発生するようになっている。
【0021】ROM12は、オペレーティングシステム
(OS)の本体部(以下、単にOSという。)のほか、
CPUが行うべき動作を機能ごとに分担するタスクプロ
グラム(以下、単にタスクという。)等を格納するため
のものである。本実施の形態では、説明の簡単のため、
図3に示したように、OSとかみ合う形で3つのタスク
A,B,Cが組み込まれているものとする。後述するよ
うに、OSはタスクA〜Cのそれぞれからの要求あるい
は命令(システムコール)に応じて、CPU11の占有
権を各タスクに与える制御を行う。
【0022】タスクA〜Cは、それぞれ、属性1または
属性2のいずれかを有する。ここで、属性1のタスクは
優先順位が最も高いタスクであり、上記した垂直ブラン
キングパルス42による割り込みがあった場合のシステ
ムコールに応じて他のタスクの実行を中断させ、自らが
即時実行状態となることができるタスクである。そし
て、この属性1のタスクは、必ずタスクのプログラムの
最初から実行されるようになっている。本実施の形態で
は、タスクAのみが属性1に属するものとする。ここ
で、タスクAは、本発明における特定のタスクに対応
し、タスクBおよびタスクCは本発明における特定のタ
スク以外のタスクに対応する。
【0023】一方、属性2のタスクは、優先順位が2位
以下の任意の順位に設定可能なタスクであり、垂直ブラ
ンキングパルス42による割り込みがあった場合に即時
実行状態となることはない。そして、この属性2のタス
クは、属性1のタスクによって実行を中断された場合を
除き、必ず各タスクのプログラムの最初から実行される
ようになっている。本実施の形態では、タスクBおよび
タスクCが属性2に属するものとし、このうち、タスク
Bの優先順位が2位、タスクCの優先順位が3位である
として説明する。
【0024】本OSを図1に示した映像表示装置に適用
する場合においては、垂直ブランキングパルス42によ
る割込みによって起動するタスクAは、例えば内部バス
アクセスを担当するタスクであり、タスクBおよびタス
クCは、例えばキースキャンやOSDデータの管理を担
当するタスクである。
【0025】RAM13は、CPU11内の上記したレ
ジスタ群の内容を一時的に退避するためのスタック領域
や、各種のバッファメモリ領域等のワークエリアとして
用いられるもので、例えばDRAM(Dynamic Random Ac
cess Memory)によって構成される。
【0026】図4(a)はCPU11のレジスタ群を表
し、同図(b)はROM12およびRAM13における
メモリアドレスの割り当て状態を表すものである。この
図の(a)に示したように、CPU11のレジスタ群に
は、プログラムカウンタ、インストラクションレジス
タ、フラグレジスタ、およびその他の汎用レジスタ等が
含まれている。また、この図の(b)に示したように、
ROM12およびRAM13には、連続したメモリアド
レスが割り当てられており、このうち、RAM13に
は、OS用スタック領域SO と、BC共用スタック領域
SBCと、A用スタック領域SA と、他のRAM領域とが
割り当てられている。ここで、OS用スタック領域SO
は、OSがタスクA〜CのいずれかにCPU11の占有
権を開放する際にレジスタ群の内容を一時的に退避させ
る領域であり、A用スタック領域SAは、タスクAの実
行中に外部からのより緊急度の高い割込みが生じた場合
や、自らサブルーチンコールを行った場合等に、その時
点のCPUのレジスタ群の内容を一時退避するためのも
のである。また、BC共用スタック領域SBCは、タスク
B(またはC)がOSもしくは他のタスクCにCPU1
1の占有権を開放する際にレジスタ群の内容を一時的に
退避させる領域である。このBC共用スタック領域SBC
は、タスクBとタスクCとにより共用される領域である
が、後述するように、OSは、BC共用スタック領域S
BCが2つのタスクB,Cによって同時に使用されること
がないように各タスクの状態制御を行う構成になってい
る。この点が、本発明の特徴の1つをなしている。
【0027】また、図4(b)における他のRAM領域
には、タスクA〜Cのそれぞれについて、スタックポイ
ンタ(SP)が指すスタック領域のメモリアドレスを格
納するためのスタックポインタ用バッファ(A用SPバ
ッファ、B用SPバッファ、およびC用SPバッファ)
が設けられている。なお、本図では、これらのバッファ
の図示を省略している。
【0028】図5は各タスクにおける状態遷移を表すも
のである。この図に示したように、各タスクは、実行
(RUN)、レディ(READY)、SPLレディ(S
PECIAL READY)、待ち(WAIT)、およ
び休眠(DORMANT)の各状態を取り得るようにな
っている。ここで、実行状態とはタスクが実行中である
場合をいい、休眠状態とは、タスクがまだ起動されてい
ない状態、またはタスクが終了した状態をいう。待ち状
態とは、そのタスクを実行するための条件が整うのを待
っている状態であり、具体的には、指定された時間の経
過を待っている状態と、タスクが指定したセマフォア(S
emaphore) が資源を獲得するのを待っている状態とがあ
る。レディ状態とは、自タスク側の実行の準備は整って
いるが、他のタスクが実行中である状態をいう。SPL
レディ状態とは、垂直ブランキングパルス42による属
性1のタスク(ここではタスクA)の実行開始によって
実行が中断されているタスクの状態をいい、レディ状態
の中の特殊な状態である。このSPLレディ状態にある
タスクは、属性1のタスクの実行が終了したときは、設
定された優先順位に係わりなく(すなわち、他の優先順
位の高いタスクがレディ状態にあったとしても)実行が
再開されるタスクである。このSPLレディ状態を設け
た点が本発明の特徴の一つをなしている。
【0029】次に、図5および図6を参照して、以上の
ような構成の主制御部31におけるCPU11の動作を
説明する。なお、図6は、タスクA〜Cのいずれかのタ
スク(以下の説明では自タスクと表現する。)がOSの
制御の下でどのようにして自己の状態を遷移させるかを
表すものである。ここでは、当初のタスク状態が休眠状
態となっているものとして説明する。
【0030】図5において、自タスクが休眠状態にある
場合において、自タスクを起動させるためのスタート命
令が他のタスクからOSになされると(図6ステップS
101;Y)、自タスクは直ちにレディ状態に遷移する
(ステップS102)。ここで、自タスクが即時実行可
能状態であって(ステップS103;Y)、かつ、その
時点でレディ状態となっているタスクの中で自タスクの
優先順位が最も高く(ステップS104;Y)、しかも
その時点でSPLレディ状態にある他のタスクが存在し
ないときには(ステップS105;Y)、自タスクは、
直ちに実行状態へと遷移する(ステップS106)。ま
た、自タスクの優先順位が最も高いが(ステップS10
4;Y)、その時点でSPLレディ状態にある他のタス
クが存在するときには(ステップS105;N)、自タ
スクは実行状態に遷移せず、そのままレディ状態を維持
する。
【0031】一方、ステップS101においてスタート
命令があってレディ状態に移った場合でも、自タスクが
即時実行可能状態でないときには(ステップS103;
N)、自タスクはそのままレディ状態を維持するが、こ
の状態で自タスクを待ち状態にするためのウェイト命令
が他のタスクからOSになされると(ステップS10
7;Y)、自タスクは待ち状態に遷移する(ステップS
108)。さらに、この状態で他のタスクから待ち状態
解除命令がなされた場合、あるいは、所定時間の経過に
より自動的に待ち状態解除が行われるような設定になっ
ていた場合にはその設定された時間の経過により、自タ
スクは再びレディ状態に遷移する(ステップS10
2)。
【0032】図6のステップS106において実行状態
に遷移したのちは、次のように動作する。すなわち、自
タスクを待ち状態にするためのウェイト命令を自タスク
からOSに対して行うことにより(ステップS110;
Y)、自タスクは実行状態から待ち状態へと遷移する
(ステップS108)。また、属性1のタスクが起動し
て自タスクの実行が中断されたときは(ステップS11
1;Y)、自タスクはSPLレディ状態へと遷移する
(ステップS114)。また、自タスクを休眠状態にす
るための終了命令を自タスクからOSに対して行うこと
により(ステップS112;Y)、自タスクは実行状態
から休眠状態へと遷移する(ステップS113)。それ
以外の場合は(ステップS110;N,ステップS11
1;N,ステップS112;N)、その実行状態を維持
する。
【0033】ステップS114においてSPLレディ状
態に遷移したのちは、その状態遷移の原因となった属性
1のタスクの実行状態の終了を待って(ステップS11
5;Y)、自タスクは実行状態となり、実行を再開する
(ステップS106)。このように、SPLレディ状態
にある自タスクは、属性1のタスクの実行状態の終了時
点において自分よりも優先順位の高い他のレディ状態の
タスクが存在していたとしても、それに優先して自らが
実行状態となることができる。
【0034】次に、図7〜図15を参照して、本OSに
よるタスクA〜Cの制御に係る具体例を説明する。ここ
で、図7はOSおよびタスクA〜Cにおける時刻経過に
伴うCPUの占有状況の一例を表し、図8、図14およ
び図15は、それぞれ、図7の状況C1〜C2を詳細に
表すものである。また、図9〜図13は、図8の状況C
1におけるCPU11および各メモリの状態変化を表す
ものである。
【0035】本実施の形態では、タスクA(図7
(d))は垂直ブランキングパルス42(同図(c))
に同期して直ちに起動して実行状態となり、タスクB
(同図(e))は、CPU11の内部で一定周期で発生
するOS基準割込信号2(同図(a))のタイミングで
起動をかけられるものとする。また、タスクC(同図
(f))は、CPU11の内部で一定周期で発生する他
のOS基準割込信号1(図7(b))の2周期ごとのタ
イミングで起動をかけられるなるようになっているもの
とする。
【0036】まず、図8および図9〜図13を参照し
て、図7の状況1における動作を詳細に説明する。
【0037】図8に示したように、時刻t1以前におい
ては、OSにCPU11の占有権があり、タスクA〜C
のすべてが待ち状態である。いずれかのタスクがレディ
状態になるのをOSが待っている状態である。この状態
では、図9に示したように、CPU11のプログラムカ
ウンタはOS自身のルーチンのうちのいずれかのアドレ
スを指しており、OS用スタック領域SO が使用されて
いる。スタックポインタSPは、OS用スタック領域S
O の使用中領域のうちのいずれかのアドレスを指してい
る。このとき、A用SPバッファには、A用スタック領
域SA のスタートアドレスがセットされ、B用SPバッ
ファおよびC用SPバッファには、共にBC共用スタッ
ク領域SBCのスタートアドレスがセットされている。
【0038】ここで、時刻t1においてOS基準割込信
号による割込みがあると、タスクCは直ちにレディ状態
となる。OSはCPU11の占有権をどのタスクに渡す
べきかを判断する。この時点では、優先順位の最も高い
タスクAおよび次に優先順位の高いタスクBは共に待ち
状態になっているため、図10に示したように、OSは
スタックポインタSPの示すアドレスをBC共用スタッ
ク領域SBCのスタートアドレスにセットすると共に、プ
ログラムカウンタをタスクCの最初のアドレスにセット
し、CPU11の占有権をタスクCに渡す。これによ
り、タスクCは実行状態となる。このとき、A用SPバ
ッファには、A用スタック領域SA のスタートアドレス
がセットされ、B用SPバッファおよびC用SPバッフ
ァには、共にBC共用スタック領域SBCのスタートアド
レスがセットされている。
【0039】時刻t1でタスクCが実行状態となったの
ち、このタスクCよりも優先順位の高いタスクBについ
て設定されていた起動待ちタイマがタイムアップしたと
する。従来の方法では、ここでタスクBがタスクCを中
断して実行状態となっていたが、本実施の形態では、図
8(c)に示したように、タスクBはタスクCを中断す
ることなく、単に、待ち状態からレディ状態に遷移する
のみである。
【0040】さらに、時間が経過して、時刻t2におい
て垂直ブランキングパルス42による割込みがかかる
と、OSは、図11に示したように、この時点でのプロ
グラムカウンタ等のCPU11のレジスタ群の内容をB
C共用スタック領域SBCに退避(プッシュ)すると共
に、このときのスタックポインタSPの値をB用SPバ
ッファおよびC用SPバッファに格納する。これによ
り、B用SPバッファおよびC用SPバッファの内容
は、BC共用スタック領域SBCのうちの使用されている
領域の最終アドレスとなる。そして、OSは、A用SP
バッファに格納されているスタックポインタSPの値を
A用スタック領域SA のスタートアドレスとし、さら
に、プログラムカウンタをタスクAの先頭アドレスにセ
ットする。これにより、タスクAはレディ状態を経て実
行状態に遷移し、タスクCは実行状態からSPLレディ
状態に遷移する。なお、タスクBはそのままレディ状態
を維持する。
【0041】タスクAは、時刻t3において必要な処理
が終了すると、自らを待ち状態とするためのウェイト命
令をOSに出し、OSにCPU11を開放して自らは待
ち状態となる。このときのタスクBの状態はレディ状態
であり、タスクCの状態はSPLレディ状態となってい
る。このため、OSは、より優先順位の高いタスクBを
差し置いてタスクCを優先して実行状態に遷移させ、タ
スクAにより中断されていた処理を再開させる。具体的
には、OSは、BC共用スタック領域SBCに退避されて
いた各種のレジスタデータをCPU11のレジスタ群に
復帰(ポップ)させる。これにより、図12に示したよ
うに、プログラムカウンタはタスクCの再開アドレスに
セットされる。また、このとき、B用SPバッファおよ
びC用SPバッファに格納されているアドレス(この場
合、タスクCがタスクAによって実行を中断された時点
の最終アドレス)をスタックポインタSPに復帰させ、
各バッファはBC共用スタック領域SBCの先頭アドレス
に戻される。この点が本発明の特徴の1つをなしてい
る。なお、このときのA用SPバッファの内容はA用ス
タック領域SA のスタートアドレスとなり、B用SPバ
ッファおよびC用SPバッファの内容は、BC共用スタ
ック領域SBCのうちの使用されている領域の先頭アドレ
スとなり、また、スタックポインタSPはBC共用スタ
ック領域SBC内におけるタスクCが使用した最終アドレ
スとなる。
【0042】実行を再開したタスクCは、時刻t4にお
いて必要な処理が終了すると、自らを待ち状態にするこ
とを求めるウェイト命令をOSに出してCPU11を開
放する。すると、OSは、この時点で唯一レディ状態と
なっているタスクBを実行状態に遷移させる。具体的に
は、図13に示したように、プログラムカウンタをタス
クBの先頭アドレスにセットすると共に、上記したよう
にBC共用スタック領域SBCの先頭アドレスに戻された
B用SPバッファおよびC用SPバッファの値を、スタ
ックポインタSPにコピーする。これにより、これ以
降、BC共用スタック領域SBCはタスクBによって使用
可能となる。なお、このとき、タスクAは待ち状態を維
持し、A用SPバッファの内容はA用スタック領域SA
のスタートアドレスとなっている。
【0043】実行状態となったタスクBは、時刻t5に
おいて必要な処理を終了させると、自らを待ち状態にす
ることを求めるウェイト命令をOSに出してCPU11
をOSに開放する。これにより、状況1における処理が
終わる。
【0044】このように、あるタスクが実行状態である
場合には、属性1以外の属性をもつより優先順位の高い
タスクから割込要求がなされたとしても、実行状態のタ
スクはこのタスクにCPU11の占有権を渡すことはな
く、実行途中のタスクが終了するまで、その優先順位の
高いタスクは待つこととなる。但し、属性1のタスクか
らの割込要求についてはこの限りでなく、要求に応じて
直ちにCPU11の占有権が与えられることとなる。ま
た、レディ状態にあるタスクとSPLレディ状態にある
タスクとが競合したときは、優先順位の上下に係わりな
く、SPLレディ状態にあるタスクにCPU11の占有
権が与えられることとなる。
【0045】次に、図14を参照して、図7における状
況2を説明する。
【0046】ここでは、時刻t6において、OS基準割
込信号による割込みが行われると同時に、タスクB用の
起動待ちタイマがタイムアップしたとする。この場合、
タスクBおよびタスクCの双方がレディ状態となってい
るが、タスクCよりもタスクBの方が優先順位が高く設
定されている。このため、タスクBが実行状態となって
CPU11を占有する。一方、タスクCはレディ状態と
なって、タスクBが実行を終了してCPU11を開放す
るのを待つ。時刻t7においてタスクBによる必要な処
理が終了すると、タスクBは休眠状態になる一方、タス
クCは実行状態になる。そして、タスクCは、必要な処
理を行ったのち、時刻t8においてCPU11をOSに
開放し、実行状態から待ち状態に遷移する。
【0047】このように、タスクBとタスクCとが共に
レディ状態にあるときに、起動条件が競合したときは、
原則通り、優先順位に従って、より高い優先順位のタス
クに対してCPU11の占有権が与えられることとな
る。
【0048】以上のように、本実施の形態に係るマルチ
タスク制御方法では、タスクBとタスクCとが共にレデ
ィ状態にあって起動要求が競合したときは、原則通り、
優先順位に従って、より高い優先順位のタスクに対して
CPU11の占有権が与えられるが、属性2のタスクB
またはCの実行中に属性1のタスクAから割込要求があ
ったときは、直ちにCPU11の占有権をタスクAに与
える一方、タスクB(またはC)の実行中にタスクC
(またはB)からの割込み要求があったときは、そのタ
スクの優先順位の如何に係わらず、その実行中のタスク
B(またはC)の終了を待ってCPU11の占有権を開
放するようにしたので、必要なタスク処理のみを限定的
にリアルタイム動作させ、さほどリアルタイム性を必要
としないタスクについてはいわば擬似的なリアルタイム
動作をさせることができる。このため、不要な機能につ
いての処理プログラム部分を削減することができ、OS
自体のプログラム構成をシンプルにできる。また、属性
1以外のタスク(BまたはC)については、同時に同一
のスタック領域を使用することがなくなるので、スタッ
ク領域を複数のタスク(BおよびC)によって共用する
ことが可能となる。
【0049】また、レディ状態にあるタスクとSPLレ
ディ状態にあるタスクとが競合したときは、優先順位の
上下に係わりなく、必ず、SPLレディ状態にあるタス
クにCPU11の占有権が与えられるようにしたので、
タスクAによって実行を中断されたタスクBまたはC
は、タスクAの実行終了後、確実に実行を再開すること
ができる。
【0050】なお、以上のような動作を行うOSは、例
えば次のようにして所定の記録媒体に記録可能である。
すなわち、まず、例えばC言語を用いてOS本体部およ
び各タスクに係るプログラムを作成する。次に、これら
のプログラムをコンパイラによりそれぞれコンパイルし
て、アセンブリ言語で記述されたプログラムに変換す
る。次に、これらのアセンブリ言語で記述されたプログ
ラムをアセンブラを用いてそれぞれマシン語に変換する
と共に、これらの複数のマシン語プログラムをリンカを
用いて統合して1つのプログラムとする。こうして作成
されたOS全体のプログラムは、例えばフロッピーディ
スク、マスクROM、EPROM(消去・再書込可能R
OM)、またはOTP(ワンタイムPROM)等に書き
込まれ、あるいは、マイクロコンピュータのチップ自体
に組み込まれて、一般に提供可能となる。
【0051】以上、いくつかの実施の形態を挙げて本発
明を説明したが、本発明はこれらの実施の形態に限定さ
れず、種々変形可能である。例えば、上記実施の形態で
は、属性2のタスクはタスクBおよびタスクCの2つと
したが、それ以上の数のタスクに対しても適用可能であ
る。また上記の実施の形態では、タスクAは垂直ブラン
キングパルス42による割込みによって起動することと
したが、他の割込み信号によって起動されるようにして
もよい。また、本実施の形態では、電子機器として映像
表示装置を例にとって説明したが、他の電子機器にも同
様に適用可能である。
【0052】
【発明の効果】以上説明したように本発明に係るマルチ
タスク制御方法によれば、即時実行が要求される特定の
タスクに対してのみ限定的にリアルタイム制御を行い、
それ以外のタスクに対しては擬似的なリアルリイム制御
を行うようにしたので、すべてのタスクに対して平等に
リアルタイム制御を行うようにした従来の汎用マルチタ
スク制御方法に比べて、それを実現するためのプログラ
ムのサイズが小さくて済み、プログラム格納用のメモリ
容量を削減することができる。しかも、上記した特定の
タスク以外のタスクについてはスタック領域を共用化す
ることができるので、スタックメモリの容量をも削減す
ることができる。したがって、マルチタスク制御に必要
なメモリ容量を削減することができる。さらに、その特
定のタスク以外のタスクに関してはリアルタイム性をさ
ほど要求しないシステムにとっては、メモリ資源が無駄
に消費されるのを防止することができる。また、本発明
のマルチタスク制御方法によれば、その機能構成が単純
であるので、それを実現するためのプログラムの殆どを
例えばC言語等によって開発することができ、これによ
り、異なるマイクロコンピュータシステムへの移植が容
易となる。
【図面の簡単な説明】
【図1】本発明の一実施の形態に係るマルチタスク制御
方法が適用される電子機器としての映像表示装置の概略
構成を表すブロック図である。
【図2】図1の映像表示装置における主制御部の概略構
成を表すブロック図である。
【図3】図2のCPUの動作を制御するオペレーティン
グシステムと各タスクとの関係を表す図である。
【図4】図2のCPU内のレジスタ群とROMおよびR
AM内のメモリアドレスとの関係を表す図である。
【図5】タスクの状態遷移の様子を表す図である。
【図6】タスクの状態遷移を説明するための流れ図であ
る。
【図7】各タスクの動作タイミングの一例を表すタイミ
ング図である。
【図8】図7における一部の動作タイミングを詳細に表
す図である。
【図9】図8に示した動作を行っているCPUおよびR
AMのある時点での状態を表す図である。
【図10】図8に示した動作を行っているCPUおよび
RAMの他の状態を表す図である。
【図11】図8に示した動作を行っているCPUおよび
RAMのさらに他の状態を表す図である。
【図12】図8に示した動作を行っているCPUおよび
RAMのさらに他の状態を表す図である。
【図13】図8に示した動作を行っているCPUおよび
RAMのさらに他の状態を表す図である。
【図14】図7における他の部分の動作タイミングを詳
細に表す図である。
【図15】従来のマルチタスク制御方法の一例を説明す
るためのタイミング図である。
【図16】従来のマルチタスク制御方法におけるスタッ
ク領域の構成例を表す図である。
【符号の説明】
1,2…OS基準割込信号、11…CPU、12…RO
M、13…RAM、31…主制御部、42…垂直ブラン
キングパルス、SA …A用スタック領域、SBC…BC共
用スタック領域、SO …OS用スタック領域、A〜C…
タスク

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 電子機器の制御上必要な個々の機能に対
    応して設けられた複数のタスクを制御するための方法で
    あって、 前記複数のタスクのうち、前記電子機器を制御する上で
    即時実行の要求される特定のタスクに対しては、そのタ
    スクの実行を要求する命令に応じて即時そのタスクを起
    動させるリアルタイム制御を行う一方、 前記特定のタスク以外のタスクに対しては、そのタスク
    の実行を要求する命令があった時点において実行状態と
    なっている他のタスクの実行終了を待って起動させるよ
    うにしたことを特徴とするマルチタスク制御方法。
  2. 【請求項2】 前記特定のタスクの割込みによって実行
    が中断されたタスクは、その特定のタスクが実行を終了
    した時点において、優先的に実行を再開することを特徴
    とする請求項1記載のマルチタスク制御方法。
  3. 【請求項3】 電子機器の制御上必要な個々の機能に対
    応して設けられた複数のタスクを制御するためのマルチ
    タスク制御プログラムであって、 前記複数のタスクのうち、前記電子機器を制御する上で
    即時実行が要求される特定のタスクに対しては、そのタ
    スクの実行を要求する命令に応じて即時そのタスクを起
    動させるリアルタイム制御を行う一方、前記特定のタス
    ク以外のタスクに対しては、そのタスクの実行を要求す
    る命令があった時点において実行状態となっている他の
    タスクの実行終了を待って起動させるようにしたマルチ
    タスク制御プログラムを記録した記録媒体。
  4. 【請求項4】 電子機器の制御上必要な個々の機能に対
    応して設けられた複数のタスクを制御するに際し、前記
    複数のタスクのうち、前記電子機器を制御する上で即時
    実行が要求される特定のタスクに対しては、そのタスク
    の実行を要求する命令に応じて即時そのタスクを起動さ
    せるリアルタイム制御を行う一方、前記特定のタスク以
    外のタスクに対しては、そのタスクの実行を要求する命
    令があった時点において実行状態となっている他のタス
    クの実行終了を待って起動させるようにしたマルチタス
    ク制御プログラムを組み込んだ電子機器。
JP9096263A 1997-04-14 1997-04-14 マルチタスク制御方法、マルチタスク制御プログラムを記録した記録媒体、およびマルチタスク制御プログラムを組み込んだ電子機器 Pending JPH10289114A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9096263A JPH10289114A (ja) 1997-04-14 1997-04-14 マルチタスク制御方法、マルチタスク制御プログラムを記録した記録媒体、およびマルチタスク制御プログラムを組み込んだ電子機器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9096263A JPH10289114A (ja) 1997-04-14 1997-04-14 マルチタスク制御方法、マルチタスク制御プログラムを記録した記録媒体、およびマルチタスク制御プログラムを組み込んだ電子機器

Publications (1)

Publication Number Publication Date
JPH10289114A true JPH10289114A (ja) 1998-10-27

Family

ID=14160296

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9096263A Pending JPH10289114A (ja) 1997-04-14 1997-04-14 マルチタスク制御方法、マルチタスク制御プログラムを記録した記録媒体、およびマルチタスク制御プログラムを組み込んだ電子機器

Country Status (1)

Country Link
JP (1) JPH10289114A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6439999B1 (en) 1999-08-04 2002-08-27 Square Co., Ltd. Method for controlling execution of processing in video game, storage medium storing processing execution control program, and game apparatus
WO2004111848A1 (ja) * 2003-06-10 2004-12-23 Sony Ericsson Mobile Communications Japan, Inc. 競合管理プログラム、競合管理プログラムが記憶された記憶媒体、競合管理方法及び電子機器
JP2007199848A (ja) * 2006-01-24 2007-08-09 Yaskawa Electric Corp 軽量化リアルタイムos
US9058207B2 (en) 2010-10-05 2015-06-16 Socionext Inc. Simulation apparatus, method, and computer-readable recording medium
JP2021104795A (ja) * 2019-12-27 2021-07-26 古野電気株式会社 車載器

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6439999B1 (en) 1999-08-04 2002-08-27 Square Co., Ltd. Method for controlling execution of processing in video game, storage medium storing processing execution control program, and game apparatus
WO2004111848A1 (ja) * 2003-06-10 2004-12-23 Sony Ericsson Mobile Communications Japan, Inc. 競合管理プログラム、競合管理プログラムが記憶された記憶媒体、競合管理方法及び電子機器
US7836446B2 (en) 2003-06-10 2010-11-16 Sony Ericsson Mobile Communications Japan, Inc. Conflict management program, storage medium for conflict management program storage, conflict management method, and electronic apparatus for terminal devices
JP2007199848A (ja) * 2006-01-24 2007-08-09 Yaskawa Electric Corp 軽量化リアルタイムos
JP4618647B2 (ja) * 2006-01-24 2011-01-26 株式会社安川電機 リアルタイムosシステム
US9058207B2 (en) 2010-10-05 2015-06-16 Socionext Inc. Simulation apparatus, method, and computer-readable recording medium
JP2021104795A (ja) * 2019-12-27 2021-07-26 古野電気株式会社 車載器

Similar Documents

Publication Publication Date Title
KR100628492B1 (ko) 실시간 동작 수행방법 및 시스템
US6885374B2 (en) Apparatus, method and system with a graphics-rendering engine having a time allocator
US6715016B1 (en) Multiple operating system control method
JP3659062B2 (ja) 計算機システム
JP5809366B2 (ja) ポータブルコンピューティングデバイスにおいて要求をスケジューリングするための方法およびシステム
JP2002099433A (ja) 演算処理システム及び演算処理制御方法、タスク管理システム及びタスク管理方法、並びに記憶媒体
JP2006099331A (ja) 情報処理装置、割り込み処理制御方法、並びにコンピュータ・プログラム
JP5408330B2 (ja) マルチコアプロセッサシステム、スレッド制御方法、およびスレッド制御プログラム
JPH1173334A (ja) データ処理方法、記録媒体及びデータ処理装置
US20130024865A1 (en) Multi-core processor system, computer product, and control method
JPH10289114A (ja) マルチタスク制御方法、マルチタスク制御プログラムを記録した記録媒体、およびマルチタスク制御プログラムを組み込んだ電子機器
EP2610747A2 (en) Information processing apparatus and method of controlling information processing apparatus
JP2001117786A (ja) プロセススケジューリング装置およびプロセススケジューリング方法
JP3093928B2 (ja) 情報処理方法とその装置
JP6774147B2 (ja) 制御装置
JP3893136B2 (ja) 組込みコンピュータ制御プログラム、そのプログラムを記録した記録媒体、及び組込みシステム
JPH05108380A (ja) データ処理システム
JP2015158751A (ja) 描画方法、描画装置及びプログラム
JP2006004092A (ja) コンピュータシステム
JP3803500B2 (ja) データ転送装置および方法
JP2001229038A (ja) マルチオペレーテング計算機システム
EP4345622A1 (en) Service process calling method and related device
JPH1196025A (ja) データ処理方法、記録媒体及びデータ処理装置
JPH11175357A (ja) タスク管理方法
JP3362673B2 (ja) チャネルコントロール装置