JP2006004092A - コンピュータシステム - Google Patents

コンピュータシステム Download PDF

Info

Publication number
JP2006004092A
JP2006004092A JP2004178579A JP2004178579A JP2006004092A JP 2006004092 A JP2006004092 A JP 2006004092A JP 2004178579 A JP2004178579 A JP 2004178579A JP 2004178579 A JP2004178579 A JP 2004178579A JP 2006004092 A JP2006004092 A JP 2006004092A
Authority
JP
Japan
Prior art keywords
operating system
priority
interrupt
multimedia
task
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
JP2004178579A
Other languages
English (en)
Inventor
Kazuo Tsubouchi
一雄 坪内
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.)
Denso Corp
Original Assignee
Denso 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 Denso Corp filed Critical Denso Corp
Priority to JP2004178579A priority Critical patent/JP2006004092A/ja
Publication of JP2006004092A publication Critical patent/JP2006004092A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】 第一のOSと、第一のOSの下で動作する第二のOSとが搭載されたコンピュータシステムにおいて、第二のOSが管理するデバイスドライバの応答性を高める。
【解決手段】 コンピュータシステム30におけるリアルタイムOS40は、複数のタスクを、タスクに設定されたプライオリティ(優先度)に従って管理し、実行権を与えるタスク制御部41を備える。タスク制御部41が管理するレディキュー43には、マルチメディア機能に優れた汎用OS(マルチメディアOS50)が、一つのタスクとして登録されている。このマルチメディアOSのプライオリティは、通常時、最低値に設定されている。但し、マルチメディアOSに対する割込み要求が発生すると、第二OS用ISRが起動し、割込み事象がリングバッファ80に格納されると共に、マルチメディアOS50のプライオリティが、最低値よりも高い第二値に変更される。
【選択図】 図2

Description

