(57)【要約】  本発明は、少なくとも１つのプロセッサ（３ａ、３ｂ）と、少なくとも第１のセットのリソースおよび第２のセットのリソースとを備えたシステムでリソースを利用する方法に関する。少なくとも第１のオペレーティングシステム（ＯＳ_Ａ）と第２のオペレーティングシステム（ＯＳ_Ｂ）とが前記少なくとも１つのプロセッサ（３ａ、３ｂ）で処理される。少なくとも一方のオペレーティングシステムがリアルタイムのオペレーティングシステムである。前記第１のセットのリソースは、第１のオペレーティングシステム（ＯＳ_Ａ）のリソース・サービスによって制御されて、第１のオペレーティングシステムで実行され、前記第２のセットのリソースは第２のオペレーティングシステム（ＯＳ_Ｂ）のリソース・サービスによって制御され、第２のオペレーティングシステムで実行される。第２のオペレーティングシステム（ＯＳ_Ｂ）から前記第１のセットのリソースを利用するために、第１のセットの前記リソースに関する情報を含む機能呼出しが第２のオペレーティングシステム（ＯＳ_Ｂ）で行われる。前記機能呼出しに含まれる情報に基づいてサービスコールを行うために、前記機能呼出しは、システムのオペレーティングシステム間に設けられたインタフェースブロック（１６）へ転送され、第１のオペレーティングシステム（ＯＳ_Ａ）のリソース・サービスが開始される。本発明はまた、上記方法が適用されるシステムおよび電子装置、並びに、上記方法を実行するプログラムコマンドを含むコンピュータプログラムにも関する。
2005513644.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのプロセッサ（３ａ、３ｂ）と、少なくとも第１のセットのリソースおよび第２のセットのリソースとを備えたシステムにおいてリソースを利用する方法であり、前記少なくとも１つのプロセッサ（３ａ、３ｂ）で少なくとも第１のオペレーティングシステム（ＯＳ_Ａ）を実行し、前記少なくとも１つのプロセッサ（３ａ、３ｂ）で第２のオペレーティングシステム（ＯＳ_Ｂ）を実行する方法であって、前記オペレーティングシステムのうちの少なくとも一方のオペレーティングシステムはほぼリアルタイムのオペレーティングシステムであり、前記第１のオペレーティングシステム（ＯＳ_Ａ）のリソース・サービスにより前記第１のセットのリソースを制御して、前記第１のオペレーティングシステム（ＯＳ_Ａ）で前記第１のセットのリソースを実行し、さらに、前記第２のオペレーティングシステム（ＯＳ_Ｂ）のリソース・サービスにより前記第２のセットのリソースを制御して、前記第２のオペレーティングシステムで前記第２のセットのリソースを実行する方法において、
前記第２のオペレーティングシステム（ＯＳ_Ｂ）から前記第１のセットのリソースのうちの１つのリソースを利用するために、前記第１のセットの前記リソースに関する情報を含む機能呼出しを前記第２のオペレーティングシステム（ＯＳ_Ｂ）に形成することと、前記システムの前記オペレーティングシステム間に形成されたインタフェースブロック（１６）へ前記機能呼出しを転送し、前記インタフェースブロック（１６）において、前記機能呼出しの中に含まれるデータに基づいてサービスコールを形成して、前記第１のオペレーティングシステム（ＯＳ_Ａ）の前記リソース・サービスを開始することとを特徴とする方法。
【請求項２】
前記第１のオペレーティングシステム（ＯＳ_Ａ）において、前記第１のオペレーティングシステム（ＯＳ_Ａ）の前記プロセス実行のスケジューリングを行うために、第１のスケジューラ（ＳＣＨ_Ａ）を実行し、さらに、前記第２のオペレーティングシステム（ＯＳ_Ｂ）において、前記第２のオペレーティングシステム（ＯＳ_Ｂ）の前記プロセス実行のスケジューリングを行うために、第２のスケジューラ（ＳＣＨ_Ｂ）を実行し、前記第１のスケジューラ（ＳＣＨ_Ａ）により前記サービスコールの実行のスケジューリングが行われたとき、前記サービスコールの実行が開始されることを特徴とする請求項１に記載の方法。
【請求項３】
前記第２のオペレーティングシステム（ＯＳ_Ｂ）で形成された前記機能呼出しを前記インタフェースブロック（１６）へ送信したほぼ直後に、前記第１のオペレーティングシステム（ＯＳ_Ａ）からの前記機能呼出しに対する応答を待機することなく、前記第２のオペレーティングシステム（ＯＳ_Ｂ）のプロセスの前記実行が継続されることを特徴とする請求項１または２に記載の方法。
【請求項４】
開始された前記リソース・サービスが応答を形成し、前記インタフェースブロック（１６）を介して前記第２のオペレーティングシステム（ＯＳ_Ｂ）へ前記応答を転送することを特徴とする請求項１、２または３に記載の方法。
【請求項５】
前記第２のオペレーティングシステム（ＯＳ_Ｂ）で遅延機能呼出しを実行することを前記インタフェースブロック（１６）で決定し、前記遅延機能呼出し時に、前記第２のオペレーティングシステム（ＯＳ_Ｂ）へ応答を転送することを特徴とする請求項４に記載の方法。
【請求項６】
前記オペレーティングシステム（ＯＳ_Ａ、ＯＳ_Ｂ）において、実行段、準備段、または待機段を機能状態として決定する対象プロセスを実行することと、機能状態が前記実行段になっている別のオペレーティングシステムのプロセス時に前記機能呼出しを形成することと、前記第１のオペレーティングシステム（ＯＳ_Ａ）から前記機能呼出しへの応答が待機されている場合、前記機能呼出しを行った前記プロセスを前記待機段でセットすることとを特徴とする請求項１乃至５のいずれか一項に記載の方法。
【請求項７】
開始される前記リソース・サービスに関係なく、前記機能呼出しとして同じ機能呼出しを用いられることを特徴とする請求項１乃至６のいずれか一項に記載の方法。
【請求項８】
前記第１のオペレーティングシステム（ＯＳ_Ａ）から前記第２のセットのリソースを利用するために、前記第１のオペレーティングシステム（ＯＳ_Ａ）で機能呼出しを形成し、前記システムのオペレーティングシステム間に形成された前記インタフェースブロック（１６）へ前記機能呼出しを転送し、前記第２のオペレーティングシステム（ＯＳ_Ｂ）の前記リソース・サービスを開始するためのサービスコールを前記インタフェースブロック（１６）で形成することを特徴とする請求項１乃至７のいずれか一項に記載の方法。
【請求項９】
少なくとも１つのプロセッサ（３ａ、３ｂ）と、少なくとも第１のセットのリソースおよび第２のセットのリソースと、前記少なくとも１つのプロセッサ（３ａ、３ｂ）で少なくとも第１のオペレーティングシステム（ＯＳ_Ａ）を処理する手段（３ａ）と、前記少なくとも１つのプロセッサ（３ａ、３ｂ）で第２のオペレーティングシステム（ＯＳ_Ｂ）を処理する手段（３ａ）とを備えたシステムであって、前記オペレーティングシステム（ＯＳ_Ａ、ＯＳ_Ｂ）のうちの少なくとも一方のオペレーティングシステムはほぼリアルタイムのオペレーティングシステムであり、前記第１のオペレーティングシステムで実行される、前記第１のオペレーティングシステム（ＯＳ_Ａ）のリソース・サービスにより前記第１のセットのリソースを制御する手段と、前記第２のオペレーティングシステムで実行される、前記第２のオペレーティングシステム（ＯＳ_Ｂ）のリソース・サービスにより前記第２のセットのリソースを制御する手段と、を備えたシステムにおいて、
前記オペレーティングシステム間のインタフェースブロック（１６）であって、前記第１のセットの前記リソースに関する情報を含む機能呼出しを前記第２のオペレーティングシステム（ＯＳ_Ｂ）で形成する手段（３ｂ）を備えた前記第２のオペレーティングシステム（ＯＳ_Ｂ）から前記第１のセットのリソースを利用する手段（１６）と、前記機能呼出し内に含まれる情報に基づいて前記第１のオペレーティングシステム（ＯＳ_Ａ）のリソース・サービスを開始するサービスコールを形成する手段（１９）を備えた、前記オペレーティングシステム間の前記インタフェースブロック（１６）へ前記機能呼出しを転送する手段（４ｃ）と、を備えたことを特徴とするシステム。
【請求項１０】
前記第１のオペレーティングシステム（ＯＳ_Ａ）の実行プロセスのスケジューリングを行うための、前記第１のオペレーティングシステム（ＯＳ_Ａ）の第１のスケジューラ（ＳＣＨ_Ａ）を処理する手段（３ａ、４）と、前記第２のオペレーティングシステム（ＯＳ_Ｂ）の実行プロセスのスケジューリングを行うための、前記第２のオペレーティングシステム（ＯＳ_Ｂ）の第２のスケジューラ（ＳＣＨ_Ｂ）を処理する手段（３ｂ、４）と、前記第１のスケジューラ（ＳＣＨ_Ａ）によるスケジューリング後、前記サービスコールの実行を開始する手段（ＩＨ_Ａ）と、を備えたことを特徴とする請求項９に記載のシステム。
【請求項１１】
前記開始されたリソース・サービス時に応答を形成する手段と、前記インタフェースブロック（１６）を介して前記第２のオペレーティングシステム（ＯＳ_Ｂ）へ応答を転送する手段（１７、１８、２０）とを備えたことを特徴とする請求項９または１０に記載のシステム。
【請求項１２】
前記第２のセットのリソースに関する情報を含む機能呼出しを前記第１のオペレーティングシステム（ＯＳ_Ａ）で形成する手段（３ａ）を備えた前記第１のオペレーティングシステム（ＯＳ_Ａ）から前記第２のセットの前記リソースを利用する手段（１６）と、前記システムの前記オペレーティングシステム間に形成された前記インタフェースブロック（１６）であって、前記機能呼出しに含まれる情報に基づいて前記第２のオペレーティングシステム（ＯＳ_Ｂ）のリソース・サービスを開始するために、サービスコールを形成する手段（２０）を備えた前記インタフェースブロック（１６）へ前記機能呼出しを転送する手段（４ｃ）と、を備えたことを特徴とする請求項９、１０または１１に記載のシステム。
【請求項１３】
少なくとも１つのプロセッサ（３ａ、３ｂ）と、少なくとも第１のセットのリソースおよび第２のセットのリソースと、前記少なくとも１つのプロセッサ（３ａ、３ｂ）で少なくとも第１のオペレーティングシステム（ＯＳ_Ａ）を実行する手段（３ａ）と、前記少なくとも１つのプロセッサ（３ａ、３ｂ）で第２のオペレーティングシステム（ＯＳ_Ｂ）を実行する手段（３ａ）とを備えた電子装置（１）であって、前記オペレーティングシステム（ＯＳ_Ａ、ＯＳ_Ｂ）のうちの少なくとも一方のオペレーティングシステムはほぼリアルタイムのオペレーティングシステムであり、前記第１のオペレーティングシステムで実行される、前記第１のオペレーティングシステム（ＯＳ_Ａ）のリソース・サービスにより前記第１のセットのリソースを制御する手段と、前記第２のオペレーティングシステムで実行される、前記第２のオペレーティングシステム（ＯＳ_Ｂ）のリソース・サービスにより前記第２のセットのリソースを制御する手段と、を備えた電子装置（１）において、
前記オペレーティングシステム間のインタフェースブロック（１６）であって、前記第１のセットの前記リソースに関する情報を含む機能呼出しを前記第２のオペレーティングシステム（ＯＳ_Ｂ）で形成する手段（３ｂ）を備えた前記第２のオペレーティングシステム（ＯＳ_Ｂ）から前記第１のセットのリソースを利用する手段（１６）と、前記機能呼出し内に含まれる情報に基づいて前記第１のオペレーティングシステム（ＯＳ_Ａ）のリソース・サービスを開始するサービスコールを形成する手段（１９）を備えた、前記オペレーティングシステム間の前記インタフェースブロック（１６）へ前記機能呼出しを転送する手段（４ｃ）と、を備えたことを特徴とする電子装置（１）。
【請求項１４】
移動局機能を実行する手段（１１）を備えたことを特徴とする請求項１３に記載の電子装置（１）。
【請求項１５】
電子装置（１）の記憶手段（４）に格納することを意図したコンピュータソフトウェアであり、上記コンピュータソフトウェアのプログラムコマンドを実行するコンピュータソフトウェアであって、前記電子装置（１）が、少なくとも１つのプロセッサ（３ａ、３ｂ）と、少なくとも第１のセットのリソースおよび第２のセットのリソースと、前記少なくとも１つのプロセッサ（３ａ、３ｂ）内の少なくとも第１のオペレーティングシステム（ＯＳ_Ａ）を実行する手段（３ａ）と、前記少なくとも１つのプロセッサ（３ａ、３ｂ）で第２のオペレーティングシステム（ＯＳ_Ｂ）を実行する手段（３ａ）とを備え、前記オペレーティングシステム（ＯＳ_Ａ、ＯＳ_Ｂ）のうちの少なくとも一方のオペレーティングシステムはほぼリアルタイムのオペレーティングシステムであり、さらに、前記電子装置（１）が、前記第１のオペレーティングシステムで実行される、前記第１のオペレーティングシステム（ＯＳ_Ａ）のリソース・サービスにより前記第１のセットのリソースを制御する手段と、前記第２のオペレーティングシステムで実行される、前記第２のオペレーティングシステム（ＯＳ_Ｂ）のリソース・サービスにより前記第２のセットのリソースを制御する手段とを備えたコンピュータソフトウェアにおいて、
前記第１のセットの前記リソースに関する情報を含む機能呼出しを前記第２のオペレーティングシステム（ＯＳ_Ｂ）に形成することにより、前記第２のオペレーティングシステム（ＯＳ_Ｂ）から前記第１のセットの前記リソースを利用するプログラムコマンドと、前記システムの動作ブロック間に形成されたインタフェースブロック（１６）へ前記機能呼出しを転送するプログラムコマンドと、前記機能呼出し内に含まれる情報に基づいて前記第１のオペレーティングシステム（ＯＳ_Ａ）の前記リソース・サービスを起動するためにサービスコールを形成するプログラムコマンドと、をさらに含むことを特徴とするコンピュータソフトウェア。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、少なくとも１つのプロセッサと、少なくとも第１のセットのリソースと、第２のセットのリソースとを有するシステムにおいてオペレーティングシステム機能を実行する方法に関し、前記少なくとも１つのプロセッサにおいて少なくとも第１のオペレーティングシステムが実行され、さらに、前記少なくとも１つのプロセッサにおいて第２のオペレーティングシステムが実行される。これらオペレーティングシステムのうちの少なくとも１つのオペレーティングシステムは、ほぼリアルタイムのオペレーティングシステムである。前記第１のセットのリソースは、上記第１のオペレーティングシステムのリソース・サービスにより制御されて、上記第１のオペレーティングシステムで実行される。さらに、前記第２のセットのリソースは、上記第２のオペレーティングシステムのリソース・サービスにより制御されて、上記第２のオペレーティングシステムで実行される。本発明はまた、少なくとも１つのプロセッサと、少なくとも第１のセットのリソースおよび第２のセットのリソースと、前記少なくとも１つのプロセッサにおいて少なくとも第１のオペレーティングシステムを実行する手段と、前記少なくとも１つのプロセッサにおいて第２のオペレーティングシステムを実行する手段と、を備えたシステムにも関する。これらオペレーティングシステムのうちの少なくとも１つのオペレーティングシステムは、ほぼリアルタイムのオペレーティングシステムである。さらに、上記システムは、上記第１のオペレーティングシステムのリソース・サービスを用いて前記第１のセットのリソースを制御して、上記第１のオペレーティングシステムで実行する手段と、上記第２のオペレーティングシステムを用いて前記第２のセットのリソースを制御して、上記第２のオペレーティングシステムで実行する手段とを備える。本発明はまた、少なくとも１つのプロセッサと、少なくとも第１のセットのリソースおよび第２のセットのリソースと、前記少なくとも１つのプロセッサにおいて少なくとも第１のオペレーティングシステムを実行する手段、および、前記少なくとも１つのプロセッサにおいて第２のオペレーティングシステムを実行する手段と、を備える電子装置にも関する。これらオペレーティングシステムのうちの少なくとも１つのオペレーティングシステムは、ほぼリアルタイムのオペレーティングシステムである。さらに、上記電子装置は、上記第１のオペレーティングシステムのリソース・サービスを用いて前記第１のセットのリソースを制御して、第１のオペレーティングシステムで実行する手段、および、上記第２のオペレーティングシステムのリソース・サービスを用いて前記第２のセットのリソースを制御して、上記第２のオペレーティングシステムで実行する手段を備える。さらに、本発明は、電子装置の記憶手段に記憶するようになっているコンピュータソフトウェアであって、コンピュータソフトウェアのプログラムコマンドを実行するコンピュータソフトウェアに関する。上記電子装置は、少なくとも１つのプロセッサと、少なくとも第１のセットのリソースおよび第２のセットのリソースとを備える。上記コンピュータソフトウェアは、リソースを利用するためのプログラムコマンドと、前記少なくとも１つのプロセッサにおいて少なくとも第１のオペレーティングシステムを実行するプログラムコマンドと、前記少なくとも１つのプロセッサにおいて第２のオペレーティングシステムを実行するプログラムコマンドと（これらオペレーティングシステムのうちの少なくとも１つのオペレーティングシステムはほぼリアルタイムのオペレーティングシステムである）、上記第１のオペレーティングシステムのリソース・サービスを用いて前記第１のセットのリソースを制御して、上記第１のオペレーティングシステムを実行するプログラムコマンドと、上記第２のオペレーティングシステムのリソース・サービスを用いて前記第２のセットのリソースを制御して、第２のオペレーティングシステムで実行するプログラムコマンドと、を備える。
【０００２】
上記オペレーティングシステムは、コンピュータなどの装置の動作、並びに、装置で実行するアプリケーション（アプリケーションプログラム）の実行を制御する。このオペレーティングシステムでは、例えば１以上のプロセスでアプリケーションが実行される。個々のプロセスは、ほとんど同時に実行される１または２以上のスレッドから構成されるものであってもよい。アプリケーションが起動されると、オペレーティングシステムは必要なプロセスと、個々のプロセス用の少なくとも１つのスレッド（一次スレッド）とを形成する。プロセスの大部分については、この一次スレッドを形成することで十分である。しかし、上記プロセスがいくつかのスレッドを構成する場合がある。
【０００３】
アプリケーションの個々のプロセスに対して、装置のメモリ空間で別個のアドレス空間が割り当てられる。このアドレス空間は、このプロセスのみによって処理することが可能な１または２以上の範囲から構成される。アプリケーションのプロセスは、これらプロセス固有のアドレス空間外の別のプロセスに対して割り当てられたメモリを直接処理することはできない。
【０００４】
如上のオペレーティングシステムと類似のオペレーティングシステムには、アプリケーションのプロセスとはわずかに異なる、オペレーティングシステムのカーネルプロセスがさらに存在する。カーネルプロセスのスレッドはプロセッサの最高のアクセスレベルで実行される。カーネルプロセスは、少なくとも２つのスレッド、カーネルサーバスレッドとアイドルスレッドとを含むことが望ましい。カーネルサーバスレッドの実行は、オペレーティングシステムの起動と関連して開始され、オペレーティングシステムのカーネルのすべての機能を実行するためには用いられる。このスレッドは最高の優先順位を有する。上記アイドルスレッドは、別のスレッドの実行の準備ができていないときに専ら実行される。
【０００５】
これらのスレッドは独立に実行され、他のスレッドの実行に関する情報を持っていない。スレッドの実行順位のスケジューリングは、プリエンプティブ（pre-emptive）であり、一般的ルールとして、スレッドの実行に割り込んで別のスレッドを実行できるようになっている。
【背景技術】
【０００６】
２つの異なるオペレーティングシステムの実行が可能な装置とシステムが知られている。ある装置によっては、これらのオペレーティングシステムを同時に実行できるものもあり、その場合、例えば、ユーザはオペレーティングシステムを選択して、そのオペレーティングシステム情報を表示することができる。米国特許第４，７４７，０４０号に、ＵＮＩＸ（登録商標）とＭＳ−ＤＯＳ（登録商標）オペレーティングシステムの実行が可能な、１つのこのようなコンピュータについての記載がある。これらの装置では、別のオペレーティングシステムによって制御されているようなリソースであって、一方のオペレーティングシステムにはアクセス権がないリソースが他方のオペレーティングシステムにより妨害されないように保証することが重要となる。これは、例えば、第１のオペレーティングシステムの制御の下で第２のオペレーティングシステムが作動するような構成を行うことで可能であり、その場合、第１のオペレーティングシステムが、第２のオペレーティングシステムにリソースと制御権とを割り当てる。第１のオペレーティングシステムは、第１のオペレーティングシステムのみの利用に割り当てられたリソースに対して第２のオペレーティングシステムがアクセスすることを妨げることもできる。このようなシステムの１例として、ＷＭｗａｒｅ社が開発したＷＭｗａｒｅ（商標）がある。
【０００７】
また、２つのオペレーティングシステムを同一のプロセッサ内で機能するように設定するような装置も知られている。この場合、第１のオペレーティングシステムの処理と、第２のオペレーティングシステムの処理とは、プロセッサ内で交互に行われる。例えば、第１のオペレーティングシステムが、プロセッサの保護モード等で作動し、第２のオペレーティングシステムは、プロセッサのノーマルモードで作動するようにして、リソース保護を実施することができる。プロセッサの保護モードで実行されるオペレーティングシステムはすべてのリソースへのアクセスを行うことになるが、ノーマルモードではアクセス権は制限される。したがって、ノーマルモードで実行されるオペレーティングシステムは、保護モードで使用されるオペレーティングシステムの一定のリソースに影響を与えることはできない。
【０００８】
また、２つの異なるオペレーティングシステムが実装された携帯用電子装置も開発されている。このような電子装置では、一方のオペレーティングシステムは一般にいわゆるリアルタイムオペレーティングシステム（ＲＴＯＳ）であるのに対して、他方のオペレーティングシステムは一般に非リアルタイムオペレーティングシステムである。この非リアルタイムオペレーティングシステムは、例えば、オペレーティングシステムの制御下で実行されるプロセスに対して処理時間を割り当てるスケジューラ等による異なる機能処理スケジューリングを行うことができる。個々のプロセスに割り当てるべき処理時間量を決定する異なる優先順位を異なるプロセスに割り当てることができる。一般に、リアルタイムオペレーティングシステムは大部分プリエンプト（pre-empting）をベースとするものであり、その場合、処理時間を必要とするプロセスにより割込みがセットされ、リアルタイムオペレーティングシステムによってこの割込みが検出され、上記プロセスの実行用としてセットされる。また、リアルタイムオペレーティングシステムでは、一般に、重要度および／または緊急度に応じて優先度の順にプロセスを並べることが可能である。したがって、重要度の少ないすなわち優先順位の低いプロセスに対して、重要度の高いすなわち優先順位の高いプロセスの割込みが可能であるのに対して、優先順位の低いプロセスは優先順位の高いプロセスに対して割り込みを行うことはできず、優先順位の低いこのようなプロセスは優先順位権の高いプロセスがすべてサービスを受けた後に続行される。
【０００９】
図１ａは、原理レベルで、同一装置内での２つのオペレーティングシステムの実現を示すものである。第１のオペレーティングシステムＯＳ_Ａはリアルタイムオペレーティングシステムであリ、第２のオペレーティングシステムＯＳ_Ｂは非リアルタイムオペレーティングシステムである。第１のオペレーティングシステムＯＳ_Ａは、割込みをベースとして作動する。本例では、これらの割込みをさらに３つの異なるカテゴリに分けることが想定されている。その場合、割込み間の重要度の順位は以下のようになる：最も高い優先順位は高速割込み要求（ＦＩＱ）に属し、次に高い優先順位は割込み要求（ＩＲＱ）に属し、最も低い優先順位はソフトウェア割込み要求（ＳＷＩ）に属する。個々の割込み要求に対して、割込みサービスプログラムが実行され、割込みサービス要求がプロセッサに入ると、この割込みサービスプログラムに対してプロセッサの処理が転送される。この割込みサービスプログラムには、割込み要求を引き起こしたイベントにより要求される処置を行うための、または、このような処置を開始するためのプログラムコマンドが含まれる。
【００１０】
さらに、第１のオペレーティングシステムで所望の機能を行うタスクの実行が可能である。実行すべき高い優先順位を持つタスクが存在しないとき、これらのタスクに対して実行時間が割り当てられる。重要度の順にこれらのタスクをセットすることができ、異なるタスクに対して割り当て実行時間を異なるものとすることができる。図１ａの例では、第１のオペレーティングシステムの１つのタスクとして第２のオペレーティングシステムが実現される。その場合、上記タスクが順次実行されると、第２のオペレーティングシステムが実行される。一般に、１つのプロセッサのシステムでは、実行すべき別のタスクや割込みサービスプログラムが存在しないとき、この第２のオペレーティングシステムに最も低い優先順位が割り当てられる。
【００１１】
図１ａの例では、第２のオペレーティングシステムは、この第２のオペレーティングシステムで最も高い優先順位が割り当てられることが望ましい遅延機能呼出し（ＤＦＣ）を備える。これらに加えて、スレッドが第２のオペレーティングシステムで処理される。スレッドは、同じプロセスまたは異なるプロセスの実行時に使用するコマンドシーケンスであってもよい。実行すべき他のプロセスが存在しないとき、ヌルのスレッドが実行される。したがって、本例の場合、ヌルのスレッドは最も低い優先順位を持つことになる。
【００１２】
図１ａでは、上述の異なるユニットが、図で最上部にある高速割込み要求が最も高い優先順位を持つように上から下への優先度の順位でマークされている。第１のオペレーティングシステムの方から見ると、第２のオペレーティングシステムはアイドルタスクの実行オペレーティングシステムである。これに対応して、第２のオペレーティングシステムの方から見ると、第１のオペレーティングシステムは割込みサービスの実行オペレーティングシステムである。
【００１３】
２以上のオペレーティングシステムを備えた従来技術による装置での問題点として、例えば、一方のオペレーティングシステムのプロセスの実行が装置全体の作動を停止させる可能性があることが挙げられる。例えば、時間が決定的な重要性を持つタスクの実行のために第１のオペレーティングシステムがリソースを必要とし、そのようなリソースが、第１のオペレーティングシステムの制御下で作動する第２のオペレーティングシステムによってロックされるという事実に起因して、上記停止が生じることが考えられる。作動停止が生じる別の理由として、第１のオペレーティングシステムに対する、第２のオペレーティングシステムによる第１の呼が、第２の呼によって第１のオペレーティングシステムに要求されるリソースをロックすることが考えられる。
【発明の開示】
【発明が解決しようとする課題】
【００１４】
２以上のオペレーティングシステムを同時に実行することができる改善方法とシステムとを提供することが本発明の目的である。本方法では、個々のオペレーティングシステムは、別のオペレーティングシステムによるリソースの使用をいずれかのオペレーティングシステムが妨げる可能性を伴わずに、他のオペレーティングシステムの少なくとも若干のリソースにアクセスを行うことができるようになる。本発明は、リソースを必要とするオペレーティングシステムが、その必要とするリソースを持つオペレーティングシステムへ機能呼出しを送るという着想に基づくものである。しかし、呼出し側オペレーティングシステムは応答待ち状態のままではなく、その動作を続行する。受信側すなわち呼出しを受けた側のオペレーティングシステムは、機能呼出しで指示された機能を実行し、呼出し側オペレーティングシステムへ応答を送信する。さらに正確に述べると、本発明に準拠する方法は、第２のオペレーティングシステムから第１のセットのリソースを利用するために、第１のセットの前記リソースに関する情報を含む機能呼出しを第２のオペレーティングシステムで行うこと、並びに、システムで形成されるオペレーティングシステム間のインタフェースブロックへ前記機能呼出しを送信し、このインタフェースブロックにおいて、サービスコールを行って、第１のオペレーティングシステムのリソース・サービスを開始することを主たる特徴とするものである。本発明によるシステムは、オペレーティングシステム間のインタフェースブロックと、前記第１のセットのリソースを第２のオペレーティングシステムから利用する手段であって、前記第１のセットの前記リソースに関する情報を含む機能呼出しを前記第２のオペレーティングシステムで行う手段を備えた手段と、前記機能呼出しの中に含まれるデータに基づいて第１のオペレーティングシステムのリソース・サービスを開始するために、サービスコールを行う手段を備えた、上記オペレーティングシステム間に設けられた前記インタフェースブロックへ前記機能呼出しを送信する手段と、を備えたことを主たる特徴とするものである。本発明による電子装置は、オペレーティングシステム間に設けられたインタフェースブロックと、第２のオペレーティングシステムからの前記第１のセットのリソースを利用する手段であり、前記第１のセットの前記リソースに関する情報を含む機能呼出しを前記第２のオペレーティングシステムで行う手段を備えた手段と、前記機能呼出しの中に含まれるデータに基づいて第１のオペレーティングシステムのリソース・サービスを開始するためにサービスコールを行う手段を備えた、上記オペレーティングシステム間の前記インタフェースブロックへ前記機能呼出しを送信する手段と、を備えたことを主たる特徴とするものである。本発明によるコンピュータソフトウェアは、第１のセットの前記リソースに関する情報を含む機能呼出しを第２のオペレーティングシステムで行うことにより、第１のセットの前記リソースを第２のオペレーティングシステムから利用するためのプログラムコマンドと、システムに形成された処理用ブロック間のインタフェースブロックへ前記機能呼出しを送信するためのプログラムコマンドと、前記機能呼出しに含まれる情報に基づいて第１のオペレーティングシステムのリソース・サービスを開始するためにサービスコールを行うためのプログラムコマンドとを含むことを主たる特徴とするものである。
【００１５】
本発明は従来技術の解決方法よりも優れた顕著な利点を示すものである。本発明の方法によって、いくつかのオペレーティングシステムのシステムにおいて、１つのオペレーティングシステムによって制御されるリソースを別のオペレーティングシステムへ提供することが可能となる。本発明による方法では、リソース要求によって、別のオペレーティングシステムによるリソースの利用を妨げる前記リソースのロックを防止することが可能となる。本方法によって、アプリケーションとオペレーティングシステムのさらに単純な開発も可能となる。というのは、オペレーティングシステム間のインタフェースが比較的に単純でコンパクトであるからである。
【００１６】
以下、添付図面を参照しながら本発明についてさらに詳細に説明する。
【発明を実施するための最良の形態】
【００１７】
発明の以下の詳細な説明では、一例として図２の電子装置１を用いることにするが、この装置は、好適には移動局機能などの通信機能２ａ並びにデータ処理機能２ｂを備えたものであることが望ましい。この好ましい実施形態では、電子装置１は２つのプロセッサ３ａ、３ｂを備えるものであるが、本発明がプロセッサ３ａ、３ｂの数が２以外の数電子装置１でも適用可能であることは言うまでもない。さらに、図２は電子装置１のいくつかの機能を示すものであるが、実際の利用時には、詳細な電子装置１の実施構成は本明細書に記載のものとは異なるものであってもよいことは自明のことである。
【００１８】
電子装置１の第１のプロセッサ３ａは主として通信機能２ａの制御を目的とするものであり、第２のプロセッサ３ｂは、主としてデータ処理機能２ｂの実行を目的とするものである。プロセッサ３ａ、３ｂは、オペレーティングシステム機能を実行するマイクロプロセッサ（中央演算処理装置、ＣＰＵ）等を備えることが望ましい。さらに、電子装置１は、例えば、公知の方法の信号処理機能で使用が可能なデジタル信号プロセッサ（ＤＳＰ）などの別のプロセッサを備えるものであってもよい。さらに、電子装置１は、メモリ４ａ、４ｂ、４ｃ、４ｄを備え、これらのメモリのうちの少なくとも一部はプロセッサ３ａ、３ｂの双方に利用可能なメモリ４ｃとして構成される。図２の電子装置１では、個々のプロセッサ３ａ、３ｂは、それ自身の用途のためにだけ割り当てられたメモリ４ａ、４ｂも備えている。このメモリは、プロセッサレジスタ４ｄ、フラッシュメモリ４ｅ、などを備えたものであってもよい。メモリ管理用として、第１のプロセッサ３ａには第１のメモリ管理ユニット５ａが設けられる。これに対応して、第２のプロセッサ３ｂには第２のメモリ管理ユニット５ｂが設けられる。電子装置１は、少なくとも１つのユーザインタフェース６を備え、このユーザインタフェース６は、少なくともディスプレイ７、キーパッド８などのデータ入力手段、イヤホン／スピーカ９とマイク１０などのオーディオ手段を備えることが望ましい。通信機能として、電子装置１には、例えば移動通信ネットワークとの通信用送受信装置１１が設けられる。電子装置１でタイムデータの保持を目的としてリアルタイムクロック（ＲＴＣ）１２が設けられる。タイムデータに加えて、リアルタイムクロック１２は、公知の方法でカレンダ機能を備えるものであってもよい。
【００１９】
必要な場合、通信機能２ａは、加入者識別ユニット２１（加入者識別モジュール、ＳＩＭ；ＵＭＴＳ加入者識別モジュール、ＵＳＩＭ）、またはユーザを識別する対応する手段を備えるものであってもよい。さらに、電子装置１は一般に、例えば、プロセッサ３ａ、３ｂと共に加入者識別ユニット２１、ユーザインタフェース６、および送受信装置１１による通信用接続論理回路２２ａ、２２ｂを備える。
【００２０】
第１のプロセッサ３ａと接続して構成される第１のオペレーティングシステムＯＳ_Ａは主として通信機能の制御を目的とするものである。これに対応して、第２のプロセッサ３ｂと接続して構成される第２のオペレーティングシステムＯＳ_Ｂは、主としてデータ処理機能の利用を目的とするものである。しかし、電子装置１のリソースのいくつかを  双方のオペレーティングシステムが必要とする場合もあるが、それらのリソースを同時に用いることはできない。例えば、電子装置１のユーザインタフェース６、またはその一部が通信機能とデータ処理機能の双方の機能に共通している場合、ユーザインタフェース６のリソース、またはそれらの少なくとも一部がオペレーティングシステムＯＳ_Ａ、ＯＳ_Ｂの双方のＯＳにとって利用可能であることが望ましい。述べておくべき別の例として、リアルタイムクロック１２の機能の利用がある。第１のオペレーティングシステムＯＳ_Ａは、この好ましい実施形態では、大部分の動作が割込みに基づいて行われるリアルタイムオペレーティングシステムである。第１のオペレーティングシステムＯＳ_Ａの目的は通信プロトコルなどの時間が決定的に重要性を持つタスクなどの実行を処理することである。第２のオペレーティングシステムＯＳ_Ｂは、本例では非リアルタイムオペレーティングシステムであるが、第２のオペレーティングシステムＯＳ_Ｂが、リアルタイムオペレーティングシステムであってもよいことは言うまでもない。第２のオペレーティングシステムＯＳ_Ｂの目的は、好適には、ユーザインタフェース６のリソースの制御などの、ユーザに対して表示されるタスクの実行を処理することである。さらに、個々のオペレーティングシステムＯＳ_Ａ、ＯＳ_Ｂは電子装置１の機器の一部に対する制御を行う。
【００２１】
図３は、本発明の好適な実施形態による電子装置１での異なる機能に対するメモリリソースの割当てを示す。メモリは、第１のメモリ領域４ａ、第２のメモリ領域４ｂ、および共通メモリ領域４ｃに分けられる。第１のメモリ領域４ａは、第１のプロセッサ３ａで実行される第１のオペレーティングシステムＯＳ_Ａにより利用可能である。第２のメモリ領域４ｂは、第２のプロセッサ３ｂで実行される第２のオペレーティングシステムＯＳ_Ｂにより利用可能である。共通メモリ領域４ｃはオペレーティングシステムＯＳ_Ａ、ＯＳ_Ｂの双方のＯＳにより処理することができる。この実施形態では、上述の部分へのメモリの分割は別々のメモリによって実行されるが、他の方法で実行することも可能である。プロセッサ３ａ、３ｂに対しては、プロセッサ３ａ、３ｂおよび電子装置１の別の機能ブロックをブートするために、プロセッサ３ａ、３ｂのブートと関連して実行される記憶済みプログラムコードを含むブートセクタ１３ａ、１３ｂが、対応するメモリ領域４ａ、４ｂに設けられる。これらの起動プログラムコードの保存も、これらのコードが共通メモリ領域４ｃに格納されるように構成される。あるいは第２のオペレーティングシステムの起動プログラムコードのみが共通メモリ領域４ｃに格納されるように構成される。記憶空間１４ａ、１４ｂは、異なるリソースの利用に必要なプログラムコード（デバイスドライバなど）の保存用としてメモリ領域で割り当てられる。これらのプログラムコードは、電子装置１の製造と関連するメモリに格納されたものであってもよい。あるいはこれらのプログラムコードは、ハードディスク（図示せず）、フラッシュメモリ等からのブートと関連してランダムアクセスメモリ内にロードされたものであってもよい。さらに、メモリ領域１５ａ、１５ｂは、アプリケーションのプログラムコードのロードおよび格納用メモリ４内に予約されて、電子装置１の使用中に実行される。
【００２２】
本発明の好ましい実施形態による電子装置１内でのオペレーティングシステム間の通信を構成するために、以下の本解説で示すようにオペレーティングシステムＯＳ_Ａ、ＯＳ_Ｂの双方のＯＳから処理することが可能なメモリ領域４ｃが形成される。
【００２３】
メモリ領域への如上の分割は、好適な利点を示す例であるのに対して、本発明と関連して別の種類の分割も利用できることは言うまでもない。また、オペレーティングシステムＯＳ_Ａ、ＯＳ_Ｂの双方のＯＳを実行するために同一のプロセッサを用いるこのような電子装置１では、複数の領域にメモリを分割することが可能である。これら複数の領域のうちのいくつかの領域は、１つのオペレーティングシステムによってのみ使用され、いくつかの領域は、双方のオペレーティングシステムにより使用することが可能である。
【００２４】
以下、本発明の好ましい実施形態による、図２の電子装置内での本方法の動作について、図４を参照しながらさらに詳細に説明する。図４は、同一の電子装置１における２つのオペレーティングシステムＯＳ_Ａ、ＯＳ_Ｂを実行するための、２つのオペレーティングシステムの原則レベルでの解決方法を示すものである。電子装置１の第１のオペレーティングシステムＯＳ_Ａには、非同期機能呼出しによってオペレーティングシステムＯＳ_Ａ、ＯＳ_Ｂ間の通信時に用いられるインタフェースブロック１６が設けられる。このインタフェースブロック１６は、例えば、第１のインタフェース１７、第２のインタフェース１８、第１の変換ブロック１９、および第２の変換ブロック２０を備える。第１のインタフェース１７の機能は、第１の変換ブロック１９の中を通って、第１のオペレーティングシステムＯＳ_Ａのリソースへ到来してくる機能呼出しを実行し、機能の実行後第２の変換ブロック２０へその応答を送信することである。これに対応して、第２のインタフェース１８の機能は、第２のオペレーティングシステムＯＳ_Ｂとインタフェースブロック１６間での通信手順を実行することである。これは、第１のインタフェース１７と第２のインタフェース１８とが第１のオペレーティングシステムＯＳ_Ａと第２のオペレーティングシステムＯＳ_Ｂの双方のＯＳに対して、種々のサービスを提供するように好適に構成される。例えば、第２のオペレーティングシステムＯＳ_Ｂが、第１のオペレーティングシステムＯＳ_Ａに配置されているリソースを利用する必要があるとき、第２のオペレーティングシステムＯＳ_Ｂは第２のインタフェース１８を呼び出すことになる。この後、この呼出しは、第１の変換ブロック１９を用いることにより第１のインタフェース１７へ転送される。次いで、第１のインタフェース１７は、第１のオペレーティングシステムＯＳ_Ａのリソースを用いることにより要求されたサービスを提供し、第２の変換ブロック２０と第２のインタフェースサービス１８とを用いることにより第２のオペレーティングシステムＯＳ_Ｂへ応答を送信することになる。
【００２５】
本発明の好適な実施形態では、使用するオペレーティングシステムＯＳ_Ａ、ＯＳ_Ｂは多重処理オペレーティングシステムである。多重処理オペレーティングシステムでは、いくつかのアプリケーションプログラムを同時に実行することが可能である。しかし、実際には、プロセッサ３ａ、３ｂが多重処理属性を持つプロセッサである場合か、同じオペレーティングシステムの処理に利用される複数のプロセッサが２以上ある場合かを除いて、多重処理オペレーティングシステムは一度に１つのプロセスを実行するものである。オペレーティングシステムのスケジューラは、どのアプリケーションプログラムまたはプロセスがその時点で実行されているかのチェックを規則的な間隔で行うものである。このスケジューラはタイマ割込みなどにより起動される。さらに、個々のアプリケーションプログラムは１または２以上のスレッドを含むものであってもよい。その場合個々のスレッドは異なる時点で処理される。例えば、１つのスレッドは、キーストロークの読出しなどの機能ブロックでデータの読出しを行うものであってもよいし、別のスレッドは、例えば、読出し済みデータの処理を行うものであり、さらに第３のスレッドは、例えば、ディスプレイ上などでの機能ブロックにおける処理済みデータの書込みを行うものであってもよい。このアプリケーションプログラムが起動されると、スケジューラは、個々のスレッドに対する実行時間およびスレッドを実行する反復間隔を決定する。したがって、スケジューラは、スレッドの実行を開始し、次いで、実行時間の終了後、スレッドを遅らせて、待機し、必要に応じてスレッドのデータをメモリ内に格納し、同じプロセスや別のプロセスに属するものであってもよい次のスレッドの実行を開始する。スケジューラがすべてのスレッドを処理した後、スケジューラは実行を再開し、スレッドの実行間隔が時間切れになっていなければ、いわゆるアイドルスレッドが実行される。しかし、上述のスレッドの実行時間中に、到来割込み要求が行われる場合がある。その場合これらの割込み要求の優先度に基づいて、オペレーティングシステムは割込みサービスプログラムの実行へ進む可能性がある。あるいはスケジューラは、割込みサービスの実行に適した時点を決定し、終了していないスレッドの実行を続行する。例えば、キーストロークに起因する割込み状況では、キーパッド割込みプログラムが、押されたキーのコードを読み出し、一時メモリ位置にそのコードを格納する。割込みサービスプログラムの終了後、オペレーティングシステムのスケジューラは、キーストロークをチェックするプログラムを実行する時点を決定し、キーストローク割込みに割り当てられた優先順位が終了していないプログラムスレッドの優先順位を上回らなければ、該スケジューラは割込まれたプログラムスレッドへ戻る。
【００２６】
オペレーティングシステムの方から見ると、このプロセスは常に３状態のうちの１つの状態、すなわち準備状態、実行状態、または待機状態のうちの１つの状態となる。実行状態にはその時点に実行されているプロセスが含まれる。準備状態は、実行のための待機プロセスを含む。実行状態で実行するために、準備状態のプロセスのうちの１つを選択することがスケジューラの機能である。待機状態には、イベントを待機しているようなプロセス、例えば、機能呼出しに対する応答の受信、キーストローク、リソースの解除、などが含まれる。
【００２７】
スケジューラは、最も高い優先順位を持つプロセスを準備状態から実行状態へ移動させる。実行状態から、プロセスは、それ自身の要求時に、例えば、待機を含む実施構成を伴うオペレーティングシステムサービスの要求時に、一般に待機状態へ移ることになる。待機状態から準備状態への転送はこの待機の終了時に行われる。上記プロセスは、スケジューラが、割込み処理の終了時などに実行される別のプロセスを変更するような状況時に、実行状態から準備状態へシフトされるものであってもよい。
【００２８】
添付の図１ｂはオペレーティングシステムの層構造の１例を示す。最も低いレベルはオペレーティングシステムのカーネルであり、次のレベルにはメモリ管理に関連するエレメントが含まれる。また第３のレベルにはファイルシステムエレメントが含まれる。これら３つのレベルの上にコマンドインタプリタ、複数のプロセス（図示せず）、インタフェースソフトウェア、スケジューラ機能、などが置かれる。さらに、図１ｃは、原理図の形で、スケジューラＳＣＨ_Ａ、ＳＣＨ_Ｂおよび割込みプロセッサＩＨ_Ａの制御の下にある２つのオペレーティングシステムのスレッドＴＨＡ１、ＴＨＡ２、ＴＨＢ１、ＴＨＢ２、ＳＣＨ_ＩＤＬＥの処理を示す。第１のオペレーティングシステムの側では、第１のスレッドＴＨＡ１と第２のスレッドＴＨＡ２とは、２つの異なるアプリケーションプログラムの処理に必要な一次スレッドなどである。これに対応して、第２のオペレーティングシステムの側では、第１のスレッドＴＨＢ１と第２のスレッドＴＨＢ２とは、例えば、２つの異なるアプリケーションプログラムの実行に必要な一次スレッドとなる。しかし、これらのスレッドが同じアプリケーションにおける異なるプロセスのスレッドであってもよいこと、あるいは、同じプロセスのスレッドであってもよいことは言うまでもない。さらに、第２のオペレーティングシステムＯＳ_Ｂの側では、アイドルスレッドＴＨＢ_ＩＤＬＥが示されている。矢印は、割込みまたはタイミングに基づくことが可能な異なるタスク間での転送を示す。
【００２９】
カーネルの動作の最も重要なエレメントは、割込み処理と、プロセスの管理と、周辺機器の制御とから構成される。割込み処理を行う機能には、例えば、割り込まれたプログラムのデータの格納と、正しい割込みサービスプログラムへの、実行の送信とが含まれる。プロセス管理は、プロセスの形成、実行時間のスケジューリング、プロセス処理の終了、タイミング、などの役割を果たすものである。周辺機器の制御機能には、通信の起動と、個々の周辺装置に関連する１または２以上の割込み処理などが含まれる。
【００３０】
一般に、カーネルの実施構成には、多数の動的データ構造、代表的には、オペレーティングシステム領域の未使用メモリ空間から割り当てられたエレメントを持つ双方向連鎖リストが含まれる。例えば、個々のプロセスのデータはプロセス制御ブロック（ＰＣＢ）に保持することが望ましい。これらのプロセス制御ブロックはプロセステーブル内に集められ、このプロセステーブルのサイズによって、システムにおけるプロセス数の上限がセットされる。好適な例では、プロセス制御ブロックにおいて以下のデータなどを得ることができる：
−    プロセスの状態：待機、準備、または実行
−    プロセスの名称
−    プロセスの優先順位
−    割り込まれたプロセス（環境）に関するデータ格納用の空間（スタック）
−    割り当てられたリソースに関するデータ：メモリ、装置、開いているデータファイル、など
−    プロセスのスケジューリングのモニタに関連するフィールド
−    アクセス権に関連するフィールド
【００３１】
上記はプロセス制御ブロックの実施構成の１例にすぎないことを付記しておく。しかし実際のアプリケーションでは、これらは大幅に変動するものであってもよい。また、プロセス制御ブロック内のデータは非常に異なるものであってもよい。
【００３２】
プロセス識別子としては、例えばシリアル番号などのプロセスの名称がある。このプロセスの名称に基づいて、オペレーティングシステムは異なるプロセスを互いに識別する。上記プロセスが２以上のスレッドを含む場合、プロセス識別子、またはプロセス制御ブロック内の別のフィールドは、上記スレッド番号のデータを含むものであってもよい。状態フィールド等がプロセスの状態を示すために使用される。したがって、プロセスの状態が変化すると、オペレーティングシステムはこの状態フィールドの値を変えることになる。プロセスの実行順位を決定するために、スケジューラは優先順位フィールドの値を利用する。その場合、例えば、このフィールドに含まれる数値が大きければ大きいほど、プロセス優先順位は高くなる。したがって、待機状態でのプロセスの優先順位フィールドの値を比較することにより、スケジューラは、次に実行するプロセスとして、最も高い優先順位の値を持つプロセスを選択することになる。
【００３３】
次に、新しいプロセスの形成について説明する。プロセスは、例えば書込み可能な大容量記憶装置内などの、装置の記憶手段内のデータファイルに格納されているものと仮定する。このプログラムはデータファイル名に基づいて特定される。オペレーティングシステムのカーネルには、プロセスを開始するサービスルーチンが含まれる。このサービスルーチンに対して上記データファイル名をパラメータとして示すことが望ましい。この起動サービスルーチンは、上記プロセスに対するプロセス制御ブロックをプロセステーブル内に形成し、上記プロセスにメモリ領域を割り当てる。上記データファイルの内容は、上記割り当てられたメモリ領域内へ読み出され、プロセス制御ブロックのフィールドが適切な値で初期化され、その後、プロセスを実行待機状態にセットすることができる。プロセス識別子として、空いている次のプロセス識別子などの使用が可能である。プロセスの状態として、準備値をセットすることが望ましい。そのスケジューリングの実施に従ってこれらのプロセスを実行できるようにオペレーティングシステムのスケジューラによって上記プロセスの制御が行われる。
【００３４】
プロセスがスレッドの形で実行されるオペレーティングシステムでは、起動サービスルーチンがプロセスの１または２以上のスレッドを形成し、次いで、プロセステーブル内のスレッド用プロセス制御ブロックを形成するように適宜如上のプロセスの作成を適用することが可能である。
【００３５】
これらのオペレーティングシステムには、周辺機器を制御するためのさらに別の非常に重要な事実いわゆるデバイスドライバが含まれる。デバイスドライバには、ディスプレイ７、キーパッド８、コーデックなどのような周辺機器の制御に必要なルーチンとデータ構造が含まれる。上記必要なルーチンには、装置と、読出し／書込みと、表示特性の設定などの制御処理ルーチンと、装置に関連する割込みを処理するルーチンとの初期化用測定値が含まれる。例えば、個々の装置に関連する装置記述子の形で装置に関連する変数並びにデータ構造の収集を行うことが可能である。このデータは例えば、以下のものを含むものであってもよい：
−    装置への順番待ちをしている転送要求パラメータブロックを連結する作業順序。読出しと書込みとを同時に行うことが可能であれば、２つの作業順序を設けることが可能となる。パラメータブロックには、バッファの記憶位置、転送対象ブロックの数などに関するデータなどの転送要求パラメータが含まれる。
−    デバイスドライバルーチンのアドレス
−    転送の制御に必要な変数および装置状態データ
−    装置固有パラメータ
【００３６】
いくつかのシステムでは、デバイスドライバはオペレーティングシステムのプロセスである。このプロセスは、無限ループで作動し、このループでまず転送要求メッセージを待機する。このようなメッセージを受け取った後、デバイスドライバのプロセスが転送を開始し、そのまま割込みメッセージの待機状態となる。オペレーティングシステムの割込みプロセッサはデバイスドライバプロセスへの割込みメッセージの転送を処理する。実際の装置では、デバイスドライバプロセスは一般に高い優先順位を持ち、オペレーティングシステムのカーネルがリアルタイムで作動する。
【００３７】
複数のオペレーティングシステムでは、利用可能なメッセージ送信メカニズムが設けられ、これにより、プロセスは相互にメッセージの送信を行うことが可能となる。メッセージキューを用いる場合、これらのプロセスには１または２以上のメッセージキューが含まれ、これらのメッセージキューの中にプロセスへの送信対象メッセージを書き込むことが可能である。プロセス間の通信には一般に、メッセージの送り手がメッセージを受け取る受け手を必要としないバッファ動作が含まれる。したがって、メッセージの書込み段で、データ（状態変数）がセットされて、待機プロセスへのメッセージが存在するようになり、その場合、このプロセスは適切な段でメッセージを読み出すことになる。
【００３８】
第１のオペレーティングシステムＯＳ_ＡのスレッドＴＨＡ１、ＴＨＡ２には、例えば、電子装置１の設計段階で優先順位が割り当てられる。この優先順位を用いて、実行順位と、非常に重要なスレッドの応答時間とに影響を与えるようにすることが可能となる。第１のオペレーティングシステムのスケジューラＳＣＨ_Ａは、実行ルーチンで、第１に実行すべき時点で最も高い優先順位を持つスレッドのスケジューリングを行う。実際のシステムでは、これは、本発明の好ましい実施形態に準拠する電子装置１の第１のプロセッサ３ａが、プロセッサ３ａにプログラムコマンドを実装して、第１のオペレーティングシステムＯＳ_Ａのスケジューラ機能を実行することを意味する。スレッドＴＨＡ１、ＴＨＡ２の実行時に、システムのプロセッサ３ａはスレッド内のプログラムされたプログラムコマンドに従って処理を実行する。
【００３９】
第２のプロセッサ３ｂは、優先順位に基づいて第２のオペレーティングシステムＯＳ_Ｂのスケジューラ機能ＳＣＨ_Ｂを実行し、スレッドのスケジューリングの実施は、第２のオペレーティングシステムのＯＳ_Ｂで実行される。第１のステップは、もし何らかの遅延機能呼出し（ＤＦＣ）が存在すれば、遅延機能呼出し（ＤＦＣ）を実行し、好適には優先度の順位でスレッドＴＨＢ１、ＴＨＢ２の実行が後続するステップである。実行対象スレッドの実行後、実行状態のスレッドが存在しない場合、別の実行サイクルを実行する必要が生じるまで、第２のプロセッサ３ｂが、第２のオペレーティングシステムＯＳ_ＢのアイドルスレッドＴＨＢ_ＩＤＬＥへシフトすることになる。
【００４０】
第２のオペレーティングシステムＯＳ_Ｂの下で作動するプロセスが、第１のオペレーティングシステムＯＳ_Ａにより制御されるリソースを使用する必要がある状況では、本発明の好ましい実施形態に応じて以下のステップが行われる。この状況では図１ｃ並びに図４を参照する。リソースを必要とするプロセスＴＨＢ２は、機能呼出しを生成して必要に応じてリソースに関連するパラメータのセットを行う。この機能呼出しは図１ｃに矢印１０１により示されている。この機能呼出しは、常にほぼ同じタイプ（同一機能）のものであることが望ましいが、さらに詳細に所望のリソースを示すために、また、リソースを利用するのに必要な別の情報を示すために、上記パラメータが使用される。さらに、呼出しプロセスによって、遅延機能呼出し（ＤＦＣ）または対応する構造が好適に生成され、それらのデータはインタフェースブロック１６へ機能呼出しの形で送信される。
【００４１】
例えば、第２のオペレーティングシステムＯＳ_Ｂのリアルタイムのクロックアプリケーションによって、第１のオペレーティングシステムＯＳ_Ａにより制御される通信手段からリアルタイムクロックの同期情報が検索される。この同期データは、例えば、移動通信ネットワークを介して受信された時間情報に基づいて形成されたものである。機能呼出しのパラメータは当該メモリ領域のアドレスとしてセットされ、このメモリ領域で、返信されたデータが第１のオペレーティングシステムＯＳ_Ａ側に書き込まれる。機能呼出しと関連して、呼び出されたリソースへ情報を送信する必要が生じた場合、この情報はいわゆるメッセージバッファに格納することが可能であり、このバッファのアドレスは機能呼出しのパラメータの形で送信される。また、応答に対しては、上記のように機能呼出しと関連して送信されたアドレスを持つメッセージバッファを割り当てることが可能である。上記機能呼出しとパラメータとはインタフェースブロック１６へ送信される。インタフェースブロック１６では、機能呼出しとパラメータとが第２のインタフェース１８（図４）を介して第１の変換ブロック１９へ送信され、この送信によって必要な変更が行われ、好適には、要求されたリソースを制御するサービスを開始するサービスコールが行われて、応答段で利用される必要データが格納される。受信された機能呼出しから、第１の変換ブロック１９は、どのリソースを必要とするかを判定するためにパラメータのチェックを行う。さらに、必要に応じて、第１の変換ブロック１９は、送信バッファに格納された情報を読み出し、呼出し対象リソースへこの情報を転送する。当該リソースが第１の変換ブロック１９で決定された後、第１のオペレーティングシステムＯＳ_Ａのメッセージ構造に準拠するメッセージが好適に形成され、第１のオペレーティングシステムのメッセージ送信メカニズムによって第１のインタフェース１７へ上記メッセージが送信される。必要に応じて、第１のインタフェース１７は、第１のインタフェース１７が実行時間の間待機している（矢印１０２）旨を第１のオペレーティングシステムのスケジューラＳＣＨ_Ａに知らせる。
【００４２】
第１のインタフェース１７はこのインタフェース固有のプロセスを有し、このプロセスにより第１のオペレーティングシステムＯＳ_Ａの他のプロセスと交信することが可能である。第１のインタフェース１７が順次実行される段階で、第１のインタフェース１７宛ての新たなまたは未処理のメッセージが存在するかどうかのチェックが行われる。そのようなメッセージが存在すれば、そのメッセージのチェックが行われる。このメッセージで送信されるパラメータに基づいて、第１のインタフェース１７は実行すべき対象リソースを決定する。したがって、第１のインタフェース１７は、メッセージと共に受信された可能なパラメータをこのリソースを制御するサービスへ送信する。
【００４３】
上記サービスは、例えば、プログラム割込みによって起動可能なサービスであってもよい。したがって、プログラム割込み１０３が入ってくると、プログラム割込みハンドラＩＨ_Ａは当該割込みに対応するサービス１０４を開始する。図１ｃの例示状況では、割込み処理時間の間プログラム割込みがスレッドＴＨＡ２の実行に割り込んでいる。サービスが、要求された機能を実行した後、第１のインタフェース１７（矢印１０６）へ応答が送信される。サービスの実行は好適に終了する（１０５）。
【００４４】
第１のインタフェース１７が順次再実行された（１０７）段階で、呼び出されたリソースを制御するサービスが応答を行ったかどうかがチェックされる。この応答が行われた後、応答は、第１のオペレーティングシステムＯＳ_Ａのメッセージ送信メカニズムによって第２の変換ブロック２０へ好適に送信される。リソース要求の送信と関連して格納されたデータを利用して、例えば、応答を行うために、並びに、生じる可能性のあるメッセージバッファのアドレスを与えるために利用される遅延機能呼出しを発見することができる。応答と共に受信されたデータは、メッセージバッファに格納され、第２のオペレーティングシステムＯＳ_Ｂのプロセステーブル内に遅延機能呼出しが追加される（矢印１０８）。したがって、第２のオペレーティングシステムのスケジューラＳＣＨ_Ｂがこの遅延機能呼出しに処理時間を割り当てる（矢印１０９）段階で、該遅延機能呼出しは常に実行され、その場合、遅延機能呼出しは呼び出されプロセスへ応答を送信する（矢印１１１）。このプロセスは、本例では第２のオペレーティングシステムのスレッドＴＨＢ２である。この後、遅延機能呼出し（ＤＦＣ）の処理を終了することができる（矢印１１０）。
【００４５】
例えば、機能呼出しが行われた段階またはプロセスを継続できる段階で、呼出しプロセスのセットを待機状態で行うことができる。その場合、応答の受信がプロセスに通知される。例えば、プロセスがディスプレイの制御プロセスであれば、このプロセスは割り込まれることはなく、ディスプレイ７上での情報の更新が通常の方法で継続される。応答の受信後、前記応答はディスプレイ７に表示される。
【００４６】
前記リアルタイムクロックの例では、リアルタイムクロックのデバイスドライバなどの要求を送信するサービスは、応答用のメモリ４内にメッセージバッファを割り当て、遅延機能呼出しを形成する。所望のリソースと、メッセージバッファと、遅延機能呼出しとに関する情報はインタフェースブロックへ送信される。第１のインタフェース１７は、リアルタイムクロックの同期情報を処理するサービスと交信し、例えば、移動通信ネットワークを介して受信されたタイムデータと、電子装置のリアルタイムクロックとの間の時間差を格納する。この時間差データは第２の変換ブロック２０へ転送され、この第２の変換ブロックで、上記データはメッセージバッファに格納され、遅延機能呼出しがプロセステーブル内に含まれる。遅延機能呼出しでは、メッセージバッファに格納されたデータが読み出され、リアルタイムクロックのデバイスドライバへ転送される。リアルタイムクロックのデバイスドライバは、以前受信した時間差データを今受信した時間差データと比較することが可能となる。その場合、時間差データの変化に基づいて、リアルタイムクロックのデバイスドライバはリアルタイムクロック１２の処理の微調整を行うことが可能となる。
【００４７】
移動局機能２ａとデータ処理機能２ｂとを備えた、本発明の好ましい実施形態に準拠する電子装置１では、１つのオペレーティングシステムによって制御され、かつ、オペレーティングシステムＯＳ_Ａ、ＯＳ_Ｂの双方が必要とするいくつかの上記のようなリソースが設けられる。本明細書に記載した第１のオペレーティングシステムＯＳ_Ａにより制御されるリソースのいくつかの例であって、本発明を限定するものではない例には、固定記憶装置５ａの管理と、起動／終了指示と、デジタル信号処理ユニットＤＳＰの作動（リアルタイムクロック１２の同期データの上述の格納などの）とを含むものもある。本明細書に記載した第２のオペレーティングシステムＯＳ_Ｂにより制御されるリソースのいくつかの例であって、本発明を限定するものではない例には、ユーザインタフェース６に関連する処理と、リアルタイムクロック１２の制御などのタイムサービスと、いくつかのレジスタ４ｄの処理と、フラッシュメモリ４ｅのモード変更とを含むものもある。
【００４８】
第２のオペレーティングシステムＯＳ_Ｂにより制御されるリソースを第１のオペレーティングシステムＯＳ_Ａから利用するために如上の原理を適用することが可能である。例えば、移動通信手段を介して呼が入ってくる状況では、電子装置のディスプレイ７に表示される通知によりこの呼を示すことができる。本発明の好適な実施形態による電子装置１では、例えば、以下のようにしてこれを実現することができる。移動通信手段１１が、移動通信ネットワークから着呼に関する情報を受信した後、第１のオペレーティングシステムＯＳ_Ａのメッセージ構造に従うメッセージが移動通信手段の作動を制御するプロセスのスレッドで形成される。このメッセージは第１のインタフェース１７へ転送される。第１のオペレーティングシステムＯＳ_Ａのスケジューラが、第１のインタフェースのスレッドに実行時間を割り当てる段階で、受信メッセージのチェックが行われ、メッセージのデータは第２の変換ブロック２０へ転送される。この第２の変換ブロック２０では、ディスプレイ７を制御するデバイスドライバへメッセージに含まれる情報を送信するために遅延機能呼出し（ＤＦＣ）が行われる。第２の変換ブロック２０が遅延機能呼出し時に必要な情報を形成した後、第２の変換ブロック２０が第２のオペレーティングシステムのプロセステーブル内に遅延機能呼出しを追加する。この後、遅延機能呼出しは、第２のオペレーティングシステムＯＳ_ＢのスケジューラＳＣＨ_Ｂにより制御されて、第２のオペレーティングシステムのスケジューリングに従って処理される。第１のオペレーティングシステムでメッセージを送信したプロセスは、メッセージのさらなる処理ステップの処理待ち状態のままである必要はなく、上記プロセスはそれ自身の作動を続行することが可能である。
【００４９】
本発明によるメッセージの異なるステップは、１または２以上のプロセッサ３ａ、３ｂのアプリケーションソフトウェアで大部分実現可能である。
【００５０】
本発明の方法は、電子装置１の機能を高めるために、補助カード等を電子装置１と接続できるようなシステムにおいても適用可能である。例えば、補助カードは携帯用コンピュータと接続可能である。したがって、無線用カードを携帯用コンピュータと接続することにより、携帯用コンピュータと無線通信ネットワーク間で情報を送信するための無線用カードの無線通信プロパティの利用が可能となる。本例のアプリケーションでは、第１のオペレーティングシステムＯＳ_Ａは、補助カードで実行されるオペレーティングシステムであることが望ましく、第２のオペレーティングシステムＯＳ_Ｂは、携帯用コンピュータで実行されるオペレーティングシステムである。
【００５１】
本発明が、如上の実施形態のみに限定されるものではなく、添付の請求項の範囲内で変更が可能であることは言うまでもない。少なくとも２つのオペレーティングシステムの機能を実行するように構成された１つのプロセッサと関連して本発明を適用することも可能である。
【図面の簡単な説明】
【００５２】
【図１ａ】同一装置内に２つのオペレーティングシステムを実現する解決方法を原理レベルで示す。
【図１ｂ】オペレーティングシステムの層構造の１例を示す。
【図１ｃ】スケジューラと割込みプロセッサの制御下での２つのオペレーティングシステムのタスクの実行を原理図の形で示す。
【図２】本発明の好ましい実施形態による電子装置を簡略なブロック図で示す。
【図３】本発明の好適な実施形態による電子装置内における、異なる機能に対するメモリリソースの割当てを示す。
【図４】本発明の好ましい実施形態によるインタフェースの実施構成を簡略に示す。
【図１ａ】
2005513644.tif 000003
【図１ｂ】
2005513644.tif 000004
【図１ｃ】
2005513644.tif 000005
【図２】
2005513644.tif 000006
【図３】
2005513644.tif 000007
【図４】
2005513644.tif 000008
【手続補正書】
【提出日】平成15年12月2日(2003.12.2)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
少なくとも１つのプロセッサ（３ａ、３ｂ）と、少なくとも第１のセットのリソースおよび第２のセットのリソースとを備えたシステムにおいてリソースを利用する方法であり、前記少なくとも１つのプロセッサ（３ａ、３ｂ）で少なくとも第１のオペレーティングシステム（ＯＳ_Ａ）を実行し、前記少なくとも１つのプロセッサ（３ａ、３ｂ）で第２のオペレーティングシステム（ＯＳ_Ｂ）を実行する方法であって、前記第１のオペレーティングシステム（ＯＳ_Ａ）のリソース・サービスにより前記第１のセットのリソースを制御して、前記第１のオペレーティングシステム（ＯＳ_Ａ）で前記第１のセットのリソースを実行し、さらに、前記第２のオペレーティングシステム（ＯＳ_Ｂ）のリソース・サービスにより前記第２のセットのリソースを制御して、前記第２のオペレーティングシステムで前記第２のセットのリソースを実行し、前記第２のオペレーティングシステム（ＯＳ_Ｂ）から前記第１のセットのリソースのうちの１つのリソースを利用するために、前記第１のセットの前記リソースに関する情報を含む機能呼出しを前記第２のオペレーティングシステム（ＯＳ_Ｂ）に形成し、前記システムの前記オペレーティングシステム間に形成されたインタフェースブロック（１６）へ前記機能呼出しを転送し、前記インタフェースブロック（１６）において、前記機能呼出しの中に含まれるデータに基づいてサービスコールを形成して、前記第１のオペレーティングシステム（ＯＳ_Ａ）の前記リソース・サービスを開始する方法において、
前記第１のオペレーティングシステム（ＯＳ_Ａ）の前記プロセス実行のスケジューリングを行うために、第１のスケジューラ（ＳＣＨ_Ａ）を実行し、さらに、前記第２のオペレーティングシステム（ＯＳ_Ｂ）において、前記第２のオペレーティングシステム（ＯＳ_Ｂ）の前記プロセス実行のスケジューリングを行うために、第２のスケジューラ（ＳＣＨ_Ｂ）を実行し、前記第１のスケジューラ（ＳＣＨ_Ａ）により前記サービスコールの実行のスケジューリングが行われたとき、前記サービスコールの実行が開始されることを特徴とする方法。
【請求項２】
少なくとも一方のオペレーティングシステムがほぼリアルタイムのオペレーティングシステムであることを特徴とする請求項１に記載の方法。
【請求項３】
前記第２のオペレーティングシステム（ＯＳ_Ｂ）で形成された前記機能呼出しを前記インタフェースブロック（１６）へ送信したほぼ直後に、前記第１のオペレーティングシステム（ＯＳ_Ａ）からの前記機能呼出しに対する応答を待機することなく、前記第２のオペレーティングシステム（ＯＳ_Ｂ）のプロセスの前記実行が継続されることを特徴とする請求項１または２に記載の方法。
【請求項４】
開始された前記リソース・サービスが応答を形成し、前記インタフェースブロック（１６）を介して前記第２のオペレーティングシステム（ＯＳ_Ｂ）へ前記応答を転送することを特徴とする請求項１、２または３に記載の方法。
【請求項５】
前記第２のオペレーティングシステム（ＯＳ_Ｂ）で遅延機能呼出しを実行することを前記インタフェースブロック（１６）で決定し、前記遅延機能呼出し時に、前記第２のオペレーティングシステム（ＯＳ_Ｂ）へ応答を転送することを特徴とする請求項４に記載の方法。
【請求項６】
前記オペレーティングシステム（ＯＳ_Ａ、ＯＳ_Ｂ）において、実行段、準備段、または待機段を機能状態として決定する対象プロセスを実行することと、機能状態が前記実行段になっている別のオペレーティングシステムのプロセス時に前記機能呼出しを形成することと、前記第１のオペレーティングシステム（ＯＳ_Ａ）から前記機能呼出しへの応答が待機されている場合、前記機能呼出しを行った前記プロセスを前記待機段でセットすることとを特徴とする請求項１乃至５のいずれか一項に記載の方法。
【請求項７】
開始される前記リソース・サービスに関係なく、前記機能呼出しとして同じ機能呼出しを用いられることを特徴とする請求項１乃至６のいずれか一項に記載の方法。
【請求項８】
前記第１のオペレーティングシステム（ＯＳ_Ａ）から前記第２のセットのリソースを利用するために、前記第１のオペレーティングシステム（ＯＳ_Ａ）で機能呼出しを形成し、前記システムのオペレーティングシステム間に形成された前記インタフェースブロック（１６）へ前記機能呼出しを転送し、前記第２のオペレーティングシステム（ＯＳ_Ｂ）の前記リソース・サービスを開始するためのサービスコールを前記インタフェースブロック（１６）で形成することを特徴とする請求項１乃至７のいずれか一項に記載の方法。
【請求項９】
少なくとも１つのプロセッサ（３ａ、３ｂ）と、少なくとも第１のセットのリソースおよび第２のセットのリソースと、前記少なくとも１つのプロセッサ（３ａ、３ｂ）で少なくとも第１のオペレーティングシステム（ＯＳ_Ａ）を処理する手段（３ａ）と、前記少なくとも１つのプロセッサ（３ａ、３ｂ）で第２のオペレーティングシステム（ＯＳ_Ｂ）を処理する手段（３ａ）と、前記第１のオペレーティングシステムで実行される、前記第１のオペレーティングシステム（ＯＳ_Ａ）のリソース・サービスにより前記第１のセットのリソースを制御する手段と、前記第２のオペレーティングシステムで実行される、前記第２のオペレーティングシステム（ＯＳ_Ｂ）のリソース・サービスにより前記第２のセットのリソースを制御する手段と、を備えたシステムであって、前記オペレーティングシステム間のインタフェースブロック（１６）であって、前記第１のセットの前記リソースに関する情報を含む機能呼出しを前記第２のオペレーティングシステム（ＯＳ_Ｂ）で形成する手段（３ｂ）を備えた前記第２のオペレーティングシステム（ＯＳ_Ｂ）から前記第１のセットのリソースを利用する手段（１６）と、前記機能呼出し内に含まれる情報に基づいて前記第１のオペレーティングシステム（ＯＳ_Ａ）のリソース・サービスを開始するサービスコールを形成する手段（１９）を備えた、前記オペレーティングシステム間の前記インタフェースブロック（１６）へ前記機能呼出しを転送する手段（４ｃ）と、を備えたシステムにおいて、
前記第１のオペレーティングシステム（ＯＳ_Ａ）の実行プロセスのスケジューリングを行うための、前記第１のオペレーティングシステム（ＯＳ_Ａ）の第１のスケジューラ（ＳＣＨ_Ａ）を処理する手段（３ａ、４）と、前記第２のオペレーティングシステム（ＯＳ_Ｂ）の実行プロセスのスケジューリングを行うための、前記第２のオペレーティングシステム（ＯＳ_Ｂ）の第２のスケジューラ（ＳＣＨ_Ｂ）を処理する手段（３ｂ、４）と、前記第１のスケジューラ（ＳＣＨ_Ａ）によるスケジューリング後、前記サービスコールの実行を開始する手段（ＩＨ_Ａ）と、を備えたことを特徴とするシステム。
【請求項１０】
前記オペレーティングシステム（ＯＳ_Ａ、ＯＳ_Ｂ）のうちの少なくとも一方のオペレーティングシステムがほぼリアルタイムのオペレーティングシステムであることを特徴とする請求項９に記載のシステム。
【請求項１１】
前記開始されたリソース・サービス時に応答を形成する手段と、前記インタフェースブロック（１６）を介して前記第２のオペレーティングシステム（ＯＳ_Ｂ）へ応答を転送する手段（１７、１８、２０）とを備えたことを特徴とする請求項９または１０に記載のシステム。
【請求項１２】
前記第２のセットのリソースに関する情報を含む機能呼出しを前記第１のオペレーティングシステム（ＯＳ_Ａ）で形成する手段（３ａ）を備えた前記第１のオペレーティングシステム（ＯＳ_Ａ）から前記第２のセットの前記リソースを利用する手段（１６）と、前記システムの前記オペレーティングシステム間に形成された前記インタフェースブロック（１６）であって、前記機能呼出しに含まれる情報に基づいて前記第２のオペレーティングシステム（ＯＳ_Ｂ）のリソース・サービスを開始するために、サービスコールを形成する手段（２０）を備えた前記インタフェースブロック（１６）へ前記機能呼出しを転送する手段（４ｃ）と、を備えたことを特徴とする請求項９、１０または１１に記載のシステム。
【請求項１３】
少なくとも１つのプロセッサ（３ａ、３ｂ）と、少なくとも第１のセットのリソースおよび第２のセットのリソースと、前記少なくとも１つのプロセッサ（３ａ、３ｂ）で少なくとも第１のオペレーティングシステム（ＯＳ_Ａ）を実行する手段（３ａ）と、前記少なくとも１つのプロセッサ（３ａ、３ｂ）で第２のオペレーティングシステム（ＯＳ_Ｂ）を実行する手段（３ａ）とを備えた電子装置（１）であって、前記第１のオペレーティングシステムで実行される、前記第１のオペレーティングシステム（ＯＳ_Ａ）のリソース・サービスにより前記第１のセットのリソースを制御する手段と、前記第２のオペレーティングシステムで実行される、前記第２のオペレーティングシステム（ＯＳ_Ｂ）のリソース・サービスにより前記第２のセットのリソースを制御する手段と、前記オペレーティングシステム間のインタフェースブロック（１６）であって、前記第１のセットの前記リソースに関する情報を含む機能呼出しを前記第２のオペレーティングシステム（ＯＳ_Ｂ）で形成する手段（３ｂ）を備えた前記第２のオペレーティングシステム（ＯＳ_Ｂ）から前記第１のセットのリソースを利用する手段（１６）と、前記機能呼出し内に含まれる情報に基づいて前記第１のオペレーティングシステム（ＯＳ_Ａ）のリソース・サービスを開始するサービスコールを形成する手段（１９）を備えた、前記オペレーティングシステム間の前記インタフェースブロック（１６）へ前記機能呼出しを転送する手段（４ｃ）と、を備えた電子装置（１）において、
前記第１のオペレーティングシステム（ＯＳ_Ａ）の実行プロセスのスケジューリングを行うための、前記第１のオペレーティングシステム（ＯＳ_Ａ）の第１のスケジューラ（ＳＣＨ_Ａ）を処理する手段（３ａ、４）と、前記第２のオペレーティングシステム（ＯＳ_Ｂ）の実行プロセスのスケジューリングを行うための、前記第２のオペレーティングシステム（ＯＳ_Ｂ）の第２のスケジューラ（ＳＣＨ_Ｂ）を実行する手段（３ｂ、４）と、前記第１のスケジューラ（ＳＣＨ_Ａ）によるスケジューリング後、前記サービスコールの実行を開始する手段（ＩＨ_Ａ）と、を備えたことを特徴とする電子装置（１）。
【請求項１４】
移動局機能を実行する手段（１１）を備えたことを特徴とする請求項１３に記載の電子装置（１）。
【請求項１５】
電子装置（１）の記憶手段（４）に格納することを意図したコンピュータソフトウェアであり、上記コンピュータソフトウェアのプログラムコマンドを実行するコンピュータソフトウェアであって、前記電子装置（１）が、少なくとも１つのプロセッサ（３ａ、３ｂ）と、少なくとも第１のセットのリソースおよび第２のセットのリソースと、前記少なくとも１つのプロセッサ（３ａ、３ｂ）内の少なくとも第１のオペレーティングシステム（ＯＳ_Ａ）を実行する手段（３ａ）と、前記少なくとも１つのプロセッサ（３ａ、３ｂ）で第２のオペレーティングシステム（ＯＳ_Ｂ）を実行する手段（３ａ）とを備え、さらに、前記電子装置（１）が、前記第１のオペレーティングシステムにおいて実行される、前記第１のオペレーティングシステム（ＯＳ_Ａ）のリソース・サービスによって前記第１のセットのリソースを制御する手段と、前記第２のオペレーティングシステムにおいて実行される、前記第２のオペレーティングシステム（ＯＳ_Ｂ）のリソース・サービスによって前記第２のセットのリソースを制御する手段と、を備え、前記第１のセットの前記リソースに関する情報を含む機能呼出しを前記第２のオペレーティングシステム（ＯＳ_Ｂ）に形成することにより、前記第２のオペレーティングシステム（ＯＳ_Ｂ）から前記第１のセットの前記リソースを利用するプログラムコマンドと、前記システムの動作ブロック間に形成されたインタフェースブロック（１６）へ前記機能呼出しを転送するプログラムコマンドと、前記機能呼出し内に含まれる情報に基づいて前記第１のオペレーティングシステム（ＯＳ_Ａ）の前記リソース・サービスを開始するためにサービスコールを形成するプログラムコマンドと、を備えたコンピュータソフトウェアにおいて、
前記第１のオペレーティングシステム（ＯＳ_Ａ）において、前記第１のオペレーティングシステム（ＯＳ_Ａ）の実行プロセスのスケジューリングを行うために第１のスケジューラ（ＳＣＨ_Ａ）を実行するプログラムコマンドと、第２のオペレーティングシステム（ＯＳ_Ｂ）において、第２のオペレーティングシステム（ＯＳ_Ｂ）のプロセス実行スケジューリングを行うために、第２のスケジューラ（ＳＣＨ_Ｂ）を実行するプログラムコマンドと、第１のスケジューラ（ＳＣＨ_Ａ）によりスケジュールされる前記サービスコールの実行を開始するプログラムコマンドとをさらに含むことを特徴とするコンピュータソフトウェア。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、少なくとも１つのプロセッサと、少なくとも第１のセットのリソースと、第２のセットのリソースとを有するシステムにおいてオペレーティングシステム機能を実行する方法に関し、前記少なくとも１つのプロセッサにおいて少なくとも第１のオペレーティングシステムが実行され、さらに、前記少なくとも１つのプロセッサにおいて第２のオペレーティングシステムが実行される。前記第１のセットのリソースは、上記第１のオペレーティングシステムのリソース・サービスにより制御されて、上記第１のオペレーティングシステムで実行される。さらに、前記第２のセットのリソースは、上記第２のオペレーティングシステムのリソース・サービスにより制御されて、上記第２のオペレーティングシステムで実行され、第２のオペレーティングシステムから第１のセットのリソースを利用するために、前記第１のセットのリソースに関する情報を含む機能呼出しが第２のオペレーティングシステムで行われ、さらに、前記機能呼出しは、システム内に形成された、オペレーティングシステム間のインタフェースブロックへ送信され、このブロックでサービスコールが行われて、第１のオペレーティングシステムのリソース・サービスが開始される。本発明はまた、少なくとも１つのプロセッサと、少なくとも第１のセットのリソースおよび第２のセットのリソースと、前記少なくとも１つのプロセッサにおいて少なくとも第１のオペレーティングシステムを実行する手段と、前記少なくとも１つのプロセッサにおいて第２のオペレーティングシステムを実行する手段と、を備えたシステムにも関する。さらに、上記システムは、上記第１のオペレーティングシステムのリソース・サービスを用いて前記第１のセットのリソースを制御して、上記第１のオペレーティングシステムで前記第１のセットのリソースを実行する手段と、上記第２のオペレーティングシステムを用いて前記第２のセットのリソースを制御して、上記第２のオペレーティングシステムで前記第２のセットのリソースを実行する手段とを備え、本システムは、オペレーティングシステム間に設けられたインタフェースブロックと、第２のオペレーティングシステムから前記第１のセットのリソースを利用する手段であって、前記第１のセットのリソースに関する情報を含む機能呼出しを第２のオペレーティングシステムで行う手段を備えた手段と、オペレーティングシステム間の前記インタフェースブロックへ前記機能呼出しを送信する手段とを備える。前記インタフェースブロックは、サービスコールを行って、前記機能呼出しに含まれるデータに基づいて第１のオペレーティングシステムのリソース・サービスを開始する手段を備えている。本発明はまた、少なくとも１つのプロセッサと、少なくとも第１のセットのリソースおよび第２のセットのリソースと、前記少なくとも１つのプロセッサにおいて少なくとも第１のオペレーティングシステムを実行する手段、および、前記少なくとも１つのプロセッサにおいて第２のオペレーティングシステムを実行する手段と、を備える電子装置にも関する。さらに、上記電子装置は、上記第１のオペレーティングシステムのリソース・サービスを用いて前記第１のセットのリソースを制御して、第１のオペレーティングシステムで前記第１のセットのリソースを実行する手段、および、上記第２のオペレーティングシステムのリソース・サービスを用いて前記第２のセットのリソースを制御して、上記第２のオペレーティングシステムで前記第２のセットのリソースを実行する手段を備え、本電子装置は、オペレーティングシステム間に設けられたインタフェースブロックと、第２のオペレーティングシステムから前記第１のセットのリソースを利用する手段であって、前記第１のセットのリソースに関する情報を含む機能呼出しを第２のオペレーティングシステムで行う手段を備えた手段と、オペレーティングシステム間の前記インタフェースブロックへ前記機能呼出しを送信する手段とを備える。前記インタフェースブロックは、サービスコールを行って、前記機能呼出しに含まれるデータに基づいて第１のオペレーティングシステムのリソース・サービスを開始する手段を備えている。さらに、本発明は、電子装置の記憶手段に記憶するようになっているコンピュータソフトウェアであって、コンピュータソフトウェアのプログラムコマンドを実行するコンピュータソフトウェアに関する。上記電子装置は、少なくとも１つのプロセッサと、少なくとも第１のセットのリソースおよび第２のセットのリソースとを備える。上記コンピュータソフトウェアは、リソースを利用するためのプログラムコマンドと、前記少なくとも１つのプロセッサにおいて少なくとも第１のオペレーティングシステムを実行するプログラムコマンドと、前記少なくとも１つのプロセッサにおいて第２のオペレーティングシステムを実行するプログラムコマンドと、上記第１のオペレーティングシステムのリソース・サービスを用いて前記第１のセットのリソースを制御して、上記第１のオペレーティングシステムを実行するプログラムコマンドと、上記第２のオペレーティングシステムのリソース・サービスを用いて前記第２のセットのリソースを制御して、第２のオペレーティングシステムで前記第２のセットのリソースを実行するプログラムコマンドと、を備え、本コンピュータソフトウェアは、前記第１のセットの前記リソースに関する情報を含む機能呼出しを前記第２のオペレーティングシステムで行うことにより、前記第２のオペレーティングシステムから前記第１のセットの前記リソースを利用するプログラムコマンドと、前記システムの動作ブロック間に形成されたインタフェースブロックへ前記機能呼出しを送信するプログラムコマンドと、前記機能呼出しに含まれる情報に基づいて前記第１のオペレーティングシステムで前記リソース・サービスを開始するためにサービスコールを行うプログラムも含むものである。
【０００２】
上記オペレーティングシステムは、コンピュータなどの装置の動作、並びに、装置で実行するアプリケーション（アプリケーションプログラム）の実行を制御する。このオペレーティングシステムでは、例えば１以上のプロセスでアプリケーションが実行される。個々のプロセスは、ほとんど同時に実行される１または２以上のスレッドから構成されるものであってもよい。アプリケーションが起動されると、オペレーティングシステムは必要なプロセスと、個々のプロセス用の少なくとも１つのスレッド（一次スレッド）とを形成する。プロセスの大部分については、この一次スレッドを形成することで十分である。しかし、上記プロセスがいくつかのスレッドを構成する場合がある。
【０００３】
アプリケーションの個々のプロセスに対して、装置のメモリ空間で別個のアドレス空間が割り当てられる。このアドレス空間は、このプロセスのみによって処理することが可能な１または２以上の範囲から構成される。アプリケーションのプロセスは、これらプロセス固有のアドレス空間外の別のプロセスに対して割り当てられたメモリを直接処理することはできない。
【０００４】
如上のオペレーティングシステムと類似のオペレーティングシステムには、アプリケーションのプロセスとはわずかに異なる、オペレーティングシステムのカーネルプロセスがさらに存在する。カーネルプロセスのスレッドはプロセッサの最高のアクセスレベルで実行される。カーネルプロセスは、少なくとも２つのスレッド、カーネルサーバスレッドとアイドルスレッドとを含むことが望ましい。カーネルサーバスレッドの実行は、オペレーティングシステムの起動と関連して開始され、オペレーティングシステムのカーネルのすべての機能を実行するためには用いられる。このスレッドは最高の優先順位を有する。上記アイドルスレッドは、別のスレッドの実行の準備ができていないときに専ら実行される。
【０００５】
これらのスレッドは独立に実行され、他のスレッドの実行に関する情報を持っていない。スレッドの実行順位のスケジューリングは、プリエンプティブ（pre-emptive）であり、一般的ルールとして、スレッドの実行に割り込んで別のスレッドを実行できるようになっている。
【背景技術】
【０００６】
２つの異なるオペレーティングシステムの実行が可能な装置とシステムが知られている。ある装置によっては、これらのオペレーティングシステムを同時に実行できるものもあり、その場合、例えば、ユーザはオペレーティングシステムを選択して、そのオペレーティングシステム情報を表示することができる。米国特許第４，７４７，０４０号に、ＵＮＩＸ（登録商標）とＭＳ−ＤＯＳ（登録商標）オペレーティングシステムの実行が可能な、１つのこのようなコンピュータについての記載がある。これらの装置では、別のオペレーティングシステムによって制御されているようなリソースであって、一方のオペレーティングシステムにはアクセス権がないリソースが他方のオペレーティングシステムにより妨害されないように保証することが重要となる。これは、例えば、第１のオペレーティングシステムの制御の下で第２のオペレーティングシステムが作動するような構成を行うことで可能であり、その場合、第１のオペレーティングシステムが、第２のオペレーティングシステムにリソースと制御権とを割り当てる。第１のオペレーティングシステムは、第１のオペレーティングシステムのみの利用に割り当てられたリソースに対して第２のオペレーティングシステムがアクセスすることを妨げることもできる。このようなシステムの１例として、ＷＭｗａｒｅ社が開発したＷＭｗａｒｅ（商標）がある。
【０００７】
また、２つのオペレーティングシステムを同一のプロセッサ内で機能するように設定するような装置も知られている。この場合、第１のオペレーティングシステムの処理と、第２のオペレーティングシステムの処理とは、プロセッサ内で交互に行われる。例えば、第１のオペレーティングシステムが、プロセッサの保護モード等で作動し、第２のオペレーティングシステムは、プロセッサのノーマルモードで作動するようにして、リソース保護を実施することができる。プロセッサの保護モードで実行されるオペレーティングシステムはすべてのリソースへのアクセスを行うことになるが、ノーマルモードではアクセス権は制限される。したがって、ノーマルモードで実行されるオペレーティングシステムは、保護モードで使用されるオペレーティングシステムの一定のリソースに影響を与えることはできない。
【０００８】
また、２つの異なるオペレーティングシステムが実装された携帯用電子装置も開発されている。このような電子装置では、一方のオペレーティングシステムは一般にいわゆるリアルタイムオペレーティングシステム（ＲＴＯＳ）であるのに対して、他方のオペレーティングシステムは一般に非リアルタイムオペレーティングシステムである。この非リアルタイムオペレーティングシステムは、例えば、オペレーティングシステムの制御下で実行されるプロセスに対して処理時間を割り当てるスケジューラ等による異なる機能処理スケジューリングを行うことができる。個々のプロセスに割り当てるべき処理時間量を決定する異なる優先順位を異なるプロセスに割り当てることができる。一般に、リアルタイムオペレーティングシステムは大部分プリエンプト（pre-empting）をベースとするものであり、その場合、処理時間を必要とするプロセスにより割込みがセットされ、リアルタイムオペレーティングシステムによってこの割込みが検出され、上記プロセスの実行用としてセットされる。また、リアルタイムオペレーティングシステムでは、一般に、重要度および／または緊急度に応じて優先度の順にプロセスを並べることが可能である。したがって、重要度の少ないすなわち優先順位の低いプロセスに対して、重要度の高いすなわち優先順位の高いプロセスの割込みが可能であるのに対して、優先順位の低いプロセスは優先順位の高いプロセスに対して割り込みを行うことはできず、優先順位の低いこのようなプロセスは優先順位権の高いプロセスがすべてサービスを受けた後に続行される。
【０００９】
図１ａは、原理レベルで、同一装置内での２つのオペレーティングシステムの実現を示すものである。第１のオペレーティングシステムＯＳ_Ａはリアルタイムオペレーティングシステムであリ、第２のオペレーティングシステムＯＳ_Ｂは非リアルタイムオペレーティングシステムである。第１のオペレーティングシステムＯＳ_Ａは、割込みをベースとして作動する。本例では、これらの割込みをさらに３つの異なるカテゴリに分けることが想定されている。その場合、割込み間の重要度の順位は以下のようになる：最も高い優先順位は高速割込み要求（ＦＩＱ）に属し、次に高い優先順位は割込み要求（ＩＲＱ）に属し、最も低い優先順位はソフトウェア割込み要求（ＳＷＩ）に属する。個々の割込み要求に対して、割込みサービスプログラムが実行され、割込みサービス要求がプロセッサに入ると、この割込みサービスプログラムに対してプロセッサの処理が転送される。この割込みサービスプログラムには、割込み要求を引き起こしたイベントにより要求される処置を行うための、または、このような処置を開始するためのプログラムコマンドが含まれる。
【００１０】
さらに、第１のオペレーティングシステムで所望の機能を行うタスクの実行が可能である。実行すべき高い優先順位を持つタスクが存在しないとき、これらのタスクに対して実行時間が割り当てられる。重要度の順にこれらのタスクをセットすることができ、異なるタスクに対して割り当て実行時間を異なるものとすることができる。図１ａの例では、第１のオペレーティングシステムの１つのタスクとして第２のオペレーティングシステムが実現される。その場合、上記タスクが順次実行されると、第２のオペレーティングシステムが実行される。一般に、１つのプロセッサのシステムでは、実行すべき別のタスクや割込みサービスプログラムが存在しないとき、この第２のオペレーティングシステムに最も低い優先順位が割り当てられる。
【００１１】
図１ａの例では、第２のオペレーティングシステムは、この第２のオペレーティングシステムで最も高い優先順位が割り当てられることが望ましい遅延機能呼出し（ＤＦＣ）を備える。これらに加えて、スレッドが第２のオペレーティングシステムで処理される。スレッドは、同じプロセスまたは異なるプロセスの実行時に使用するコマンドシーケンスであってもよい。実行すべき他のプロセスが存在しないとき、ヌルのスレッドが実行される。したがって、本例の場合、ヌルのスレッドは最も低い優先順位を持つことになる。
【００１２】
図１ａでは、上述の異なるユニットが、図で最上部にある高速割込み要求（ＦＩＱ）が最も高い優先順位を持つように上から下への優先度の順位でマークされている。第１のオペレーティングシステムの方から見ると、第２のオペレーティングシステムはアイドルタスクの実行オペレーティングシステムである。これに対応して、第２のオペレーティングシステムの方から見ると、第１のオペレーティングシステムは割込みサービスの実行オペレーティングシステムである。
【００１３】
２以上のオペレーティングシステムを備えた従来技術による装置での問題点として、例えば、一方のオペレーティングシステムのプロセスの実行が装置全体の作動を停止させる可能性があることが挙げられる。例えば、時間が決定的な重要性を持つタスクの実行のために第１のオペレーティングシステムがリソースを必要とし、そのようなリソースが、第１のオペレーティングシステムの制御下で作動する第２のオペレーティングシステムによってロックされるという事実に起因して、上記停止が生じることが考えられる。作動停止が生じる別の理由として、第１のオペレーティングシステムに対する、第２のオペレーティングシステムによる第１の呼が、第２の呼によって第１のオペレーティングシステムに要求されるリソースをロックすることが考えられる。
【発明の開示】
【発明が解決しようとする課題】
【００１４】
２以上のオペレーティングシステムを同時に実行することができる改善方法とシステムとを提供することが本発明の目的である。本方法では、個々のオペレーティングシステムは、別のオペレーティングシステムによるリソースの使用をいずれかのオペレーティングシステムが妨げる可能性を伴わずに、他のオペレーティングシステムの少なくとも若干のリソースにアクセスを行うことができるようになる。本発明は、リソースを必要とするオペレーティングシステムが、その必要とするリソースを持つオペレーティングシステムへ機能呼出しを送るという着想に基づくものである。しかし、呼出し側オペレーティングシステムは応答待ち状態のままではなく、その動作を続行する。受信側すなわち呼出しを受けた側のオペレーティングシステムは、機能呼出しで指示された機能を実行し、呼出し側オペレーティングシステムへ応答を送信する。さらに正確に述べると、本発明に準拠する方法は、主として第１のオペレーティングシステムの実行プロセスのスケジューリングを行う第１のスケジューラを第１のオペレーティングシステムで実行し、第２のオペレーティングシステムの実行プロセスのスケジューリングを行う第２のスケジューラを第２のオペレーティングシステムで実行し、上記第１のスケジューラにより前記サービスコールの実行スケジューリングが行われたとき、前記サービスコールの実行が開始されることを特徴とする。本発明によるシステムは、主として、第１のオペレーティングシステムの実行プロセスのスケジューリングを行う第１のスケジューラを第１のオペレーティングシステムで処理する手段と、第２のオペレーティングシステムの実行プロセスのスケジューリングを行う第２のスケジューラを第２のオペレーティングシステムで処理する手段と、上記第１のスケジューラによるそのスケジューリング後に前記サービスコールの実行を開始する手段とを備えたことを特徴とする。本発明による電子装置は、主として、第１のオペレーティングシステムの実行プロセスのスケジューリングを行う第１のスケジューラを第１のオペレーティングシステムで処理する手段と、第２のオペレーティングシステムの実行プロセスのスケジューリングを行う第２のスケジューラを第２のオペレーティングシステムで処理する手段と、上記第１のスケジューラによるそのスケジューリング後に前記サービスコールの実行を開始する手段とを備えたことを特徴とする。本発明によるコンピュータソフトウェアは、主として、第１のオペレーティングシステムの実行プロセスのスケジューリングを行う第１のスケジューラを第１のオペレーティングシステムで実行するプログラムコマンドと、第２のオペレーティングシステムの実行プロセスのスケジューリングを行う第２のスケジューラを第２のオペレーティングシステムで実行するプログラムコマンドと、上記第１のスケジューラにより前記サービスコールの実行スケジューリングが行われたとき、前記サービスコールの実行を開始するプログラムコマンドと、をさらに含むことを特徴とする。
【００１５】
本発明は従来技術の解決方法よりも優れた顕著な利点を示すものである。本発明の方法によって、いくつかのオペレーティングシステムのシステムにおいて、１つのオペレーティングシステムによって制御されるリソースを別のオペレーティングシステムへ提供することが可能となる。本発明による方法では、リソース要求によって、別のオペレーティングシステムによるリソースの利用を妨げる前記リソースのロックを防止することが可能となる。本方法によって、アプリケーションとオペレーティングシステムのさらに単純な開発も可能となる。というのは、オペレーティングシステム間のインタフェースが比較的に単純でコンパクトであるからである。
【００１６】
以下、添付図面を参照しながら本発明についてさらに詳細に説明する。
【発明を実施するための最良の形態】
【００１７】
発明の以下の詳細な説明では、一例として図２の電子装置１を用いることにするが、この装置は、好適には移動局機能などの通信機能２ａ並びにデータ処理機能２ｂを備えたものであることが望ましい。この好ましい実施形態では、電子装置１は２つのプロセッサ３ａ、３ｂを備えるものであるが、本発明がプロセッサ３ａ、３ｂの数が２以外の数電子装置１でも適用可能であることは言うまでもない。さらに、図２は電子装置１のいくつかの機能を示すものであるが、実際の利用時には、詳細な電子装置１の実施構成は本明細書に記載のものとは異なるものであってもよいことは自明のことである。
【００１８】
電子装置１の第１のプロセッサ３ａは主として通信機能２ａの制御を目的とするものであり、第２のプロセッサ３ｂは、主としてデータ処理機能２ｂの実行を目的とするものである。プロセッサ３ａ、３ｂは、オペレーティングシステム機能を実行するマイクロプロセッサ（中央演算処理装置、ＣＰＵ）等を備えることが望ましい。さらに、電子装置１は、例えば、公知の方法の信号処理機能で使用が可能なデジタル信号プロセッサ（ＤＳＰ）などの別のプロセッサを備えるものであってもよい。さらに、電子装置１は、メモリ４ａ、４ｂ、４ｃ、４ｄを備え、これらのメモリのうちの少なくとも一部はプロセッサ３ａ、３ｂの双方に利用可能なメモリ４ｃとして構成される。図２の電子装置１では、個々のプロセッサ３ａ、３ｂは、それ自身の用途のためにだけ割り当てられたメモリ４ａ、４ｂも備えている。このメモリは、プロセッサレジスタ４ｄ、フラッシュメモリ４ｅ、などを備えたものであってもよい。メモリ管理用として、第１のプロセッサ３ａには第１のメモリ管理ユニット５ａが設けられる。これに対応して、第２のプロセッサ３ｂには第２のメモリ管理ユニット５ｂが設けられる。電子装置１は、少なくとも１つのユーザインタフェース６を備え、このユーザインタフェース６は、少なくともディスプレイ７、キーパッド８などのデータ入力手段、イヤホン／スピーカ９とマイク１０などのオーディオ手段を備えることが望ましい。通信機能として、電子装置１には、例えば移動通信ネットワークとの通信用送受信装置１１が設けられる。電子装置１でタイムデータの保持を目的としてリアルタイムクロック（ＲＴＣ）１２が設けられる。タイムデータに加えて、リアルタイムクロック１２は、公知の方法でカレンダ機能を備えるものであってもよい。
【００１９】
必要な場合、通信機能２ａは、加入者識別ユニット２１（加入者識別モジュール、ＳＩＭ；ＵＭＴＳ加入者識別モジュール、ＵＳＩＭ）、またはユーザを識別する対応する手段を備えるものであってもよい。さらに、電子装置１は一般に、例えば、プロセッサ３ａ、３ｂと共に加入者識別ユニット２１、ユーザインタフェース６、および送受信装置１１による通信用接続論理回路２２ａ、２２ｂを備える。
【００２０】
第１のプロセッサ３ａと接続して構成される第１のオペレーティングシステムＯＳ_Ａは主として通信機能の制御を目的とするものである。これに対応して、第２のプロセッサ３ｂと接続して構成される第２のオペレーティングシステムＯＳ_Ｂは、主としてデータ処理機能の利用を目的とするものである。しかし、電子装置１のリソースのいくつかを  双方のオペレーティングシステムが必要とする場合もあるが、それらのリソースを同時に用いることはできない。例えば、電子装置１のユーザインタフェース６、またはその一部が通信機能とデータ処理機能の双方の機能に共通している場合、ユーザインタフェース６のリソース、またはそれらの少なくとも一部がオペレーティングシステムＯＳ_Ａ、ＯＳ_Ｂの双方のＯＳにとって利用可能であることが望ましい。述べておくべき別の例として、リアルタイムクロック１２の機能の利用がある。第１のオペレーティングシステムＯＳ_Ａは、この好ましい実施形態では、大部分の動作が割込みに基づいて行われるリアルタイムオペレーティングシステムである。第１のオペレーティングシステムＯＳ_Ａの目的は通信プロトコルなどの時間が決定的に重要性を持つタスクなどの実行を処理することである。第２のオペレーティングシステムＯＳ_Ｂは、本例では非リアルタイムオペレーティングシステムであるが、第２のオペレーティングシステムＯＳ_Ｂが、リアルタイムオペレーティングシステムであってもよいことは言うまでもない。第２のオペレーティングシステムＯＳ_Ｂの目的は、好適には、ユーザインタフェース６のリソースの制御などの、ユーザに対して表示されるタスクの実行を処理することである。さらに、個々のオペレーティングシステムＯＳ_Ａ、ＯＳ_Ｂは電子装置１の機器の一部に対する制御を行う。
【００２１】
図３は、本発明の好適な実施形態による電子装置１での異なる機能に対するメモリリソースの割当てを示す。メモリは、第１のメモリ領域４ａ、第２のメモリ領域４ｂ、および共通メモリ領域４ｃに分けられる。第１のメモリ領域４ａは、第１のプロセッサ３ａで実行される第１のオペレーティングシステムＯＳ_Ａにより利用可能である。第２のメモリ領域４ｂは、第２のプロセッサ３ｂで実行される第２のオペレーティングシステムＯＳ_Ｂにより利用可能である。共通メモリ領域４ｃはオペレーティングシステムＯＳ_Ａ、ＯＳ_Ｂの双方のＯＳにより処理することができる。この実施形態では、上述の部分へのメモリの分割は別々のメモリによって実行されるが、他の方法で実行することも可能である。プロセッサ３ａ、３ｂに対しては、プロセッサ３ａ、３ｂおよび電子装置１の別の機能ブロックをブートするために、プロセッサ３ａ、３ｂのブートと関連して実行される記憶済みプログラムコードを含むブートセクタ１３ａ、１３ｂが、対応するメモリ領域４ａ、４ｂに設けられる。これらの起動プログラムコードの保存も、これらのコードが共通メモリ領域４ｃに格納されるように構成される。あるいは第２のオペレーティングシステムの起動プログラムコードのみが共通メモリ領域４ｃに格納されるように構成される。記憶空間１４ａ、１４ｂは、異なるリソースの利用に必要なプログラムコード（デバイスドライバなど）の保存用としてメモリ領域で割り当てられる。これらのプログラムコードは、電子装置１の製造と関連するメモリに格納されたものであってもよい。あるいはこれらのプログラムコードは、ハードディスク（図示せず）、フラッシュメモリ等からのブートと関連してランダムアクセスメモリ内にロードされたものであってもよい。さらに、メモリ領域１５ａ、１５ｂは、アプリケーションのプログラムコードのロードおよび格納用メモリ４内に予約されて、電子装置１の使用中に実行される。
【００２２】
本発明の好ましい実施形態による電子装置１内でのオペレーティングシステム間の通信を構成するために、以下の本解説で示すようにオペレーティングシステムＯＳ_Ａ、ＯＳ_Ｂの双方のＯＳから処理することが可能なメモリ領域４ｃが形成される。
【００２３】
メモリ領域への如上の分割は、好適な利点を示す例であるのに対して、本発明と関連して別の種類の分割も利用できることは言うまでもない。また、オペレーティングシステムＯＳ_Ａ、ＯＳ_Ｂの双方のＯＳを実行するために同一のプロセッサを用いるこのような電子装置１では、複数の領域にメモリを分割することが可能である。これら複数の領域のうちのいくつかの領域は、１つのオペレーティングシステムによってのみ使用され、いくつかの領域は、双方のオペレーティングシステムにより使用することが可能である。
【００２４】
以下、本発明の好ましい実施形態による、図２の電子装置内での本方法の動作について、図４を参照しながらさらに詳細に説明する。図４は、同一の電子装置１における２つのオペレーティングシステムＯＳ_Ａ、ＯＳ_Ｂを実行するための、２つのオペレーティングシステムの原則レベルでの解決方法を示すものである。電子装置１の第１のオペレーティングシステムＯＳ_Ａには、非同期機能呼出しによってオペレーティングシステムＯＳ_Ａ、ＯＳ_Ｂ間の通信時に用いられるインタフェースブロック１６が設けられる。このインタフェースブロック１６は、例えば、第１のインタフェース１７、第２のインタフェース１８、第１の変換ブロック１９、および第２の変換ブロック２０を備える。第１のインタフェース１７の機能は、第１の変換ブロック１９の中を通って、第１のオペレーティングシステムＯＳ_Ａのリソースへ到来してくる機能呼出しを実行し、機能の実行後第２の変換ブロック２０へその応答を送信することである。これに対応して、第２のインタフェース１８の機能は、第２のオペレーティングシステムＯＳ_Ｂとインタフェースブロック１６間での通信手順を実行することである。これは、第１のインタフェース１７と第２のインタフェース１８とが第１のオペレーティングシステムＯＳ_Ａと第２のオペレーティングシステムＯＳ_Ｂの双方のＯＳに対して、種々のサービスを提供するように好適に構成される。例えば、第２のオペレーティングシステムＯＳ_Ｂが、第１のオペレーティングシステムＯＳ_Ａに配置されているリソースを利用する必要があるとき、第２のオペレーティングシステムＯＳ_Ｂは第２のインタフェース１８を呼び出すことになる。この後、この呼出しは、第１の変換ブロック１９を用いることにより第１のインタフェース１７へ転送される。次いで、第１のインタフェース１７は、第１のオペレーティングシステムＯＳ_Ａのリソースを用いることにより要求されたサービスを提供し、第２の変換ブロック２０と第２のインタフェースサービス１８とを用いることにより第２のオペレーティングシステムＯＳ_Ｂへ応答を送信することになる。
【００２５】
本発明の好適な実施形態では、使用するオペレーティングシステムＯＳ_Ａ、ＯＳ_Ｂは多重処理オペレーティングシステムである。多重処理オペレーティングシステムでは、いくつかのアプリケーションプログラムを同時に実行することが可能である。しかし、実際には、プロセッサ３ａ、３ｂが多重処理属性を持つプロセッサである場合か、同じオペレーティングシステムの処理に利用される複数のプロセッサが２以上ある場合かを除いて、多重処理オペレーティングシステムは一度に１つのプロセスを実行するものである。オペレーティングシステムのスケジューラは、どのアプリケーションプログラムまたはプロセスがその時点で実行されているかのチェックを規則的な間隔で行うものである。このスケジューラはタイマ割込みなどにより起動される。さらに、個々のアプリケーションプログラムは１または２以上のスレッドを含むものであってもよい。その場合個々のスレッドは異なる時点で処理される。例えば、１つのスレッドは、キーストロークの読出しなどの機能ブロックでデータの読出しを行うものであってもよいし、別のスレッドは、例えば、読出し済みデータの処理を行うものであり、さらに第３のスレッドは、例えば、ディスプレイ上などでの機能ブロックにおける処理済みデータの書込みを行うものであってもよい。このアプリケーションプログラムが起動されると、スケジューラは、個々のスレッドに対する実行時間およびスレッドを実行する反復間隔を決定する。したがって、スケジューラは、スレッドの実行を開始し、次いで、実行時間の終了後、スレッドを遅らせて、待機し、必要に応じてスレッドのデータをメモリ内に格納し、同じプロセスや別のプロセスに属するものであってもよい次のスレッドの実行を開始する。スケジューラがすべてのスレッドを処理した後、スケジューラは実行を再開し、スレッドの実行間隔が時間切れになっていなければ、いわゆるアイドルスレッドが実行される。しかし、上述のスレッドの実行時間中に、到来割込み要求が行われる場合がある。その場合これらの割込み要求の優先度に基づいて、オペレーティングシステムは割込みサービスプログラムの実行へ進む可能性がある。あるいはスケジューラは、割込みサービスの実行に適した時点を決定し、終了していないスレッドの実行を続行する。例えば、キーストロークに起因する割込み状況では、キーパッド割込みプログラムが、押されたキーのコードを読み出し、一時メモリ位置にそのコードを格納する。割込みサービスプログラムの終了後、オペレーティングシステムのスケジューラは、キーストロークをチェックするプログラムを実行する時点を決定し、キーストローク割込みに割り当てられた優先順位が終了していないプログラムスレッドの優先順位を上回らなければ、該スケジューラは割込まれたプログラムスレッドへ戻る。
【００２６】
オペレーティングシステムの方から見ると、このプロセスは常に３状態のうちの１つの状態、すなわち準備状態、実行状態、または待機状態のうちの１つの状態となる。実行状態にはその時点に実行されているプロセスが含まれる。準備状態は、実行のための待機プロセスを含む。実行状態で実行するために、準備状態のプロセスのうちの１つを選択することがスケジューラの機能である。待機状態には、イベントを待機しているようなプロセス、例えば、機能呼出しに対する応答の受信、キーストローク、リソースの解除、などが含まれる。
【００２７】
スケジューラは、最も高い優先順位を持つプロセスを準備状態から実行状態へ移動させる。実行状態から、プロセスは、それ自身の要求時に、例えば、待機を含む実施構成を伴うオペレーティングシステムサービスの要求時に、一般に待機状態へ移ることになる。待機状態から準備状態への転送はこの待機の終了時に行われる。上記プロセスは、スケジューラが、割込み処理の終了時などに実行される別のプロセスを変更するような状況時に、実行状態から準備状態へシフトされるものであってもよい。
【００２８】
添付の図１ｂはオペレーティングシステムの層構造の１例を示す。最も低いレベルはオペレーティングシステムのカーネルであり、次のレベルにはメモリ管理に関連するエレメントが含まれる。また第３のレベルにはファイルシステムエレメントが含まれる。これら３つのレベルの上にコマンドインタプリタ、複数のプロセス（図示せず）、インタフェースソフトウェア、スケジューラ機能、などが置かれる。さらに、図１ｃは、原理図の形で、スケジューラＳＣＨ_Ａ、ＳＣＨ_Ｂおよび割込みプロセッサＩＨ_Ａの制御の下にある２つのオペレーティングシステムのスレッドＴＨＡ１、ＴＨＡ２、ＴＨＢ１、ＴＨＢ２、ＳＣＨ_ＩＤＬＥの処理を示す。第１のオペレーティングシステムの側では、第１のスレッドＴＨＡ１と第２のスレッドＴＨＡ２とは、２つの異なるアプリケーションプログラムの処理に必要な一次スレッドなどである。これに対応して、第２のオペレーティングシステムの側では、第１のスレッドＴＨＢ１と第２のスレッドＴＨＢ２とは、例えば、２つの異なるアプリケーションプログラムの実行に必要な一次スレッドとなる。しかし、これらのスレッドが同じアプリケーションにおける異なるプロセスのスレッドであってもよいこと、あるいは、同じプロセスのスレッドであってもよいことは言うまでもない。さらに、第２のオペレーティングシステムＯＳ_Ｂの側では、アイドルスレッドＴＨＢ_ＩＤＬＥが示されている。矢印は、割込みまたはタイミングに基づくことが可能な異なるタスク間での転送を示す。
【００２９】
カーネルの動作の最も重要なエレメントは、割込み処理と、プロセスの管理と、周辺機器の制御とから構成される。割込み処理を行う機能には、例えば、割り込まれたプログラムのデータの格納と、正しい割込みサービスプログラムへの、実行の送信とが含まれる。プロセス管理は、プロセスの形成、実行時間のスケジューリング、プロセス処理の終了、タイミング、などの役割を果たすものである。周辺機器の制御機能には、通信の起動と、個々の周辺装置に関連する１または２以上の割込み処理などが含まれる。
【００３０】
一般に、カーネルの実施構成には、多数の動的データ構造、代表的には、オペレーティングシステム領域の未使用メモリ空間から割り当てられたエレメントを持つ双方向連鎖リストが含まれる。例えば、個々のプロセスのデータはプロセス制御ブロック（ＰＣＢ）に保持することが望ましい。これらのプロセス制御ブロックはプロセステーブル内に集められ、このプロセステーブルのサイズによって、システムにおけるプロセス数の上限がセットされる。好適な例では、プロセス制御ブロックにおいて以下のデータなどを得ることができる：
−    プロセスの状態：待機、準備、または実行
−    プロセスの名称
−    プロセスの優先順位
−    割り込まれたプロセス（環境）に関するデータ格納用の空間（スタック）
−    割り当てられたリソースに関するデータ：メモリ、装置、開いているデータファイル、など
−    プロセスのスケジューリングのモニタに関連するフィールド
−    アクセス権に関連するフィールド
【００３１】
上記はプロセス制御ブロックの実施構成の１例にすぎないことを付記しておく。しかし実際のアプリケーションでは、これらは大幅に変動するものであってもよい。また、プロセス制御ブロック内のデータは非常に異なるものであってもよい。
【００３２】
プロセス識別子としては、例えばシリアル番号などのプロセスの名称がある。このプロセスの名称に基づいて、オペレーティングシステムは異なるプロセスを互いに識別する。上記プロセスが２以上のスレッドを含む場合、プロセス識別子、またはプロセス制御ブロック内の別のフィールドは、上記スレッド番号のデータを含むものであってもよい。状態フィールド等がプロセスの状態を示すために使用される。したがって、プロセスの状態が変化すると、オペレーティングシステムはこの状態フィールドの値を変えることになる。プロセスの実行順位を決定するために、スケジューラは優先順位フィールドの値を利用する。その場合、例えば、このフィールドに含まれる数値が大きければ大きいほど、プロセス優先順位は高くなる。したがって、待機状態でのプロセスの優先順位フィールドの値を比較することにより、スケジューラは、次に実行するプロセスとして、最も高い優先順位の値を持つプロセスを選択することになる。
【００３３】
次に、新しいプロセスの形成について説明する。プロセスは、例えば書込み可能な大容量記憶装置内などの、装置の記憶手段内のデータファイルに格納されているものと仮定する。このプログラムはデータファイル名に基づいて特定される。オペレーティングシステムのカーネルには、プロセスを開始するサービスルーチンが含まれる。このサービスルーチンに対して上記データファイル名をパラメータとして示すことが望ましい。この起動サービスルーチンは、上記プロセスに対するプロセス制御ブロックをプロセステーブル内に形成し、上記プロセスにメモリ領域を割り当てる。上記データファイルの内容は、上記割り当てられたメモリ領域内へ読み出され、プロセス制御ブロックのフィールドが適切な値で初期化され、その後、プロセスを実行待機状態にセットすることができる。プロセス識別子として、空いている次のプロセス識別子などの使用が可能である。プロセスの状態として、準備値をセットすることが望ましい。そのスケジューリングの実施に従ってこれらのプロセスを実行できるようにオペレーティングシステムのスケジューラによって上記プロセスの制御が行われる。
【００３４】
プロセスがスレッドの形で実行されるオペレーティングシステムでは、起動サービスルーチンがプロセスの１または２以上のスレッドを形成し、次いで、プロセステーブル内のスレッド用プロセス制御ブロックを形成するように適宜如上のプロセスの作成を適用することが可能である。
【００３５】
これらのオペレーティングシステムには、周辺機器を制御するためのさらに別の非常に重要な事実いわゆるデバイスドライバが含まれる。デバイスドライバには、ディスプレイ７、キーパッド８、コーデックなどのような周辺機器の制御に必要なルーチンとデータ構造が含まれる。上記必要なルーチンには、装置と、読出し／書込みと、表示特性の設定などの制御処理ルーチンと、装置に関連する割込みを処理するルーチンとの初期化用測定値が含まれる。例えば、個々の装置に関連する装置記述子の形で装置に関連する変数並びにデータ構造の収集を行うことが可能である。このデータは例えば、以下のものを含むものであってもよい：
−    装置への順番待ちをしている転送要求パラメータブロックを連結する作業順序。読出しと書込みとを同時に行うことが可能であれば、２つの作業順序を設けることが可能となる。パラメータブロックには、バッファの記憶位置、転送対象ブロックの数などに関するデータなどの転送要求パラメータが含まれる。
−    デバイスドライバルーチンのアドレス
−    転送の制御に必要な変数および装置状態データ
−    装置固有パラメータ
【００３６】
いくつかのシステムでは、デバイスドライバはオペレーティングシステムのプロセスである。このプロセスは、無限ループで作動し、このループでまず転送要求メッセージを待機する。このようなメッセージを受け取った後、デバイスドライバのプロセスが転送を開始し、そのまま割込みメッセージの待機状態となる。オペレーティングシステムの割込みプロセッサはデバイスドライバプロセスへの割込みメッセージの転送を処理する。実際の装置では、デバイスドライバプロセスは一般に高い優先順位を持ち、オペレーティングシステムのカーネルがリアルタイムで作動する。
【００３７】
複数のオペレーティングシステムでは、利用可能なメッセージ送信メカニズムが設けられ、これにより、プロセスは相互にメッセージの送信を行うことが可能となる。メッセージキューを用いる場合、これらのプロセスには１または２以上のメッセージキューが含まれ、これらのメッセージキューの中にプロセスへの送信対象メッセージを書き込むことが可能である。プロセス間の通信には一般に、メッセージの送り手がメッセージを受け取る受け手を必要としないバッファ動作が含まれる。したがって、メッセージの書込み段で、データ（状態変数）がセットされて、待機プロセスへのメッセージが存在するようになり、その場合、このプロセスは適切な段でメッセージを読み出すことになる。
【００３８】
第１のオペレーティングシステムＯＳ_ＡのスレッドＴＨＡ１、ＴＨＡ２には、例えば、電子装置１の設計段階で優先順位が割り当てられる。この優先順位を用いて、実行順位と、非常に重要なスレッドの応答時間とに影響を与えるようにすることが可能となる。第１のオペレーティングシステムのスケジューラＳＣＨ_Ａは、実行ルーチンで、第１に実行すべき時点で最も高い優先順位を持つスレッドのスケジューリングを行う。実際のシステムでは、これは、本発明の好ましい実施形態に準拠する電子装置１の第１のプロセッサ３ａが、プロセッサ３ａにプログラムコマンドを実装して、第１のオペレーティングシステムＯＳ_Ａのスケジューラ機能を実行することを意味する。スレッドＴＨＡ１、ＴＨＡ２の実行時に、システムのプロセッサ３ａはスレッド内のプログラムされたプログラムコマンドに従って処理を実行する。
【００３９】
第２のプロセッサ３ｂは、優先順位に基づいて第２のオペレーティングシステムＯＳ_Ｂのスケジューラ機能ＳＣＨ_Ｂを実行し、スレッドのスケジューリングの実施は、第２のオペレーティングシステムのＯＳ_Ｂで実行される。第１のステップは、もし何らかの遅延機能呼出し（ＤＦＣ）が存在すれば、遅延機能呼出し（ＤＦＣ）を実行し、好適には優先度の順位でスレッドＴＨＢ１、ＴＨＢ２の実行が後続するステップである。実行対象スレッドの実行後、実行状態のスレッドが存在しない場合、別の実行サイクルを実行する必要が生じるまで、第２のプロセッサ３ｂが、第２のオペレーティングシステムＯＳ_ＢのアイドルスレッドＴＨＢ_ＩＤＬＥへシフトすることになる。
【００４０】
第２のオペレーティングシステムＯＳ_Ｂの下で作動するプロセスが、第１のオペレーティングシステムＯＳ_Ａにより制御されるリソースを使用する必要がある状況では、本発明の好ましい実施形態に応じて以下のステップが行われる。この状況では図１ｃ並びに図４を参照する。リソースを必要とするプロセスＴＨＢ２は、機能呼出しを生成して必要に応じてリソースに関連するパラメータのセットを行う。この機能呼出しは図１ｃに矢印１０１により示されている。この機能呼出しは、常にほぼ同じタイプ（同一機能）のものであることが望ましいが、さらに詳細に所望のリソースを示すために、また、リソースを利用するのに必要な別の情報を示すために、上記パラメータが使用される。さらに、呼出しプロセスによって、遅延機能呼出し（ＤＦＣ）または対応する構造が好適に生成され、それらのデータはインタフェースブロック１６へ機能呼出しの形で送信される。
【００４１】
例えば、第２のオペレーティングシステムＯＳ_Ｂのリアルタイムのクロックアプリケーションによって、第１のオペレーティングシステムＯＳ_Ａにより制御される通信手段からリアルタイムクロックの同期情報が検索される。この同期データは、例えば、移動通信ネットワークを介して受信された時間情報に基づいて形成されたものである。機能呼出しのパラメータは当該メモリ領域のアドレスとしてセットされ、このメモリ領域で、返信されたデータが第１のオペレーティングシステムＯＳ_Ａ側に書き込まれる。機能呼出しと関連して、呼び出されたリソースへ情報を送信する必要が生じた場合、この情報はいわゆるメッセージバッファに格納することが可能であり、このバッファのアドレスは機能呼出しのパラメータの形で送信される。また、応答に対しては、上記のように機能呼出しと関連して送信されたアドレスを持つメッセージバッファを割り当てることが可能である。上記機能呼出しとパラメータとはインタフェースブロック１６へ送信される。インタフェースブロック１６では、機能呼出しとパラメータとが第２のインタフェース１８（図４）を介して第１の変換ブロック１９へ送信され、この送信によって必要な変更が行われ、好適には、要求されたリソースを制御するサービスを開始するサービスコールが行われて、応答段で利用される必要データが格納される。受信された機能呼出しから、第１の変換ブロック１９は、どのリソースを必要とするかを判定するためにパラメータのチェックを行う。さらに、必要に応じて、第１の変換ブロック１９は、送信バッファに格納された情報を読み出し、呼出し対象リソースへこの情報を転送する。当該リソースが第１の変換ブロック１９で決定された後、第１のオペレーティングシステムＯＳ_Ａのメッセージ構造に準拠するメッセージが好適に形成され、第１のオペレーティングシステムのメッセージ送信メカニズムによって第１のインタフェース１７へ上記メッセージが送信される。必要に応じて、第１のインタフェース１７は、第１のインタフェース１７が実行時間の間待機している（矢印１０２）旨を第１のオペレーティングシステムのスケジューラＳＣＨ_Ａに知らせる。
【００４２】
第１のインタフェース１７はこのインタフェース固有のプロセスを有し、このプロセスにより第１のオペレーティングシステムＯＳ_Ａの他のプロセスと交信することが可能である。第１のインタフェース１７が順次実行される段階で、第１のインタフェース１７宛ての新たなまたは未処理のメッセージが存在するかどうかのチェックが行われる。そのようなメッセージが存在すれば、そのメッセージのチェックが行われる。このメッセージで送信されるパラメータに基づいて、第１のインタフェース１７は実行すべき対象リソースを決定する。したがって、第１のインタフェース１７は、メッセージと共に受信された可能なパラメータをこのリソースを制御するサービスへ送信する。
【００４３】
上記サービスは、例えば、プログラム割込みによって起動可能なサービスであってもよい。したがって、プログラム割込み１０３が入ってくると、プログラム割込みハンドラＩＨ_Ａは当該割込みに対応するサービス１０４を開始する。図１ｃの例示状況では、割込み処理時間の間プログラム割込みがスレッドＴＨＡ２の実行に割り込んでいる。サービスが、要求された機能を実行した後、第１のインタフェース１７（矢印１０６）へ応答が送信される。サービスの実行は好適に終了する（１０５）。
【００４４】
第１のインタフェース１７が順次再実行された（１０７）段階で、呼び出されたリソースを制御するサービスが応答を行ったかどうかがチェックされる。この応答が行われた後、応答は、第１のオペレーティングシステムＯＳ_Ａのメッセージ送信メカニズムによって第２の変換ブロック２０へ好適に送信される。リソース要求の送信と関連して格納されたデータを利用して、例えば、応答を行うために、並びに、生じる可能性のあるメッセージバッファのアドレスを与えるために利用される遅延機能呼出しを発見することができる。応答と共に受信されたデータは、メッセージバッファに格納され、第２のオペレーティングシステムＯＳ_Ｂのプロセステーブル内に遅延機能呼出しが追加される（矢印１０８）。したがって、第２のオペレーティングシステムのスケジューラＳＣＨ_Ｂがこの遅延機能呼出しに処理時間を割り当てる（矢印１０９）段階で、該遅延機能呼出しは常に実行され、その場合、遅延機能呼出しは呼び出されプロセスへ応答を送信する（矢印１１１）。このプロセスは、本例では第２のオペレーティングシステムのスレッドＴＨＢ２である。この後、遅延機能呼出し（ＤＦＣ）の処理を終了することができる（矢印１１０）。
【００４５】
例えば、機能呼出しが行われた段階またはプロセスを継続できる段階で、呼出しプロセスのセットを待機状態で行うことができる。その場合、応答の受信がプロセスに通知される。例えば、プロセスがディスプレイの制御プロセスであれば、このプロセスは割り込まれることはなく、ディスプレイ７上での情報の更新が通常の方法で継続される。応答の受信後、前記応答はディスプレイ７に表示される。
【００４６】
前記リアルタイムクロックの例では、リアルタイムクロックのデバイスドライバなどの要求を送信するサービスは、応答用のメモリ４内にメッセージバッファを割り当て、遅延機能呼出しを形成する。所望のリソースと、メッセージバッファと、遅延機能呼出しとに関する情報はインタフェースブロックへ送信される。第１のインタフェース１７は、リアルタイムクロックの同期情報を処理するサービスと交信し、例えば、移動通信ネットワークを介して受信されたタイムデータと、電子装置のリアルタイムクロックとの間の時間差を格納する。この時間差データは第２の変換ブロック２０へ転送され、この第２の変換ブロックで、上記データはメッセージバッファに格納され、遅延機能呼出しがプロセステーブル内に含まれる。遅延機能呼出しでは、メッセージバッファに格納されたデータが読み出され、リアルタイムクロックのデバイスドライバへ転送される。リアルタイムクロックのデバイスドライバは、以前受信した時間差データを今受信した時間差データと比較することが可能となる。その場合、時間差データの変化に基づいて、リアルタイムクロックのデバイスドライバはリアルタイムクロック１２の処理の微調整を行うことが可能となる。
【００４７】
移動局機能２ａとデータ処理機能２ｂとを備えた、本発明の好ましい実施形態に準拠する電子装置１では、１つのオペレーティングシステムによって制御され、かつ、オペレーティングシステムＯＳ_Ａ、ＯＳ_Ｂの双方が必要とするいくつかの上記のようなリソースが設けられる。本明細書に記載した第１のオペレーティングシステムＯＳ_Ａにより制御されるリソースのいくつかの例であって、本発明を限定するものではない例には、固定記憶装置５ａの管理と、起動／終了指示と、デジタル信号処理ユニットＤＳＰの作動（リアルタイムクロック１２の同期データの上述の格納などの）とを含むものもある。本明細書に記載した第２のオペレーティングシステムＯＳ_Ｂにより制御されるリソースのいくつかの例であって、本発明を限定するものではない例には、ユーザインタフェース６に関連する処理と、リアルタイムクロック１２の制御などのタイムサービスと、いくつかのレジスタ４ｄの処理と、フラッシュメモリ４ｅのモード変更とを含むものもある。
【００４８】
第２のオペレーティングシステムＯＳ_Ｂにより制御されるリソースを第１のオペレーティングシステムＯＳ_Ａから利用するために如上の原理を適用することが可能である。例えば、移動通信手段を介して呼が入ってくる状況では、電子装置のディスプレイ７に表示される通知によりこの呼を示すことができる。本発明の好適な実施形態による電子装置１では、例えば、以下のようにしてこれを実現することができる。移動通信手段１１が、移動通信ネットワークから着呼に関する情報を受信した後、第１のオペレーティングシステムＯＳ_Ａのメッセージ構造に従うメッセージが移動通信手段の作動を制御するプロセスのスレッドで形成される。このメッセージは第１のインタフェース１７へ転送される。第１のオペレーティングシステムＯＳ_Ａのスケジューラが、第１のインタフェースのスレッドに実行時間を割り当てる段階で、受信メッセージのチェックが行われ、メッセージのデータは第２の変換ブロック２０へ転送される。この第２の変換ブロック２０では、ディスプレイ７を制御するデバイスドライバへメッセージに含まれる情報を送信するために遅延機能呼出し（ＤＦＣ）が行われる。第２の変換ブロック２０が遅延機能呼出し時に必要な情報を形成した後、第２の変換ブロック２０が第２のオペレーティングシステムのプロセステーブル内に遅延機能呼出しを追加する。この後、遅延機能呼出しは、第２のオペレーティングシステムＯＳ_ＢのスケジューラＳＣＨ_Ｂにより制御されて、第２のオペレーティングシステムのスケジューリングに従って処理される。第１のオペレーティングシステムでメッセージを送信したプロセスは、メッセージのさらなる処理ステップの処理待ち状態のままである必要はなく、上記プロセスはそれ自身の作動を続行することが可能である。
【００４９】
本発明によるメッセージの異なるステップは、１または２以上のプロセッサ３ａ、３ｂのアプリケーションソフトウェアで大部分実現可能である。
【００５０】
本発明の方法は、電子装置１の機能を高めるために、補助カード等を電子装置１と接続できるようなシステムにおいても適用可能である。例えば、補助カードは携帯用コンピュータと接続可能である。したがって、無線用カードを携帯用コンピュータと接続することにより、携帯用コンピュータと無線通信ネットワーク間で情報を送信するための無線用カードの無線通信プロパティの利用が可能となる。本例のアプリケーションでは、第１のオペレーティングシステムＯＳ_Ａは、補助カードで実行されるオペレーティングシステムであることが望ましく、第２のオペレーティングシステムＯＳ_Ｂは、携帯用コンピュータで実行されるオペレーティングシステムである。
【００５１】
本発明が、如上の実施形態のみに限定されるものではなく、添付の請求項の範囲内で変更が可能であることは言うまでもない。少なくとも２つのオペレーティングシステムの機能を実行するように構成された１つのプロセッサと関連して本発明を適用することも可能である。
【図面の簡単な説明】
【００５２】
【図１ａ】同一装置内に２つのオペレーティングシステムを実現する解決方法を原理レベルで示す。
【図１ｂ】オペレーティングシステムの層構造の１例を示す。
【図１ｃ】スケジューラと割込みプロセッサの制御下での２つのオペレーティングシステムのタスクの実行を原理図の形で示す。
【図２】本発明の好ましい実施形態による電子装置を簡略なブロック図で示す。
【図３】本発明の好適な実施形態による電子装置内における、異なる機能に対するメモリリソースの割当てを示す。
【図４】本発明の好ましい実施形態によるインタフェースの実施構成を簡略に示す。
【国際調査報告】
2005513644.tif 000009
2005513644.tif 000010
2005513644.tif 000011