(57)【要約】【課題】ユーザインタフェース装置を使用するＯＳを情報処理装置の稼働中に切り替えることを可能とする。【解決手段】複数種のＯＳが並列に動作するコンピュータの電源が投入されると表示制御部40が起動され、ビデオメモリ26のサイズ等を調査してビデオメモリサイズ記憶部48に記憶させ、表示装置22を使用する個々のＯＳからの表示装置22の情報の問い合わせをフックする処理を行い、個々のＯＳからの問い合わせがある毎に、仮想ビデオメモリ領域を確保して初期化し、ビデオメモリ26に代えて仮想ビデオメモリ領域のアドレスを通知する。個々のＯＳは表示装置22に表示すべき画面のビデオデータを対応する仮想ビデオメモリ領域に書き込み、仮想ビデオメモリ領域切替部50は何れか１つの仮想ビデオメモリ領域からビデオデータを読み出してビデオメモリ26に書き込むと共に、指示部52からの指示によりビデオデータ読出対象の仮想ビデオメモリ領域を切り替える。【選択図】図２
2010055641.tif 000002
【特許請求の範囲】
【請求項１】
ユーザインタフェース装置が接続され、複数種のオペレーティング・システムのプログラムを各々実行すると共に、前記複数種のオペレーティング・システムのうちの何れか１つのオペレーティング・システムを介して任意の処理を行う複数種のアプリケーションのプログラムを各々実行することで、前記複数種のオペレーティング・システム及び前記複数種のアプリケーションを各々動作させる情報処理装置であって、
前記複数種のオペレーティング・システムのうち前記ユーザインタフェース装置を使用する個々のオペレーティング・システムに対し、前記ユーザインタフェース装置のバッファメモリのアドレスとして、前記個々のオペレーティング・システムに対応して各々設けたメモリ領域のうちの対応するメモリ領域のアドレスを各々通知することで、前記個々のオペレーティング・システムからデバイスドライバを通じて前記ユーザインタフェース装置へ出力され前記バッファメモリへ書き込むためのデータを、前記個々のオペレーティング・システムに対応して各々設けられたメモリ領域のうちデータ出力元のオペレーティング・システムに対応するメモリ領域に書き込ませ、何れか１つのメモリ領域に書き込まれているデータを前記ユーザインタフェース装置の前記バッファメモリに書き込むと共に、書き込まれているデータを前記バッファメモリに書き込むメモリ領域を情報処理装置の稼働中に切り替える制御手段を備えたことを特徴とする情報処理装置。
【請求項２】
前記制御手段は、前記ユーザインタフェース装置を使用する個々のオペレーティング・システムの初期化時に、個々のオペレーティング・システムがデバイスドライバを通じて前記ユーザインタフェース装置の前記バッファメモリのアドレスを問い合わせる処理をフックして、前記ユーザインタフェース装置のバッファメモリのアドレスとして、対応するメモリ領域のアドレスを問い合わせ元のオペレーティング・システムへ通知することで、前記個々のオペレーティング・システムから前記ユーザインタフェース装置へ出力されるデータを、前記個々のオペレーティング・システムに対応するメモリ領域に書き込ませることを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記個々のオペレーティング・システムは、ジャンプ先が登録されたテーブルを参照し、当該テーブルに登録されているジャンプ先にジャンプすることで、前記バッファメモリのアドレスを含む前記ユーザインタフェース装置の情報を問い合わせる処理を行う構成であり、
前記制御手段は、前記テーブルに登録されたジャンプ先を書き替えることで、前記処理をフックすることを特徴とする請求項２記載の情報処理装置。
【請求項４】
前記制御手段は、前記ユーザインタフェース装置を使用するオペレーティング・システムの切り替えを指示する指示手段からの前記指示に応じて、書き込まれているデータを前記ユーザインタフェース装置へ出力するメモリ領域の切り替えを行うことを特徴とする請求項１記載の情報処理装置。
【請求項５】
前記制御手段は、前記情報処理装置に設けられているメモリから、前記複数種のオペレーティング・システムのうち前記ユーザインタフェース装置を使用するオペレーティング・システムと同数のメモリ領域を確保すると共に、確保した個々のメモリ領域に対応するオペレーティング・システムを識別する識別情報を第１記憶手段に記憶しておき、前記第１記憶手段に記憶した前記識別情報に基づいて、前記個々のメモリ領域に対応するオペレーティング・システムを判断することを特徴とする請求項１記載の情報処理装置。
【請求項６】
前記制御手段は、前記個々のオペレーティング・システムからデバイスドライバを通じて前記ユーザインタフェース装置へ出力されるデータの属性を取得し、前記個々のオペレーティング・システムに対応して各々設けるメモリ領域のサイズを前記取得した属性に基づいて各々決定し、決定したサイズのメモリ領域を確保した後に、前記個々のオペレーティング・システムに対し、前記ユーザインタフェース装置のバッファメモリのアドレスとして、前記確保したメモリ領域のうちの対応するメモリ領域のアドレスを各々通知することを特徴とする請求項１記載の情報処理装置。
【請求項７】
前記ユーザインタフェース装置は表示装置であり、前記制御手段は、前記情報処理装置の電源が投入された際の初期化時に、前記表示装置に搭載されているビデオメモリのサイズを調査し、当該調査によって判明した前記ビデオメモリのサイズを第２記憶手段に記憶しておき、前記個々のオペレーティング・システムからデバイスドライバを通じて前記ユーザインタフェース装置へ出力されるデータの属性と、前記第２記憶手段に記憶されている前記ビデオメモリのサイズと、に基づいて前記個々のメモリ領域のサイズを各々決定することを特徴とする請求項６記載の情報処理装置。
【請求項８】
ユーザインタフェース装置が接続され、複数種のオペレーティング・システムのプログラムを各々実行すると共に、前記複数種のオペレーティング・システムのうちの何れか１つのオペレーティング・システムを介して任意の処理を行う複数種のアプリケーションのプログラムを各々実行することで、前記複数種のオペレーティング・システム及び前記複数種のアプリケーションを各々動作させるコンピュータを、
前記複数種のオペレーティング・システムのうち前記ユーザインタフェース装置を使用する個々のオペレーティング・システムに対し、前記ユーザインタフェース装置のバッファメモリのアドレスとして、前記個々のオペレーティング・システムに対応して各々設けたメモリ領域のうちの対応するメモリ領域のアドレスを各々通知することで、前記個々のオペレーティング・システムからデバイスドライバを通じて前記ユーザインタフェース装置へ出力され前記バッファメモリへ書き込むためのデータを、前記個々のオペレーティング・システムに対応して各々設けられたメモリ領域のうちデータ出力元のオペレーティング・システムに対応するメモリ領域に書き込ませ、何れか１つのメモリ領域に書き込まれているデータを前記ユーザインタフェース装置の前記バッファメモリに書き込むと共に、書き込まれているデータを前記バッファメモリに書き込むメモリ領域を情報処理装置の稼働中に切り替える制御手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置及びプログラムに係り、特に、ユーザインタフェース装置が接続され、複数種のオペレーティング・システムのプログラムを各々実行すると共に、複数種のオペレーティング・システムのうちの何れか１つのオペレーティング・システムを介して任意の処理を行う複数種のアプリケーションのプログラムを各々実行する情報処理装置及びコンピュータを前記情報処理装置として機能させるためのプログラムに関する。
【背景技術】
【０００２】
複写機やプリンタ、ファクシミリ装置、或いはこれらの機能を兼ね備えた複合機等の画像処理装置、携帯電話機等の携帯端末、各種のマルチメディア機器等では、多機能化の要求を満たすために、内蔵しているコンピュータにおいて、互いに異なるオペレーティング・システム（ＯＳ）上で動作するアプリケーション（例えばリアルタイム性が要求される処理を行うアプリケーションと、ＯＳが提供するＧＵＩを利用した処理やマルチメディア処理を行うアプリケーション等）を各々実行可能にする必要が生じてきている。これは、単一のハードウェア上で複数種のＯＳを動作させるハイブリッドＯＳシステムによって実現できる。
【０００３】
一般にハイブリッドＯＳシステムでは、コンピュータに接続されたユーザインタフェース装置等のハードウェア資源が各々単一のＯＳに固定的に割り当てられて管理・使用される。このため、互いに異なるＯＳ上で動作するアプリケーションが同一のユーザインタフェース装置を各々使用する処理を行う場合（例えばユーザインタフェース装置としての表示装置に各々情報を表示させる等）には、個々のアプリケーションが動作するＯＳの数と同数のユーザインタフェース装置を各々設ける必要がある等、構成が複雑化すると共にコストが増大するという問題がある。
【０００４】
上記に関連し、ハイブリッドＯＳを実現する技術として、特許文献１には、第１のＯＳにおいて、第２のＯＳが必要とする物理メモリ、外部デバイス等の計算機資源を予約し、どちらのＯＳからも独立した管理プログラムが外部割り込みを横取りして、割込要因によりどのＯＳの割込ハンドラを起動すべきかを決定し、それに基づいて各ＯＳを一台の計算機で動作させる技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１１−１４９３８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に記載の技術によれば、複数のＯＳを同時に実行させるハイブリッドＯＳシステムを実現することができ、第１のＯＳとは独立に動作する新機能（第２のＯＳ上で動作するアプリケーション）をコンピュータに組み込むことが可能となる。しかしながら、特許文献１に記載の技術においても、コンピュータが稼働している間、ユーザインタフェース装置等のハードウェア資源は何れか１つのＯＳに固定的に割り当てされるので、特定のＯＳに割り当てられたユーザインタフェース装置を他のＯＳ上で動作するアプリケーションが使用できない、という問題は解決されていない。
【０００７】
本発明は上記事実を考慮して成されたもので、ユーザインタフェース装置を使用するオペレーティング・システムを情報処理装置の稼働中に切り替えることが可能な情報処理装置及びプログラムを得ることが目的である。
【課題を解決するための手段】
【０００８】
請求項１記載の発明に係る情報処理装置は、ユーザインタフェース装置が接続され、複数種のオペレーティング・システムのプログラムを各々実行すると共に、前記複数種のオペレーティング・システムのうちの何れか１つのオペレーティング・システムを介して任意の処理を行う複数種のアプリケーションのプログラムを各々実行することで、前記複数種のオペレーティング・システム及び前記複数種のアプリケーションを各々動作させる情報処理装置であって、前記複数種のオペレーティング・システムのうち前記ユーザインタフェース装置を使用する個々のオペレーティング・システムに対し、前記ユーザインタフェース装置のバッファメモリのアドレスとして、前記個々のオペレーティング・システムに対応して各々設けたメモリ領域のうちの対応するメモリ領域のアドレスを各々通知することで、前記個々のオペレーティング・システムからデバイスドライバを通じて前記ユーザインタフェース装置へ出力され前記バッファメモリへ書き込むためのデータを、前記個々のオペレーティング・システムに対応して各々設けられたメモリ領域のうちデータ出力元のオペレーティング・システムに対応するメモリ領域に書き込ませ、何れか１つのメモリ領域に書き込まれているデータを前記ユーザインタフェース装置の前記バッファメモリに書き込むと共に、書き込まれているデータを前記バッファメモリに書き込むメモリ領域を情報処理装置の稼働中に切り替える制御手段を備えたことを特徴としている。
【０００９】
上記構成により、ユーザインタフェース装置を使用するオペレーティング・システムを情報処理装置の稼働中に切り替えることが可能となる。また、個々のオペレーティング・システムが、デバイスドライバを通じてユーザインタフェース装置へ出力するデータを書き込んでいるメモリがユーザインタフェース装置のバッファメモリか自システムに対応するメモリ領域かを認識して処理を切り替える必要が無くなるので、個々のオペレーティング・システムの構成を一切変更する必要がなくなる。なお、請求項１記載の発明に係る情報処理装置は、複写機やプリンタ、ファクシミリ装置、或いはこれらの機能を兼ね備えた複合機等の画像処理装置、携帯電話機等の携帯端末、各種のマルチメディア機器等の各種機器の何れかに組み込まれているコンピュータであってもよいし、パーソナル・コンピュータ(ＰＣ)等の独立したコンピュータであってもよい。
【００１０】
請求項２記載の発明は、請求項１記載の発明において、前記制御手段は、前記ユーザインタフェース装置を使用する個々のオペレーティング・システムの初期化時に、個々のオペレーティング・システムがデバイスドライバを通じて前記ユーザインタフェース装置の前記バッファメモリのアドレスを問い合わせる処理をフックして、前記ユーザインタフェース装置のバッファメモリのアドレスとして、対応するメモリ領域のアドレスを問い合わせ元のオペレーティング・システムへ通知することで、前記個々のオペレーティング・システムから前記ユーザインタフェース装置へ出力されるデータを、前記個々のオペレーティング・システムに対応するメモリ領域に書き込ませることを特徴としている。
【００１１】
請求項３記載の発明は、請求項２記載の発明において、前記個々のオペレーティング・システムは、ジャンプ先が登録されたテーブルを参照し、当該テーブルに登録されているジャンプ先にジャンプすることで、前記バッファメモリのアドレスを含む前記ユーザインタフェース装置の情報を問い合わせる処理を行う構成であり、前記制御手段は、前記テーブルに登録されたジャンプ先を書き替えることで、前記処理をフックすることを特徴としている。
【００１２】
請求項４記載の発明は、請求項１記載の発明において、前記制御手段は、前記ユーザインタフェース装置を使用するオペレーティング・システムの切り替えを指示する指示手段からの前記指示に応じて、書き込まれているデータを前記ユーザインタフェース装置へ出力するメモリ領域の切り替えを行うことを特徴としている。なお、上記の指示手段はユーザの操作に応じて前記指示を出力する構成であってもよいし、情報処理装置におけるエラーの発生や操作部が操作された等の所定のイベントの発生を契機として前記指示を自動的に出力する構成であってもよい。
【００１３】
請求項５記載の発明は、請求項１記載の発明において、前記制御手段は、前記情報処理装置に設けられているメモリから、前記複数種のオペレーティング・システムのうち前記ユーザインタフェース装置を使用するオペレーティング・システムと同数のメモリ領域を確保すると共に、確保した個々のメモリ領域に対応するオペレーティング・システムを識別する識別情報を第１記憶手段に記憶しておき、前記第１記憶手段に記憶した前記識別情報に基づいて、前記個々のメモリ領域に対応するオペレーティング・システムを判断することを特徴としている。
【００１４】
請求項６記載の発明は、請求項１記載の発明において、前記制御手段は、前記個々のオペレーティング・システムからデバイスドライバを通じて前記ユーザインタフェース装置へ出力されるデータの属性（例えばビデオデータであれば画素数や階調数等）を取得し、前記個々のオペレーティング・システムに対応して各々設けるメモリ領域のサイズを前記取得した属性に基づいて各々決定し、決定したサイズのメモリ領域を確保した後に、前記個々のオペレーティング・システムに対し、前記ユーザインタフェース装置のバッファメモリのアドレスとして、前記確保したメモリ領域のうちの対応するメモリ領域のアドレスを各々通知することを特徴としている。
【００１５】
請求項７記載の発明は、請求項６記載の発明において、前記ユーザインタフェース装置は表示装置であり、前記制御手段は、前記情報処理装置の電源が投入された際の初期化時に、前記表示装置に搭載されているビデオメモリのサイズを調査し、当該調査によって判明した前記ビデオメモリのサイズを第２記憶手段に記憶しておき、前記個々のオペレーティング・システムからデバイスドライバを通じて前記ユーザインタフェース装置へ出力されるデータの属性と、前記第２記憶手段に記憶されている前記ビデオメモリのサイズと、に基づいて前記個々のメモリ領域のサイズを各々決定することを特徴としている。なお、個々のメモリ領域のサイズは、例えばビデオメモリのサイズを最大サイズとし、個々のオペレーティング・システムから出力されるビデオデータの属性に基づき、必要に応じてメモリ領域のサイズを小さくすることができる。これにより、個々のメモリ領域のサイズを最適化することができ、情報処理装置に設けられているメモリを有効に使用することができる。
【００１６】
請求項８記載の発明に係るプログラムは、ユーザインタフェース装置が接続され、複数種のオペレーティング・システムのプログラムを各々実行すると共に、前記複数種のオペレーティング・システムのうちの何れか１つのオペレーティング・システムを介して任意の処理を行う複数種のアプリケーションのプログラムを各々実行することで、前記複数種のオペレーティング・システム及び前記複数種のアプリケーションを各々動作させるコンピュータを、前記複数種のオペレーティング・システムのうち前記ユーザインタフェース装置を使用する個々のオペレーティング・システムに対し、前記ユーザインタフェース装置のバッファメモリのアドレスとして、前記個々のオペレーティング・システムに対応して各々設けたメモリ領域のうちの対応するメモリ領域のアドレスを各々通知することで、前記個々のオペレーティング・システムからデバイスドライバを通じて前記ユーザインタフェース装置へ出力され前記バッファメモリへ書き込むためのデータを、前記個々のオペレーティング・システムに対応して各々設けられたメモリ領域のうちデータ出力元のオペレーティング・システムに対応するメモリ領域に書き込ませ、何れか１つのメモリ領域に書き込まれているデータを前記ユーザインタフェース装置の前記バッファメモリに書き込むと共に、書き込まれているデータを前記バッファメモリに書き込むメモリ領域を情報処理装置の稼働中に切り替える制御手段として機能させる。
【発明の効果】
【００１７】
以上説明したように本発明は、ユーザインタフェース装置を使用する個々のオペレーティング・システムに対し、ユーザインタフェース装置のバッファメモリのアドレスとして、個々のオペレーティング・システムに対応して各々設けたメモリ領域のうちの対応するメモリ領域のアドレスを各々通知することで、個々のオペレーティング・システムからデバイスドライバを通じてユーザインタフェース装置へ出力されバッファメモリへ書き込むためのデータを、個々のオペレーティング・システムに対応して各々設けられたメモリ領域のうちデータ出力元のオペレーティング・システムに対応するメモリ領域に書き込ませ、何れか１つのメモリ領域に書き込まれているデータをユーザインタフェース装置のバッファメモリに書き込むと共に、書き込まれているデータをバッファメモリに書き込むメモリ領域を情報処理装置の稼働中に切り替えるようにしたので、ユーザインタフェース装置を使用するオペレーティング・システムを情報処理装置の稼働中に切り替えることが可能となる、という優れた効果を有する。
【図面の簡単な説明】
【００１８】
【図１】本実施形態に係るコンピュータの概略構成を示すブロック図である。
【図２】本実施形態における機能ブロック図である。
【図３】コンピュータで実行される初期化処理の内容を示すフローチャートである。
【図４】表示切替指示に応じてコンピュータ（表示制御部）で実行される表示切替処理の内容を示すフローチャートである。
【発明を実施するための形態】
【００１９】
以下、図面を参照して本発明の実施形態の一例を詳細に説明する。図１には実施形態に係るコンピュータ１０が示されている。コンピュータ１０は、複写機やプリンタ、ファクシミリ装置、或いはこれらの機能を兼ね備えた複合機等の画像処理装置、携帯電話機やＰＤＡ（Personal Digital Assistant）等の携帯端末、各種のマルチメディア機器等の各種機器の何れかに組み込まれていてもよいし、パーソナル・コンピュータ(ＰＣ)等の独立したコンピュータであってもよい。コンピュータ１０は本発明に係る情報処理装置に対応している。
【００２０】
コンピュータ１０はＣＰＵ１２、メモリ１４、操作部１６、記憶部１８を備えており、これらはバス２０を介して互いに接続されている。また、コンピュータ１０は表示装置２２を備えており、表示装置２２は表示装置Ｉ／Ｆ（インタフェース）部２４を介してバス２０に接続されている。表示装置Ｉ／Ｆ部２４は、表示装置２２に表示させる画面のデータ（ビデオデータ）を一時記憶するためのビデオメモリ２６を内蔵しており、ビデオメモリ２６に書き込まれたビデオデータを表示装置２２に出力することで、当該ビデオデータが表す画面を表示装置２２に表示させる。なお、表示装置２２は本発明に係るユーザインタフェース装置に対応しており、ビデオメモリ２６は請求項１に記載のバッファメモリに対応している。
【００２１】
コンピュータ１０が上述したような各種機器の何れかに組み込まれている場合、操作部１６としては前記機器に設けられたテンキー等を、表示装置２２としては前記機器に設けられたＬＣＤ等から成る表示パネルを適用することができる。また、コンピュータ１０が独立したコンピュータである場合、操作部１６としては当該コンピュータに接続されたキーボード、マウス等を、表示装置２２としては当該コンピュータに接続されたディスプレイを適用することができる。また、記憶部１８としてはＨＤＤ(Hard Disk Drive)が好適であるが、これに代えてフラッシュメモリ等の他の不揮発性の記憶手段を用いることも可能である。
【００２２】
本実施形態に係るコンピュータ１０では、コンピュータ１０が実現する機能の多機能化を達成するために、複数種のＯＳが並列に動作するハイブリッドＯＳシステムが実現されており、記憶部１８には、ＣＰＵ１２によって実行される各種のプログラムとして、複数種のオペレーティング・システム（以下、ＯＳと略す）のプログラム（図１ではオペレーティング・システム群３０と表記）、個々のＯＳ上で動作する複数種のアプリケーション・プログラム（図１ではアプリケーション・プログラム群３２と表記）、個々のＯＳ毎に用意され個々のＯＳが（詳しくは個々のＯＳを通じて個々のアプリケーション・プログラムが）表示装置２２等のハードウェア資源を使用する際にＯＳと使用するハードウェア資源との橋渡しをするデバイスドライバ（図１ではデバイスドライバ群３４と表記）、及び、個々のＯＳによる表示装置２２の使用を制御する表示制御プログラム３６が各々記憶（インストール）されている。なお、表示制御プログラム３６は請求項８に記載のプログラムに対応している。
【００２３】
なお、記憶部１８にインストールされている複数種のＯＳとしては、例えば高リアルタイム性が要求される処理に適したリアルタイムＯＳ（ＲＴＯＳ）や、アプリケーション・プログラムに対してＧＵＩやマルチメディア処理を行うための機能を提供可能な汎用ＯＳ等が挙げられる。また、個々のＯＳ上で動作するアプリケーション・プログラムの中には表示装置２２を使用するアプリケーション・プログラムと表示装置２２を使用しないアプリケーション・プログラムが混在しているが、ＲＴＯＳ上で動作するアプリケーション・プログラムのうち表示装置２２を使用するアプリケーション・プログラムとしては、例えばコンピュータ１０に接続された図示しない計測器による計測結果を表示装置２２上にリアルタイムに表示させる処理を行う計測器用ＧＵＩ等が挙げられ、汎用ＯＳ上で動作するアプリケーション・プログラムのうち表示装置２２を使用するアプリケーション・プログラムとしては、例えばウェブブラウザや動画再生アプリケーション等が挙げられるが、上記に限られるものではないことは言うまでもない。
【００２４】
次に本実施形態の作用を説明する。前述のように、本実施形態に係るコンピュータ１０ではハイブリッドＯＳシステムが実現され、コンピュータ１０の稼働状態では、図２に第１ＯＳ３０Ａ〜第３ＯＳ３０Ｃとして示すように複数種のＯＳが並列に動作する。また、個々のＯＳ上では互いに異なる単一又は複数種のアプリケーション・プログラムが各々動作し（図２では、第１ＯＳ３０Ａ上で動作するアプリケーション・プログラムに符号「３２Ａ」を、第２ＯＳ３０Ｂ上で動作するアプリケーション・プログラムに符号「３２Ｂ」を、第３ＯＳ３０Ｃ上で動作するアプリケーション・プログラムに符号「３２Ｃ」を付して各々示す）、個々のＯＳが表示装置２２等のハードウェア資源を使用する際には、個々のＯＳに対応するデバイスドライバ（図２では、第１ＯＳ３０Ａに対応するデバイスドライバに符号「３４Ａ」を、第２ＯＳ３０Ｂに対応するデバイスドライバに符号「３４Ｂ」を、第３ＯＳ３０Ｃに対応するデバイスドライバに符号「３４Ｃ」を付して各々示す）によって個々のＯＳとハードウェア資源との橋渡しが成される。
【００２５】
一方、本実施形態ではＣＰＵ１２が表示制御プログラム３６を実行することで表示制御部４０が実現される。表示制御部４０は、記憶部１８にインストールされている複数種のＯＳのうち、表示装置２２を使用する個々のＯＳによる表示装置２２の使用を制御する機能を有しており、請求項１に記載の制御手段に対応している。
【００２６】
表示制御部４０は、前記個々のＯＳに対応する仮想ビデオメモリ領域をメモリ１４上に各々確保すると共に、前記個々のＯＳに対し、本来はビデオメモリ２６に書き込むべきビデオデータ（表示装置２２に表示させるべき画面を表すデータ）を対応する仮想ビデオメモリ領域に書き込ませるための処理を行う仮想ビデオメモリ対応部４２、前記個々のＯＳと個々の仮想ビデオメモリ領域を対応付ける情報を記憶する仮想ビデオメモリ領域選択部４４、ビデオメモリ２６のサイズを調査するビデオメモリサイズ調査部４６、ビデオメモリサイズ調査部４６によって調査されたビデオメモリ２６のサイズを記憶するビデオメモリサイズ記憶部４８、個々の仮想ビデオメモリ領域のうちの何れか１つに書き込まれたビデオデータを読み出してビデオメモリ２６に書き込むと共に、指示部５２からの指示に応じてビデオデータ読出対象の仮想ビデオメモリ領域を切り替える仮想ビデオメモリ領域切替部５０を含んで構成されている。なお、指示部５２は請求項４に記載の指示手段に対応している。
【００２７】
次に、本実施形態において、コンピュータ１０の電源が投入されるとコンピュータ１０のＣＰＵ１２によって実行される初期化処理について、図３のフローチャートを参照して説明する。
【００２８】
コンピュータ１０の電源が投入されると、ハードウェアのテストやメモリ１４の初期化等の処理が行われた後に、ＯＳのプログラムのロードに先立ち、ステップ１００で表示制御部４０のプログラムが記憶部１８からメモリ１４にロードされる。そして、メモリ１４の記憶領域のうち表示制御部４０のプログラムをロードした領域の先頭へジャンプし、表示制御部４０のプログラムが実行されることで、以下のステップ１０２〜１０６の処理が行われる。すなわち、まずステップ１０２では表示装置Ｉ／Ｆ部２４に対してビデオメモリ２６のサイズやアドレスを含む表示装置２２の情報（型式やメーカ名、仕様等）を問い合わせることで、表示装置２２の情報を表示装置Ｉ／Ｆ部２４から取得する。またステップ１０４では、ステップ１０２で取得したビデオメモリ２６のサイズやアドレスを含む表示装置２２の情報を、表示制御部４０用に割り当てられたメモリ１４上の所定領域に記憶させる。なお、上記のステップ１０２，１０４の処理はビデオメモリサイズ調査部４６に対応しており、表示装置２２の情報が記憶されるメモリ１４上の所定領域はビデオメモリサイズ記憶部４８に対応しており、請求項７に記載の第２記憶手段にも対応している。
【００２９】
ところで、初期化処理では後述のように各ＯＳがメモリ１４に順にロードされ、ロードされたＯＳの初期化が順に行われるが、このＯＳが表示装置２２を使用するＯＳであった場合、このＯＳの初期化には、表示装置２２の情報を対応するデバイスドライバを通じて表示装置Ｉ／Ｆ部２４に問い合わせて取得する処理が含まれている。次のステップ１０６では、メモリ１４にロードされたＯＳの初期化においてデバイスドライバを通じて表示装置２２の情報の問い合わせが行われると、この問い合わせをフックして自ら（表示制御部４０）に制御が移るようにするためのＯＳ問い合わせフック処理を行う。このフック処理は、例えば表示装置２２の情報の問い合わせが、ジャンプ先が登録されたテーブルを参照して、テーブルに登録されているジャンプ先にジャンプする間接ジャンプであれば、上記テーブルを書き替えてジャンプ先を変更する処理を行うことで実現することができる。
【００３０】
次のステップ１０８では、記憶部１８にインストールされている複数種のＯＳのうちの特定のＯＳ（特定のＯＳは複数種のＯＳの何れでもよいが、以下では便宜上「第１ＯＳ３０Ａ」と称する）のプログラムをメモリ１４にロードすると共に、記憶部１８にインストールされている各ＯＳ用のデバイスドライバのうち第１ＯＳ３０Ａ用のデバイスドライバ３４Ａをメモリ１４にロードする。そして、メモリ１４の記憶領域のうち第１ＯＳ３０Ａのプログラムをロードした領域の先頭へジャンプし、第１ＯＳ３０Ａのプログラムが実行されることで、以下のステップ１１０，１１８で第１ＯＳ３０Ａの初期化が行われる。
【００３１】
すなわち、第１ＯＳ３０Ａが表示装置２２を使用するＯＳであった場合、ステップ１１０では第１ＯＳ３０Ａにより、前述のように表示装置２２の情報をデバイスドライバ３４Ａを通じて表示装置Ｉ／Ｆ部２４に問い合わせる処理が行われる。但し、本実施形態に係る初期化処理では、ステップ１６０でＯＳ問い合わせフック処理が行われているので、ステップ１１０の処理が行われると表示制御部４０に制御が移る。そして表示制御部４０は、次のステップ１１２において、まずビデオメモリサイズ記憶部４８に記憶されている表示装置２２の情報を読み出し、読み出した情報に含まれるビデオメモリ２６のサイズと同サイズの仮想ビデオメモリ領域を第１ＯＳ３０Ａ用の仮想ビデオメモリ領域（図２参照）としてメモリ１４上に確保し、確保した第１ＯＳ３０Ａ用の仮想ビデオメモリ領域の情報（アドレス等）を、第１ＯＳ３０Ａの識別情報と対応付けて、表示制御部４０用に割り当てられたメモリ１４上の所定領域に記憶したテーブルに登録する。なお、メモリ１４のうちこのテーブルを記憶している領域は仮想ビデオメモリ領域選択部４４に対応しており、請求項５に記載の第１記憶手段にも対応している。
【００３２】
また表示制御部４０は、次のステップ１１４において、ステップ１１２で確保した第１ＯＳ３０Ａ用の仮想ビデオメモリ領域を初期化する。そしてステップ１１６では、先の１１０における問い合わせに対する応答として、先のステップ１１２でビデオメモリサイズ記憶部４８から読み出した表示装置２２の情報を、当該情報に含まれるビデオメモリ２６のアドレスを第１ＯＳ３０Ａ用の仮想ビデオメモリ領域のアドレスへ書き替えた後に、デバイスドライバ３４Ａ経由で第１ＯＳ３０Ａへ通知し、第１ＯＳ３０Ａに制御を戻す。なお、上述したステップ１１２〜１１６は仮想ビデオメモリ対応部４２に対応している。
【００３３】
上記のように、第１ＯＳ３０Ａからの表示装置２２の情報の問い合わせに対し、ビデオメモリ２６のアドレスに代えて第１ＯＳ３０Ａ用の仮想ビデオメモリ領域のアドレスを通知することで、第１ＯＳ３０Ａ上で動作するアプリケーション・プログラム３２Ａからの指示等に応じて、第１ＯＳ３０Ａが表示装置２２に任意の画面を表示させる場合、当該任意の画面を表すビデオデータは、デバイスドライバ３４Ａを通じて第１ＯＳ３０Ａ用の仮想ビデオメモリ領域に書き込まれることになる。また、表示制御部４０は第１ＯＳ３０Ａに表示装置２２の情報を通知すると、第１ＯＳ３０Ａ用の仮想ビデオメモリ領域に書き込まれているビデオデータを読み出してビデオメモリ２６に書き込むことを一定周期で繰り返す処理を開始する（仮想ビデメモリ領域切替部５０に相当する処理）。これにより、第１ＯＳ３０Ａによって第１ＯＳ３０Ａ用の仮想ビデオメモリ領域に書き込まれたビデオデータが表す画面は、表示制御部４０によって表示装置２２に表示されることになる。
【００３４】
次のステップ１１８では、第１ＯＳ３０Ａにより、表示装置２２の情報の問い合わせ以外の初期化処理が行われる。そして、第１ＯＳ３０Ａの初期化が完了すると、コンピュータ１０上で第１ＯＳ３０Ａが動作している状態となる。
【００３５】
以上のようにして第１ＯＳ３０Ａの起動（メモリ１４へのロード及び初期化）が完了すると、次のステップ１２０では、記憶部１８にインストールされている複数種のＯＳのうち未起動の特定のＯＳ（便宜上「第２ＯＳ３０Ｂ」と称する）のプログラムをメモリ１４にロードすると共に、記憶部１８にインストールされている各ＯＳ用のデバイスドライバのうち第２ＯＳ３０Ｂ用のデバイスドライバ３４Ｂをメモリ１４にロードする。そして、メモリ１４の記憶領域のうち第２ＯＳ３０Ａのプログラムをロードした領域の先頭へジャンプし、第２ＯＳ３０Ａのプログラムが実行されることで、以下のステップ１２２，１３０で第１ＯＳ３０Ａと同様に第２ＯＳ３０Ｂの初期化が行われる。
【００３６】
すなわち、第２ＯＳ３０Ｂも表示装置２２を使用するＯＳであった場合、ステップ１２２では第２ＯＳ３０Ｂにより、表示装置２２の情報をデバイスドライバ３４Ｂを通じて表示装置Ｉ／Ｆ部２４に問い合わせる処理が行われる。本実施形態では、ステップ１６０でＯＳ問い合わせフック処理が行われているので、ステップ１２２の処理が行われると表示制御部４０に再度制御が移る。そして表示制御部４０は、次のステップ１２４において、ビデオメモリサイズ記憶部４８に記憶されている表示装置２２の情報を読み出し、読み出した情報に含まれるビデオメモリ２６のサイズと同サイズの仮想ビデオメモリ領域を第２ＯＳ３０Ｂ用の仮想ビデオメモリ領域（図２参照）としてメモリ１４上に確保し、確保した第２ＯＳ３０Ｂ用の仮想ビデオメモリ領域のアドレス等を、第２ＯＳ３０Ｂの識別情報と対応付けて、仮想ビデオメモリ領域選択部４４に記憶されているテーブルに登録する。
【００３７】
また表示制御部４０は、次のステップ１２６において、ステップ１２４で確保した第２ＯＳ３０Ｂ用の仮想ビデオメモリ領域を初期化する。そしてステップ１２８では、先の１２２における問い合わせに対する応答として、先のステップ１２４でビデオメモリサイズ記憶部４８から読み出した表示装置２２の情報を、当該情報に含まれるビデオメモリ２６のアドレスを第２ＯＳ３０Ｂ用の仮想ビデオメモリ領域のアドレスへ書き替えた後に、デバイスドライバ３４Ｂ経由で第２ＯＳ３０Ｂへ通知し、第２ＯＳ３０Ｂに制御を戻す。なお、上述したステップ１２４〜１２８も仮想ビデオメモリ対応部４２に対応している。
【００３８】
上記のように、第２ＯＳ３０Ｂからの表示装置２２の情報の問い合わせに対し、ビデオメモリ２６のアドレスに代えて第２ＯＳ３０Ｂ用の仮想ビデオメモリ領域のアドレスを通知することで、第２ＯＳ３０Ｂ上で動作するアプリケーション・プログラム３２Ｂからの指示等に応じて、第２ＯＳ３０Ｂが表示装置２２に任意の画面を表示させる場合についても、当該任意の画面を表すビデオデータは、デバイスドライバ３４Ｂを通じて第２ＯＳ３０Ｂ用の仮想ビデオメモリ領域に書き込まれることになる。なお、第２ＯＳ３０Ｂに表示装置２２の情報を通知した後、表示制御部４０は、ビデオデータ読出対象の仮想ビデオメモリ領域を第１ＯＳ３０Ａ用の仮想ビデオメモリ領域から第２ＯＳ３０Ｂ用の仮想ビデオメモリ領域へ切り替えるようにしてもよいし、ビデオデータ読出対象を第１ＯＳ３０Ａ用の仮想ビデオメモリ領域のまま維持するようにしてもよい。
【００３９】
次のステップ１３０では、第２ＯＳ３０Ｂにより、表示装置２２の情報の問い合わせ以外の初期化処理が行われる。そして、初期化処理が完了すると、コンピュータ１０上で第１ＯＳ３０Ａが稼働している状態となる。
【００４０】
次のステップ１１８では、第１ＯＳ３０Ａにより、表示装置２２の情報の問い合わせ以外の初期化処理が行われる。そして、第１ＯＳ３０Ａの初期化が完了すると、コンピュータ１０上で第１ＯＳ３０Ａに加えて第２ＯＳ３０Ｂも動作している状態となる。また、本実施形態に係る初期化処理では、記憶部１８にプログラムがインストールされかつ未起動のＯＳがあれば（記憶部１８に３種類以上のＯＳのプログラムがインストールされている場合）、当該ＯＳに対して上述したステップ１０８〜１１８又はステップ１２０〜１３０と同様の処理が繰り返されることで、前記ＯＳのロード及び初期化が行われると共に、表示制御部４０によって前記ＯＳ用の仮想ビデオメモリ領域が確保され、確保された仮想ビデオメモリ領域のアドレスが前記ＯＳへ通知されることになる。
【００４１】
続いて、指示部５２から表示制御部４０へ表示切替指示（表示装置２２に画面を表示させるＯＳの切替指示）が入力されたことを契機として表示制御部４０によって実行される表示切替処理について、図４のフローチャートを参照して説明する。なお、指示部５２としては、例えば、表示装置２２に表示させる画面の切替を指示するための操作が操作部１６を介してユーザにより行われた場合に、当該操作を検知して表示切替指示を出力する構成を採用することができる。また、ユーザによる操作以外の所定のイベントの発生を検知して表示切替指示を出力する構成を採用することも可能であり、例えばコンピュータ１０に接続された特定の機器（例えば図示しない計測器）からデータが入力されたりエラー発生が通知された場合には、表示装置２２に画面を表示させるＯＳを、前記特定の機器に関する処理を行うアプリケーション・プログラム（例えば前出の計測器用ＧＵＩ等）が動作するＯＳに切り替えさせるための表示切替指示を出力する構成を採用してもよい。更に、表示切替指示を前回出力してからの経過時間が所定時間に達する毎に表示切替指示を出力する構成を採用することも可能である。
【００４２】
表示切替処理では、まずステップ１４０において、指示部５２から入力された表示切替指示が、表示装置２２に画面を表示させるＯＳを何れのＯＳに切り替える表示切替指示かを判断することで、入力された表示切替指示に対応する新たな仮想ビデオメモリ領域（新たにビデオデータ読出対象とすべき仮想ビデオメモリ領域）を認識する。そしてステップ１４２では、ビデオデータ読出対象の仮想ビデオメモリ領域をステップ１４０で認識した新たな仮想メモリ領域へ切り替え、処理を終了する。これにより、表示装置２２に表示されている画面が別のＯＳ（新たなビデオデータ読出対象の仮想ビデオメモリ領域に対応するＯＳ）の画面に切り替わることになる。なお、この表示切替処理は仮想ビデオメモリ領域切替部５０に対応している。
【００４３】
このように、本実施形態では、表示装置２２を使用する個々のＯＳに対応して仮想ビデオメモリ領域が各々用意されており、表示装置２２に任意の画面を表示させるために個々のＯＳが行う処理は、表示装置２２に表示すべき画面を表すビデオデータを、表示装置２２の情報を問い合わせを行うことで通知されたアドレスの領域（対応する仮想ビデオメモリ領域）にデバイスドライバを通じて書き込む処理のみであり、仮想ビデオメモリ領域に書き込まれているビデオデータの読み出し及びビデオメモリ２６への書き込みは表示制御部４０によって行われるので、表示装置２２に任意の画面を表示させるために個々のＯＳが行う処理は、自ＯＳが表示装置２２を実際に使用しているか否かに拘わらず従来と同じである。このため、表示装置２２を使用するＯＳを切替可能とするために個々のＯＳの構成（個々のＯＳが行う処理）を変更する必要はない。そして、表示装置２２を使用するＯＳの切替は、ビデオデータ読出対象の仮想ビデオメモリ領域を単に切り替える、という簡単な処理で実現することができ、ビデオデータ読出対象の仮想ビデオメモリ領域を切り替える際にＯＳに通知する等の煩雑な処理や新たなインタフェースも不要となる。
【００４４】
なお、上記では個々のＯＳに対応する仮想ビデオメモリ領域のサイズをビデオメモリ２６と同サイズとしていたが、本発明はこれに限定されるものではなく、ビデオメモリ２６のサイズを仮想ビデオメモリ領域の最大サイズとし、個々のＯＳがビデオメモリ２６に書き込むビデオデータの属性（画素数（解像度）や階調数（色数))を取得し、画素数や階調数が少ないビデオデータをビデオメモリ２６に書き込むＯＳについては、確保する仮想ビデオメモリ領域のサイズを小さくするようにしてもよい。これにより、個々のＯＳに対応する仮想ビデオメモリ領域のサイズを最適化することができ、コンピュータ１０のメモリ１４を有効に使用することができる。
【００４５】
また、上記では、表示制御部４０は表示装置２２を使用する個々のＯＳからの表示装置２２の情報の問い合わせをフックし、ビデオメモリ２６のアドレスに代えて対応する仮想ビデオメモリ領域のアドレスを通知することで、個々のＯＳに対し、対応する仮想ビデオメモリ領域にビデオデータを書き込む処理を行わせるようにしていたが、本発明はこれに限定されるものではなく、個々のＯＳはデバイスドライバを通じて表示制御部４０にビデオデータの書き込みを依頼し、表示制御部４０はビデオデータの書き込みが依頼される毎に、書き込みが依頼されたビデオデータを、書込依頼元のＯＳに対応する仮想ビデオメモリ領域に書き込む処理を行うように構成することも可能である。
【００４６】
また、上記では、表示制御部４０はビデオデータ読出対象の仮想ビデオメモリ領域を単に切り替える処理を行う態様を説明したが、本発明はこれに限定されるものではなく、複数の仮想ビデオメモリ領域に書き込まれているビデオデータを合成し、単一の画面のビデオデータとしてビデオメモリ２６に書き込む処理を行うようにしてもよい。
【００４７】
更に、上記ではユーザインタフェース装置の一例として表示装置２２を説明したが、本発明はこれに限定されるものではなく、表示装置以外のユーザインタフェース装置に適用することも可能であり、特にデータの流れがＯＳからユーザインタフェース装置へのデータの出力のみで、ユーザインタフェース装置からＯＳへのデータの入力の無いユーザインタフェース装置が好適である。
【符号の説明】
【００４８】
１０  コンピュータ
１４  メモリ
１８  記憶部
２２  表示装置
２４  表示装置Ｉ／Ｆ部
２６  ビデオメモリ
４０  表示制御部
４２  仮想ビデオメモリ対応部
４４  仮想ビデオメモリ領域選択部
４６  ビデオメモリサイズ調査部
４８  ビデオメモリサイズ記憶部
５０  仮想ビデオメモリ領域切替部
５０  仮想ビデメモリ領域切替部
５２  指示部
【図１】
2010055641.tif 000003
【図２】
2010055641.tif 000004
【図３】
2010055641.tif 000005
【図４】
2010055641.tif 000006