本発明は、タスクに設定された優先度に従って、複数のタスクを管理する第一のオペレーティングシステムと、第一のオペレーティングシステムによって管理される第二のオペレーティングシステムと、を備えるコンピュータシステムに関する。
従来より、オペレーティングシステム(OS)としては、Windows(登録商標)シリーズやLinux等の汎用OS、組込みシステムに使用される時間管理に優れたリアルタイムOS等が知られている。
リアルタイムOSとしては、ITRON仕様のリアルタイムOSが周知である。ITRON仕様のリアルタイムOSは、公開されたソースコード等に基づいて、比較的簡単に開発することができるため、ディジタル家電等、種々の電子機器のオペレーティングシステムに採用されている。
しかしながら、既存のリアルタイムOSは、時間管理に特化したものであり、目的に応じて適宜開発される比較的小規模なオペレーティングシステムである。従って、アプリケーションプログラムの開発環境が豊富ではなく、大規模なソフトウェア開発をする場合には、効率が悪い。
一方で、ディジタル家電等の電子機器には、近年、マルチメディアデバイスや、通信デバイス等が組み込まれ始め、電子機器上で様々な機能を実現するために、様々なソフトウェアを開発し電子機器に組み込む必要が生じてきている。しかしながら、ソフトウェア開発の際に、開発環境が悪いと、開発コストが上がり、又、製品の開発時間が長くなる。
このため、上述したような電子機器においては、リアルタイムOSの下で、開発環境に優れたWindows(登録商標)シリーズなどの汎用OSを動作させ、リアルタイムOS下で、高度な時間管理を要する処理を実行させ、Windows(登録商標)シリーズなどの汎用OS下で、マルチメディア関連の機能や、通信機能等を実現することが考えられている。
尚、オペレーティングシステムは、上述したように、種類によって様々な特徴を有するものであるため、複数のオペレーティングシステムを一の電子機器に組み込むことは、従来から広く行われている。この点については、特許文献1〜4を参照されたい。
特開平8−212089号公報 特開2001−216172号公報 特開2001−236237号公報 特開平11−149385号公報
ところで、ITRON仕様のリアルタイムOSでは、各タスクに優先度が設定されており、レディキューに登録されたタスクには、優先度に応じた順序で実行権が付与される。即ち、ITRON仕様のスケジューラは、レディキューに登録されたタスクの内、最も優先度の高いタスクに対して実行権を与える。
このため、ITRON仕様のリアルタイムOSにおいて、レディキューに登録されたタスクの内、優先度の低いタスクは、それより優先度の高いタスクがレディキューから外されるまで、全く実行されないことになる。
従って、ITRON仕様のリアルタイムOSに代表される第一のオペレーティングシステムの下で、Windows(登録商標)等の第二のオペレーティングシステムを動作させるためには、第二のオペレーティングシステムの優先度を最低値に設定する必要がある。第二のオペレーティングシステムは、常にレディキューに登録されているため、仮にそうしないと、第二のオペレーティングシステムより下位の優先度に設定されたタスクが、実行準備状態(READY状態)になっても、一向に実行されないことになってしまうからである。
しかしながら、第二のオペレーティングシステムの優先度を最低値に設定すると、第二のオぺレーティングシステムは、他のタスクがレディキューに登録されていない第一のオペレーティングシステムの空き時間にしか実行されないことになる。
従って、第二のオペレーティングシステムの優先度を最低値(最下位)に設定すると、第二のオペレーティングシステムで処理すべき割込み要求が発生した場合にも、その割込み要求に対応する処理を、第二のオペレーティングシステムにて直ちに実行することができなくなってしまう。
このため、第二のオペレーティングシステムの優先度を最低値に設定した場合には、高速応答性が必要な第二のオペレーティングシステム下のデバイスドライバにも、第一のオペレーティングシステム下で動作する他のタスクより低い優先度が設定され、そのデバイスドライバの応答性を十分確保することができなくなってしまう。
本発明は、こうした問題に鑑みなされたものであり、タスクに設定された優先度に従って複数のタスクを管理する第一のオペレーティングシステムと、そのオペレーティングシステムにより管理される第二のオペレーティングシステムと、が搭載されたコンピュータシステムにおいて、第二のオペレーティングシステムの下で動作するデバイスドライバの応答性を高めることを目的とする。
かかる目的を達成するためになされた請求項1記載の発明は、第一及び第二のオペレーティングシステムと、割込み制御手段と、第一及び第二切替手段と、を備えるコンピュータシステムである。このコンピュータシステムにおける第一のオペレーティングシステムは、複数のタスクを、タスクに設定された優先度に従って管理するマルチタスクOSであり、上記第二のオペレーティングシステムは、第一のオペレーティングシステムの下で動作する。
即ち、このコンピュータシステムにおいて、第一のオペレーティングシステムは、第二のオペレーティングシステムを、一つのタスクとして管理し、第二のオペレーティングシステムに設定された優先度に従って、第二のオペレーティングシステムに実行権を付与する。
割込み制御手段は、第二のオペレーティングシステムに対する割込み要求が発生すると、その後、第一のオペレーティングシステムの下で第二のオペレーティングシステムが実行権を獲得した際に、その割込み要求に対応する処理を、第二のオペレーティングシステムに実行させる。
一方、第一切替手段は、第二のオペレーティングシステムに対する割込み要求が発生すると、第二のオペレーティングシステムの優先度を、初期値より高い優先度に設定する。第二切替手段は、第一切替手段により第二のオペレーティングシステムの優先度が初期値より高い優先度に設定された後、上記発生した割込み要求に対応する処理が第二のオペレーティングシステムにて実行されると、第二のオペレーティングシステムの優先度を、初期値に再設定する。
即ち、このコンピュータシステムでは、第二のオペレーティングシステムにて処理すべき割込み要求が発生すると、その割込み要求に対応する処理が第二のオペレーティングシステムで実行されるまでの期間、第二のオペレーティングシステムの優先度が、初期値より高い優先度に設定される。このため、第二のオペレーティングシステムで処理すべき割込み要求が存在する場合、第二のオペレーティングシステムには、迅速に実行権が付与され、割込み要求に対応する処理は、第二のオペレーティングシステムにて迅速に行われる。
従って、本発明によれば、第二のオペレーティングシステムの優先度を、最も低い値に初期設定した場合であっても、第二のオペレーティングシステムにおけるデバイスドライバの応答性を十分に確保することができる。換言すると、上記第一のオペレーティングシステムの下で第二のオペレーティングシステムが管理されるコンピュータシステムにおいて、第二のオペレーティングシステムの下で動作するデバイスドライバの応答性を、従来より向上させることができる。
尚、第二のオペレーティングシステムに対する割込み要求は、第二のオペレーティングシステムに実行権が付与されるまでに複数発生する可能性があるから、上記コンピュータシステムにおける割込み制御手段には、第二のオペレーティングシステムに対する割込み要求が発生すると、その割込み要求の識別コードを、順次バッファに格納する格納手段を設けるとよい。
このように構成された請求項2記載のコンピュータシステムでは、第一のオペレーティングシステムの下で第二のオペレーティングシステムが実行権を獲得すると、割込み制御手段が、上記バッファに格納された割込み要求の識別コードを、バッファから順次取出して、その識別コードに対応する処理を、第二のオペレーティングシステムに実行させる。一方、第二切替手段は、割込み制御手段の動作によって、バッファに格納された割込み要求の識別コードに対応する処理が全て第二のオペレーティングシステムにて実行されると、第二のオペレーティングシステムの優先度を、初期値に再設定する。
従って、請求項2記載のコンピュータシステムによれば、第二のオペレーティングシステムに対する第一の割込み要求が発生した後、第二のオペレーティングシステムが実行権を獲得するまでの間に発生した、第二のオペレーティングシステムに対する後続の割込み要求に対応する処理を、迅速に第二のオペレーティングシステムに実行させることができ、第二のオペレーティングシステムにて動作するデバイスドライバの応答性を一層高めることができる。
尚、本発明のコンピュータシステムにおける割込み制御手段は、第二のオペレーティングシステムにて処理されるべき割込み要求が発生すると、それをバッファに格納して受付、その後、第二のオペレーティングシステムが実行権を獲得した際に、バッファに格納された識別コードに従い、割込み要求の発信元のデバイスに代わって、同様の割込み要求を第二のオペレーティングシステムに入力することにより、第二のオペレーティングシステムに割込み要求に対応する割込み処理タスク(割込みサービスルーチン)を実行させればよい。
また、上述のコンピュータシステムにおいては、上記第二切替手段を、第一切替手段により第二のオペレーティングシステムの優先度が初期値より高い値(高い優先度)に設定された後、割込み制御手段の動作によって、バッファに格納された割込み要求の識別コードが全て取り出されたか否かを判断する判断手段と、第二のオペレーティングシステムの優先度を初期値に再設定する再設定手段と、上記判断手段により割込み要求の識別コードが全てバッファから取り出されたと判断されると、上記再設定手段を作動させる作動手段と、からなる構成にすると共に、上記再設定手段を、第二のオペレーティングシステムの下で動作する割込み処理タスク(割込みサービスルーチン)の一つとして、当該コンピュータシステムに組み込むとよい。
このようにすれば、第二のオペレーティングシステムに、再設定手段としての機能を有するドライバを組み込む程度で、バッファに格納された割込み要求の識別コードに対応する処理が全て第二のオペレーティングシステムにて実行されてから、第二のオペレーティングシステムの優先度を初期値に再設定する動作を、第二のオペレーティングシステムを改変することなく、簡単に実現することができる。
以下に本発明の実施例について、図面とともに説明する。図1は、本発明が適用されたカーナビゲーション装置1の構成を表すブロック図である。
図1に示すように、本実施例のカーナビゲーション装置1は、液晶ディスプレイ等からなる表示装置11と、現在地の位置座標を算出するGPS受信機等からなる位置検出装置13と、各種キースイッチからなり利用者の操作情報を制御装置20に入力する入力装置15と、地図データ等を記憶するハードディスク装置(HDD)16と、外部通信機器と無線通信可能な通信装置17と、各種メディア(コンパクトディスク等)に記録されたオーディオデータを再生するオーディオ装置19と、これら各ハードウェア11〜19を統括制御する制御装置20と、を備える。
制御装置20は、各種演算処理を行うCPU21と、プログラム等を記憶するROM23と、CPU21によるプログラム実行時に各種データを記憶するRAM25とを備える。ROM23には、当該カーナビゲーション装置1の運営に必要な基本ソフトウェアとして、複数のマルチタスクOS(オペレーティングシステム)が格納されており、制御装置20は、当該カーナビゲーション装置1の起動時に、ROM23に記憶された上記マルチタスクOS等の基本ソフトウェアを読出し、これをCPU21にて実行することにより、図2に示す構成のコンピュータシステム30を当該制御装置20内に構築して、当該カーナビゲーション装置1を統括制御(運営)する。
具体的にROM23には、上記マルチタスクOSとして、ITRON仕様のリアルタイムOS40と、マルチメディア関連の機能に優れた汎用OS50(以下、「マルチメディアOS」と表現する。)とが格納されており、CPU21は、当該カーナビゲーション装置1の起動時に、上記リアルタイムOS40を実行し、このリアルタイムOS40の下で、マルチメディアOS50を実行する。尚、上記マルチメディアOSとしては、Windows(登録商標)CE等が挙げられる。
図2(a)は、制御装置20のCPU21がROM23に記憶された基本ソフトウェアを実行することにより、当該制御装置20内に構築されるコンピュータシステム30の構成を表すブロック図である。
図2(a)に示すように、本実施例のコンピュータシステム30は、上記リアルタイムOS40と、マルチメディアOS50と、割込みハンドラ60と、ベクタテーブル(TBL)70と、リングバッファ80と、割込みサービスルーチン(ISR)の一群90と、を備える。リアルタイムOS40は、当該リアルタイムOS40上で作成された複数のタスクを、各タスクに設定されたプライオリティ(優先度)に従って管理するタスク制御部41と、実行準備状態(READY状態)にあるタスクをプライオリティの高い順に記憶するレディキュー43とを備える。
タスク制御部41は、ITRON仕様にされており、各タスクに設定されたプライオリティに従って、レディキュー43を構成し、スケジューリングを行う。即ち、実行準備状態(READY状態)にあるタスクを、プライオリティの高い順に配列して待ち行列を作る。そして、後述するように、レディキュー43の先頭に位置する最もプライオリティの高いタスクを、実行準備状態(READY状態)から実行状態(RUN状態)に遷移させ(即ち、ディスパッチし)、これによりレディキュー43の先頭に位置するタスクに実行権を付与して、CPU21に、そのタスクを実行させる。
尚、レディキュー43には、当該リアルタイムOS40の起動時に、マルチメディアOS50が一つのタスクとして登録される。この際、マルチメディアOS50のプライオリティは、最低値に設定される。
一方、割込みハンドラ60は、上述したハードウェア11〜19から割込みが発生した際に、図示しない割込みコントローラから入力される割込み要求の識別コードとしての割込みID(割込みベクタ)に基づいて、発生した割込み事象に対応する割込みサービスルーチン(ISR)をCPU21に実行させる。この割込みハンドラ60は、入力された割込みID(割込みベクタ)に対応する割込みサービスルーチン(ISR)のアドレスを、ベクタテーブル70から読み出し、上記アドレスに対応する位置に格納された割込みサービスルーチン(ISR)をCPU21に実行させる。尚、周知のようにベクタテーブル70には、割込みID(割込みベクタ)と、その割込みID(割込みベクタ)に対応する割込みサービスルーチン(ISR)のアドレスとが、互いに関連付けられて記憶されている。
本実施例においては、マルチメディアOS50にて処理すべき割込みに対応する割込みID(割込みベクタ)に関連付けられて、その割込みに対応する処理をマルチメディアOS50に実行させるための割込みサービスルーチン(以下、「第二OS用ISR」と表現する。)のアドレスが記憶されており、マルチメディアOS50にて処理すべき割込みが発生すると、割込みハンドラ60は、その割込みIDに対応する第二OS用ISRをCPU21に実行させて、対応する割込みIDをリングバッファ80に記憶させる。尚、リングバッファ80は、所謂FIFO型のバッファであり、入力されたデータを、順に記憶すると共に、入力されたデータの順に、そのデータを出力するものである。
図2(b)は、上述した割込みハンドラ60の動作態様を示した説明図であり、図2(c)は、第二OS用ISRの動作態様を示した説明図である。また、図3(a)は、CPU21が実行する第二OS用ISRを表すフローチャートである。
図3(a)に示すように、CPU21は、第二OS用ISRを実行すると、この第二OS用ISRに設定された割込みIDを、リングバッファ80に書き込むと共に(S110)、後述するソフトウェア割込みISRを起床するためのソフトウェア割込みを発行する(S115)。尚、本実施例では、マルチメディアOS50が実行権を獲得している期間を除く期間、ソフトウェア割込みに対して、割込みマスクがセットされる。従って、この期間に、S115でソフトウェア割込みを発行しても、ソフトウェア割込みISRは、ただちに起床されない。
S115での処理を終えると、CPU21は、マルチメディアOS50のプライオリティを変更するためのプライオリティ変更指令(所謂chg_priコマンド)を、設定されるべきプライオリティの値を表す情報と共にリアルタイムOS40に入力し、リアルタイムOS40のタスク制御部41に、マルチメディアOS50のプライオリティを変更させる(S120)。
尚、ここで設定されるべきマルチメディアOS50のプライオリティの値は、設計者により予め定められており、S120においてCPU21は、起動時にマルチメディアOS50に設定される初期値(最低値)よりも高い値(以下、「第二値」と表現する。)へのプライオリティ変更指令を、リアルタイムOS40に入力する。この後、CPU21は、当該第二OS用ISRを終了する。
図4(a)は、このプライオリティ変更指令を受けると、リアルタイムOS40のタスク制御部41が実行するプライオリティ変更処理を表すフローチャートである。また、図4(b)は、タスク制御部41が繰り返し実行するタスク制御処理を表すフローチャートである。
タスク制御部41は、マルチメディアOS50を対象とするプライオリティ変更指令が入力されると、そのプライオリティ変更指令の内容を解析し(S201)、プライオリティ変更指令がマルチメディアOS50のプライオリティを第二値へ変更せよとの変更指令であるのか、それとも、プライオリティ変更指令がマルチメディアOS50のプライオリティを最低値(初期値)へ変更せよとの変更指令であるのかを判断する。
そして、プライオリティ変更指令がマルチメディアOS50のプライオリティを第二値へ変更せよとの変更指令であると判断すると、マルチメディアOS50のプライオリティを最低値より高い第二値に変更する(S203)。その後、タスク制御部41は、マルチメディアOS50のプライオリティを第二値とした状態で、レディキュー43に登録されているマルチメディアOS50を含むタスク群を、プライオリティの高い順に並べ替え、レディキュー43を再構成する(S207)。その後、当該プライオリティ変更処理を終了する。
これに対し、S201で、プライオリティ変更指令がマルチメディアOS50のプライオリティを最低値(初期値)へ変更せよとの変更指令であると判断すると、タスク制御部41は、マルチメディアOS50のプライオリティを最低値に変更し(S205)、その後、マルチメディアOS50のプライオリティを最低値とした状態で、レディキュー43に登録されているマルチメディアOS50を含むタスク群を、プライオリティの高い順に並べ替え、レディキュー43を再構成する(S207)。その後、当該プライオリティ変更処理を終了する。尚、図示しないが、タスク制御部41は、レディキュー43に登録されているタスクの種類が変更になる度に、S207と同様のスケジューリングを実行し、プライオリティの高い順にタスクを配列して、レディキュー43を再構成する。
一方、タスク制御部41は、ディスパッチの実行条件が満足されて、図4(b)に示すタスク制御処理を実行すると、レディキュー43に登録されているタスクの内、先頭に位置するタスク(即ち、レディキュー43に登録されている最もプライオリティの高いタスク)を、ディスパッチ対象のタスクとして選択する(S210)。
S210の処理後、タスク制御部41は、ディスパッチ対象のタスクがマルチメディアOS50であるか否かを判断し(S220)、ディスパッチ対象のタスクがマルチメディアOS50ではないと判断すると(S220でNo)、ソフトウェア割込みマスクをセットした状態で(S223)、ディスパッチ対象のタスクを、実行準備状態(READY状態)から実行状態(RUN状態)に遷移させて、そのタスクを起床する(S225)。この処理により、ディスパッチ対象のタスクは、CPU21により実行される。
一方、ディスパッチ対象のタスクがマルチメディアOS50であると判断すると(S220でYes)、上述したソフトウェア割込みマスクを解除すると共に、マルチメディアOS50を、実行準備状態(READY状態)から実行状態(RUN状態)に遷移させて、マルチメディアOS50を起床する(S230)。
この処理により、マルチメディアOS50は、CPU21により実行される。また、S230では、ソフトウェア割込みマスクが解除されるので、ソフトウェア割込み(換言すると、マルチメディアOS50にて処理すべき割込み)が発生している場合には、マルチメディアOS50に先駆けて、ソフトウェアISRが実行される。図3(b)は、CPU21が実行するソフトウェアISRを表すフローチャートである。
ソフトウェアISRを実行すると、CPU21は、リングバッファ80に格納されている割込みIDを一つ取出し(S310)、その取出した割込みIDに対応するイベントを発生させる(S330)。具体的には、マルチメディアOS50がアクセス可能なRAM25のフラグ記憶領域25aに用意された、その割込みIDに対応するイベントフラグをセットする。これにより、割込み要求は、マルチメディアOS50に伝達される。
その後、CPU21は、リングバッファ80が空であるか否かを判断し(S340)、空ではないと判断すると(S340でNo)、S310に移行して、リングバッファ80に格納されている次の割込みIDを取出し、それに対応するイベントを発生させる(S330)。そして、リングバッファ80が空であると判断すると(S340でYes)、終了スレッドを起床するためのイベントフラグをセットすることにより、終了イベントを発生させ(S350)、その後、当該ソフトウェアISRを終了する。
尚、終了スレッドは、マルチメディアOS50のプライオリティを最低値に変更するためのスレッドであり、マルチメディアOS50で処理される割込みサービスルーチン(ここでは、「割込み処理スレッド(IST)」と表現する)の一つとして、マルチメディアOS50に組み込まれている。この終了スレッドのプライオリティは、マルチメディアOS50において、他の割込み処理スレッド(IST)よりも低く設定されており、終了スレッドは、他の割込み処理スレッド(IST)が全て実行された後に、CPU21により実行される。
次に、マルチメディアOS50の構成について説明する。図2(b)に示すように、本実施例のマルチメディアOS50は、リアルタイムOS40と同様、タスクを管理するタスク制御部51と、レディキュー53と、を備える。
タスク制御部51は、イベントの発生等に応じて、待ち状態のタスクを、レディキュー53に登録し実行準備状態(READY状態)にすると共に、スケジューリング等を行う。スケジューリングの際には、実行準備状態(READY状態)のタスクを、プライオリティの高い順に配列して待ち行列を作る。そして、ディスパッチの実行条件が満足されると、レディキュー53に登録されている最もプライオリティの高いタスクを、実行準備状態(READY状態)から実行状態(RUN状態)に遷移させ、CPU21に、そのタスクを実行させる。
図5(a)は、タスク制御部51が、イベントに対応する割込み処理スレッド(IST)をレディキュー53に登録するために繰り返し実行するイベント登録処理を表すフローチャートであり、図5(b)は、タスク制御部51により実行される割込み処理スレッド(IST)の起床手順を示したフローチャートである。
マルチメディアOS50のタスク制御部51は、イベント登録処理を実行すると、RAM25のフラグ記憶領域25aを参照して、割込みに関するイベントが発生しているか否か判断し(S410)、イベントが発生していないと判断すると(S410でNo)、当該イベント登録処理を終了し、イベントが発生していると判断すると(S410でYes)、発生しているイベントに対応する割込み処理スレッド(IST)をレディキュー53に登録して、それら割込み処理スレッド(IST)を実行準備状態(READY状態)にする(S420)。また、この後に、スケジューリングを行って、レディキュー53に登録されているタスクをプライオリティの高い順に並び替え(S430)、当該イベント登録処理を終了する。
一方、タスク制御部51は、ディスパッチの実行条件が満足されると、レディキュー53に登録されている最もプライオリティの高いタスク(割込み処理スレッド(IST))を、ディスパッチ対象として選択し(S510)、このタスクを、実行準備状態(READY状態)から実行状態(RUN状態)に遷移させて起床する(S530,S540)。
この際、レディキュー53に割込み処理スレッド(IST)が登録されていると、終了スレッドの起床前に、それよりプライオリティの高い終了スレッド以外の割込み処理スレッド(IST)がディスパッチ対象に選択される(S510)。従って、ディスパッチ対象が終了スレッドであるか否かを判断するS520では、まずNoと判断されて、終了スレッドよりプライオリティの高い割込み処理スレッド(IST)が起床され(S530)、CPU21により、この割込み処理スレッド(IST)が実行される。
そして、レディキュー53に登録された終了スレッド以外の割込み処理スレッド(IST)が全てCPU21により実行されレディキュー53から削除されると、終了スレッドがディスパッチ対象として選択され(S510)、S520でYesと判断されて、終了スレッドが起床される(S540)。CPU21は、この終了スレッドを実行すると、リアルタイムOS40におけるマルチメディアOS50のプライオリティを最低値に変更するよう指示するプライオリティ変更指令をリアルタイムOS40に入力し、その後当該終了スレッドを終了する。
以上、本実施例のカーナビゲーション装置1及びコンピュータシステム30について説明したが、このコンピュータシステム30によれば、第一のオペレーティングシステムとしてのリアルタイムOS40が、タスク制御部41にて、第二のオペレーティングシステムとしてのマルチメディアOS50を一つのタスクとして管理し、マルチメディアOS50に設定されたプライオリティ(優先度)に従って、マルチメディアOS50に実行権を付与し(S230)、CPU21にマルチメディアOS50を実行させる。
割込みハンドラ60は、マルチメディアOS50に対する割込み要求が発生する度に、第二OS用ISRをCPU21に実行させて、その割込み要求に対応する割込みIDをリングバッファ80に順に記憶させる。また、リアルタイムOS40下でマルチメディアOS50が実行権を獲得した際、割込みマスクを解除することにより(S230)、過去、第二OS用ISRにて発生したソフトウェア割込みに対応する割込み処理ルーチンであるソフトウェアISRをCPU21に実行させて、リングバッファ80に格納された割込みIDを順次取出させ(S310)、割込みIDに対応するイベントを発生させ(S330)、そのイベントに対応する処理(割込み処理スレッド)を、マルチメディアOS50に実行させる(タスク制御部51が実行するS530)。
また、タスク制御部41は、第一切替手段としての機能を果たし、マルチメディアOS50に対する割込み要求が発生すると、第二OS用ISRにて発せられるプライオリティ変更指令(S120)に従って、マルチメディアOS50のプライオリティ(優先度)を、初期値より高いプライオリティ(第二値)に設定する(S203)。
その他、タスク制御部41は、第二切替手段としての機能をも果たし、マルチメディアOS50のプライオリティが初期値より高い第二値に設定された後(S203)、上記発生した割込み要求に対応する処理(割込み処理スレッド)がマルチメディアOS50により全て実行されると、その後、終了スレッドにより発せられるプライオリティ変更指令(S540)に従って、マルチメディアOS50のプライオリティ(優先度)を、初期値としての最低値に再設定する(S205)。
このように、本実施例のコンピュータシステム30では、マルチメディアOS50にて処理すべき割込み要求が発生すると、その割込み要求に対応する処理(割込み処理スレッド)がマルチメディアOS50で実行されるまでの期間、マルチメディアOS50のプライオリティが通常時(初期値)より高い値に設定されるため、マルチメディアOS50で処理されるべき割込み要求は、従来より迅速にマルチメディアOS50にて処理される。
従って、このコンピュータシステム30によれば、マルチメディアOS50のプライオリティを最低値に初期設定しても、リアルタイムOS40の管理下で動作するマルチメディアOS50の割込み処理スレッドの応答性、しいてはデバイスドライバの応答性を十分に確保することができる。即ち、コンピュータシステム30によれば、マルチメディアOS50下で動作するデバイスドライバの応答性を向上させることができる。
また、本実施例のコンピュータシステム30では、マルチメディアOSのプライオリティを最低値に設定するための終了スレッドを、他の割込み処理スレッド(IST)よりも低いプライオリティにして、マルチメディアOS50に組み込み、割込み要求に対応する割込み処理スレッド(IST)が全て終了すると、終了スレッドが実行されるように、マルチメディアOS50を構成しているので、マルチメディアOS50のカーネル部を改変することなく、デバイスドライバの一つとして、終了スレッドをマルチメディアOS50に導入する程度で、マルチメディアOS50のプライオリティを、適切な時期に初期値に再設定することができる。従って、本発明は、改変不可能なマルチメディアOS50を用いる場合に、非常に有効である。
尚、本発明のコンピュータシステムは、上記実施例に限定されるものではなく、種々の態様を採ることができる。上記実施例では、カーナビゲーション装置1に本発明のコンピュータシステムを適用した例を示したが、その他の電子装置に、本発明のコンピュータシステムを適用してもよい。また、上記実施例では、ITRON仕様のリアルタイムOSの下で、Windows(登録商標)CEを動作させる例を示したが、その他のOSについて、本発明のコンピュータシステムを適用してもよい。
カーナビゲーション装置1の構成を表すブロック図である。 制御装置20に構築されるコンピュータシステム30の構成を表すブロック図(a)及び、割込みハンドラ60の動作態様を示した説明図(b)並びに、第二OS用ISRの動作態様を示した説明図(c)である。 第二OS用ISRを表すフローチャート(a)及び、ソフトウェアISRを表すフローチャート(b)である。 タスク制御部41が実行するプライオリティ変更処理を表すフローチャート(a)及び、タスク制御部41が実行するタスク制御処理を表すフローチャート(b)である。 タスク制御部51が実行するイベント登録処理を表すフローチャート(a)及び、割込み処理スレッドの起床手順を表すフローチャート(b)である。
符号の説明
1…カーナビゲーション装置、20…制御装置、21…CPU、23…ROM、25…RAM、25a…フラグ記憶領域、30…コンピュータシステム、40…リアルタイムOS、41,51…タスク制御部、43,53…レディキュー、50…マルチメディアOS、60…割込みハンドラ、70…ベクタテーブル、80…リングバッファ

