JP2007164819A - 埋込みシステム - Google Patents

埋込みシステム Download PDF

Info

Publication number
JP2007164819A
JP2007164819A JP2007041050A JP2007041050A JP2007164819A JP 2007164819 A JP2007164819 A JP 2007164819A JP 2007041050 A JP2007041050 A JP 2007041050A JP 2007041050 A JP2007041050 A JP 2007041050A JP 2007164819 A JP2007164819 A JP 2007164819A
Authority
JP
Japan
Prior art keywords
operating system
interrupt
mode
processor
thread
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
JP2007041050A
Other languages
English (en)
Inventor
Risto Ronkka
ロンカ,リスト
Vesa Saarinen
サーリネン,ベサ
Janne Kantola
カントラ,ヤンネ
Jyrki Leskelae
レスケラ,イルキ
Kim Lempinen
レンピネン,キム
Anu Purhonen
プルホネン,アヌ
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.)
Nokia Oyj
Original Assignee
Nokia Oyj
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 Nokia Oyj filed Critical Nokia Oyj
Publication of JP2007164819A publication Critical patent/JP2007164819A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Debugging And Monitoring (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Multi Processors (AREA)

Abstract

【課題】2つのオペレーティングシステムを動作させるための少なくとも1つのプロセッサを備える埋込みシステムを提供する。
【解決手段】プロセッサ2において少なくとも2つのオペレーティングシステムであって、第1オペレーティングシステムはスレッドの第1グループを備え、第2オペレーティングシステムはスレッドの第2グループを備えるものを動作させるための手段401、412と、プロセッサ2に割込みを作成するための手段と、プロセッサ2に来た割込みFIQ 、IRQ 、SWIがどのスレッドの実行に影響を及ぼすかを調べるための手段401と、プロセッサ2に受け取られた割込みFIQ、IRQ 、SW1に影響を及ぼすスレッドに関連する割込みデータを前記オペレーティングシステムに伝えるための手段401、412とを更に備える。
【選択図】図4b

Description

本発明は、付随する請求項1のおいて書き部分に記載のシステムに関する。本発明は、更に、付随する請求項13のおいて書き部分に記載の方法と、請求項24のおいて書き部分に記載の通信装置とに関する。
エレクトロニクス産業では、基本的機能コンポーネントとしてある種のマイクロプロセッサ又は対応するプロセッサを有する数々の装置が設計されている。このプロセッサを例えばマイクロコントローラと関連させて置くことができ、それは同じマイクロチップ内に置かれた周辺装置を有する。これらの装置は埋込みシステムとも称され、その例はセルラー・ネットワーク移動局CMT (Cellular Mobile Telephone:セルラー移動電話)等の移動局、PC (Personal Computer :パーソナルコンピュータ) 、PDA (Personal Digital Assistant :パーソナルディジタルアシスタント)等である。そのような装置を制御するために、システムのタイミングを整え、資源を制御し、メッセージを処理すると共にいろいろなプログラム・ブロック間でメッセージを伝送するという基本タスクを有する、装置固有のオペレーティングシステムがしばしば設計される。通常、その種のオペレーティングシステムはいわゆる実時間オペレーティングシステム(RTOS)である。そのような実時間オペレーティングシステムの典型的特徴は、例えば、キーを押す動作などの外部割込みについての応答時間あるいはタイミングを予測するためにそれを使用することができるという事実、メモリ資源の使用がなるべく少なくされているという事実、及び、付加的に、実時間オペレーティングシステムはタスクを制御するのに非常に効率が良いという事実である。更に、実時間オペレーティングシステムでは、例えば携帯装置においてバッテリの動作時間を長くするために、容量を制御するための特性がしばしば設計される。そのような実時間オペレーティングシステムのサイズは、プログラムコード及び情報メモリ(RAM、ランダムアクセスメモリ)については普通は10kBと100kBとの間である。
非実時間オペレーティングシステムは、例えば、いろいろな動作をさせるときの応答時間が実時間オペレーティングシステムにおける応答時間より長いという事実、また一方では、非実時間オペレーティングシステムでは応答時間を予測することはできないという事実において、実時間オペレーティングシステムとは違っている。マルチタスク方式の非実時間オペレーティングシステムでは、各実行プロセスは、優先レベルが同じかあるいはより低い他のプロセスの動作を阻止し、応答時間も長くなることがある。更に、非実時間オペレーティングシステムにはオペレーティングシステムのカーネルで決定する応答時間は無く、そのことが、そのようなオペレーティングシステムの実行速度の予測可能性を困難にする。
移動局は、限られた容量のメモリと、他のシステム資源とを有する。更に、移動局には、書込み可能な大容量記憶装置(ハードディスク)あるいはFLASHメモリ等のメモリカード等の、周辺装置のためのシステム・サポートを持っていないことがしばしばある。移動局には普通はプログラムを動的にシステムにロードするための可能性が設けられていない、すなわち、移動局のソフトウェアは製造段階でこの移動局にロードされるか、あるいは場合によっては例えば保守点検との関係でプログラムを更新することができる。更に、移動局のソフトウェアは通常は移動局メーカによって製造されて試験されるので、多くの移動局はメモリ管理ユニット(MMU)を備えていない。このような背景から、装置固有の実時間オペレーティングシステムは、上記の特性をサポートするものを備えていない。
パーソナルコンピュータ及びパーソナルディジタルアシスタントを製造している会社は、上記特性のためのサポートを有するオペレーティングシステムを開発しているけれども、それらのオペレーティングシステムは、そのままでは実時間で動作しなくて、一定の動作をさせるために最大応答時間を予測するためにそれらを使用することはできない。そのようなオペレーティングシステムのサイズは通常は200kBから数MBの範囲にあり、それらを移動局等の携帯可能な機器に適合させることは必ずしも容易なことではない。
実時間オペレーティングシステム、特にデータプロセッサ向けに開発されたオペレーティングシステムには部分的に相反する必要条件があり、このオペレーティングシステム向けの同じプログラミング・インタフェースのあるオペレーティングシステムを、小メモリ消費及び実時間特性等の全ての必要な特性と同時に達成することは困難である。
近時、データプロセッサと電気通信装置との両方を組み合わせた電子装置が開発されている。そのような装置は本明細書では通信装置と称される。そのような装置の1例はノキア9000コミュニケータであり、これはデータ処理の機能及び移動局の機能の両方を持っている比較的に小型の装置である。しかし、この種の複合装置の1つの目的は、前に開発された製品をなるべく多く利用することであり、その場合、1つの目的はそれらの種々の装置向けのソフトウェアをこの新しい装置と両立し得るように保つことである。このことは、データ処理部分にそれ自身のプロセッサを設けると共にそれ自身のオペレーティングシステムをその中に設けることによって達成されており、同様に、実現される移動局はそれ自身のプロセッサとそれ自身のオペレーティングシステムとを有する。このようにして、前の製品開発の結果をなるべく効率よく利用すると共に装置の事業化を促進することが可能となっている。しかし、別々のプロセッサは、普通は単一プロセッサによる解決策で得ることができるよりも多くの容量を消費し、そのような携帯装置は効率が更に良いバッテリを必要とするか、さもなければ、その実行時間を別々の装置で可能であるよりも長くすることはできない。
1つのプロセッサで2つのオペレーティングシステムを動作させることは、従来技術の解決策では、どちらのオペレーティングシステムの特徴をも利用して該オペレーティングシステムを実現することにより達成されている。この種の組み合わせには問題があって、例えば、オペレーティングシステムが非常に異なった種類の特性を持っている場合には組み合わされるべきオペレーティングシステムの特性の全てを実施することは不可能である点である。このことに起因して、例えば、それらのオペレーティングシステムのために開発されたアプリケーション・プログラムの全てを利用することはできないか、あるいは利用するためには当該アプリケーション・プログラムを変更することが必要である。更に、新しいアプリケーションが開発されるとき、1つのオペレーティングシステムに基づいて作られたアプリケーション・プログラムを他のオペレーティングシステムに従って変更しなければならない。このことが所要の作業に加わると共に間違いの可能性を加える。
更に、特許US5、278、973号は、1つのプロセッサで数個のオペレーティングシステムを使用することのできるデータプロセッサを開示している。しかし、それらのオペレーティングシステムのうち、1度に使えるのは1つだけである。オペレーティングシステムを変更するには、使用中のオペレーティングシステムの実行を止め、データプロセッサを再起動する必要がある。
本発明の1つの目的は、1つのプロセッサ等によって少なくとも2つのオペレーティングシステムの動作を実行することのできる埋込みシステムを達成することである。
本発明は、各割込みがどのオペレーティングシステムのスレッドに作用するかを調べるために少なくとも1つの、少なくとも部分的に共通の割込みハンドラを形成し、割込みデータをそれぞれのオペレーティングシステムに伝えるというアイデアに基づいている。本発明の埋込みシステムは、付随の請求項1の特徴部分に記載されているものを特徴とする。本発明の方法は、付随の請求項13の特徴部分に記載されているものを特徴とする。本発明の通信装置は、付随の請求項24の特徴部分に記載されているものを特徴とする。
本発明は、従来技術の解決策を越える顕著な利点を提供する。プロセッサにより消費される容量は、通常は、各オペレーティングシステムのために別々のプロセッサを使う場合よりも少ない。更に、メモリ等の共通コンポーネントをより多く使えるので、必要なスペースが少なくなる。本発明の埋込みシステムは、開発されたアプリケーション・プログラムを変更無しに使用することを可能にし、更に、一方のオペレーティングシステムに基づいて他方のオペレーティングシステムに従って開発されたアプリケーション・プログラムを始めに変更する必要無しにどのオペレーティングシステムのためにも新しいアプリケーションを更に開発することができる。本発明は、更に、2つのオペレーティングシステムが両方のオペレーティングシステムの特徴を利用できるように組み合わされている解決策や、各々のオペレーティングシステムが自由に使えるプロセッサを有する解決策と比べたときに、作業量と、発生する可能性のある間違いとを減少させる。更に、本発明の解決策は、例えば移動局機能の実施のための、一定のアプリケーションあるいはアプリケーション領域で更に最適化され得るオペレーティングシステムのどの特徴をも緩めない。
更に、携帯可能な装置では、電力消費量が少なくなっているので、1回のバッテリ充電で長い動作時間が得られる。
次に、添付図面を参照して本発明を更に詳しく説明する。
本発明をよりよく理解するために、始めに従来技術のプロセッサ及びオペレーティングシステムについて図1〜3を参照して説明をする。
命令セットにより、プロセッサを2つのクラス、すなわち複合命令セット・コンピュータ(CISC:complex instruction set computer )と縮小命令セット・コンピュータ(RISC:reduced instruction set computer)とに分けることができる。縮小命令セット・コンピュータでは、あまりありふれていない命令の一部分は取り除かれている、例えば、アドレス指定フォームの数は複合命令セット・コンピュータのよりも少なくて良い。しかし、普通のアプリケーション・プログラムでは、アプリケーション・プログラムを実現するために非常に少量の命令が使用され、必要なアプリケーション・プログラムを縮小命令セット・コンピュータにより実行することが普通は可能である。複合命令セットコンピュータと比べての縮小命令セットプロセッサの利点は、例えば、実行速度を高めることができ、また一方では、プログラム・コードが必要とするメモリ・スペースは複合命令セットコンピュータが使われるときより小さいという事実である。特に、プログラム・メモリの量が減少すると、装置のための容量の必要性も減少し、また一方では、装置のサイズを減少させることができる。
実用的な実施形態では、マイクロコントローラがしばしば使用され、それは、実際のプロセッサと、それに接続される、例えばランダムアクセスメモリ(RAM)、読出し専用メモリ(ROM)、入/出力装置(I/O)、タイマ、アナログ−ディジタル変換器(A/D変換器)、ディジタル−アナログ変換器(D/A変換器)などの補助コンポーネントとを含んでいる。これらのいろいろなユニット間のインタフェース・ラインをなるべく小さくすることができ、装置のサイズを更に減少させることができ、また一方では、これらのいろいろなユニット間での信号の伝送を加速することができる。マイクロコントローラ製造は、種類の異なるマイクロコントローラを生産し、それらは同じプロセッサを持つことができるが、周辺コンポーネントの量及び種類はまちまちであって良くて、各アプリケーションには、必要ならば、それに最適のマイクロコントローラを設けることができる。
本明細書において前述したように、マイクロプロセッサ又は対応するプロセッサを利用するような装置のために、いわゆる基本ソフトウェアとして動作するオペレーティングシステムが開発される。このオペレーティングシステムは装置のいろいろなユニットの制御、データの読出しなどを担当し、そのような装置でのアプリケーション・プログラムの使用を可能にする。例えばパーソナルコンピュータでは、該コンピュータがオンにされるとき、オペレーティングシステムがプログラムメモリにロードされ、それは一定の初期設定動作を実行する。その後、ユーザは希望するアプリケーション・プログラムを始動させることができ、その時オペレーティングシステムはユーザにより与えられたコマンドを受け取り、当該アプリケーション・プログラムを探索し、それをプログラムメモリにロードし、アプリケーション・プログラムを始動させる。多重処理システムでは、表面上は同時に数個のそのようなアプリケーション・プログラムを使用することが可能であり、アプリケーション・プログラムは、これらのいろいろなアプリケーション・プログラム間で実行時間及びスケジューリングを与えることに対処する。更に、オペレーティングシステムのタスクは、それらのいろいろなアプリケーション・プログラム間で信号を伝送し、必要ならばアプリケーション・プログラムと周辺装置との間でのシグナリングを整えることである。
オペレーティングシステムは、プロセスの実行をいわゆるスレッドとして制御することができる。1つのスレッドは1つ又は数個のプロセスの実行に関連する機能を備えることができ、その一方で1つのプロセスは1つまたはそれより多いスレッドに分けられる。スレッドの実行は、オペレーティングシステムのスケジューラにより制御される。換言すると、スレッドは、オペレーティングシステムによりプロセスに与えられる一種のサポートである。
知られているオペレーティングシステムでは、普通は次の特性を見いだすことができる。ユーザにより与えられた、例えば当該コマンド中のアプリケーション・プログラムの名前を読み出してユーザがこのアプリケーション・プログラムにより伝送されるべく与えたパラメータを認識するなど、ユーザにより与えられたコマンドを解釈するコマンド・インタープリタと、いろいろなプロセスへの資源の割り当てを行うスケジューラと、割込みに反応してこの割込みにより要求されている例えば割込み要求のオペレーティングシステムへの伝送などの処置を実行する割込み要求サービスと、である。更に、オペレーティングシステムは、例えばキーパッドを読む、ディスプレイに書込みをする、存在することのある外部インタフェースを制御する機能のためのものなど、機能ブロックを有する。資源は、例えばメインメモリ、周辺装置、及びプロセッサ時間の使用を含む。オペレーティングシステムは、例えば、実行されるべき各プロセスのためのメモリ領域を予約するが、プロセスはデータを書くことができ、プロセスはデータを読む。あるプロセスが該プロセスのために予約されているこのメモリ領域の外側に書こうと試みた場合、メモリ制御ユニットは普通はその書込みを妨げて通常はそのようなプロセスの動作を停止させる。
多くのプロセッサはユーザ・モード及び特権モード(管理モード及びカーネル・モードなども)などの、種々の使用モードを依然として有する。ユーザにより開始されるアプリケーション・プログラム及び他のプロセスは、普通はユーザ・モードに従って動作するようにセットされる。対照的に、オペレーティングシステム、及びそれにより始動されるプロセスの一部分は通常は特権モードで動作する。ユーザ・モードは限られた動作だけが可能であって、例えばプロセスのコマンドの一部は特権モードでだけ作用し、それをユーザ・モードで使用することはできない。あるオペレーティングシステムでは、特権動作モードは数個の、例えば3個の、レベルを有する。動作モードのカーネルは、最大の権利を有する特権モードの第1レベルで実行される。第2レベルは例えば制御ルーチン等を有する(エグゼクティブ)。第3レベルは例えばコマンド・インタープリタを有する。
プロセッサ2は一般に割込みを使用する可能性を含んでいる。プロセッサ2の外部から割込み要求を1つ又は数個の割込みサービス・ラインnIRQ、nFIQ(図4b)で伝送することができ、そのモードの変更、例えば論理モード1から論理モード0への変更、はプロセッサ2に対する割込みの原因となる。プロセッサ2に対する割込み要求は、実質的に遅延無しに、あるいはより高位の優先順位の割込み要求が待機していないときに、それぞれの割込みサービス・ルーチンを動作させるようにプロセッサ2を転換させる。割込みサービス・ルーチンでは、割込み処理動作の少なくとも一部分が実行される。それらのハンドリング動作は、例えばそれぞれのアプリケーションと、割込みの原因とによる。割込みサービス・ルーチンの動作は、実行中のプロセス及びオペレーティングシステムの動作を遅くするので、特に実時間オペレーティングシステムでは、割込みサービス・ルーチンをなるべく短くかつ高速にしようとする試みがなされる。割込みサービス・ルーチンでは、オペレーティングシステムのために例えば割込みと、割込み処理処置の一部分が実行しようと待機している情報の状態可変通知をセットすることが可能であり、その場合オペレーティングシステムは例えばそのスケジューリング処理手順に従ってそれらの動作の実行を制御する。割込みサービス・ルーチンへの伝送は、種々の割込みブロッキング及びマスキングの影響も受ける。割込みがディスエーブルにされると、割込み要求は普通は割込みブロッキングのキャンセルを待つ状態とされ、その後に割込み要求はその優先順位に応じて有利に処理される。割込みは、ほとんどのプロセッサ2において選択的にも防止されることができ、そのバックアップには、割込みマスク・レジスタ等において各割込みにイネーブル状態又はディスエーブル状態が与えられる。
割込み要求は、例えば、シリアル・バスを通して受け取られた情報に起因するシリアル・バス割込み要求、キーパッドのキーを押したことに起因する割込み要求、タイマに起因する割込み要求、あるいは実行中のプロセスにより形成されるいわゆるプログラム割込み要求など、外部装置により与えられた信号に基づいて作成される。割込みについて優先順位が決定され、相対的に低位の割込みサービス・ルーチンの実行は相対的に高位の割込みによって中断させられることがある。対照的に、相対的に高位の割込みサービス・ルーチンは普通は相対的に低位の割込みサービス・ルーチンによって割り込まれない。オペレーティングシステムのための基本タイミングを達成するために、普通はタイマが使用され、これは一定の時間をおいてプロセッサに対する割込み要求を作成し、それは、タイマの割込みサービス・ルーチンを実行するように変化する。その結果として、タイマの割込みサービスに高い優先順位が与えられる。対照的に、例えばディスプレイの更新には普通は低い優先順位が与えられる。
特許US5,515,538は、データ・プロセッサの多重処理オペレーティングシステムにおいて割込みを処理する1つの方法を開示している。その方法では、割込みハンドラが自分自身のスレッドを形成するように構成され、これに対して割込み状態において実行が向けられる。しかし、この刊行物で紹介された方法は、1オペレーティングシステムの装置にだけ関しており、それは、このオペレーティングシステムのプロセスを動作させるために同時に数個のプロセッサを包含することができる。
次に、1つの多重処理オペレーティングシステムの動作を簡略化した形で解説する。オペレーティングシステムのスケジューラは、一定間隔で、どのアプリケーション・プログラム、すなわちプロセス、をその時に実行するべきか調べる。このスケジューラは、例えばタイマ割込みによって起動される。各アプリケーション・プログラムは、更に、1つまたはいくつかのスレッドを含んでいることがあり、各スレッドは、1つのプロセッサ・システムで異なる時に動作する。1つのスレッドは例えばキーパッド等の周辺インタフェースでのデータの読出しであり、第2のスレッドはデータの処理であり、第3のスレッドは例えば処理済みのデータのディスプレイ等の周辺装置への書込みであって良い。このアプリケーション・プログラムが始動されるとき、スケジューラは一度に各スレッドについての実行時間とスレッドを、動作するための繰返し間隔とを定めている。スケジューラは、スレッドの実行を開始し、この実行時間が経過した後にスレッドを待機へ移し、そして、もし必要ならば、このスレッドのデータをメモリ手段に記憶して、同じかあるいは異なるプロセスであって良い新しいスレッドの実行を開始する。スケジューラは、全てのスレッドを実行した後、新しい実行ラウンドを開始するか、あるいはどのスレッドの実行間隔も満了していない場合には、いわゆるアイドル・スレッドが実行される。しかし、上記スレッドの実行時間の間に、割込み要求が発生する可能性があり、その場合にはそれらの割込み要求の優先順位に基づいてオペレーティングシステムは割込みサービス・ルーチンを実行し始め、あるいはスケジューラが割込みサービスを実行するのに適する時間を決めて、割り込まれたスレッドを実行し続ける。例えばキーパッド・インタフェースにより達成された割込み状況において、キーパッド割込みプログラムは、押されたキーのコードを読み取り、それを一時記憶場所に記憶する。その割込みサービス・ルーチンが終了した後、オペレーティングシステムのスケジューラは、キー押しの試験プログラムのための実行時間を決めて、キーパッド割込みについて決められている優先順位が割り込まれたプログラム・スレッドの優先順位を越えなかったならば割り込まれたプログラム・スレッドに戻る。
添付の図1は1オペレーティングシステムの層構造の例を示している。オペレーティングシステムの最低部はカーネルであり、その次のレベルはメモリ制御に関連する部分から成り、第3レベルはファイル・システム部分である。これらの3レベルより上には、例えばコマンド・インタープリタ、プロセス(図示せず)、インタフェース・プログラム、スケジューラ機能、等々が位置している。
次に、あるオペレーティングシステムのカーネルの構造を説明する。カーネルの動作のための主要部分は、割込み処理、プロセスの制御、及び周辺装置の制御である。割込み処理は、割り込まれたプログラムのデータの記憶と、正しい割込みサービス・ルーチンの実行の制御とを含む。プロセスの制御は、例えばプロセスを作成すること、実行時間を決定すること(スケジューリング)、プロセスの動作を終了させること、タイミング、等々を行う。周辺装置の制御機能は、例えばデータ伝送を開始させること、及び、各周辺装置に関連する1つ以上の割込みの処理を含む。オペレーティングシステムの見地からは、プロセスは常に3つのモード、すなわちレディ(READY)・モード、動作モード及び待機モード、のうちの1つである。このモード分割が、付随する図2に示されている。実行モードは、その時に実行されているプロセスを含んでおり、1プロセスを含むシステムはこのモードでは最大で1つのプロセスを有する。実行モードで実行されるべく待っているプロセスはレディ・モードとなっている。スケジューラのタスクは、レディ・モードの1つのプロセスを実行モードで実行される1つのプロセスとして選択することである。待機モードは、キー押し、資源の再割り当てなど、何らかの動作を待っているプロセスを備える。
スケジューラは、最高優先順位のプロセスをレディ・モードから実行モードに移す。実行モードにおいて、プロセスは、例えば、その実行が待機を含む何らかのオペレーティングシステム・サービスを要求するなど、通常はそれ自身の要求によって待機モードに移る。待機モードからレディ・モードへの移行は、前記待機が終わろうとするときに行われる。スケジューラが例えば割込み処理を終了するなど、実行されるべき他のプロセスを変更するような場合にも、プロセスを実行モードからレディ・モードに戻すことができる。
カーネルの実現は、普通は、その要素がオペレーティングシステムの領域にある空きメモリ空間から割り当てられる2方向チェーン・リストである多数の動的情報構造を通常は伴う。例えば、各プロセスのデータはプロセス制御ブロック(PCB)で有利に維持される。プロセス要素はプロセス・テーブルにまとめられており、そのサイズは、システムにおけるプロセスの量に上限を設定する。付随する図3に示されているこの例は、基本要素に例えば次の情報を含んでいる。
プロセスステータス:待機、実行可能又は実行、
プロセスの名称、
プロセスの優先順位、
割り込まれたプロセスの情報(環境)の記憶(スタック)についての状況、
割り当てられた資源についてのデータ:メモリ、装置、開放ファイルなど、
プロセス割り当てのトラッキングに関連するフィールド、
認可に関連するフィールド。
これはプロセス要素の実現の例に過ぎなくて、実際の実施形態では、これらは大幅に変化し、プロセス要素のデータは大幅にまちまちであって良いことに言及しておく。
プロセス記号は、例えばシーケンス番号などの、そのプロセスの名称である。このプロセスの名称に基づいて、オペレーティングシステムはいろいろなプロセス同士を分ける。プロセスが2つ以上のスレッドを含んでいる場合には、プロセス記号、又はこのプロセス要素の他のフィールドはスレッドのこの番号についての情報も含むことができる。プロセスのステータスを知らせるために、ステータスフィールドが使用される。オペレーティングシステムは、プロセスの状態が変化するときにこのステータスフィールドの値を変更する。スケジューラはプロセスの実行シーケンスを決定するために優先順位フィールドの値を使用し、例えばこのフィールドに含まれている数値が大きいほど当該プロセスの優先順位は高い。待機モードのプロセスの優先順位フィールドの値を比較することにより、スケジューラは最高の優先順位値のプロセスを次に実行されるプロセスとして選択する。
次に、新しいプロセスの作成について説明する。本例では、プロセスは、装置のメモリ手段内のファイルに、例えば書込み可能な大容量記憶装置に、記憶される。このプログラムはファイル名に従って認識される。オペレーティングシステムのカーネルは、プロセスを起動するためのサービス・ルーチンを備えており、そのサービス・ルーチンにパラメータとして与えられる名称は、そのファイルの名称であるのが有利である。この起動サービス・ルーチンは、そのプロセスのためにプロセス・テーブル上にプロセス要素を形成し、メインメモリの領域をプロセスに割り当てる。このプログラム・ファイルの内容は、それのために予約されているメモリ領域に読み込まれ、プロセス要素のフィールドが適当な値で初期化され、その後にプロセスを立ち上げて実行待ちの状態とすることができる。このプロセスのために使われる記号は、例えば、次の自由プロセス記号であって良い。該プロセスのステータスは有利には、値レディにセットされる。オペレーティングシステムのスケジューラは、そのスケジューリング処理手順に従って、これらのプロセスを実行に向けて制御する。
プロセスがスレッドとして実行されるオペレーティングシステムでは、起動サービス・ルーチンがプロセスから1つ又は数個のスレッドを形成すると共にプロセス・テーブル上にスレッドのためのプロセス要素を形成するように、上記のプロセス作成をそれぞれ適合させることが可能である。
更に、オペレーティングシステムは周辺装置を制御するために1つの重要な特徴、いわゆるデバイス・ドライバ、を含んでいる。デバイス・ドライバは、ディスプレイ、キーパッド、コーデック等の周辺装置を制御するために必要なルーチン及び情報構造を備える。必要なルーチンは、例えば、装置の動作を初期化すること、読み書き、端末の特性を設定する等の制御ルーチン、装置に関連する割込みを処理するルーチンなどである。装置に関連する変数及び情報構造を例えばいわゆる装置記述子に集めることができる。この種の情報は例えば次の通りである。
装置に対して待ち合わせしている転送要求のパラメータ・ブロック同士が連鎖形成されるワーク・キュー。同時値及び書込みが可能である場合、2つのワーク・キューがある。当該パラメータ・ブロックは、例えばデータ・バッファの場所に関連する情報など、転送要求のパラメータ、転送されるべきブロックの番号、などを含む。
デバイス・ドライバ・ルーチンのアドレス、
転送制御に必要とされる装置の変数及びモード・データ、並びに
装置固有のパラメータ。
あるシステムでは、デバイス・ドライバはオペレーティングシステムのプロセスである。このプロセスは永久ループで動作し、そこでプロセスは始めに転送要求メッセージを待つ。そのようなメッセージを受信した後、デバイス・ドライバ・プロセスは転送を起動し、割込みメッセージを待つ。オペレーティングシステムの割込みハンドラは、割込みメッセージのデバイス・ドライバ・プロセスへの伝送を担当する。実際の装置では、デバイス・ドライバ・プロセスは通常は高い優先順位を有し、オペレーティングシステムのカーネルは実時間で動作する。
書込み可能な大容量記憶装置から読み出すときには、その読出し動作は例えば次のように動作する。装置テーブルから、それぞれの装置記述子のアドレスが始めに探索される。その後、読出しルーチンのアドレスが装置記述子から取り出される。読出しルーチンは、転送要求のパラメータからパラメータ・ブロックを形成する。転送が当該装置によって現在行われつつあるならば、すなわちこの装置が他のプロセスにより使用されているならば、パラメータ・ブロックはワーク・キューの中の最後のものとしてつながれ、待機が行われる。この装置が使用可能で、ワーク・キューが空であるならば、パラメータ・ブロックはワーク・キューの第1ブロックとなるようにつながれる。その後、ブロックの番号はシート表面、トラック及びセクタの番号に変更され、例えば装置レジスタを修正することによって転送が起動される。この後、転送終了を待つ。転送が終了した後、装置割込みが行われる。オペレーティングシステムの割込み処理は装置番号に従って装置テーブルから装置記述子のアドレスを捜し、それから更に割込み処理ルーチンのアドレスを探し、割込みハンドラのプログラム・コードの実行に転換する。割込みハンドラは、間違いが生じていないかどうか調べるのが有利である。転送を成功させるという目的のために、パラメータ・ブロックはワーク・キューから切り離され、転送を待っていたプロセスが呼び起こされる。待ち合わせ転送要求がワーク・キューに存在している場合には、次の転送動作は実質的に遅延無しで起動される。
周辺装置の種類により、動作は前述したものとはある程度異なることがあり得る。ディスプレイ及びプリンタ等の文字印刷装置により、ワーク・キューは、印刷されるべき文字を含むキューと単に置き換えられる。
多くのオペレーティングシステムは使用されるメッセージ伝送メカニズムを有し、これでプロセスはメッセージを互いに伝え合う。メッセージ・キューを使用するときには、1つ又は数個のメッセージ・キューがプロセスと関連させられ、それに、このプロセスに伝えられるべきメッセージを書き込むことができる。普通はバッファリングがプロセス同士の通信に関連させられ、メッセージの送信側は受信側がそのメッセージを受信するのを待っていなくても良い。従って、メッセージの書込み段階で、メッセージがプロセスを待っていることを知らせる情報(状態変数)が確立され、当該プロセスは適当な段階でこのメッセージを読む。
本発明の好適な実施形態の埋込みシステムでは、すなわち通信装置1(図4a)では、2つのオペレーティングシステムが使用される。第1オペレーティングシステムは、本明細書では参照符号OS_A で指示され、主として移動局機能の実現に使用され、第2オペレーティングシステムは、本明細書では参照符号OS_B で指示され、主としてデータ処理機能を実現するために使われる。データ処理機能とは、主としてパーソナルコンピュータ等から知られている機能を指しており、例えばファイルの読込み、書込み可能な大容量記憶装置による書込み、データの印刷、いわゆる組織機能(ノートブック、接触データの整備等)などのアプリケーション・プログラムの実行、などである。通信装置1との関連で1つのプロセッサ2を使用するのが有利であるので、異なる動作装置OS_A 、OS_B のこれらの機能を、両方のオペレーティングシステムOS_A 、OS_B の両方の特徴が同時に維持されるように、結合させることができる。更に、1つの基準は、必要なときには、機能の実時間性である。次に、例を挙げて、これらの異なるオペレーティングシステムOS_A 、OS_B を同じプロセッサ2との関係でどのように結合させ得るのか説明をする。
図5は、第2オペレーティングシステムOS_B の構成の1例を示している。各ブロックは、一定のプロセス、スレッド、接続インタフェース等を示している。ブロックは、前記ブロックでユーザ・モードUSERが使われているか、それとも特権モードSVC が使われているのかという情報に従って更に分けられる。それ自身の更に分けられている部分は割込みモードであり、それは図5においてブロック501で示されている。割込みモードは、高速割込みモードFIQ 、通常割込みモードIRQ 又はソフトウェア割込みモードSWI を使用する。第2オペレーティングシステムOS_B のカーネル(ブロック502)は、特権モードSVC (管理モード)で動作するようにセットされる。対照的に、第2オペレーティングシステムのスケジューラSCH _B (ブロック503)、接続インタフェース(ブロック504)、ユーザのプロセスのスレッド(506、507及び508)、データプロセッサ等のカレンダー・アプリケーションなど、並びにデバイス・ドライバの接続インタフェース(ブロック505)は、ユーザ・モードUSERで動作するようにセットされ、それらは例えばオペレーティングシステムのスタック(図示せず)あるいは他の極めて重要なメモリ・ブロックへのアクセスを持っていない。特権モードは更にデバイス・ドライバ(ブロック509)、アイドル・スレッド(ブロック510)及びいわゆるポッシブル・スーパー・スレッド(ブロック511)を含んでいる。アイドル・スレッド510は、他のプロセスが実行されていないときにオペレーティングシステムが実行するある種の待機プロセスである。スーパー・スレッド511は、本明細書では、通常のスレッド506、507、508の応答時間と比べると非常に小さな応答時間を有するスレッドを指す。スーパー・スレッド511の応答時間は例えばおおよそ数百マイクロ秒であり、これに対して通常のスレッド506、507、508の応答時間は例えば数十ミリ秒である。本発明は、例えば、スーパー・スレッド511を持っていないようなオペレーティングシステムとの関係でも応用され得るものである。
オペレーティングシステムのカーネル502には最高の優先順位が与えられる。上記の応答時間要件があるために、スーパー・スレッド511には、通常のスレッド506、507、508のそれより高い優先順位が与えられる。応答時間とは、ここでは、事件に起因する割込み要求の到着から、スレッドの動作が開始されるときまでに経過する時間を指す。この応答時間は予想値であり、実際には応答は通常の動作においてはこの予想値より短いか、あるいは最大でもこの予想値に等しい。過負荷状態では、応答時間はときには予想値を上回ることがある。応答時間は、割込みサービス・ルーチンを実行するために経過する時間も含んでいる。実際には、割込みサービス・ルーチンはなるべく短くなり、高速に実行され得るように意図される。
本発明の好適な実施形態の1埋込みシステムが通信装置1で添付の図4aに示されている。それは、例えば、マイクロプロセッサ又はマイクロコントローラの一部分であるプロセッサ2を含んでおり、図4aのブロック図の少なくとも一部のブロックはマイクロコントローラの機能ブロックから形成され得る。プロセッサ2に加えて、制御機能の一部分は、この好適な実施形態ではいわゆるアプリケーション特有の集積回路3(ASIC)により実現される。プロセッサ2と、そのアプリケーション特有の集積回路3との間には個別のデータ伝送バス4があっても良く、その場合にはデータ伝送速度を高めることができ、また一方で、第2データ伝送バス5には負荷はかからない。移動局機能を得るために、通信装置は、送信機/受信機ユニット6、送信/受信アンテナANT、ディジタル信号処理ユニット(DSP)、音響信号をコード化/デコード化するためのコーデック8、移動局機能を使用するための第1キーパッド9、情報をユーザに表示するための第1ディスプレイ装置10を備えている。更に、通信装置1はオーディオ・ブロック11を含んでおり、ここで、マイクロホン12により形成されるアナログ信号のために必要なアナログ/ディジタル変換と、スピーカ13に向けられる信号のためのディジタル/アナログ変換とが実行される。データ処理機能を達成するために、通信装置1は、第2キーパッド14、第2ディスプレイ15、及び、例えば通信装置1と関連するプリンタを接続するための手段を有するインタフェース・ブロック16を備えている。キーパッド9、14及びディスプレイ10、15について一般に使われる呼称はユーザインタフェース(UI)であり、これによりユーザと通信装置1との通信が少なくとも部分的に実行され得る。あるアプリケーションでは、ユーザインタフェースは、マイクロホン12及びスピーカ13などの、オーディオ手段も包含する。図1の通信装置1は2つのユーザインタフェースUI1、UI2を示しており、第1ユーザインタフェースUI1は第1キーパッド9と第1ディスプレイ10とを包含し、第2ユーザインタフェースUI2は第2キーパッド14と第2ディスプレイ15とを包含している。第1ユーザインタフェースUI1は主として移動局動作のために考慮され、他方のユーザインタフェースUI2は主としてデータ処理動作のために考慮されるが、必要ならば両方のユーザインタフェースUI1、UI2を移動局動作との関係で使用すると共にデータ処理動作との関係でも使用することができる。ユーザインタフェースUI1、UI2は別々でなくても良く、例えば1つのディスプレイ及び/又は1つのキーパッドを有する1つのユーザインタフェースとして実現されても良い。
ユーザインタフェースUI1、UI2のキーパッドは、いわゆるタッチスクリーンを利用して実現されても良く、その場合には有利にはディスプレイの上に触感手段が配置され、この手段は例えばユーザの指の接触に反応する。触感手段の動作原理はそれ自体としては公知であり、例えばキャパシタンスの変化あるいは抵抗の変化に基づいている。
通信装置1は、更に、メモリ17を含んでおり、それは、例えば、ブート・コードを蓄積するための読出し専用メモリROM、実行されるべきアプリケーション・プログラムをロードすると共に場合によっては書込み可能な大容量記憶装置から使用中にデータを記憶しておくためのランダムアクセスメモリRAM、FLASHメモリ及び/又は不揮発性ランダムアクセスメモリNVRAMを有利に含む。通信装置1の機能ブロックは第2データ伝送バス5によって接続されており、それは例えばアドレス・バス、データ・バス及び制御バスを含む。しかし、明快にするために、それは当業者に知られている従来技術であるので、それらのバスは別々に図示されてはいない。電源は電圧形成ブロック19に接続されているバッテリ18から供給され、それは電圧調整器、電圧変換器等を含んでいて、必要ならばいろいろな動作電圧Vcc1、Vcc2を形成することが可能である。電圧形成ブロックは、更に、バッテリ18の充電を、通信装置1が動作を止めることができるような低レベルまで下げるための信号を形成することができる。それゆえ、バッテリ18が再充電されなければならないか又は動作電圧がオフにならなければならない。実用的な実施形態では、充電状況のこの情報はプロセッサ2に対する割込み要求を生じさせ、その場合、この割込みサービス・ルーチンと関連してデータ記憶要求が確立されて、有利にはオペレーティングシステムOS_A 、OS_B は累算器18を空にしてデータをメモリ17に記憶し始めるためのメッセージをディスプレイ10、15に形成する。更に、動作電圧をオフにする制御は自動的に実行されて良い。
通信装置1は、例えばその周辺装置のいずれかに他のプロセッサを有しても良いが、そのことは本発明にとっては重要ではなく、それらはオペレーティングシステム機能を実行する目的以外の他の目的のためのものである。
この例示実施形態で使われるプロセッサ2は、アドバンストRISCマシーンズ社によって製造されているARM7シリーズに属するプロセッサである。このプロセッサはいわゆる縮小命令セット・プロセッサである。しかし、本発明は、この種のプロセッサあるいは縮小命令セット・プロセッサだけに限定されるものではなくて、本発明を他の種類のプロセッサとの関係で適応させることもできる。付随の図4bは、ARM7シリーズの1つのプロセッサの簡略ブロック図を示している。プロセッサ2の見地から、中央ブロックはコマンド・インタープリタ及び制御ブロック401である。その目的は、例えば、プログラム・コマンドを解釈して、それにより要求されている処置を制御し、高速割込みラインnFIQ及び通常割込みラインnIRQを通して来る割込み要求に応答し、ソフトウェア割込み要求に応答し、外部クロック信号(図示せず)からプロセッサの動作のためのタイミング信号等を形成し、例えばメモリ17とプロセッサ2との間でデータを読み出したりデータを書き込んだりするための制御信号を形成し、また、その時にアドレス・バス402のために必要なアドレス・データの形成を制御することである。
データ・バスの読出しレジスタ403は、データ・バス404から来るプログラム・コマンドを該データ・バスの読出しレジスタ403の内部コマンド・キュー(図示せず)へ配置すると共にこのデータをデータ・レジスタ(図示せず)へ配置する。コマンド・インタープリタ及び制御ブロック401は、次に実行されるべきプログラム・コマンドを内部コマンド・キューに読み出して、それを解釈する。必要ならば、コマンド・インタープリタ及び制御ブロック401は、データ・レジスタからデータを読み出し、それを第2内部データ・バス405(Bバス)に転送し、ここから、それはバレル・シフタ406を介して演算論理ユニット(ALU)407へ転送されることができ、これには第1内部データ・バス409(Aバス)も向けられている。対応的に、コマンド・インタープリタ及び制御ブロック401は、データ・バスの書込みレジスタ408へのデータの書込みを制御し、ここからこのデータをデータ・バス404へ転送することができる。
演算論理ユニット407において、それ自体としては公知の方法で足し算、引き算及び論理演算が実行される。演算論理ユニット407から、アドレス・レジスタ411と、内部データ・レジスタ(レジスタ・バンク)を有するデータ・レジスタ・ブロック412とへ第3内部データ・バス410(ALUバス)沿いにデータを転送することができる。データ・レジスタ・ブロック412は、データを記憶するためのレジスタと、ステータスレジスタと、例えばプログラムメモリ領域から、例えば通信装置のメモリから、プログラム・コマンドを示すために使われるプログラム・カウンタ(PC)とを備える。この目的のために、内部アドレス・バス413がデータ・レジスタ・ブロック412からアドレス・レジスタ411へ向けられている。
アドレス・レジスタ411はアドレス・カウンタ・ブロック414に接続されており、該プログラム・カウンタの値は通常は1だけ加算され、プログラム・コードにおいて次に実行されるべきプログラム・コマンドが普通は置かれているプログラム・コードの次の場所を指す。ある状況では、サブプログラム要求又は割込み要求など、実行されるプログラム・コマンドはプログラム・コード上の他の場所への転送を生じさせ、コマンド・インタープリタ及び制御ブロックは、このアドレスをプログラム・カウンタにセットして、それをアドレス・レジスタ411の値となるように移す。アドレス・カウンタ・ブロック414から、アドレス変更バス415がアドレス・レジスタ411及びデータ・レジスタ・ブロック412へ向けられている。
プロセッサ2は、掛け算及びわり算を実行するための掛け算ブロック416を更に備える。掛け算ブロック416は第1内部データ・バス409及び第2内部データ・バス405に接続されている。上記プロセッサ2は、上で紹介したもの以外の他の接続ラインも備える。しかし、この文脈では、それらについてもっと詳しく説明する必要はない。
プロセッサ2のデータ・レジスタ・ブロック412のデータ・レジスタの一部は、プロセッサの全ての動作モードで使用され得るものであり、更に種々の動作モードのために他の動作モードにおいて妨げられているデータ・レジスタが予約されている。この構成により、特に割込み状態と関連してデータを記憶する必要を減少させることが可能である。更に、いろいろな動作モードのために特定のスタックポインタが設けられており、各動作モードは、必要ならば、スタックのために予約されているメモリ17の自分自身の自由に使えるメモリ領域を持つことができる。
プロセッサ2は少なくとも3つの動作モード、すなわち、資源の使用が区域に分けられるユーザ・モード、プロセッサの全ての資源を使うことのできる特権モード(管理モード)、あるいは、プロセッサ2がプログラム・コードの中に未確認のコマンドを発見している状態で普通は使用される特権モードの特殊なモードである未定義モード、にセットされ得るものである。この好適な実施形態では、この未定義モードは、本明細書で後述する1つのモードとして意図的に使用される。このプロセッサ2では、未定義モードがこの目的に役立つ。必要ならば、他の何らかの特権モードを、対応するモードとして使用することができる。更に、プロセッサ2のために、3種類の割込み、すなわち、高速割込み(FIQ:Fast Interrupt Request(高速割込み要求)) 、普通の割込み要求(IRQ:Interrupt Request (割込み要求)) 、及びプログラミングされている割込み(SWI:Software Interrupt Request(ソフトウェア割込み要求))、を使用することができる。高速割込みFIQ は普通の割込みIRQ より高い優先レベルを有し、それはプログラミングされている割込みより高い優先レベルを有する。応答時間の見地から、高速割込みFIQ を用いることによって重大な割込みが有利に整えられる。
通信装置1を起動するとき、プロセッサ2の制御下で、好適には通信装置のメモリ17に、好適には読出し専用メモリ又は不揮発性ランダムアクセスメモリに、記憶されている起動プログラム・コードは、例えばメモリ・チェックを実行するためのプログラム・コマンドは、起動プログラム・コードに形成される。起動開始と関連して、ファイルの制御ルーチンがロードされ、オペレーティングシステムOS_A 、OS_B のプログラム・コードのメモリ17へのロードは、必要ならば、ファイルの制御ルーチンによって実行されることができる。これは、多くのデータ処理装置及びオペレーティングシステムの公知技術である。オペレーティングシステムOS_A 、OS_B のプログラム・コードを読出し専用メモリROM 、不揮発性メモリNVRAM 又は電気的に消去可能なプログラマブルROM EEPROMに記憶することもできる。オペレーティングシステムOS_A 、OS_B を記憶場所から直接使用することができる(XIP 技術、正しい場所での実行)。
オペレーティングシステムOS_A 、OS_B は、ロードされた後、始動される。そのとき、第1ステップは、例えば第2オペレーティングシステムOS_B の開始プログラムを実行することであり、プロセス・テーブル、メモリ領域、割込みサービス・ルーチン、メッセージ・キュー及びオペレーティングシステムの他の対応する記述子がセットアップされ、デバイス・ドライバ及びデータ・タイプがロードされ、割込みが許容される。次のステップにおいて、第1オペレーティングシステムOS_A の対応する開始動作の実行が開始される。第2オペレーティングシステムOS_B の開始動作が実行されるとき、第1オペレーティングシステムOS_A の開始動作において、例えばオペレーティングシステムOS_A の割込み機能、すなわち、割込みの開始及び割込みの終了は、割込みハンドラに動的に結びつけられる(例えば、機能の開始アドレスがメモリ17にセットされる)。更に、第1オペレーティングシステムOS_A のスレッドのスケジューリングのためのインタフェースが割込みハンドラに形成される。
デバイス・ドライバは、特に、周辺装置のモードの初期設定を実行する。メモリ領域が通常動作中に必要に応じて割り当てられる(動的割当て)という選択肢と比べて充分な実行速度を確保するために、好適には一定の領域(静的割当て)がオペレーティングシステムのデータ・メモリRAMのために予約される。
開始動作後、例えばアイドル・スレッドの実行、並びに場合によっては何らかのアプリケーション・プログラムのロード及び実行が開始される。例えば移動局機能を開始することが可能であり、そのとき通信装置1はコール、メッセージ、ファクシミリ等を受け取る準備が整っており、ユーザは、希望するならば、当該機能が通信装置1でセットアップされているならば、コールを開始したり、メッセージ又はファクシミリを送ったりすることができる。
本発明の通信装置1での割込みの場合、プロセッサ2は、割り込まれたスレッドの状態を記憶する割込みインタープリタ又はディスパッチャを実行し始める。その後、ディスパッチャは割込みサービス・ルーチンを開始する。どの割込みサービス・ルーチンが開始されるかは、通常は、割込み要求の原因による。これを、その内容がその原因を知らせる状態レジスタをプロセッサ2が有することとなるように、終結させることができる。例えば、キーパッド割込みの結果として、状態レジスタの対応するビットが他の論理状態に変更され(例えば論理0状態から論理1状態へ)、プロセッサ2はこのレジスタのいろいろなビットを調べて、対応する割込みサービス・ルーチンを開始する。数個の割込み要求が有効である状態においては、始めに最高の優先順位を有する割込みサービス・ルーチンが開始される。
自由に使える割込みラインnFIQを数本有するプロセッサ2も知られており、そのプロセッサでは割込みラインnFIQの状態の変化は割込み要求をもたらす。各割込みラインnFIQ、nIRQに特定の割込みサービス・ルーチンを定義することができる。更に、それらの割込みサービス・ルーチンのアドレスはテーブルの形をとっていても良く、その場合にはプロセッサ2は割込みに応じてこのテーブルから割込みサービス・ルーチンの開始アドレスを取りだして、それをそのプログラム・カウンタの値としてセットし、次に実行されるコマンドはそのアドレスにある。
本発明では、割込みFIQ 、IRQ 、SWL について定義されている一部あるいは全ての割込みサービス・ルーチンを変更することも可能である。例えば、あるアプリケーション・プログラムは、割込みFIQ 、IRQ 、SWL との関係で使用されるべき新しい割込みサービス・ルーチンを定義することができる。そのアプリケーション・プログラムが実行されるとき、プロセッサ2はメモリ17の割込みサービス・ルーチンを修正する。本発明の有利な実施形態では、プロセッサ2は、他の割込みサービス・ルーチンを使用するべき割込みの開始アドレスだけを修正することが可能である。割込みサービス・ルーチンの実際のコードがメモリ17に記憶される。このことは、割込みサービス・ルーチンの開始アドレスの何らかの種類のアドレス・テーブルが存在することを意味する。割込みFIQ 、IRQ 、SWL のために、どの割込みサービス・ルーチンを使用するべきか定めるために、上記以外の他の選択肢もあり得る。
割込みサービス・ルーチンに必要とされる動作、例えばキーパッド・バッファを呼んだりデータをメモリに記憶したりする動作、が実行される。更に、割込みサービス・ルーチンは、スレッド又はオペレーティングシステムに伝えられるべき信号を形成することができる。本発明の好適な実施形態の通信装置1の動作について、本明細書において後述する。
割込みサービスの応答時間は、通常は、例えば約100マイクロ秒など、上記スーパースレッド511の応答時間より短い。割込みサービスのこの応答時間に影響を及ぼす要素は、例えば、プログラム・コードの何らかの部分で割込みがどのくらいの長さにわたってディスエーブルにされていたかという事実を含む。割込みキャンセルは、全ての割込み、又は指定されたレベルより低い優先レベルを有する割込みに関連し、あるいは割込み等のマスクレジスタを通して割込みを一時的にキャンセルすることができる。従って、割込み要求はメモリにとどまり、割込みサービス・ルーチンは、この割込み要求について割込みのキャンセルが取り除かれた段階で実行され、もっと優先レベルの高いスレッドは実行されない。
第1オペレーティングシステムOS_A から第2オペレーティングシステムOS_B への移行は、第1オペレーティングシステムOS_A のスレッドが実行されていないときに行われる。このように、第1オペレーティングシステムOS_A の見地から、実行はアイドル・スレッドで行われる。
通信装置1の動作の間、異なるオペレーティングシステムOS_A 、OS_B で動作しているアプリケーション同士の間で情報を伝えることが必要となることがある。このことは、特に、両方のオペレーティングシステムOS_A 、OS_B が少なくとも部分的に共通の資源を使用する状況において必要となる。例えば、キーパッド9、14は共通のキーを含むことができ、あるいは別々のキーパッド9、14の代わりに共通のキーパッドを使用することができる。一方、自分自身の接続インタフェースが異なるオペレーティングシステムOS_A 、OS_B から整えられているような資源の制御を1つのデバイス・ドライバによって行うのが道理にかなったことであることがしばしばある。これは、2つ以上のオペレーティングシステムOS_A 、OS_B が同時に同じ資源を使おうと試みる状態の制御を容易にする。
次に、種々のオペレーティングシステムOS_A 、OS_B を考慮して本発明の通信装置の動作を説明する。本発明のこの好適な実施形態では、第1オペレーティングシステムOS_A はいわゆる実時間オペレーティングシステムであり、そのための一定の実行時間要件が定められている。第2オペレーティングシステムOS_はその実行時間に関して厳しくはないが、特に使用快適性の見地から第2オペレーティングシステムOS_B も、そのためにセットされている動作を程良い時間内に実行しなければならない。
第1オペレーティングシステムOS_A のスレッドは、例えば埋込みシステムの設計段階でそれらのために決定された優先順位を有する。優先順位を利用することにより、重要なスレッドの例えば実行順序及び応答時間に影響を及ぼすことが可能である。第1オペレーティングシステムのスケジューラSCH _A はそのときに最高の優先順位のスレッドを実行ラウンドで最初に動作するスレッドとする。実用的なシステムでは、このことは、本発明の好適な実施形態の通信装置1が、プロセッサ2のプログラム・コマンドにより実現されている、第1オペレーティングシステムOS_A のスケジューリング機能を実行することを意味する。スレッドを動作させるとき、プロセッサ2はスレッドにプログラミングされているプログラム・コマンドに従う処置を実行する。
第1オペレーティングシステムOS_A で動作しているプロセッサの全てのスレッドTHA1、THA2を実行した後、プロセッサ2は、例えば遅延機能コールDSR (Delayed Service Routine)や、待機しているスレッドTHB1、THB2など、第2オペレーティングシステムOS_B の動作の実行に移行する。第1オペレーティングシステムOS_A のスレッドTHA1、THA2は、割込み処理の間の短い中断を除いて、常に動作することを認められる。このことについて、本明細書で後述する。本発明のこの好適な実施形態では、第2オペレーティングシステムOS_B の実行は、第1オペレーティングシステムOS_A の見地からは、例えばアイドル・スレッドTHA _IDLEあるいはスーパー・スレッドなど、第1オペレーティングシステムOS_A の第1スレッドの実行に対応する。これを達成するために、第1オペレーティングシステムOS_はアイドル・スレッドTHA _IDLEを表す情報構造(図示せず)を与えられるが、第1オペレーティングシステムOS_A は本実施形態の実現では適切なアイドル・スレッドを含んでいない。
第2オペレーティングシステムOS_B の実行に移った後、プロセッサ2は、第2オペレーティングシステムOS_B の動作しているスレッドTHB1、THB2の優先順位及びスケジューリングの実際に基づいて第2オペレーティングシステムOS_B のスケジューリング機能を実行する。始めに、遅延サービス・ルーチンDSR のうちのあるものが待機している場合、当該遅延サービス・ルーチンDSR が実行され、その後にスレッドTHB1、THB2の実行が好適には優先順位に従って開始される。実行されるべきスレッドTHB1、THB2を実行した後、どのスレッドTHB1、THB2もラン・モード下ではなくて、プロセッサ2は新しい実行ラウンドが必要となるまで残っている第2オペレーティングシステムOS_B のアイドル・スレッドTHB _IDLEへ移行する。
第2オペレーティングシステムOS_B の実行中、第1オペレーティングシステムOS_A への変更がほとんど何時でも行われ得る。これは、割込み要求に起因してプロセッサ2が割込みサービス・ルーチンの実行に移るように行われるのが有利であり、第1オペレーティングシステムOS_A は後述するように起動される。第2オペレーティングシステムOS_B への復帰は、第1オペレーティングシステムOS_A での実行がアイドル・スレッドTHB1、THB2THA _IDLEへ進んだ段階で行われる。第1オペレーティングシステムOS_A の実行は、第2オペレーティングシステムOS_B の見地から、割込みサービス・ルーチンを動作させる。
本発明の目的は、種々のオペレーティングシステムOS_A 、OS_B のプログラム・コードがなるべく小さく、かつ、オペレーティングシステムOS_A 、OS_B の特性がアプリケーション開発者の見地から著しく変化しないように、オペレーティングシステムOS_A 、OS_B の接続を実現することである。本発明の好適な実施形態の通信装置では、接続は割込みサービス・ルーチンのレベルでなされる。装置割込みFIQ 、IRQ 又はプログラム割込みSWI が生じると、プロセッサ2は割込みサービス・ルーチンの実行へ移行する。このプログラムは全ての割込みに共通であっても良く、その場合にはレジスタ等を調べることによりプロセッサ2のコマンド・インタープリタ及び制御ブロック401は、必要ならば割込みの原因を推定することができ、あるいは、異なる装置割込みFIQ 、IRQ 又はプログラム割込みSWI のために数個の異なる割込みサービス・ルーチンがあっても良い。割込みサービス・ルーチンの始まりのときに、割込み開始ルーチンに加えてプログラム・コール(機能コール)があり、オペレーティングシステムOS_A 、OS_B の内部ステータスは変更され、オペレーティングシステムOS_A 、OS_B のデータは、割込みサービスが動作していることを知らせる。割込みサービス・ルーチンへの移転、サブプログラムの実行、状態データの調査、及び他の対応する動作は、コマンド・インタープリタ及び制御ブロック401の制御下で行われるが、それについては本明細書で前に説明してあって、当業者に知られている技術である。
その後、割込みハンドラの機能が実行されるが、それは、プロセッサ2に来ている割込みのために決定されているプログラム・コマンドをコマンド・インタープリタ及び制御ブロック401が実行することを意味し、それらのプログラム・コマンドは好適にはメモリ17に記憶される。割込みハンドラにおいて、例えば、割込みを生じさせた原因が調べられて、割込み処理が第1オペレーティングシステムOS_A 又は第2オペレーティングシステムOS_B の実行を必要とするか否かが推定される。もしそれぞれの割込み処理が第1オペレーティングシステムOS_A の実行を必要とするならば、割込みハンドラは、そのことについての情報を第1オペレーティングシステムOS_A のスケジューラSCH _A にセットする。もし割込み処理が第2オペレーティングシステムOS_B のスレッドの実行を必要とするならば、割込みハンドラは第1オペレーティングシステムOS_A のスレッドの実行後に実行されるべき遅延サービス・ルーチンDSR を形成する。その遅延サービス・ルーチンDSR は、第1オペレーティングシステムOS_A の動作しているスレッドを通して形成されても良い。この遅延サービス・ルーチンDSR は、割込み処理が第2オペレーティングシステムOS_B の一定のスレッドの実行を必要とすることを第2オペレーティングシステムOS_B のスケジューラSCH _B に知らせることができる。ある状況では、割込みハンドラが遅延サービス・ルーチンDSR を使用せずに第2オペレーティングシステムのスケジューラSCH _B にこのデータをセットすることも可能である。
割込みサービス・ルーチンでは、データがアドレス指定されているアプリケーション・プログラムのスレッドが実行段階にある段階で、データが読まれるバッファにデータを読み出すなどの他の動作を実行することも可能である。
割込みプログラムの終わりに割込み終了機能要求が加えられており、それには、例えば割込みサービス・ルーチンの実行が終わっているという情報がセットされる。更に、この機能は、割込みサービスにおいて、第1オペレーティングシステムOS_A のスケジューラSCH _A からスレッドまでの実行時間を必要とする第1オペレーティングシステムOS_A のいずれかのルーチンが実行されたか否かという情報を報告する。割込みサービス・ルーチンの終了後、プロセッサ2のモード及び第1オペレーティングシステムOS_A のステータスは変更される。割込み処理が第1オペレーティングシステムOS_A のスレッドの実行を必要とする原因となる場合には、実行される次のプログラムは第1オペレーティングシステムOS_A のスケジューラ・プログラムであり、それでは、例えばバッファの情報を読むなどの、割込みに起因する処置がなされるスレッドに新しいステータス(レディ) が与えられる。第1オペレーティングシステムOS_A のスケジューラSCH _A は、実行のために、優先順位に従って、実行待ち(レディステータス)の第1オペレーティングシステムOS_A のスレッドを制御する。
第1オペレーティングシステムOS_A の割込みサービスにあるかあるいは動作している第1オペレーティングシステムOS_A のスレッドにおいて、ある状態では遅延サービス・ルーチンDSR を形成することが可能であり、その場合、第2オペレーティングシステムOS_B のスレッドのステータスは変更される。遅延サービス・ルーチンDSR は、実行待ちだった第1オペレーティングシステムOS_A のスレッドをプロセッサ2が全て実行した後に、処理される。遅延サービス・ルーチンの処理後に、第2オペレーティングシステムOS_B の実行を有利には優先順位に従って待っているスレッドを動作させるために、第2オペレーティングシステムOS_B のスケジューラ・ルーチンが更に実行される。
上記処置の実行中、新しい割込みが発生する可能性があり、その場合には動作は再び割込み処理に移行し、その後の動作は上記原理に従って行われる。
動作は、そのときに最高の実効優先順位を有する動作が行われるように割込みが継続された後に、行われる。これは、割込みの時点でプロセッサ2が動作していた段階により、またその割込みの原因により、左右される。付随する図6a〜6iにいろいろな状態が示されており、次に、これについて詳しく説明する。埋込みシステム1の例は、移動局機能及びデータ処理機能の両方が例えばパーソナルディジタルアシスタントPDA の機能として実現されている通信装置である。通信装置のプロセッサ2において、2つのオペレーティングシステムOS_A 、OS_B が使用される。第1オペレーティングシステムOS_A は、主として移動局機能の制御及び使用に関連する。第2オペレーティングシステムOS_B は、主としてデータ処理機能の制御及び使用に関連する。
図6a〜6hの例示状態では、状態はいわゆる通常割込みIRQ (割込み要求)に関する。本発明の好適な実施形態のこの通信装置1では、いわゆる高速割込みFIQ(Fast Interrupt Request) を使用することもでき、それは図6iの例に示されている。高速割込みの優先順位は、有利には通常割込みIRQ のそれより高い。更に、ソフトウェア割込みも利用することができ、これは通常割込みIRQ よりも低い優先順位を有利には有する。付随する図6a〜6iに示されている高速割込みFIQ 及びプログラム割込みSWI にも適合させられることができるので、本明細書では主として通常割込みIRQ のみについて説明する。
遅延サービス・ルーチンは第2オペレーティングシステムOS_B のものであり、それを例えばいろいろなスレッド間で、また、必要ならば、いろいろなオペレーティングシステムOS_A 、OS_B 間でのメッセージ転送に使用することができる。遅延サービス・ルーチンDSR は、第2オペレーティングシステムOS_B のスレッドのステータスを実行待ち状態(レディ状態)に変更する。第2オペレーティングシステムOS_B の遅延サービス・ルーチンDSR の優先順位はスレッドのそれより高いので、それらは第2オペレーティングシステムOS_B のスレッドが動作させられる前に処理される。
プロセッサ2は、この例では、次のモード、
ユーザ・モードUSER、
特権モードSVC 、
未定義モードUND 、
高速割込みモードFIQ 、
通常割込みモードIRQ 、及び
ソフトウェア割込みモードSWI
を備える。
未定義モードUND は、本発明のこの好適な実施形態では通常ラン・モードとして使用されるが、本例で使用されるプロセッサ2におけるそのデフォルト値アプリケーションは未定義モードである。
図6aは、通常割込みと関連してプロセッサ2が第2オペレーティングシステムOS_B (ブロック601)のもとでスレッドTHB1を実行する状態を示しており、それは通信装置1のデータ処理機能において例えばユーザにより起動されるアプリケーション・プログラムに関連するプロセスを備える。プロセス2はユーザ・モードUSERになっている。通常割込みは、モードを通常割込みモードに変化させ、プロセッサ2は通常割込み機能を開始させ(ブロック602)、その後に通常割込みのサービス・プログラムを動作させる(ブロック603)。割込みは第1オペレーティングシステムOS_A のスレッドを動作させる必要を生じさせなくて、第1オペレーティングシステムのスケジューラSCH _A は割込み後に呼び出されない。この割込みでは、遅延サービス要求DSR も形成されない。割込み処理の終わりに、通常割込み機能の終わり(ブロック604)が呼び出され、割込みが終了したという情報が設定される。通常割込みのサービス・プログラムが終了した後、プロセッサ2のモードはユーザ・モードUSERに戻される。実行は、第2オペレーティングシステムOS_B の割り込まれたスレッドTHB1(ブロック605)から続けられる。
割込みは、例えば、通信装置1の蓋(図示せず)の開放により引き起こされ、このときこの蓋の位置を示すスイッチS1がそのステータスを変化させ、例えばそれは開き、プロセッサ2は、スイッチS1に接続されている識別ライン20の論理状態(0/1)を読むことによってスイッチの位置を調べる。この場合、蓋の開放は何らの即時動作も引き起こしていない。
図6bは通常割込みと関連してプロセッサ2が第1オペレーティングシステムOS_A の第1アイドル・スレッドTHA _IDLEを動作させている状態を示している。この状態では、モードは未定義モードUND から通常割込みモードIRQ に変化し、プロセッサ2は通常割込み機能の始まり(ブロック602)の動作に移行し、その後に通常割込みのサービス・プログラムを動作させる。割込みは第1オペレーティングシステムOS_A のスレッドを動作させる必要を何ら引き起こしていなくて、第1オペレーティングシステムOS_A のスケジューラSCH _A は割込み後に呼び出されない。該割込みでは、遅延サービス・ルーチンDSR も形成されていない。割込みが終了した後、通常割込み機能の終わり(ブロック604)が要求され、割込みが終了しているという情報が確立される。通常割込みのサービス・プログラムが終了したとき、プロセッサ2のモードは未定義モードUND に戻される。実行は、アイドル・スレッドTHA _IDLEから続けられる(ブロック605)。
割込みIRQ は、例えば、ユーザが開放状態の通信装置1の蓋でデータ処理機能のキーパッド14の1つのキーを押すことによって引き起こされる。割込みハンドラは、この状態でそれぞれのキーを押す動作が移動局機能の動作に何らかの影響を及ぼすか否か調べて、否であることを確かめ、そのときこの割込みは移動局機能における処置を引き起こしていない。
図6cは、通常割込みの場合にプロセッサ2が第2オペレーティングシステムOS_B のもとでスレッドTHB1を動作させる状態(ブロック601)を示しており、そのスレッドは、例えば、データ処理機能の、ユーザによって起動されるアプリケーション・プログラムと関連するプロセスを備える。この状態は、図8の矢印図によっても示されている。プロセッサ2はユーザ・モードUSERになっている。モードは通常割込みモードIRQ に変化し、プロセスは通常割込み機能の始まりの動作に移行し(ブロック602)、その後に通常割込みのサービス・プログラムに移行する(図6cのブロック603、図8の矢印801及び802)。割込みは第1オペレーティングシステムOS_A の少なくとも1つのスレッドを動作させる必要を引き起こしているけれども、遅延サービス・ルーチンDSR はこの割込みでは形成されていない。割込みが終了した後(矢印803)、通常割込み機能の終わり(ブロック604)が呼び出され、割込みの終わりの情報がセットされる。通常割込みのサービス・プログラムが終了した後、プロセッサ2のモードは未定義モードUND に変更され、同時に第1オペレーティングシステムのスケジューラSCH _A が呼び出され、このスケジューラは必要ならばスレッドについて与えられたステータスをセットする(図6cのブロック608、図8の矢印804)。その後、実行待ちをしている第1オペレーティングシステムOS_A のスレッド(レディ・モード・スレッド)が動作させられる(矢印805〜808)。その後、動作するべく待機しているスレッドが無いとき、プロセッサ2のモードはユーザ・モードUSERに戻され、実行は第2オペレーティングシステムOS_B の割り込まれたスレッドTHB1から続けられる(図6cのブロック605、図8の矢印809、810、及び811)。
この状態を示す例では、無応答のコールが通信装置1により受信される。移動局機能の表示装置10及びデータ処理機能の表示装置15は、例えば「1無応答コール」等のテキストなど、受信され、応答されないコールについてのメッセージを表示する。ユーザはデータ処理機能の入力キー(図示せず)を押し、通常割込み IRQが形成される。割込み処理では、移動局機能の表示装置10から当該テキストを消すことのできる第1オペレーティングシステムOS_A のスレッドがラン・モードを待つ状態にセットされる。割込みが終了した後、プロセッサ2は第1オペレーティングシステムのスケジューラSCH _A の動作に移行し、第1オペレーティングシステムOS_A は、ラン・モードに到達した後、当該テキストを移動局機能の表示装置10から消去することができる。
図6dは、通常割込みが発生したときにプロセッサ2が第2オペレーティングシステムOS_B のもとでスレッドTHB1を動作させていて(ブロック601)、ユーザ・モードUSERにセットされる状態を示している。モードは通常割込みモードIRQ に変更され、プロセッサ2は通常割込み機能の始まり(ブロック602)の動作に移行し、その後に通常割込みのサービス・プログラムに移行する(ブロック603)。この割込みは第1オペレーティングシステムOS_A の少なくとも1つのスレッドを動作させる必要を生じさせている。更に、割込みでは、及び/又は、割込み後に動作する第1オペレーティングシステムOS_A の何らかのスレッドでは、遅延サービス・ルーチンDSR が形成されている。
割込みが終了した後、通常割込み機能の終わり(ブロック604)が呼び出され、該割込みの終了の情報がセットされる。通常割込みのサービス・プログラムが終了した後、プロセッサ2のモードは未定義モードUND にセットされ、第1オペレーティングシステムのスケジューラSCH _A が呼び出され、これは、必要ならば、スレッドに新しい状況をセットし、動作されるべく待機している第1オペレーティングシステムOS_A のスレッドをそのスケジューリング処理手順に従って実行されるように指揮する(ブロック608)。実行待ちの状態にとどまっている第1オペレーティングシステムOS_A のスレッドが無かった後、第2オペレーティングシステムOS_B の遅延サービス・ルーチンDSR が処理され、その後、プロセッサ2のモードはユーザ・モードUSERに戻され、ステータスの遅延サービス・ルーチンにより変更された第2オペレーティングシステムOS_B のスレッドは第2オペレーティングシステムOS_B の割り込まれたスレッドTHB1より低い優先順位を有するので、実行は第2オペレーティングシステムOS_B の割り込まれたスレッドTHB1から継続される(ブロック605)。
言及できる1例は、ユーザがデータ処理機能のキーパッド14によりショートメッセージ(SM)を書いた場合である。送信キー(図示せず)を押す動作は通常割込みIRQ を生じさせる。割込み処理では、第1オペレーティングシステムOS_A のスレッドはバッファから送信されるべきメッセージを読み出して送信するラン・モードを待つ状態にセットされ、データ処理機能の表示装置15にアイコンが形成され、これにより、メッセージが送信されることがユーザに知らされる。割込みが終了した後、プロセッサ2は第1オペレーティングシステムOS_A 、OS_B のスケジューラSCH _A の動作に移行し、第1オペレーティングシステムOS_A のスレッドはラン・モードでメッセージを送信し、その後に遅延サービス・ルーチンDSR が形成されてアイコンを消す。その後、第2オペレーティングシステムのスケジューラSCH _B はラン・モードに第2オペレーティングシステムOS_B の割り込まれたスレッドTHB1をセットするが、その理由は、この実例としての状態においては、その優先順位が第2オペレーティングシステムOS_B のアイコン消去スレッドの優先順位より高いことである。後に、このスレッドは、ラン・モードに達して当該テキストをデータ処理機能の表示装置15から消去する。
図6eは、通常割込みが来るときにプロセッサ2が第1オペレーティングシステムOS_A のアイドル・スレッドTHA _IDLE(ブロック606)を動作させていて未定義モードUND にセットされる状態を示している。従って、モードは通常割込みモードIRQ に変更され、プロセッサ2は通常割込み機能の始まり(ブロック602)を動作させ始め、その後に通常割込みのサービス・プログラムに移る(ブロック603)。割込みは、第1オペレーティングシステムOS_A の少なくとも1つのスレッドを動作させる必要を生じさせている。更に、割込み及び/又は第1オペレーティングシステムOS_A のスレッドにおいて遅延サービス・ルーチンDSR が形成され、それは更に第2オペレーティングシステムOS_B の1つまたはそれより多いスレッドのステータスの実行待ち(レディ)への変更を引き起こさせる。割込みが終了した後、通常割込み機能の終わり(ブロック604)が呼び出され、それに割込みの終了についての情報がセットされる。通常割込みのサービス・プログラムが終了した後、プロセッサ2のモードと第1オペレーティングシステムOS_A のステータスとが変更される。プロセッサ2のモードは未定義モードUND に変更され、その後に第1オペレーティングシステムのスケジューラSCH _A (ブロック608)が要求され、それはスレッドをその順番のときにラン・モードにセットする、すなわち、実行待ちをしている(レディ・モードで)第1オペレーティングシステムOS_A のスレッドが動作させられる。実行待ちをしている第1オペレーティングシステムOS_A のスレッドが無くなった後、第2オペレーティングシステムOS_B の遅延サービス・ルーチンDSR が処理され(ブロック609)、その後に第2オペレーティングシステムOS_B のスケジューラSCH _B が呼び出され(ブロック610)、それは、第2オペレーティングシステムOS_B の動作順序で、好適には優先順位の順に、実行待ちをしている第1スレッドをラン・モードにセットする。その後に、プロセッサ2のモードはユーザ・モードUSERに戻され、動作は、そのときに最高の優先順位を有する第2オペレーティングシステムOS_B のスレッドTHB1(ブロック605)から継続する。第2オペレーティングシステムのスケジューラSCH _B は、スレッドの動作をそのスケジューリング原理に従って制御する。
例示状況において、通信装置1にショートメッセージが到着しており、それは、移動局機能の表示装置10及びデータ処理機能の表示装置15上のアイコンにより示される。ユーザは移動局機能のキーパッド9上の読出しキー(図示せず)を押し、それは通常割込みIRQ を生じさせる。この割込み処理では、第1オペレーティングシステムOS_A の1つ又は複数のスレッドは、移動局機能の表示装置10からアイコンを消去するためと共に受信したメッセージを移動局機能の表示装置10で表示するために、ラン・モードを待つ状態にセットされる。更に、このアイコンをデータ処理装置の表示装置15から消去するために遅延サービス・ルーチンDSR が形成される。プロセッサ2は、割込み後に、第1オペレーティングシステムOS_A のスケジューリング機能を動作させ、遅延サービス・ルーチンDSR を処理し、第2オペレーティングシステムOS_B のスケジューリング機能を動作させ始め、第2オペレーティングシステムのスレッドは、実行に至った後、データ処理機能の表示装置15からアイコンを消去する。
図6fは、通常割込みが来るとき、プロセッサ2が第2オペレーティングシステムOS_B のスレッドTHB1を実行し(ブロック601)、ユーザ・モードUSERにセットされる状態を示している。モードは通常割込みモードIRQ に変化し、プロセッサ2は通常割込み機能の始まりを動作させ(ブロック602)、その後に通常割込みのサービス・プログラムに移行する(ブロック603)。割込みは、第1オペレーティングシステムOS_A の少なくとも1つのスレッドを動作させる必要を生じさせる。更に、割込みにおいて、及び/又は、割込み後に動作している第1オペレーティングシステムOS_A のスレッドにおいて、遅延サービス要求DSR が形成され、それは、更に、第2オペレーティングシステムOS_B のスレッドの実行時間のリセットを引き起こす。割込みが終了した後、通常割込み機能の終わり(ブロック604)が呼び出され、それにこの割込みの終わりの情報がセットされる。通常割込みのサービス・プログラムが終了した後、プロセッサ2のモードと第1オペレーティングシステムOS_A のステータスとが変更される。プロセッサ2のモードは未定義モードUND に変更され、その後に第1オペレーティングシステムのスケジューラSCH _A が呼び出され、それは、必要ならば(ブロック608)、スレッドに新しい状況をセットする。その後、実行待ちをしている第1オペレーティングシステムOS_A のスレッドが動作される(レディ・モードのスレッド)。その後、動作されるべきスレッドが残っていなくなったとき、第2オペレーティングシステムOS_B の遅延サービス・ルーチンDSR が処理され(ブロック609)、その後に第2オペレーティングシステムOS_B のスケジューラSCH-B が呼び出され(ブロック610)、それは、動作順序の第1位置で待機している第2オペレーティングシステムOS_B のスレッドをラン・モードで実行されるようにセットする。本例では、割込み処理に起因して、割込みされたスレッドTHB1はラン・モードに移行するものには未だなっていなくて、そのステータスがラン待ちに変更されたこの第2動作モードOS_B の他のスレッドTHB2になっている。プロセッサ2のモードはユーザ・モードUSERに戻され、その後にプロセッサ2は、ラン・モードにセットされたスレッドTHB2を動作させ始める(ブロック611)。割込みされたスレッドTHB1はその番が来るとラン・モードにセットされる(ブロック605)。
上記の実例は、ユーザがデータ処理機能のキーパッド14を使ってショートメッセージを書いて充電装置(図示せず)を通信装置1に接続する状態である。それは通常割込みIRQ を引き起こす。割込み処理において、第1オペレーティングシステムOS_A の、充電が実行されることを知らせるアイコンを移動局機能の表示装置10上に形成するスレッドは、ラン・モードを待つ状態にセットされる。更に、遅延サービス・ルーチンDSR によって、対応するアイコンがデータ処理機能の表示装置15上に形成される。
図6gは通常割込みが来るとき、プロセッサ2が第1オペレーティングシステムOS_A のもとでスレッドTHA1を動作させている状態(ブロック612)を示しており、それは例えば通信装置1の移動局機能における接続確立アプリケーションである。プロセッサ2は未定義モードUND になっている。モードは通常割込みモードIRQ に変化し、プロセッサ2は通常割込み機能の始まりを動作させ始め(ブロック602)、その後に通常割込みのサービス・プログラムに移行する(ブロック603)。この割込みは第1オペレーティングシステムOS_A のスレッドを動作させる必要を生じさせてはいなくて、割込み後、第1オペレーティングシステムのスケジューラSCH _A は呼び出されない。割込みが終了した後、通常割込み機能の終わりが呼び出され(ブロック604)、それに割込みの終了についての情報がセットされる。通常割込みの終了後、プロセッサ2のモードと第1オペレーティングシステムOS_A のステータスとが変更される。プロセッサ2のモードは未定義モードUND に戻され、動作は、割込みされたスレッドTHA1から続けられる(ブロック613)。第2オペレーティングシステムOS_B の遅延サービス・ルーチンDSR が割込みで形成されたが、それらは、第1オペレーティングシステムOS_A の全ての動作しているスレッドが実行される前には処理に至らない。
ユーザは例えば電話番号をダイヤルし、その場合にキーを押す動作は通常割込みIRQ を生じさせる。割込み処理において、キーを押す動作がメモリ17に読み込まれて、移動局機能の表示装置10からプリントされ、次のキー押しを待つためにリターンがなされる。
図6hは、通常割込みが到来し、プロセッサ2が第1オペレーティングシステムOS_A 下でスレッドTHA1を動作させている状態を示しており(ブロック612)、それは例えば通信装置の移動局機能の接続確立アプリケーションである。プロセッサは未定義モードになっている。モードは通常割込みモードIRQ に変化し、プロセッサ2は通常割込み機能の始まりを動作させ始め(ブロック602)、その後に通常割込みのサービス・プログラムに移行する(ブロック603)。割込みは、第1オペレーティングシステムOS_A の少なくとも1つのスレッドを動作させる必要を生じさせている。割込みが終了した後、通常割込み機能の終わり(ブロック604)が呼び出され、割込みの終了についての情報がセットされる。通常割込みのサービス・プログラムの終了後に、プロセッサ2のモードと第1オペレーティングシステムOS_A のステータスとが変更される。プロセッサ2のモードは未定義モードUND に変更され、その後、第1オペレーティングシステムのスケジューラSCH _A が要求され、それは、必要ならば、スレッドについて新しい状況をセットする(ブロック608)。その後、実行待ちをしている(レディ・モードの)第1オペレーティングシステムOS_A のスレッドが優先順位に従って動作される。この例では、割込みは第2スレッドTHA2を直ぐに実行へ移行させ(ブロック614)、割込みされたスレッドTHA1は、場合によっては後で実行される番になる(ブロック613)。第2オペレーティングシステムOS_B の遅延サービス・ルーチンDSR が該割込みで形成されたが、それらは、第1オペレーティングシステムOS_A の全ての動作するスレッドが実行される前には動作させられない。
ユーザは、例えば、電話番号をダイヤルし、通常割込みIRQ を生じさせるハンドセット・アップ・キー(図示せず)を押している。割込み処理後、第1オペレーティングシステムのスケジューラSCH _A は接続確立スレッドを実行にセットする。
図6i は、通常割込みサービス・ルーチンが動作しているとき(ブロック615)、高速割込みFIQ が到来する状態を示している。プロセッサ2は通常割込みモードIRQ になっていて、高速割込みモードFIQ に移行して高速割込み機能の始まり(ブロック616)を動作させ、その後に高速割込みFIQ のサービス・プログラムに移行する(ブロック617)。高速割込み処理が終了した後、高速割込み機能の終わり(ブロック618)が呼び出され、それに高速割込みFIQ の終わりについての情報がセットされる。高速割込みのサービス・プログラムが終了した後、第1オペレーティングシステムOS_A のステータスとプロセッサ2のモードとは通常割込み状態IRQ に戻され、その後に動作は割込みされた場所から続く(ブロック619)。
この状態の例を挙げると、プロセッサ2はキーパッド9、14の割込み処理を動作させていて、そのとき通信装置に、例えばアプリケーション特有の集積回路3に、設けられているタイマ(図示せず)が高速割込みFIQ を形成する。プロセッサ2はこのタイマの値を読み取り、それをメモリ17に記憶する。その後、プロセッサ2はキーパッド9、14の割込み処理に戻る。
プロセッサ2の上記モード変更と関連して、プロセッサ2はいろいろなレジスタの使用を有利に開始し、その場合、一時記憶場所へのデータの転送は必ずしも常に必要とは限らない。しかし、ある割込み状態ではデータ転送が必要になることがあり、それは割込みの処理をある程度遅らせる。また、プロセッサ2として使われるあるマイクロプロセッサは上記のモードの全部を持ってはいなくて、そのいろいろなモードをモード変数等によって表示することができる。
ときには、第2オペレーティングシステムOS_B への応答時間を決定することが必要となる。第1オペレーティングシステムのスケジューラSCH _A は、第2オペレーティングシステムOS_B のために残っている実行時間が応答時間が必要とする時間より短くなるという状態においては第1オペレーティングシステムOS_A のアイドル・スレッドTHA _IDLEの優先順位を高めることができる。第1オペレーティングシステムOS_A のアイドル・スレッドTHA _IDLEは、他のあまり重要でないスレッドの前に動作の順番となり、それは第2オペレーティングシステムOS_B の動作への移行を引き起こす。この優先レベルの上昇は、例えば、所定時間後に割込みするようにセットされたタイマによって引き起こされる。タイマ割込みに至るときにプロセッサ2が第1オペレーティングシステムOS_A のアイドル・スレッドTHA _IDLEに達していない場合には、第1オペレーティングシステムのスケジューラSCH _A が呼び出され、それはアイドル・スレッドTHA _IDLEの優先順位を高める。しかし、この文脈では、第1オペレーティングシステムOS_A のあまり重要でないタスクにも定期的に実行時間が与えられるように、アイドル・スレッドTHA _IDLEの優先順位をそのときに短い時間にわたって高めておくのが有利であることに注目されたい。第1オペレーティングシステムOS_A の重要なスレッドが実行されなければならないので、アイドル・スレッドTHA _IDLEの優先順位を余りに高いレベルまで高めることはできない。この種のスケジューリングはインターリーブ・スケジューリングとも称され得る。
付随する図9及び10は、上記のインターリーブ・スケジューリング・オプションの例を示している。図9には実例としての状態のタイミング図が記述されており、その状態では、第1オペレーティングシステムOS_A で操作しているプロセスの動作中のスレッドTHA1、THA2、THA3と、第2オペレーティングシステムOS_B の動作中のスレッドTHB1、THB2、THB3とが実行される。図10には、インターリーブ・スケジューリングを更に明らかにするために第1オペレーティングシステムOS_A のプロセス図が記述されている。
この例示図では、第1オペレーティングシステムOS_A で動作するプロセスの3つのスレッドTHA1、THA2、THA3と、第2オペレーティングシステムOS_B で動作する3つのスレッドTHB1、THB2、THB3とが示されているが、オペレーティングシステムOS_A 、OS_B で動作するスレッドはもっと多くても良いし、もっと少なくても良いことが理解できよう。
第1オペレーティングシステムOS_A の第1スレッドTHA1は、例えば、電話アプリケーションであり、非常に高い優先順位を有する。第1オペレーティングシステムOS_A の第3スレッドTHA3は、例えばユーザインタフェースのために設けられる。第2スレッドTHA2の優先順位は第1スレッドTHA1の優先順位より低く、第3スレッドTHA3の優先順位は第1オペレーティングシステムOS_A の第2スレッドTHA2の優先順位より低い。
第2オペレーティングシステムOS_B の第1スレッドTHB1は、例えば、インタフェース・ブロック16を介する通信のためのプログラムである。第2オペレーティングシステムOS_B の第2スレッドTHB2及び第3スレッドTHB3は、例えばノートパッド・アプリケーション及びカレンダー・アプリケーションなどの、PDAアプリケーションである。この例では、第2オペレーティングシステムOS_B の第1スレッドTHB1の優先順位は第2オペレーティングシステムOS_B の第2スレッドTHB2の優先順位より高く、第2オペレーティングシステムOS_B の第3スレッドTHB3の優先順位は、これら3つのスレッドのうちで最低であるということが仮定されている。
図9では、スレッドの実行は太い線として示されている。例えば、時点t1において第1オペレーティングシステムOS_A の第2スレッドTHA2が動作する番となる。これは参照符号901で指示されている。後の時点t2において第1オペレーティングシステムOS_A の第3スレッドTHA3が動作する番902となる。これは第1オペレーティングシステムOS_A のアイドル・スレッドTHA _IDLEの前の最後のスレッドであるということも仮定されている。従って、しばらく後に、インタフェース・ブロック16を介して通信する必要があるか否か調べるために、第2オペレーティングシステムOS_B の第1スレッドTHB1が時点t3で動作する番903となる。後の時点t4で第2オペレーティングシステムOS_B の第2スレッドTHB2が動作する番904となる。第2オペレーティングシステムOS_B の第3スレッドTHB3のためのある程度の実行時間905が時点t5に残っている。この例では、動作する番906に至る次のスレッドは時点t6で第2オペレーティングシステムOS_B の第1スレッドTHB1である。
上記状態が、図10にも、時点t7から左に、示されている。スレッドTHA1、THA2、THA3、スケジューラSCH _A 、割込みサービス・ルーチンISR 、割込みベクトル及びその他の第1オペレーティングシステムのサービスが図10にブロックとして示されている。図10においてスレッドの優先順位は、最高のスレッドが最高の優先順位を持つように配置されている。第1オペレーティングシステムOS_A のアイドル・スレッドTHA _IDLEは最低の優先順位を有する。時点t7において第1オペレーティングシステムOS_A のスケジューラSCH _A は第1オペレーティングシステムOS_A のアイドル・スレッドTHA _IDLEの優先順位をしばらくの間変化させる。この状態は図10において時点t7から右に示されている。時点t11で第1オペレーティングシステムOS_A のスケジューラSCH _A は第1オペレーティングシステムOS_A のアイドル・スレッドTHA _IDLEの優先順位を最低優先順位に戻す。第1オペレーティングシステムOS_A のアイドル・スレッドTHA _IDLEの優先順位の変更を例えばタイマにより、何らかのイベント等により、配置することができる。
ユーザは、例えば第2インタフェースU12 のどれかのキーを押す。従って、第1オペレーティングシステムOS_A の第3スレッドTHA3は時点t8で再び動作する番907になる。スケジューラSCH _A は第1オペレーティングシステムOS_A のアイドル・スレッドTHA _IDLEの優先順位を上げている。インタフェース・ブロック16を介する伝送が必要である間、第1オペレーティングシステムOS_A の第3スレッドTHA3が動作している。これに起因して割込みが生じ、アイドル・スレッドTHA _IDLEの優先順位がこの時点t9においては第1オペレーティングシステムOS_A の第3スレッドTHA3の優先順位より高いので、第1オペレーティングシステムOS_A の第3スレッドTHA3の実行は割込みされ、第2オペレーティングシステムOS_B の第1スレッドTHB1が動作する番908となる。第2オペレーティングシステムOS_B の第1スレッドTHB1の実行後、第1オペレーティングシステムOS_A の第3スレッドTHA3の実行が時点T10から続く909。
スケジューラSCH _A は、この例では時点t11で第1オペレーティングシステムOS_A のアイドル・スレッドTHA _IDLEの優先順位を最低レベルに落とす。
第1オペレーティングシステムOS_A の第3スレッドTHA3の実行は、時点t12において、実行910されるように信号されている、より高位の優先順位スレッドがあるので、再び割込みされる。このスレッドは例えば第1オペレーティングシステムOS_A の第2スレッドTHA2である。
時点T13において、より高位の優先順位のスレッド、実行911されるべく信号されている第1オペレーティングシステムOS_A の第1スレッドTHA1、があるので、第1オペレーティングシステムOS_A の第2スレッドTHA2の実行は割込みされる。
第1オペレーティングシステムOS_A の第1スレッドTHA1が時点T14で実行され終わった後、第1オペレーティングシステムOS_A の第2スレッドTHA2の実行が続く912。
時点t15において第1オペレーティングシステムの第2スレッドTHA2の実行が終了する。同じ時点t15において、第2オペレーティングシステムの第1スレッドTHB1が動作可能になる。しかし、時点t15から第1オペレーティングシステムOS_A の第3スレッドTHA3の実行が続く913。これは、時点t9での先の挙動とは反対である。
第1オペレーティングシステムOS_A の第2スレッドTHA2が時点t15で実行され終わった後に第1オペレーティングシステムOS_A の第3スレッドTHA3の実行が続く913。
第2オペレーティングシステムOS_B の第1スレッドTHB1が時点T16で動作する番914になってインタフェース・ブロック16を介する伝送のために動作する。
表1は、割込みとの関係での1モードから他のモードへの移行を要約している。縦のラインの第1列はモードが変化したときのプロセッサ2のモードを示しており、横のラインの第1行はプロセッサ2が移行する先のモードを示している。表の他のボックスはそれぞれのモードの変化を引き起こす状態を示している。省略形は本明細書で前に使われたいろいろなモード及び割込みに使われている省略形を指している。
Figure 2007164819
次の例は、異なるオペレーティングシステムOS_A 、OS_B で実行されるスレッド間でのメッセージの伝送を説明する。図7a及び7bは、このメッセージ伝送メカニズムを簡略図として示している。メッセージ・ドライバMDは、メッセージ・キューMQ1 、MQ2 と同様に、オペレーティングシステムOS_A 、OS_B に共通である。第2オペレーティングシステムOS_B の動作しているスレッドTHB1は、メッセージ・ドライバMDを呼び出し、例えばテキスト・メッセージなどの有利に伝送されるメッセージ、及びオブジェクトスレッドTHA1のシンボルをパラメータとして送信する(図7a、矢印701)。メッセージ・ドライバMDは、メッセージを第1メッセージ・キューMQ1 に転送して(矢印702)ソフトウェア割込み(SWI )を有利に形成し、この割込みは、割込みが通常割込み IRQの代わりにソフトウェア割込みSWI により引き起こされたということを除いて、本明細書で前述した図6cに実質的に従って割込み処理を起動する。割込みハンドラを放置しておくと第1オペレーティングシステムのスケジューラSCH _A が起動し、優先順位により決定される段階でオブジェクトスレッドが実行される(矢印703)。このオブジェクトスレッドTHA1は、第1メッセージ・キューMQ1 の中のメッセージを読み出して(矢印704)例えば無線経路へのメッセージの伝送を行わせる。
第1オペレーティングシステムOS_A のアプリケーション・プログラムにおいて、遅延サービス・ルーチンDSR を実行することができ、これにより、例えば、次のようにしてメッセージを第2オペレーティングシステムOS_B のスレッドに伝えることが可能である(図7b)。第2オペレーティングシステムOS_B において、動作するスレッドTHB2はメッセージ・キューを形成して、メッセージを待つ状態にとどまる(矢印705)。メッセージ・キューはソフトウェア割込みSWI を引き起こしており、割込みハンドラは、割込みの原因を調べて第2オペレーティングシステムOS_B のスレッドTHB2が第1オペレーティングシステムOS_A のスレッドTHA2からのメッセージを待っていると結論を出す。割込み処理後、第1オペレーティングシステムのスケジューラSCH _A (矢印706)が呼び出される。望まれたスレッドTHA2が動作する番になった後、それはメッセージを形成して、それを第2メッセージ・キューMQ2 に加える(矢印707)。更に、スレッドTHA2は遅延サービス・ルーチンDSR を形成する(矢印708)。第1オペレーティングシステムOS_A のスレッドを動作させた後、この遅延サービス・ルーチンDSR が処理され、スレッドTHA2によって加えられた遅延サービス・ルーチンDSR は第2オペレーティングシステムOS_B のスレッドのステータスを実行待ちに(レディ)変更する(矢印709)。第2オペレーティングシステムOS_B のスケジューラSCH _B は、スレッドをそのスケジューリング原理に従って実行へ制御する。送信要求を送ったスレッドTHB2が動作しているとき(矢印710)、それは、メッセージ・ドライバMDの接続インタフェースを通して第2メッセージ・キューMQ2 からのメッセージを読む(矢印711)。
実用的な実施形態では、メッセージ・キューMQ1 、MQ2 を優先順位に従って好適には配列することができる。このことは、高い優先順位の受信スレッドを伴うメッセージがキュー内で優先順位の比較的に低いメッセージを通り越すことを意味する。あるいは、この例で使われている第1MQ1 及び第2メッセージ・キューMQ2 より多数のメッセージ・キューが使われる。
概要としては、本発明は2つ又はそれより多いオペレーティングシステムOS_A 、OS_B の動作を1つのプロセッサのもとで使用することを可能にするものである。目的は、共通部分をなるべく少なくすることであり、この通信装置1で従来技術のアプリケーションを動作させることもできる。オペレーティングシステムOS_A 、OS_B の共通部分は、主として、割込みハンドラからなっており、それにオペレーティングシステムOS_A 、OS_B との接続部が形成される。上記の例ではメッセージ・ドライバMDも共通である。
実用的な埋込みシステム1では異なるオペレーティングシステムOS_A 、OS_B のために多数の共通割込みハンドラ(割込みサービス・ルーチン)を配列することがある。一度に1割込みあたりにこれらの割込みハンドラのうちの1つが、すなわち、例えば高速割込みFIQ のために1つ、通常割込みIRQ のために1つ、及びソフトウェア割込みSWI のために1つが、アクティブになることができる。従って、当該割込みのために整備されている他の1つの割込みハンドラをアクティブな割込みハンドラとなるように変更することが可能である。
第2オペレーティングシステムOS_B のスレッドTHB1、THB2、THB _IDLEのうちから、アイドル・スレッドTHA _IDLEあるいはスーパースレッドなどの、第1オペレーティングシステムOS_A のスレッドが形成されるように、1プロセッサ2のシステムでの2つのオペレーティングシステムOS_A 、OS_B の動作を実現することもでき、その場合、第2オペレーティングシステムOS_B に関連する動作するスレッドTHB1、THB2、THB _IDLEはこのスレッドで実行されるということに言及しておくべきである。対応的に、第1オペレーティングシステムOS_A のスレッドTHA1、THA2、THA _IDLEのうちから、アイドル・スレッドTHB _IDLEあるいはスーパースレッド511などの、第2 オペレーティングシステムOS_B の1つのスレッドを形成することが可能であり、その場合、第1オペレーティングシステムOS_A に関連する動作するスレッドTHA1、THA2、THA _IDLEはこのスレッドで実行される。もう1つの選択肢は、第1オペレーティングシステムOS_A の各スレッドTHA1、THA2、THA _IDLEを第2オペレーティングシステムOS_B とは別のスーパー・スレッド511として形成することであり、その場合、第2オペレーティングシステムOS_B は、それらを別々のスーパー・スレッド(図示せず)として取り扱う。本明細書で前述したように、これらのスーパー・スレッドの応答時間は通常は通常スレッドのそれより相当短い。最も厳しい応答時間要件を有するタスクでも、それらのために例えばタイマの割込みハンドラと関連して割込み処理を形成することによって動作させることができ、その場合、それらのタスクの実行に取りかかるときにスケジューリング機能は必ずしも使用されない。
第1オペレーティングシステムOS_A の各スレッドTHA1、THA2、THA _IDLEが第2オペレーティングシステムOS_B の別々のスーパー・スレッド511として実現される場合には、もしそれが第1オペレーティングシステムOS_A のいろいろなスレッドTHA1、THA2、THA _IDLE間でのデータ伝送を望むならば、第2オペレーティングシステムOS_B に従う信号伝送が必要となる。対照的に、第1オペレーティングシステムOS_A のスレッドTHA1、THA2、THA _IDLE1つのスーパー・スレッド511として実現されるときには、第1オペレーティングシステムOS_A のメッセージ伝送方法を用いることによってデータ伝送をより簡単に実現することができる。
本発明は上記実施形態のみに限定されるものではなくて、付随する請求項の範囲内で修正され得るものである。
1つのオペレーティングシステムの層構造を示す図である。 プロセッサの1状態モデルを示す図である。 プロセス要素の例を示す図である。 本発明の有利な実施形態の埋込みシステムの簡略ブロック図である。 1つのプロセッサの簡略ブロック図である。 本発明の埋込みシステムと関連して使用される1オペレーティングシステム・アーキテクチャの簡略図である。 本発明の好適な実施形態の埋込みシステムで割込みを処理する種々の状態を示す図である。 本発明の好適な実施形態の埋込みシステムで割込みを処理する種々の状態を示す図である。 本発明の好適な実施形態の埋込みシステムで割込みを処理する種々の状態を示す図である。 本発明の好適な実施形態の埋込みシステムで割込みを処理する種々の状態を示す図である。 本発明の好適な実施形態の埋込みシステムで割込みを処理する種々の状態を示す図である。 本発明の好適な実施形態の埋込みシステムで割込みを処理する種々の状態を示す図である。 本発明の好適な実施形態の埋込みシステムで割込みを処理する種々の状態を示す図である。 本発明の好適な実施形態の埋込みシステムで割込みを処理する種々の状態を示す図である。 本発明の好適な実施形態の埋込みシステムで割込みを処理する種々の状態を示す図である。 メッセージ伝送のメカニズムの簡略図である。 メッセージ伝送のメカニズムの簡略図である。 本発明の好適な実施形態の埋込みシステムにおいて割込みを取り扱う1つの状態の簡略矢印図である。 本発明の好適な実施形態の埋込みシステムにおけるインターリーブされたスケジューリング・オプションのタイミング図である。 本発明の好適な実施形態の埋込みシステムにおけるインターリーブされたスケジューリング・オプションの機能図である。

Claims (34)

  1. オペレーティングシステム(OS_A 、OS_B )を動作させるための少なくとも1つのプロセッサ(2)を備える埋込みシステム(1)であって、該埋込みシステム(1)は、
    前記プロセッサ(2)において少なくとも2つのオペレーティングシステム(OS_A 、OS_B )を動作させるための手段(17、401、412)と、
    スレッド(THA1、THA2、THA _IDLE)の第1グループを備える第1オペレーティングシステム(OS_A )と、
    スレッド(THB1、THB2、THB _IDLE)の第2グループを備える第2オペレーティングシステム(OS_B )と、
    前記プロセッサ(2)に対する割込み(FIQ 、IRQ 、SWI )を作るための手段(nFIQ、nIRQ、SWI )と、
    前記プロセッサ(2)に来た割込み(FIQ 、IRQ 、SWI )がどのスレッド(THA1、THA2、THB1、THB2、THA _IDLE、THB _IDLE)の実行に影響を及ぼすのか調べるための手段(401、603、617)と、
    プロセッサ(2)により受信された割込み(FIQ 、IRQ 、SWI )に影響を及ぼすスレッド(THA1、THA2、THB1、THB2、THA _IDLE、THB _IDLE)に関連する割込みデータを前記オペレーティングシステム(OS_A 、OS_B )に伝送するための手段(401、412、603、609、617)とを更に備えることを特徴とする埋込みシステム。
  2. 請求項1に記載の埋込みシステム(1)であって、前記調べるための手段(401、603、617)は、前記少なくとも2つのオペレーティングシステム(OS_A 、OS_B )のための少なくとも1つの、少なくとも部分的に共通の割込みハンドラ(603、617)を備えることを特徴とする埋込みシステム。
  3. 請求項1又は2に記載の埋込みシステム(1)であって、移動局機能とデータ処理機能とを備え、前記少なくとも2つのオペレーティングシステム(OS_A 、OS_B )のうちの、前記第1オペレーティングシステム(OS_A )は移動局機能の動作に関連し、前記第2オペレーティングシステム(OS_B )はデータ処理機能の動作に関連することを特徴とする埋込みシステム。
  4. 請求項3に記載の埋込みシステム(1)であって、少なくとも部分的に移動局機能と関連する少なくとも1つのユーザインタフェース(UI1 )と、少なくとも部分的にデータ処理機能と関連する少なくとも1つのユーザインタフェース(IU2)とを備えることを特徴とする埋込みシステム。
  5. 請求項4に記載の埋込みシステム(1)であって、前記移動局機能に関連するユーザインタフェース(UI1)と、前記データ処理機能に関連するユーザインタフェース(UI2)とは、少なくとも部分的に共通の表示装置(10、15)を備えることを特徴とする埋込みシステム。
  6. 請求項4又は5に記載の埋込みシステム(1)であって、前記移動局機能に関連するユーザインタフェース(UI1)と、前記データ処理機能に関連するユーザインタフェース(UI2)とは、データを供給するための少なくとも部分的に共通の手段(9、14)を備えることを特徴とする埋込みシステム。
  7. 請求項1〜6のいずれか一項に記載の埋込みシステム(1)であって、前記第1オペレーティングシステム(OS_A )のどのスレッド(THA1、THA2、THA _IDLE)も動作していないとき、前記第1オペレーティングシステム(OS_A )の実行から前記第2オペレーティングシステム(OS_B )の実行へ移行するための手段(2、THA _IDLE)を備えることを特徴とする埋込みシステム。
  8. 請求項1〜7のいずれか一項に記載の埋込みシステム(1)であって、前記プロセッサ(2)に対する割込み(FIQ 、IRQ 、SWI )が前記第1オペレーティングシステム(OS_A )のもとで少なくとも1つのスレッド(THA1、THA2、THA _IDLE)の動作に影響を及ぼすとき、前記第2オペレーティングシステム(OS_B )の実行から前記第1オペレーティングシステム(OS_A )の動作へ移行するための手段(2、SCH _A )を備えることを特徴とする埋込みシステム。
  9. 請求項1〜8のいずれか一項に記載の埋込みシステム(1)であって、少なくとも前記第1オペレーティングシステム(OS_A )は実時間オペレーティングシステムであることを特徴とする埋込みシステム。
  10. 請求項1〜9のいずれか一項に記載の埋込みシステム(1)であって、前記プロセッサ(2)は少なくとも次のモード、
    ユーザ・モード(USERモード)、
    特権モード(SVC モード)、
    未定義モード(UND モード)、
    1つ又はそれより多い割込みモード(FIQ モード、IRQ モード、SWI モード)、を有し、前記第1オペレーティングシステム(OS_A )は少なくとも部分的に前記未定義モード(UND モード)で動作するようになっており、前記第2オペレーティングシステム(OS_B )は少なくとも部分的に前記ユーザ・モード(USERモード)で動作するようになっており、前記割込みハンドラ(603、617)は何らかの割込みモード(FIQ モード、IRQ モード、SWI モード)で動作するようになっていることを特徴とする埋込みシステム。
  11. 請求項1〜10のいずれか一項に記載の埋込みシステム(1)であって、スレッドの前記第1グループの1つのスレッド(THA1、THA2、THA _IDLE)は前記第2オペレーティングシステム(OS_B )を備えることを特徴とする埋込みシステム。
  12. 請求項2〜10のいずれか一項に記載の埋込みシステム(1)であって、少なくとも2つの割込み(FIQ 、IRQ 、SWI )のための少なくとも2つの割込みサービス・ルーチンと、前記少なくとも2つの割込みサービス・ルーチンから前記割込み(FIQ 、IRQ 、SWI )との関連で使用される1つの割込みサービス・ルーチンを選択するための手段(2)とを備えることを特徴とする埋込みシステム。
  13. 埋込みシステム(1)のプロセッサ(2)でオペレーティングシステム(OS_A 、OS_B )を実行するための方法であって、該方法は、
    少なくとも2つのオペレーティングシステム(OS_A 、OS_B )が前記プロセッサ(2)で実行され、
    前記第1オペレーティングシステム(OS_A )に関連して、前記第1グループのスレッド(THA1、THA2、THA _IDLE)が実行され、
    前記第2オペレーティングシステム(OS_B )に関連して、前記第2グループのスレッド(THB1、THB2、THB _IDLE)が実行され、
    前記プロセッサ(2)に対する割込み(FIQ 、IRQ 、SWI )がもたらされ、
    前記プロセッサ(2)に到達した割込みがどのスレッド(THA1、THA2、THB1、THB2、THA _IDLE、THB _IDLE)の実行に影響を及ぼすかが調べられ、
    前記プロセッサ(2)に受け取られた割込みについての情報が、前記プロセッサ(2)に受け取られた前記割込み(FIQ 、IRQ 、SWI )に影響を及ぼすスレッド(THA1、THA2、THB1、THB2、THA _IDLE、THB _IDLE)に関連する前記オペレーティングシステム(OS_A 、OS_B )に伝えられることを特徴とする、埋込みシステム(1)のプロセッサ(2)でオペレーティングシステム(OS_A 、OS_B )を実行するための方法。
  14. 請求項13に記載の方法であって、前記プロセッサ(2)に受け取られた割込み(FIQ 、IRQ 、SWI )を調べるとき、前記少なくとも2つのオペレーティングシステム(OS_A 、OS_B )に少なくとも部分的に共通の少なくとも1つの割込みハンドラが使用されることを特徴とする方法。
  15. 請求項13に記載の方法であって、前記埋込みシステム(1)で移動局機能とデータ処理機能とが実行され、前記少なくとも2つのオペレーティングシステム(OS_A 、OS_B )のうちの、前記第1オペレーティングシステム(OS_A )は前記移動局機能の実行に関連し、前記第2オペレーティングシステム(OS_B )は前記データ処理機能に関連することを特徴とする方法。
  16. 請求項15に記載の方法であって、前記移動局機能は前記第1ユーザインタフェース(UI1) により使用され、前記データ処理機能は前記第2ユーザインタフェース(UI2) により使用されることを特徴とする方法。
  17. 請求項16に記載の方法であって、前記移動局機能と前記データ処理機能とは少なくとも部分的に共通の表示装置(10、15)で表示されることを特徴とする方法。
  18. 請求項16又は17に記載の方法であって、前記移動局機能と前記データ処理機能とを使用するために、少なくとも部分的に共通の手段(9、14)によってデータが供給されることを特徴とする方法。
  19. 請求項13〜18のいずれか一項に記載の方法であって、前記第1オペレーティングシステム(OS_A )のどのスレッド(THA1、THA2、THA _IDLE)もラン・モードになっていない段階において、前記第1オペレーティングシステム(OS_A )の実行から前記第2オペレーティングシステム(OS_B )の実行への変換が行われることを特徴とする方法。
  20. 請求項13〜19のいずれか一項に記載の方法であって、前記プロセッサ(2)により受け取られた割込み(FIQ 、IRQ 、SWI )が前記第1オペレーティングシステム(OS_A )のもとで少なくとも1つのスレッド(THA1、THA2、THA _IDLE)の実行に影響を及ぼす段階において、前記第2オペレーティングシステム(OS_B )の実行から前記第1オペレーティングシステム(OS_A )の実行への変換が行われることを特徴とする方法。
  21. 請求項13〜20のいずれか一項に記載の方法であって、少なくとも前記第1オペレーティングシステム(OS_A )は実時間オペレーティングシステムであることを特徴とする方法。
  22. 請求項13〜21のいずれか一項に記載の方法であって、前記第1グループのスレッドのうちの1つのスレッド(THA1、THA2、THA _IDLE)において前記第2オペレーティングシステム(OS_B )が実行されることを特徴とする方法。
  23. 請求項22に記載の方法であって、スレッドの前記第1グループの各スレッド(THA1、THA2、THA _IDLE)について優先順位が決定され、前記第2オペレーティングシステム(OS_B )の実行時間を増やすために、前記第2オペレーティングシステム(OS_B )が実行されるスレッドの優先順位を高めることができることを特徴とする方法。
  24. オペレーティングシステム(OS_A 、OS_B )を実行するための少なくとも1つのプロセッサ(2)を備える通信装置(1)であって、該通信装置(1)は、
    前記プロセッサ(2)において少なくとも2つのオペレーティングシステム(OS_A 、OS_B )を動作させるための手段(17、401、402)と、
    スレッド(THA1、THA2、THA _IDLE)の第1グループを含む第1オペレーティングシステム(OS_A )と、
    スレッド(THB1、THB2、THB _IDLE)の第2グループを含む第2オペレーティングシステム(OS_B )と、
    前記プロセッサ(2)に対して割込み(FIQ 、IRQ 、SWI )を作るための手段(nFIQ、nIRQ、SWI )と、
    前記プロセッサ(2)に来た割込み(FIQ 、IRQ 、SWI )がどのスレッド(THA1、THA2、THB1、THB2、THA _IDLE、THB _IDLE)の実行に影響を及ぼすか調べるための手段(401、603、617)と、
    前記プロセッサ(2)により受け取られた割込み(FIQ 、IRQ 、SWI )に影響を及ぼすスレッド(THA1、THA2、THB1、THB2、THA _IDLE、THB _IDLE)に関連する割込みデータを前記オペレーティングシステム(OS_A 、OS_B )に伝えるための手段(401、412、603、609、617)とを更に備えることを特徴とする通信装置。
  25. 請求項24に記載の通信装置(1)であって、前記調べるための手段(401、603、617)は前記少なくとも2つのオペレーティングシステム(OS_A 、OS_B )のための、少なくとも1つの、少なくとも部分的に共通の割込みハンドラ(603、617)を備えることを特徴とする通信装置。
  26. 請求項24又は25に記載の通信装置(1)であって、移動局機能とデータ処理機能とを備え、前記少なくとも2つのオペレーティングシステム(OS_A 、OS_B )のうちの、前記第1オペレーティングシステム(OS_A )は前記移動局機能の動作に関連し、前記第2オペレーティングシステム(OS_B )は前記データ処理機能の動作に関連することを特徴とする通信装置。
  27. 請求項26に記載の通信装置(1)であって、少なくとも部分的に移動局機能に関連する少なくとも1つのユーザインタフェース(UI)と、少なくとも部分的にデータ処理機能に関連する少なくとも1つのユーザインタフェース(UI2 )とを備えることを特徴とする通信装置。
  28. 請求項27に記載の通信装置(1)であって、前記移動局機能に関連する前記ユーザインタフェース(UI1)と、前記データ処理機能に関連する前記ユーザインタフェース(UI2)とは、少なくとも部分的に共通の表示装置(10、15)を備える含むことを特徴とする通信装置。
  29. 請求項27又は28に記載の通信装置(1)であって、前記移動局機能に関連する前記ユーザインタフェース(UI1)と、前記データ処理機能に関連する前記ユーザインタフェース(UI2)とは、少なくとも部分的に共通の、データを供給するための手段(9、14)を備えることを特徴とする通信装置。
  30. 請求項24〜29のいずれか一項に記載の通信装置(1)であって、前記第1オペレーティングシステム(OS_A )のどのスレッド(THA1、THA2、THA _IDLE)も動作していないときに前記第1オペレーティングシステム(OS_A )の実行から前記第2オペレーティングシステム(OS_B )の実行へ移行するための手段(2、THA _IDLE)を備えることを特徴とする通信装置。
  31. 請求項24〜30のいずれか一項に記載の通信装置(1)であって、前記プロセッサ(2)に対する割込み(FIQ 、IRQ 、SWI )が前記第1オペレーティングシステム(OS_A )のもとで少なくとも1つのスレッド(THA1、THA2、THA _IDLE)の動作に影響を及ぼすときに前記第2オペレーティングシステム(OS_B )の実行から前記第1オペレーティングシステム(OS_A )の動作へ移行するための手段(2、THA _SCH _A )を備えることを特徴とする通信装置。
  32. 請求項24〜31のいずれか一項に記載の通信装置(1)であって、少なくとも前記第1オペレーティングシステム(OS_A )は実時間オペレーティングシステムであることを特徴とする通信装置。
  33. 請求項24〜32のいずれか一項に記載の通信装置(1)であって、前記プロセッサ(2)は少なくとも次のモード、
    ユーザ・モード(USERモード)、
    特権モード(SVC モード)、
    未定義モード(UND モード)、
    1つ以上の割込みモード(FIQ モード、IRQ モード、SWI モード)、を有し、前記第1オペレーティングシステム(OS_A )は少なくとも部分的に前記未定義モード(UND モード)で動作するようになっており、前記第2オペレーティングシステム(OS_B )は少なくとも部分的に前記ユーザ・モード(USERモード)で動作するようになっており、割込みハンドラは何らかの割込みモード(FIQ モード、IRQ モード、SWI モード)で動作するようになっていることを特徴とする通信装置。
  34. 請求項24〜33のいずれか一項に記載の通信装置(1)であって、スレッドの前記第1グループの1つのスレッド(THA1、THA2、THA _IDLE)は前記第2オペレーティングシステム(OS_B )を備えることを特徴とする通信装置。
JP2007041050A 1998-01-21 2007-02-21 埋込みシステム Pending JP2007164819A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FI980135A FI108478B (fi) 1998-01-21 1998-01-21 Sulautettu jõrjestelmõ

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2000528913A Division JP2002501248A (ja) 1998-01-21 1999-01-21 埋込みシステム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2011171579A Division JP2011216132A (ja) 1998-01-21 2011-08-05 埋込みシステム

Publications (1)

Publication Number Publication Date
JP2007164819A true JP2007164819A (ja) 2007-06-28

Family

ID=8550493

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2000528913A Pending JP2002501248A (ja) 1998-01-21 1999-01-21 埋込みシステム
JP2007041050A Pending JP2007164819A (ja) 1998-01-21 2007-02-21 埋込みシステム
JP2011171579A Withdrawn JP2011216132A (ja) 1998-01-21 2011-08-05 埋込みシステム

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2000528913A Pending JP2002501248A (ja) 1998-01-21 1999-01-21 埋込みシステム

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2011171579A Withdrawn JP2011216132A (ja) 1998-01-21 2011-08-05 埋込みシステム

Country Status (9)

Country Link
US (2) US6631394B1 (ja)
EP (1) EP1047991A1 (ja)
JP (3) JP2002501248A (ja)
KR (1) KR100681875B1 (ja)
CN (1) CN1130630C (ja)
AU (1) AU2056499A (ja)
FI (1) FI108478B (ja)
HK (1) HK1035416A1 (ja)
WO (1) WO1999038073A1 (ja)

Families Citing this family (98)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4072271B2 (ja) * 1999-02-19 2008-04-09 株式会社日立製作所 複数のオペレーティングシステムを実行する計算機
KR20010104716A (ko) * 1999-12-30 2001-11-26 요트.게.아. 롤페즈 멀티-태스킹 소프트웨어 구조
JP2001256067A (ja) * 2000-03-08 2001-09-21 Mitsubishi Electric Corp プロセッサ省電力制御方法、記憶媒体、およびプロセッサ省電力制御装置
AU2001257567A1 (en) * 2000-05-08 2001-11-20 Transilica, Inc. Distributed applications in a portable thread environment
US6715016B1 (en) * 2000-06-01 2004-03-30 Hitachi, Ltd. Multiple operating system control method
EP1162536A1 (en) * 2000-06-09 2001-12-12 Hitachi, Ltd. Multiple operating system control method
US7330877B2 (en) * 2000-09-18 2008-02-12 Sharp Laboratories Of America Devices, softwares and methods for rescheduling multi-party sessions upon premature termination of session
US6694428B2 (en) * 2000-11-29 2004-02-17 Palm One, Inc. System for indentifying a peripheral device by sending an inquiry thereto after receiving an interrupt notification message if the interrupt and communication port meet predetermined conditions
EP1213648A1 (en) * 2000-12-05 2002-06-12 Infineon Technologies AG Method for coordinating tasks in a GSM network
US6813766B2 (en) * 2001-02-05 2004-11-02 Interland, Inc. Method and apparatus for scheduling processes based upon virtual server identifiers
JP2002251326A (ja) * 2001-02-22 2002-09-06 Hitachi Ltd 耐タンパ計算機システム
US6928648B2 (en) * 2001-04-20 2005-08-09 Sun Microsystems, Inc. Method and apparatus for a mobile multimedia java framework
EP1448997B1 (en) * 2001-07-20 2006-03-08 Satyanarayana Manchanahally Venkataramasastry Energy consumption control unit
CN100367238C (zh) * 2001-08-22 2008-02-06 深圳市索普卡软件开发有限公司 一种x86系列兼容机及其操作***的生成方法
FI114663B (fi) * 2001-12-20 2004-11-30 Nokia Corp Menetelmä ja järjestelmä käyttöjärjestelmätoimintojen suorittamiseksi sekä elektroniikkalaite
KR100408047B1 (ko) * 2001-12-24 2003-12-01 엘지전자 주식회사 이동통신 시스템의 프로세서 보드 이중화 장치 및 방법
DE10206865C1 (de) * 2002-02-18 2003-05-15 Daimler Chrysler Ag Reaktionszeit-Beschränkung eines Software-Prozesses
US7137121B2 (en) * 2002-04-19 2006-11-14 Equator Technologies, Inc. Data-processing circuit and method for switching between application programs without an operating system
US8032891B2 (en) * 2002-05-20 2011-10-04 Texas Instruments Incorporated Energy-aware scheduling of application execution
JP3938343B2 (ja) * 2002-08-09 2007-06-27 インターナショナル・ビジネス・マシーンズ・コーポレーション タスク管理システム、プログラム、及び制御方法
US6782424B2 (en) * 2002-08-23 2004-08-24 Finite State Machine Labs, Inc. System, method and computer program product for monitoring and controlling network connections from a supervisory operating system
TWI336848B (en) * 2002-08-26 2011-02-01 Interdigital Tech Corp Wireless transmit/receive unit and method for providing a communication path between a plurality of operating systems in a wireless device
US7805725B2 (en) * 2002-09-26 2010-09-28 Siemens Industry, Inc. System and method for synchronizing system modules
GB2395583B (en) 2002-11-18 2005-11-30 Advanced Risc Mach Ltd Diagnostic data capture control for multi-domain processors
AU2003278347A1 (en) 2002-11-18 2004-06-15 Arm Limited Exception types within a secure processing system
JP4220476B2 (ja) 2002-11-18 2009-02-04 エイアールエム リミテッド 安全ドメインおよび非安全ドメインを有するシステム内での仮想−物理メモリアドレスマッピング
AU2003278342A1 (en) 2002-11-18 2004-06-15 Arm Limited Security mode switching via an exception vector
GB2411254B (en) 2002-11-18 2006-06-28 Advanced Risc Mach Ltd Monitoring control for multi-domain processors
GB0226874D0 (en) * 2002-11-18 2002-12-24 Advanced Risc Mach Ltd Switching between secure and non-secure processing modes
US7383587B2 (en) 2002-11-18 2008-06-03 Arm Limited Exception handling control in a secure processing system
US7117284B2 (en) 2002-11-18 2006-10-03 Arm Limited Vectored interrupt control within a system having a secure domain and a non-secure domain
US7231476B2 (en) 2002-11-18 2007-06-12 Arm Limited Function control for a processor
GB2396451B (en) * 2002-11-18 2005-12-07 Advanced Risc Mach Ltd Delivering data processing requests to a suspended operating system
GB2395313B (en) * 2002-11-18 2005-11-23 Advanced Risc Mach Ltd Task following between multiple operating systems
US6928502B2 (en) * 2003-01-31 2005-08-09 Via Telecom Co., Ltd. Method and apparatus for processing interrupts at dynamically selectable prioritization levels
US9002565B2 (en) 2003-03-20 2015-04-07 Agjunction Llc GNSS and optical guidance and machine control
US8686900B2 (en) 2003-03-20 2014-04-01 Hemisphere GNSS, Inc. Multi-antenna GNSS positioning method and system
US8634993B2 (en) 2003-03-20 2014-01-21 Agjunction Llc GNSS based control for dispensing material from vehicle
US8190337B2 (en) 2003-03-20 2012-05-29 Hemisphere GPS, LLC Satellite based vehicle guidance control in straight and contour modes
US8140223B2 (en) 2003-03-20 2012-03-20 Hemisphere Gps Llc Multiple-antenna GNSS control system and method
US8271194B2 (en) * 2004-03-19 2012-09-18 Hemisphere Gps Llc Method and system using GNSS phase measurements for relative positioning
US8612992B2 (en) * 2003-04-09 2013-12-17 Jaluna Sa Operating systems
ES2315469T3 (es) * 2003-04-09 2009-04-01 Virtuallogix Sa Sistemas operativos.
WO2004090719A2 (en) * 2003-04-09 2004-10-21 Jaluna Sa Operating systems
US20040226016A1 (en) * 2003-05-08 2004-11-11 Samsung Electronics Co., Ltd. Apparatus and method for sharing resources in a real-time processing system
JP3822577B2 (ja) * 2003-05-22 2006-09-20 株式会社エヌ・ティ・ティ・ドコモ コンピュータ及びプログラム
US7543306B2 (en) * 2003-07-02 2009-06-02 Intel Corporation Method, system, and program for handling device interrupts in a multi-processor environment
EP1503286B1 (en) * 2003-07-30 2014-09-03 Jaluna SA Multiple operating system networking
JP3953449B2 (ja) * 2003-08-26 2007-08-08 富士通株式会社 タスク管理プログラムおよびタスク制御装置
US8024742B2 (en) * 2003-09-30 2011-09-20 Jaluna S.A. Common program for switching between operation systems is executed in context of the high priority operating system when invoked by the high priority OS
US8028292B2 (en) * 2004-02-20 2011-09-27 Sony Computer Entertainment Inc. Processor task migration over a network in a multi-processor system
US7565653B2 (en) * 2004-02-20 2009-07-21 Sony Computer Entertainment Inc. Methods and apparatus for processor task migration in a multi-processor system
US7614053B2 (en) * 2004-02-20 2009-11-03 Sony Computer Entertainment Inc. Methods and apparatus for task management in a multi-processor system
US7584476B2 (en) * 2004-03-04 2009-09-01 International Business Machines Corporation Mechanism for reducing remote memory accesses to shared data in a multi-nodal computer system
US8583315B2 (en) 2004-03-19 2013-11-12 Agjunction Llc Multi-antenna GNSS control system and method
JP4028853B2 (ja) * 2004-03-30 2007-12-26 株式会社日立製作所 情報サービス通信ネットワークシステムおよびセッション管理サーバ
US8707317B2 (en) * 2004-04-30 2014-04-22 Microsoft Corporation Reserving a fixed amount of hardware resources of a multimedia console for system application and controlling the unreserved resources by the multimedia application
US20060010446A1 (en) * 2004-07-06 2006-01-12 Desai Rajiv S Method and system for concurrent execution of multiple kernels
WO2006018307A2 (en) * 2004-08-18 2006-02-23 Jaluna Sa Operating systems
US20060070069A1 (en) * 2004-09-30 2006-03-30 International Business Machines Corporation System and method for sharing resources between real-time and virtualizing operating systems
US7290112B2 (en) * 2004-09-30 2007-10-30 International Business Machines Corporation System and method for virtualization of processor resources
US8255912B2 (en) * 2005-04-13 2012-08-28 Qualcomm Incorporated Techniques for setting events in a multi-threaded system
US20070033596A1 (en) * 2005-04-14 2007-02-08 Kridner Jason D Reconfigurable State Structure Based System Design for Embedded Multimedia System
US7627705B2 (en) * 2005-12-30 2009-12-01 Stmicroelectronics Pvt. Ltd. Method and apparatus for handling interrupts in embedded systems
US20070201270A1 (en) * 2005-12-30 2007-08-30 Stmicroelectronics Pvt. Ltd. Read only memory device with bitline leakage reduction
US8718629B2 (en) * 2006-07-18 2014-05-06 Nec Corporation Information communication processing device, information communication terminal, information communication system, function switching method and function switching program
US7870372B2 (en) * 2006-08-14 2011-01-11 Marvell World Trade Ltd. Interrupt handling
US8424013B1 (en) * 2006-09-29 2013-04-16 Emc Corporation Methods and systems for handling interrupts across software instances and context switching between instances having interrupt service routine registered to handle the interrupt
US7698540B2 (en) * 2006-10-31 2010-04-13 Hewlett-Packard Development Company, L.P. Dynamic hardware multithreading and partitioned hardware multithreading
US8311696B2 (en) 2009-07-17 2012-11-13 Hemisphere Gps Llc Optical tracking vehicle control system and method
USRE48527E1 (en) 2007-01-05 2021-04-20 Agjunction Llc Optical tracking vehicle control system and method
US8046570B2 (en) * 2007-02-06 2011-10-25 Microsoft Corporation Supporting multiple operating systems in media devices
US7904703B1 (en) * 2007-04-10 2011-03-08 Marvell International Ltd. Method and apparatus for idling and waking threads by a multithread processor
US7912623B2 (en) * 2007-09-25 2011-03-22 Denso Corporation Engine control system designed to manage schedule of engine control tasks
US7808428B2 (en) 2007-10-08 2010-10-05 Hemisphere Gps Llc GNSS receiver and external storage device system and GNSS data processing method
EP2083525A1 (en) * 2008-01-28 2009-07-29 Merging Technologies S.A. System to process a plurality of audio sources
US7657683B2 (en) * 2008-02-01 2010-02-02 Redpine Signals, Inc. Cross-thread interrupt controller for a multi-thread processor
WO2009100463A1 (en) 2008-02-10 2009-08-13 Hemisphere Gps Llc Visual, gnss and gyro autosteering control
US8156320B2 (en) * 2008-08-27 2012-04-10 Wireless Silicon Group, Llc Method and apparatus for fast booting a portable computing device allowing for immediate operation
US8281169B2 (en) 2008-08-27 2012-10-02 Wireless Silicon Group, Inc. Method and system for power management for a handheld mobile electronic device executing-in-place an application kernel from execute-in-place non-volatile memory (XIP NVM)
US8217833B2 (en) 2008-12-11 2012-07-10 Hemisphere Gps Llc GNSS superband ASIC with simultaneous multi-frequency down conversion
US8260876B2 (en) * 2009-04-03 2012-09-04 Google Inc. System and method for reducing startup cost of a software application
US8401704B2 (en) 2009-07-22 2013-03-19 Hemisphere GPS, LLC GNSS control system and method for irrigation and related applications
US8135894B1 (en) 2009-07-31 2012-03-13 Altera Corporation Methods and systems for reducing interrupt latency by using a dedicated bit
US8334804B2 (en) 2009-09-04 2012-12-18 Hemisphere Gps Llc Multi-frequency GNSS receiver baseband DSP
US20110224873A1 (en) * 2009-09-17 2011-09-15 Reeve David R Vehicle assembly controller with automaton framework and control method
CN102043662A (zh) * 2009-10-23 2011-05-04 伟视科技股份有限公司 多操作***的数据修改方法
US8473662B2 (en) * 2009-12-18 2013-06-25 Electronics And Telecommunications Research Institute Interrupt-handling-mode determining method of embedded operating system kernel
WO2011086473A2 (en) * 2010-01-13 2011-07-21 Marvell Israel (Misl) Ltd. Hardware virtualization for media processing
US8782258B2 (en) * 2011-01-04 2014-07-15 Motorola Mobility Llc Transferring web data between operating system environments
GB2487575B (en) 2011-01-28 2017-04-12 Advanced Risc Mach Ltd Controlling generation of debug exceptions
US8725923B1 (en) * 2011-03-31 2014-05-13 Emc Corporation BMC-based communication system
CN104216777B (zh) * 2014-08-29 2017-09-08 宇龙计算机通信科技(深圳)有限公司 双***电子装置及终端
US9710313B2 (en) * 2014-12-30 2017-07-18 Ge Aviation Systems Llc Method and system for ensuring integrity of critical data
US9733987B2 (en) * 2015-02-20 2017-08-15 Intel Corporation Techniques to dynamically allocate resources of configurable computing resources
FR3048529B1 (fr) * 2016-03-01 2018-03-23 Ingenico Group Procede de modulation d'acces a une ressource, dispositif et programme correspondant
US20200104193A1 (en) * 2018-09-28 2020-04-02 Apple Inc. Port Groups
CN111538580B (zh) * 2020-04-23 2024-01-05 苏州大学 一种嵌入式实时操作***的线程信号操作方法与***

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04367037A (ja) * 1991-06-13 1992-12-18 Mitsubishi Electric Corp 計算機システム
JPH07244742A (ja) * 1993-11-01 1995-09-19 Internatl Business Mach Corp <Ibm> ズーム/パン機能付パーソナル通信機

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE360135C (de) * 1915-06-08 1922-09-29 Enrico Feroldi Vergaser fuer Verbrennungskraftmaschinen
GB1457295A (en) 1974-01-28 1976-12-01 Hovermarine Transport Ltd Flexible skirt members for gas-cushion vehicles
DE3802366A1 (de) 1988-01-27 1989-08-10 Boehringer Mannheim Gmbh Traegervlies fuer abloesbar impraegnierte reagenzien
US4993017A (en) 1988-03-15 1991-02-12 Siemens Aktiengesellschaft Modularly structured ISDN communication system
DE3831048A1 (de) 1988-09-12 1990-03-15 Nixdorf Computer Ag Betriebsprogramm fuer eine datenverarbeitungsanlage
US5278973A (en) 1989-03-27 1994-01-11 Unisys Corporation Dual operating system computer
US5392282A (en) 1989-05-17 1995-02-21 Nokia Mobile Phones, Ltd. Circuit arrangement in a mobile phone for a digital mobile telephone system
FI87033C (fi) 1990-10-05 1992-11-10 Nokia Mobile Phones Ltd Foerfarande foer att arrangera styrningar av kopplingstyp i en radiotelefon
US5301277A (en) * 1991-04-10 1994-04-05 Seiko Epson Corporation Method and apparatus for communicating peripheral data to/from minor operating systems running as subprocesses on a main operating system
FI89223C (fi) 1991-10-03 1993-08-25 Nokia Mobile Phones Ltd Digitalt audiointerface i gsm-anordning
FI98183C (fi) 1992-02-14 1997-04-25 Nokia Mobile Phones Ltd Järjestely data-adapterin kytkemiseksi GSM-solukkopuhelimeen
US5515538A (en) * 1992-05-29 1996-05-07 Sun Microsystems, Inc. Apparatus and method for interrupt handling in a multi-threaded operating system kernel
TW278291B (ja) * 1992-06-30 1996-06-11 Motorola Inc
US5596755A (en) * 1992-11-03 1997-01-21 Microsoft Corporation Mechanism for using common code to handle hardware interrupts in multiple processor modes
US5657371A (en) 1993-02-01 1997-08-12 Nokia Mobile Phones Limited Connector assembly for a radio telephone and a computer
US5414848A (en) * 1993-04-01 1995-05-09 Intel Corporation Method and apparatus for sharing a common routine stored in a single virtual machine with other virtual machines operating in a preemptive muli-tasking computer system
GB2298109B (en) 1995-02-14 1999-09-01 Nokia Mobile Phones Ltd Data interface
US6260075B1 (en) * 1995-06-19 2001-07-10 International Business Machines Corporation System and method for providing shared global offset table for common shared library in a computer system
WO1997010549A1 (fr) * 1995-09-13 1997-03-20 Hitachi, Ltd. Systeme de calcul electronique
FI111309B (fi) 1996-01-03 2003-06-30 Nokia Corp Tietoliikenneverkkoon radioteitse liitettävä päätelaite
US5835705A (en) * 1997-03-11 1998-11-10 International Business Machines Corporation Method and system for performance per-thread monitoring in a multithreaded processor
US5974439A (en) * 1997-11-21 1999-10-26 International Business Machines Corporation Resource sharing between real-time and general purpose programs

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04367037A (ja) * 1991-06-13 1992-12-18 Mitsubishi Electric Corp 計算機システム
JPH07244742A (ja) * 1993-11-01 1995-09-19 Internatl Business Mach Corp <Ibm> ズーム/パン機能付パーソナル通信機

Also Published As

Publication number Publication date
FI980135A0 (fi) 1998-01-21
KR20010034232A (ko) 2001-04-25
FI108478B (fi) 2002-01-31
AU2056499A (en) 1999-08-09
JP2011216132A (ja) 2011-10-27
FI980135A (fi) 1999-07-22
WO1999038073A1 (en) 1999-07-29
CN1130630C (zh) 2003-12-10
CN1294706A (zh) 2001-05-09
HK1035416A1 (en) 2001-11-23
EP1047991A1 (en) 2000-11-02
US6631394B1 (en) 2003-10-07
KR100681875B1 (ko) 2007-02-12
JP2002501248A (ja) 2002-01-15
US20040088710A1 (en) 2004-05-06
US7062766B2 (en) 2006-06-13

Similar Documents

Publication Publication Date Title
JP2007164819A (ja) 埋込みシステム
JP3790743B2 (ja) コンピュータ・システム
FI114663B (fi) Menetelmä ja järjestelmä käyttöjärjestelmätoimintojen suorittamiseksi sekä elektroniikkalaite
KR100746797B1 (ko) 프로세서 및 정보처리 방법
US5742825A (en) Operating system for office machines
US7743384B2 (en) Method and system for implementing an interrupt handler
EP1876531A1 (en) Multi-processor system abd program for causing computer to execute multi-processor system control method
US8856798B2 (en) Mobile computing device activity manager
JP2015097106A (ja) マルチスレッドシステムの中でイベントを設定するための技術
US20070266231A1 (en) Portable Electronic Device and Method for Loading Resource Data of the Portable Electronic Device
JP2006338664A (ja) オペレーティングシステム初期化中においてコードを実行するためのシステム
JP4609113B2 (ja) プロセッサ
KR100954661B1 (ko) Sm버스에 대한 aml 액세스를 용이하게 하는 시스템과, sm버스 이벤트 핸들링 시스템, 방법 및 컴퓨터 판독가능 매체
EP1892625B1 (en) Finer grained operating system scheduling
CN113495787A (zh) 资源分配方法、装置、存储介质及电子设备
US20050034124A1 (en) Mechanism for simultaneously operating multiple applications on a personal digital assistant implementing a palm operating system
WO2005064463A1 (en) Task scheduling apparatus, method, program, storage medium and transmission medium for prioritized signal handler scheduling
KR100661637B1 (ko) 이동통신 단말기에서 다중 가상머신 구동용 실행 환경 시스템 및 그 실행 방법
Wang et al. A survey of embedded operating system
EP4345622A1 (en) Service process calling method and related device
KR100676671B1 (ko) 유저 쓰레드 관리 장치 및 그 방법
JP2002297402A (ja) デジタル機器、タスク管理方法及びそのプログラム
KR20050105462A (ko) 비동기 통신 기술

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100105

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100402

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100407

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100702

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110405

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110805

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20110810

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20111014

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120409

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120412