Claims (2)

  1. 複数のタスクを、各タスクに設定された優先度に従って管理する第一のオペレーティングシステムと、
    前記第一のオペレーティングシステムの下で、前記タスクの一つとして管理される第二のオペレーティングシステムと、
    前記第二のオペレーティングシステムに対する割込み要求が発生すると、その後、前記第一のオペレーティングシステムの下で前記第二のオペレーティングシステムが実行権を獲得した際に、該割込み要求に対応する処理を、前記第二のオペレーティングシステムに実行させる割込み制御手段と、
    前記第二のオペレーティングシステムに対する割込み要求が発生すると、前記第二のオペレーティングシステムの優先度を、初期値より高い値に設定する第一切替手段と、
    前記第一切替手段により前記第二のオペレーティングシステムの優先度が前記初期値より高い値に設定された後、前記割込み要求に対応する処理が前記第二のオペレーティングシステムにて実行されると、前記第二のオペレーティングシステムの優先度を、前記初期値に再設定する第二切替手段と、
    を備えることを特徴とするコンピュータシステム。
  2. 前記割込み制御手段は、
    前記第二のオペレーティングシステムに対する割込み要求が発生すると、該割込み要求の識別コードを、順次バッファに格納する格納手段、を備え、
    前記第一のオペレーティングシステムの下で前記第二のオペレーティングシステムが実行権を獲得すると、前記バッファに格納された割込み要求の識別コードを、該バッファから順次取出して、該識別コードに対応する処理を、前記第二のオペレーティングシステムに実行させる構成にされており、
    前記第二切替手段は、前記第一切替手段により前記第二のオペレーティングシステムの優先度が前記初期値より高い値に設定された後、前記割込み制御手段の動作によって、前記バッファに格納された割込み要求の識別コードに対応する処理が全て前記第二のオペレーティングシステムにて実行されると、前記第二のオペレーティングシステムの優先度を、前記初期値に再設定することを特徴とする請求項1記載のコンピュータシステム。
JP2004178579A 2004-06-16 2004-06-16 コンピュータシステム Pending JP2006004092A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004178579A JP2006004092A (ja) 2004-06-16 2004-06-16 コンピュータシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004178579A JP2006004092A (ja) 2004-06-16 2004-06-16 コンピュータシステム

Publications (1)

Publication Number Publication Date
JP2006004092A true JP2006004092A (ja) 2006-01-05

Family

ID=35772449

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004178579A Pending JP2006004092A (ja) 2004-06-16 2004-06-16 コンピュータシステム

Country Status (1)

Country Link
JP (1) JP2006004092A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008088023A1 (ja) * 2007-01-18 2008-07-24 Toyota Jidosha Kabushiki Kaisha 車両用制御システム
JP2009164996A (ja) * 2008-01-09 2009-07-23 Kyocera Mita Corp 情報処理装置
JP2009176139A (ja) * 2008-01-25 2009-08-06 Mitsubishi Electric Corp Os優先度変更装置及びos優先度変更プログラム
US8042117B2 (en) 2006-07-25 2011-10-18 Ntt Docomo, Inc. Operating system switching control device and computer system
CN104102619A (zh) * 2013-04-11 2014-10-15 杭州海康威视数字技术股份有限公司 第一操作系统对第二操作系统的dsp进行操作的方法及系统

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8042117B2 (en) 2006-07-25 2011-10-18 Ntt Docomo, Inc. Operating system switching control device and computer system
WO2008088023A1 (ja) * 2007-01-18 2008-07-24 Toyota Jidosha Kabushiki Kaisha 車両用制御システム
US20100070106A1 (en) * 2007-01-18 2010-03-18 Keisuke Okamoto Vehicle control system
CN101583518B (zh) * 2007-01-18 2013-01-02 丰田自动车株式会社 车辆用控制系统
US9026307B2 (en) 2007-01-18 2015-05-05 Toyota Jidosha Kabushiki Kaisha Vehicle control system
JP2009164996A (ja) * 2008-01-09 2009-07-23 Kyocera Mita Corp 情報処理装置
JP2009176139A (ja) * 2008-01-25 2009-08-06 Mitsubishi Electric Corp Os優先度変更装置及びos優先度変更プログラム
CN104102619A (zh) * 2013-04-11 2014-10-15 杭州海康威视数字技术股份有限公司 第一操作系统对第二操作系统的dsp进行操作的方法及系统

Similar Documents

Publication Publication Date Title
US10152438B2 (en) Deferred inter-processor interrupts
US20230185607A1 (en) Hardware accelerated dynamic work creation on a graphics processing unit
US8935698B2 (en) Management of migrating threads within a computing environment to transform multiple threading mode processors to single thread mode processors
US8943252B2 (en) Latency sensitive software interrupt and thread scheduling
JP6491326B2 (ja) アプリケーションプログラムを実行するための方法および装置
US20140115594A1 (en) Mechanism to schedule threads on os-sequestered sequencers without operating system intervention
US20140223437A1 (en) Method and electronic device for thread scheduling
US8607239B2 (en) Lock mechanism to reduce waiting of threads to access a shared resource by selectively granting access to a thread before an enqueued highest priority thread
KR101551321B1 (ko) 휴대용 컴퓨팅 디바이스에서 요청들을 스케쥴링하기 위한 방법 및 시스템
JP5244160B2 (ja) 複数の命令シーケンサでのスレッド実行に基づく命令セットのためのメカニズム
JP2006243865A (ja) プロセッサおよび情報処理方法
US20080140896A1 (en) Processor and interrupt controlling method
US10108449B2 (en) Work item management among worker threads of a computing device
US20210311782A1 (en) Thread scheduling for multithreaded data processing environments
EP1693743A2 (en) System, method and medium for using and/or providing operating system information to acquire a hybrid user/operating system lock
JP4523910B2 (ja) 並列処理装置及び並列処理方法及び並列処理プログラム
JP2006243864A (ja) プロセッサおよび情報処理方法
RU2606565C2 (ru) Агент микропрограммного обеспечения
US7797473B2 (en) System for executing system management interrupts and methods thereof
US8832700B2 (en) Subscriber-based ticking model for platforms
JP2006004092A (ja) コンピュータシステム
WO2023241307A1 (zh) 管理线程的方法及装置
JP2008225641A (ja) コンピュータシステム、割り込み制御方法及びプログラム
WO2024024102A1 (ja) 計算機システム、タスクスケジューラ装置、待ちプロセス起床方法およびプログラム
KR101725408B1 (ko) 실시간 운영체제의 태스크 스케줄링 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060809

A977 Report on retrieval

Effective date: 20080229

Free format text: JAPANESE INTERMEDIATE CODE: A971007

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080325

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080521

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080708