JP2006350956A - 情報処理装置及びプログラム - Google Patents

情報処理装置及びプログラム Download PDF

Info

Publication number
JP2006350956A
JP2006350956A JP2005179769A JP2005179769A JP2006350956A JP 2006350956 A JP2006350956 A JP 2006350956A JP 2005179769 A JP2005179769 A JP 2005179769A JP 2005179769 A JP2005179769 A JP 2005179769A JP 2006350956 A JP2006350956 A JP 2006350956A
Authority
JP
Japan
Prior art keywords
user interface
interface device
types
operating systems
memory area
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
JP2005179769A
Other languages
English (en)
Inventor
Atsushi Takeshita
篤 竹下
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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
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 Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP2005179769A priority Critical patent/JP2006350956A/ja
Publication of JP2006350956A publication Critical patent/JP2006350956A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】 ユーザインタフェース装置を使用するオペレーティング・システムを情報処理装置の稼働中の切り替えを可能とする。
【解決手段】 複数種のOSが並列に動作するハイブリッドOSシステムの電源が投入されると表示制御部40が起動され、ビデオメモリサイズ調査部46はビデオメモリ26のサイズ等を調査してビデオメモリサイズ記憶部48に記憶させ、仮想ビデオメモリ対応部42は、表示装置22を使用する個々のOSからの表示装置22の情報の問い合わせをフックする処理を行い、個々のOSからの問い合わせがある毎に、仮想ビデオメモリ領域を確保して初期化し、ビデオメモリ26のアドレスに代えて仮想ビデオメモリ領域のアドレスを通知する処理を繰り返す。これにより、個々のOSは表示装置22に表示すべき画面のビデオデータを対応する仮想ビデオメモリ領域に書き込む。
【選択図】 図2

Description

本発明は情報処理装置及びプログラムに係り、特に、ユーザインタフェース装置が接続され、複数種のオペレーティング・システムのプログラムを各々実行すると共に、複数種のオペレーティング・システムのうちの何れか1つのオペレーティング・システムを介して任意の処理を行う複数種のアプリケーションのプログラムを各々実行する情報処理装置及びコンピュータを前記情報処理装置として機能させるためのプログラムに関する。
複写機やプリンタ、ファクシミリ装置、或いはこれらの機能を兼ね備えた複合機等の画像処理装置、携帯電話機等の携帯端末、各種のマルチメディア機器等では、多機能化の要求を満たすために、内蔵しているコンピュータにおいて、互いに異なるオペレーティング・システム(OS)上で動作するアプリケーション(例えばリアルタイム性が要求される処理を行うアプリケーションと、OSが提供するGUIを利用した処理やマルチメディア処理を行うアプリケーション等)を各々実行可能にする必要が生じてきている。これは、単一のハードウェア上で複数種のOSを動作させるハイブリッドOSシステムによって実現できる。
一般にハイブリッドOSシステムでは、コンピュータに接続されたユーザインタフェース装置等のハードウェア資源が各々単一のOSに固定的に割り当てられて管理・使用される。このため、互いに異なるOS上で動作するアプリケーションが同一のユーザインタフェース装置を各々使用する処理を行う場合(例えばユーザインタフェース装置としての表示装置に各々情報を表示させる等)には、個々のアプリケーションが動作するOSの数と同数のユーザインタフェース装置を各々設ける必要がある等、構成が複雑化すると共にコストが増大するという問題がある。
上記に関連し、ハイブリッドOSを実現する技術として、特許文献1には、第1のOSにおいて、第2のOSが必要とする物理メモリ、外部デバイス等の計算機資源を予約し、どちらのOSからも独立した管理プログラムが外部割り込みを横取りして、割込要因によりどのOSの割込ハンドラを起動すべきかを決定し、それに基づいて各OSを一台の計算機で動作させる技術が開示されている。
特開平11−149385号公報
特許文献1に記載の技術によれば、複数のOSを同時に実行させるハイブリッドOSシステムを実現することができ、第1のOSとは独立に動作する新機能(第2のOS上で動作するアプリケーション)をコンピュータに組み込むことが可能となる。しかしながら、特許文献1に記載の技術においても、コンピュータが稼働している間、ユーザインタフェース装置等のハードウェア資源は何れか1つのOSに固定的に割り当てされるので、特定のOSに割り当てられたユーザインタフェース装置を他のOS上で動作するアプリケーションが使用できない、という問題は解決されていない。
本発明は上記事実を考慮して成されたもので、ユーザインタフェース装置を使用するオペレーティング・システムを情報処理装置の稼働中に切り替えることが可能な情報処理装置及びプログラムを得ることが目的である。
上記目的を達成するために請求項1記載の発明に係る情報処理装置は、ユーザインタフェース装置が接続され、複数種のオペレーティング・システムのプログラムを各々実行すると共に、前記複数種のオペレーティング・システムのうちの何れか1つのオペレーティング・システムを介して任意の処理を行う複数種のアプリケーションのプログラムを各々実行することで、前記複数種のオペレーティング・システム及び前記複数種のアプリケーションを各々動作させる情報処理装置であって、前記ユーザインタフェース装置を前記複数種のオペレーティング・システムのうちの何れか1つに使用させると共に、前記ユーザインタフェース装置を使用するオペレーティング・システムを情報処理装置の稼働中に切り替える制御手段を備えたことを特徴としている。
請求項1記載の発明に係る情報処理装置は、ユーザインタフェース装置が接続され、複数種のオペレーティング・システムのプログラムを各々実行すると共に、複数種のオペレーティング・システムのうちの何れか1つのオペレーティング・システムを介して任意の処理を行う複数種のアプリケーションのプログラムを各々実行することで、複数種のオペレーティング・システム及び複数種のアプリケーションを各々動作させる。なお、請求項2記載の発明に係る情報処理装置は、複写機やプリンタ、ファクシミリ装置、或いはこれらの機能を兼ね備えた複合機等の画像処理装置、携帯電話機等の携帯端末、各種のマルチメディア機器等の各種機器の何れかに組み込まれているコンピュータであってもよいし、パーソナル・コンピュータ(PC)等の独立したコンピュータであってもよい。
ここで、請求項1記載の発明では、ユーザインタフェース装置を複数種のオペレーティング・システムのうちの何れか1つに使用させると共に、ユーザインタフェース装置を使用するオペレーティング・システムを情報処理装置の稼働中に切り替える制御手段が設けられている。これにより、請求項1記載の発明では、ユーザインタフェース装置を使用するオペレーティング・システムを情報処理装置の稼働中に切り替えることを実現することができる。
また、請求項2記載の発明に係る情報処理装置は、ユーザインタフェース装置が接続され、複数種のオペレーティング・システムのプログラムを各々実行すると共に、前記複数種のオペレーティング・システムのうちの何れか1つのオペレーティング・システムを介して任意の処理を行う複数種のアプリケーションのプログラムを各々実行することで、前記複数種のオペレーティング・システム及び前記複数種のアプリケーションを各々動作させる情報処理装置であって、前記複数種のオペレーティング・システムのうち前記ユーザインタフェース装置を使用する個々のオペレーティング・システムからデバイスドライバを通じて前記ユーザインタフェース装置へ出力されるデータを、前記個々のオペレーティング・システムに対応して各々設けられたメモリ領域のうちデータ出力元のオペレーティング・システムに対応するメモリ領域に書き込ませ、何れか1つのメモリ領域に書き込まれているデータを前記ユーザインタフェース装置へ出力すると共に、書き込まれているデータを前記ユーザインタフェース装置へ出力するメモリ領域を情報処理装置の稼働中に切り替える制御手段を備えたことを特徴としている。
請求項2記載の発明に係る情報処理装置は、ユーザインタフェース装置が接続され、複数種のオペレーティング・システムのプログラムを各々実行すると共に、複数種のオペレーティング・システムのうちの何れか1つのオペレーティング・システムを介して任意の処理を行う複数種のアプリケーションのプログラムを各々実行することで、複数種のオペレーティング・システム及び複数種のアプリケーションを各々動作させる。なお、請求項2記載の発明に係る情報処理装置は、複写機やプリンタ、ファクシミリ装置、或いはこれらの機能を兼ね備えた複合機等の画像処理装置、携帯電話機等の携帯端末、各種のマルチメディア機器等の各種機器の何れかに組み込まれているコンピュータであってもよいし、パーソナル・コンピュータ(PC)等の独立したコンピュータであってもよい。
ここで、請求項2記載の発明では、複数種のオペレーティング・システムのうちユーザインタフェース装置を使用する個々のオペレーティング・システムからデバイスドライバを通じてユーザインタフェース装置へ出力されるデータを、個々のオペレーティング・システムに対応して各々設けられたメモリ領域のうちデータ出力元のオペレーティング・システムに対応するメモリ領域に書き込ませ、何れか1つのメモリ領域に書き込まれているデータをユーザインタフェース装置へ出力すると共に、書き込まれているデータをユーザインタフェース装置へ出力するメモリ領域を情報処理装置の稼働中に切り替える制御手段が設けられている。
請求項2記載の発明では、ユーザインタフェース装置を使用する個々のオペレーティング・システムに対応してメモリ領域が各々設けられており、前記個々のオペレーティング・システムは、通常はデバイスドライバを通じてユーザインタフェース装置へ出力されるデータを対応するメモリ領域に書き込み、何れか1つのメモリ領域に書き込まれているデータのユーザインタフェース装置への出力は制御手段によって行われる。このため、請求項2記載の発明において、ユーザインタフェース装置は、結果として、書き込まれているデータがユーザインタフェース装置に出力される何れか1つのメモリ領域に対応するオペレーティング・システムによって使用されることになるが、個々のオペレーティング・システムが行う処理は、対応するメモリ領域に書き込んだデータがユーザインタフェース装置に出力されているか否か(自システムがユーザインタフェース装置を使用しているか否か)に拘わらず同一(通常はユーザインタフェース装置へ出力するデータを対応するメモリ領域に書き込む処理を行うのみ)であるので、書き込まれているデータがユーザインタフェース装置へ出力されるメモリ領域が切り替わったとしても、これを検知して処理を切り替える必要はない。
このため、ユーザインタフェース装置を使用するオペレーティング・システムを情報処理装置の稼働中に切り替えることは、書き込まれているデータをユーザインタフェース装置へ出力するメモリ領域を情報処理装置の稼働中に単に切り替える、という簡単な処理で実現することができ、上記の切り替えを実現するために個々のオペレーティング・システムの構成を変更する必要がなくなると共に、データを出力するメモリ領域の切り替え時にオペレーティング・システムに通知する等の煩雑な処理も不要となる。従って、請求項2記載の発明によれば、ユーザインタフェース装置を使用するオペレーティング・システムを情報処理装置の稼働中に切り替えることを実現することができる。
なお、請求項2記載の発明において、何れか1つのメモリ領域に書き込まれているデータを制御手段がユーザインタフェース装置へ出力することは、例えば制御手段がデータ出力対象のメモリ領域からデータを読み出してユーザインタフェース装置へ単に出力する処理を行うことによっても実現できるが、ユーザインタフェース装置がバッファメモリを備えており、個々のオペレーティング・システムからデバイスドライバを通じてユーザインタフェース装置へ出力されるデータが、ユーザインタフェース装置のバッファメモリへ書き込むためのデータである場合、制御手段は、例えば請求項3に記載したように、メモリ領域からユーザインタフェース装置へ出力するデータを、ユーザインタフェース装置のバッファメモリに書き込むように構成することができる。
また、請求項3記載の発明において、制御手段が、個々のオペレーティング・システムからデバイスドライバを通じてユーザインタフェース装置へ出力されるデータを対応するメモリ領域に書き込ませることは、例えば請求項4に記載したように、ユーザインタフェース装置を使用する個々のオペレーティング・システムの初期化時に、個々のオペレーティング・システムがデバイスドライバを通じてユーザインタフェース装置のバッファメモリのアドレスを問い合わせる処理をフックして、対応するメモリ領域のアドレスを問い合わせ元のオペレーティング・システムへ通知することによって実現することができる。これにより、個々のオペレーティング・システムが、デバイスドライバを通じてユーザインタフェース装置へ出力するデータを書き込んでいるメモリがユーザインタフェース装置のバッファメモリか自システムに対応するメモリ領域かを認識して処理を切り替える必要が無くなり、個々のオペレーティング・システムの構成を一切変更する必要がなくなる。
また、請求項2記載の発明において、制御手段は、例えば請求項5に記載したように、ユーザインタフェース装置を使用するオペレーティング・システムの切り替えを指示する指示手段からの前記指示に応じて、書き込まれているデータをユーザインタフェース装置へ出力するメモリ領域の切り替えを行うように構成することができる。なお、上記の指示手段はユーザの操作に応じて前記指示を出力する構成であってもよいし、情報処理装置におけるエラーの発生や操作部が操作された等の所定のイベントの発生を契機として前記指示を自動的に出力する構成であってもよい。
また、請求項2記載の発明において、制御手段は、請求項6に記載したように、前記情報処理装置に設けられているメモリから、複数種のオペレーティング・システムのうちユーザインタフェース装置を使用するオペレーティング・システムと同数のメモリ領域を確保すると共に、確保した個々のメモリ領域に対応するオペレーティング・システムを識別する識別情報を第1記憶手段に記憶しておき、第1記憶手段に記憶した識別情報に基づいて、個々のメモリ領域に対応するオペレーティング・システムを判断するように構成することができる。
また、本発明に係るユーザインタフェース装置としては表示装置が好適であるが、請求項6記載の発明において、ユーザインタフェース装置が表示装置である場合、制御手段は、例えば請求項7に記載したように、表示装置に搭載されているビデオメモリのサイズを調査し、当該調査によって判明したビデオメモリのサイズを第2記憶手段に記憶しておき、メモリ領域の確保にあたり、第2記憶手段に記憶されているビデオメモリのサイズに基づいて個々のメモリ領域のサイズを決定するように構成することができる。なお、個々のメモリ領域のサイズはビデオメモリと同サイズとしてもよいし、ビデオメモリのサイズを最大サイズとし、個々のオペレーティング・システムから出力されるビデオデータの属性(画素数や階調数等)に基づき、必要に応じてメモリ領域のサイズを小さくしてもよい。これにより、個々のメモリ領域のサイズを最適化することができ、情報処理装置に設けられているメモリを有効に使用することができる。
請求項8記載の発明に係るプログラムは、ユーザインタフェース装置が接続され、複数種のオペレーティング・システムのプログラムを各々実行すると共に、前記複数種のオペレーティング・システムのうちの何れか1つのオペレーティング・システムを介して任意の処理を行う複数種のアプリケーションのプログラムを各々実行することで、前記複数種のオペレーティング・システム及び前記複数種のアプリケーションを各々動作させるコンピュータを、前記複数種のオペレーティング・システムのうち前記ユーザインタフェース装置を使用する個々のオペレーティング・システムからデバイスドライバを通じて前記ユーザインタフェース装置へ出力されるデータを、前記個々のオペレーティング・システムに対応して各々設けられたメモリ領域のうちデータ出力元のオペレーティング・システムに対応するメモリ領域に書き込ませると共に、書き込まれているデータを前記ユーザインタフェース装置へ出力するメモリ領域を情報処理装置の稼働中に切り替える制御手段として機能させる。
請求項8記載の発明に係るプログラムは、ユーザインタフェース装置が接続され、複数種のオペレーティング・システムのプログラムを各々実行すると共に、複数種のオペレーティング・システムのうちの何れか1つのオペレーティング・システムを介して任意の処理を行う複数種のアプリケーションのプログラムを各々実行することで、複数種のオペレーティング・システム及び複数種のアプリケーションを各々動作させるコンピュータを、上記の制御手段として機能させるためのプログラムであるので、上記のコンピュータが請求項8記載の発明に係るプログラムを実行することにより、上記のコンピュータが請求項2に記載の情報処理装置として機能することになり、請求項2記載の発明と同様に、ユーザインタフェース装置を使用するオペレーティング・システムを情報処理装置の稼働中に切り替えることが可能となる。
以上説明したように本発明は、ユーザインタフェース装置を使用する個々のオペレーティング・システムからデバイスドライバを通じてユーザインタフェース装置へ出力されるデータを、個々のオペレーティング・システムに対応して各々設けられたメモリ領域のうちデータ出力元のオペレーティング・システムに対応するメモリ領域に書き込ませ、何れか1つのメモリ領域に書き込まれているデータをユーザインタフェース装置へ出力すると共に、書き込まれているデータをユーザインタフェース装置へ出力するメモリ領域を情報処理装置の稼働中に切り替えるようにしたので、ユーザインタフェース装置を使用するオペレーティング・システムを情報処理装置の稼働中に切り替えることが可能となる、という優れた効果を有する。
以下、図面を参照して本発明の実施形態の一例を詳細に説明する。図1には実施形態に係るコンピュータ10が示されている。コンピュータ10は、複写機やプリンタ、ファクシミリ装置、或いはこれらの機能を兼ね備えた複合機等の画像処理装置、携帯電話機やPDA(Personal Digital Assistant)等の携帯端末、各種のマルチメディア機器等の各種機器の何れかに組み込まれていてもよいし、パーソナル・コンピュータ(PC)等の独立したコンピュータであってもよい。コンピュータ10は本発明に係る情報処理装置に対応している。
コンピュータ10はCPU12、メモリ14、操作部16、記憶部18を備えており、これらはバス20を介して互いに接続されている。また、コンピュータ10は表示装置22を備えており、表示装置22は表示装置I/F(インタフェース)部24を介してバス20に接続されている。表示装置I/F部24は、表示装置22に表示させる画面のデータ(ビデオデータ)を一時記憶するためのビデオメモリ26を内蔵しており、ビデオメモリ26に書き込まれたビデオデータを表示装置22に出力することで、当該ビデオデータが表す画面を表示装置22に表示させる。なお、表示装置22は本発明に係るユーザインタフェース装置に対応しており、ビデオメモリ26は請求項3に記載のバッファメモリに対応している。
コンピュータ10が上述したような各種機器の何れかに組み込まれている場合、操作部16としては前記機器に設けられたテンキー等を、表示装置22としては前記機器に設けられたLCD等から成る表示パネルを適用することができる。また、コンピュータ10が独立したコンピュータである場合、操作部16としては当該コンピュータに接続されたキーボード、マウス等を、表示装置22としては当該コンピュータに接続されたディスプレイを適用することができる。また、記憶部18としてはHDD(Hard Disk Drive)が好適であるが、これに代えてフラッシュメモリ等の他の不揮発性の記憶手段を用いることも可能である。
本実施形態に係るコンピュータ10では、コンピュータ10が実現する機能の多機能化を達成するために、複数種のOSが並列に動作するハイブリッドOSシステムが実現されており、記憶部18には、CPU12によって実行される各種のプログラムとして、複数種のオペレーティング・システム(以下、OSと略す)のプログラム(図1ではオペレーティング・システム群30と表記)、個々のOS上で動作する複数種のアプリケーション・プログラム(図1ではアプリケーション・プログラム群32と表記)、個々のOS毎に用意され個々のOSが(詳しくは個々のOSを通じて個々のアプリケーション・プログラムが)表示装置22等のハードウェア資源を使用する際にOSと使用するハードウェア資源との橋渡しをするデバイスドライバ(図1ではデバイスドライバ群34と表記)、及び、個々のOSによる表示装置22の使用を制御する表示制御プログラム36が各々記憶(インストール)されている。なお、表示制御プログラム36は請求項8に記載のプログラムに対応している。
なお、記憶部18にインストールされている複数種のOSとしては、例えば高リアルタイム性が要求される処理に適したリアルタイムOS(RTOS)や、アプリケーション・プログラムに対してGUIやマルチメディア処理を行うための機能を提供可能な汎用OS等が挙げられる。また、個々のOS上で動作するアプリケーション・プログラムの中には表示装置22を使用するアプリケーション・プログラムと表示装置22を使用しないアプリケーション・プログラムが混在しているが、RTOS上で動作するアプリケーション・プログラムのうち表示装置22を使用するアプリケーション・プログラムとしては、例えばコンピュータ10に接続された図示しない計測器による計測結果を表示装置22上にリアルタイムに表示させる処理を行う計測器用GUI等が挙げられ、汎用OS上で動作するアプリケーション・プログラムのうち表示装置22を使用するアプリケーション・プログラムとしては、例えばウェブブラウザや動画再生アプリケーション等が挙げられるが、上記に限られるものではないことは言うまでもない。
次に本実施形態の作用を説明する。前述のように、本実施形態に係るコンピュータ10ではハイブリッドOSシステムが実現され、コンピュータ10の稼働状態では、図2に第1OS30A〜第3OS30Cとして示すように複数種のOSが並列に動作する。また、個々のOS上では互いに異なる単一又は複数種のアプリケーション・プログラムが各々動作し(図2では、第1OS30A上で動作するアプリケーション・プログラムに符号「32A」を、第2OS30B上で動作するアプリケーション・プログラムに符号「32B」を、第3OS30C上で動作するアプリケーション・プログラムに符号「32C」を付して各々示す)、個々のOSが表示装置22等のハードウェア資源を使用する際には、個々のOSに対応するデバイスドライバ(図2では、第1OS30Aに対応するデバイスドライバに符号「34A」を、第2OS30Bに対応するデバイスドライバに符号「34B」を、第3OS30Cに対応するデバイスドライバに符号「34C」を付して各々示す)によって個々のOSとハードウェア資源との橋渡しが成される。
一方、本実施形態ではCPU12が表示制御プログラム36を実行することで表示制御部40が実現される。表示制御部40は、記憶部18にインストールされている複数種のOSのうち、表示装置22を使用する個々のOSによる表示装置22の使用を制御する機能を有しており、請求項1に記載の制御手段及び請求項2に記載の制御手段に各々対応している。
表示制御部40は、前記個々のOSに対応する仮想ビデオメモリ領域をメモリ14上に各々確保すると共に、前記個々のOSに対し、本来はビデオメモリ26に書き込むべきビデオデータ(表示装置22に表示させるべき画面を表すデータ)を対応する仮想ビデオメモリ領域に書き込ませるための処理を行う仮想ビデオメモリ対応部42、前記個々のOSと個々の仮想ビデオメモリ領域を対応付ける情報を記憶する仮想ビデオメモリ領域選択部44、ビデオメモリ26のサイズを調査するビデオメモリサイズ調査部46、ビデオメモリサイズ調査部46によって調査されたビデオメモリ26のサイズを記憶するビデオメモリサイズ記憶部48、個々の仮想ビデオメモリ領域のうちの何れか1つに書き込まれたビデオデータを読み出してビデオメモリ26に書き込むと共に、指示部52からの指示に応じてビデオデータ読出対象の仮想ビデオメモリ領域を切り替える仮想ビデオメモリ領域切替部50を含んで構成されている。なお、指示部52は請求項5に記載の指示手段に対応している。
次に、本実施形態において、コンピュータ10の電源が投入されるとコンピュータ10のCPU12によって実行される初期化処理について、図3のフローチャートを参照して説明する。
コンピュータ10の電源が投入されると、ハードウェアのテストやメモリ14の初期化等の処理が行われた後に、OSのプログラムのロードに先立ち、ステップ100で表示制御部40のプログラムが記憶部18からメモリ14にロードされる。そして、メモリ14の記憶領域のうち表示制御部40のプログラムをロードした領域の先頭へジャンプし、表示制御部40のプログラムが実行されることで、以下のステップ102〜106の処理が行われる。すなわち、まずステップ102では表示装置I/F部24に対してビデオメモリ26のサイズやアドレスを含む表示装置22の情報(型式やメーカ名、仕様等)を問い合わせることで、表示装置22の情報を表示装置I/F部24から取得する。またステップ104では、ステップ102で取得したビデオメモリ26のサイズやアドレスを含む表示装置22の情報を、表示制御部40用に割り当てられたメモリ14上の所定領域に記憶させる。なお、上記のステップ102,104の処理はビデオメモリサイズ調査部46に対応しており、表示装置22の情報が記憶されるメモリ14上の所定領域はビデオメモリサイズ記憶部48に対応しており、請求項7に記載の第2記憶手段にも対応している。
ところで、初期化処理では後述のように各OSがメモリ14に順にロードされ、ロードされたOSの初期化が順に行われるが、このOSが表示装置22を使用するOSであった場合、このOSの初期化には、表示装置22の情報を対応するデバイスドライバを通じて表示装置I/F部24に問い合わせて取得する処理が含まれている。次のステップ106では、メモリ14にロードされたOSの初期化においてデバイスドライバを通じて表示装置22の情報の問い合わせが行われると、この問い合わせをフックして自ら(表示制御部40)に制御が移るようにするためのOS問い合わせフック処理を行う。このフック処理は、例えば表示装置22の情報の問い合わせが、ジャンプ先が登録されたテーブルを参照して、テーブルに登録されているジャンプ先にジャンプする間接ジャンプであれば、上記テーブルを書き替えてジャンプ先を変更する処理を行うことで実現することができる。
次のステップ108では、記憶部18にインストールされている複数種のOSのうちの特定のOS(特定のOSは複数種のOSの何れでもよいが、以下では便宜上「第1OS30A」と称する)のプログラムをメモリ14にロードすると共に、記憶部18にインストールされている各OS用のデバイスドライバのうち第1OS30A用のデバイスドライバ34Aをメモリ14にロードする。そして、メモリ14の記憶領域のうち第1OS30Aのプログラムをロードした領域の先頭へジャンプし、第1OS30Aのプログラムが実行されることで、以下のステップ110,118で第1OS30Aの初期化が行われる。
すなわち、第1OS30Aが表示装置22を使用するOSであった場合、ステップ110では第1OS30Aにより、前述のように表示装置22の情報をデバイスドライバ34Aを通じて表示装置I/F部24に問い合わせる処理が行われる。但し、本実施形態に係る初期化処理では、ステップ160でOS問い合わせフック処理が行われているので、ステップ110の処理が行われると表示制御部40に制御が移る。そして表示制御部40は、次のステップ112において、まずビデオメモリサイズ記憶部48に記憶されている表示装置22の情報を読み出し、読み出した情報に含まれるビデオメモリ26のサイズと同サイズの仮想ビデオメモリ領域を第1OS30A用の仮想ビデオメモリ領域(図2参照)としてメモリ14上に確保し、確保した第1OS30A用の仮想ビデオメモリ領域の情報(アドレス等)を、第1OS30Aの識別情報と対応付けて、表示制御部40用に割り当てられたメモリ14上の所定領域に記憶したテーブルに登録する。なお、メモリ14のうちこのテーブルを記憶している領域は仮想ビデオメモリ領域選択部44に対応しており、請求項6に記載の第1記憶手段にも対応している。
また表示制御部40は、次のステップ114において、ステップ112で確保した第1OS30A用の仮想ビデオメモリ領域を初期化する。そしてステップ116では、先の110における問い合わせに対する応答として、先のステップ112でビデオメモリサイズ記憶部48から読み出した表示装置22の情報を、当該情報に含まれるビデオメモリ26のアドレスを第1OS30A用の仮想ビデオメモリ領域のアドレスへ書き替えた後に、デバイスドライバ34A経由で第1OS30Aへ通知し、第1OS30Aに制御を戻す。なお、上述したステップ112〜116は仮想ビデオメモリ対応部42に対応している。
上記のように、第1OS30Aからの表示装置22の情報の問い合わせに対し、ビデオメモリ26のアドレスに代えて第1OS30A用の仮想ビデオメモリ領域のアドレスを通知することで、第1OS30A上で動作するアプリケーション・プログラム32Aからの指示等に応じて、第1OS30Aが表示装置22に任意の画面を表示させる場合、当該任意の画面を表すビデオデータは、デバイスドライバ34Aを通じて第1OS30A用の仮想ビデオメモリ領域に書き込まれることになる。また、表示制御部40は第1OS30Aに表示装置22の情報を通知すると、第1OS30A用の仮想ビデオメモリ領域に書き込まれているビデオデータを読み出してビデオメモリ26に書き込むことを一定周期で繰り返す処理を開始する(仮想ビデメモリ領域切替部50に相当する処理)。これにより、第1OS30Aによって第1OS30A用の仮想ビデオメモリ領域に書き込まれたビデオデータが表す画面は、表示制御部40によって表示装置22に表示されることになる。
次のステップ118では、第1OS30Aにより、表示装置22の情報の問い合わせ以外の初期化処理が行われる。そして、第1OS30Aの初期化が完了すると、コンピュータ10上で第1OS30Aが動作している状態となる。
以上のようにして第1OS30Aの起動(メモリ14へのロード及び初期化)が完了すると、次のステップ120では、記憶部18にインストールされている複数種のOSのうち未起動の特定のOS(便宜上「第2OS30B」と称する)のプログラムをメモリ14にロードすると共に、記憶部18にインストールされている各OS用のデバイスドライバのうち第2OS30B用のデバイスドライバ34Bをメモリ14にロードする。そして、メモリ14の記憶領域のうち第2OS30Aのプログラムをロードした領域の先頭へジャンプし、第2OS30Aのプログラムが実行されることで、以下のステップ122,130で第1OS30Aと同様に第2OS30Bの初期化が行われる。
すなわち、第2OS30Bも表示装置22を使用するOSであった場合、ステップ122では第2OS30Bにより、表示装置22の情報をデバイスドライバ34Bを通じて表示装置I/F部24に問い合わせる処理が行われる。本実施形態では、ステップ160でOS問い合わせフック処理が行われているので、ステップ122の処理が行われると表示制御部40に再度制御が移る。そして表示制御部40は、次のステップ124において、ビデオメモリサイズ記憶部48に記憶されている表示装置22の情報を読み出し、読み出した情報に含まれるビデオメモリ26のサイズと同サイズの仮想ビデオメモリ領域を第2OS30B用の仮想ビデオメモリ領域(図2参照)としてメモリ14上に確保し、確保した第2OS30B用の仮想ビデオメモリ領域のアドレス等を、第2OS30Bの識別情報と対応付けて、仮想ビデオメモリ領域選択部44に記憶されているテーブルに登録する。
また表示制御部40は、次のステップ126において、ステップ124で確保した第2OS30B用の仮想ビデオメモリ領域を初期化する。そしてステップ128では、先の122における問い合わせに対する応答として、先のステップ124でビデオメモリサイズ記憶部48から読み出した表示装置22の情報を、当該情報に含まれるビデオメモリ26のアドレスを第2OS30B用の仮想ビデオメモリ領域のアドレスへ書き替えた後に、デバイスドライバ34B経由で第2OS30Bへ通知し、第2OS30Bに制御を戻す。なお、上述したステップ124〜128も仮想ビデオメモリ対応部42に対応している。
上記のように、第2OS30Bからの表示装置22の情報の問い合わせに対し、ビデオメモリ26のアドレスに代えて第2OS30B用の仮想ビデオメモリ領域のアドレスを通知することで、第2OS30B上で動作するアプリケーション・プログラム32Bからの指示等に応じて、第2OS30Bが表示装置22に任意の画面を表示させる場合についても、当該任意の画面を表すビデオデータは、デバイスドライバ34Bを通じて第2OS30B用の仮想ビデオメモリ領域に書き込まれることになる。なお、第2OS30Bに表示装置22の情報を通知した後、表示制御部40は、ビデオデータ読出対象の仮想ビデオメモリ領域を第1OS30A用の仮想ビデオメモリ領域から第2OS30B用の仮想ビデオメモリ領域へ切り替えるようにしてもよいし、ビデオデータ読出対象を第1OS30A用の仮想ビデオメモリ領域のまま維持するようにしてもよい。
次のステップ130では、第2OS30Bにより、表示装置22の情報の問い合わせ以外の初期化処理が行われる。そして、初期化処理が完了すると、コンピュータ10上で第1OS30Aが稼働している状態となる。
次のステップ118では、第1OS30Aにより、表示装置22の情報の問い合わせ以外の初期化処理が行われる。そして、第1OS30Aの初期化が完了すると、コンピュータ10上で第1OS30Aに加えて第2OS30Bも動作している状態となる。また、本実施形態に係る初期化処理では、記憶部18にプログラムがインストールされかつ未起動のOSがあれば(記憶部18に3種類以上のOSのプログラムがインストールされている場合)、当該OSに対して上述したステップ108〜118又はステップ120〜130と同様の処理が繰り返されることで、前記OSのロード及び初期化が行われると共に、表示制御部40によって前記OS用の仮想ビデオメモリ領域が確保され、確保された仮想ビデオメモリ領域のアドレスが前記OSへ通知されることになる。
続いて、指示部52から表示制御部40へ表示切替指示(表示装置22に画面を表示させるOSの切替指示)が入力されたことを契機として表示制御部40によって実行される表示切替処理について、図4のフローチャートを参照して説明する。なお、指示部52としては、例えば、表示装置22に表示させる画面の切替を指示するための操作が操作部16を介してユーザにより行われた場合に、当該操作を検知して表示切替指示を出力する構成を採用することができる。また、ユーザによる操作以外の所定のイベントの発生を検知して表示切替指示を出力する構成を採用することも可能であり、例えばコンピュータ10に接続された特定の機器(例えば図示しない計測器)からデータが入力されたりエラー発生が通知された場合には、表示装置22に画面を表示させるOSを、前記特定の機器に関する処理を行うアプリケーション・プログラム(例えば前出の計測器用GUI等)が動作するOSに切り替えさせるための表示切替指示を出力する構成を採用してもよい。更に、表示切替指示を前回出力してからの経過時間が所定時間に達する毎に表示切替指示を出力する構成を採用することも可能である。
表示切替処理では、まずステップ140において、指示部52から入力された表示切替指示が、表示装置22に画面を表示させるOSを何れのOSに切り替える表示切替指示かを判断することで、入力された表示切替指示に対応する新たな仮想ビデオメモリ領域(新たにビデオデータ読出対象とすべき仮想ビデオメモリ領域)を認識する。そしてステップ142では、ビデオデータ読出対象の仮想ビデオメモリ領域をステップ140で認識した新たな仮想メモリ領域へ切り替え、処理を終了する。これにより、表示装置22に表示されている画面が別のOS(新たなビデオデータ読出対象の仮想ビデオメモリ領域に対応するOS)の画面に切り替わることになる。なお、この表示切替処理は仮想ビデオメモリ領域切替部50に対応している。
このように、本実施形態では、表示装置22を使用する個々のOSに対応して仮想ビデオメモリ領域が各々用意されており、表示装置22に任意の画面を表示させるために個々のOSが行う処理は、表示装置22に表示すべき画面を表すビデオデータを、表示装置22の情報を問い合わせを行うことで通知されたアドレスの領域(対応する仮想ビデオメモリ領域)にデバイスドライバを通じて書き込む処理のみであり、仮想ビデオメモリ領域に書き込まれているビデオデータの読み出し及びビデオメモリ26への書き込みは表示制御部40によって行われるので、表示装置22に任意の画面を表示させるために個々のOSが行う処理は、自OSが表示装置22を実際に使用しているか否かに拘わらず従来と同じである。このため、表示装置22を使用するOSを切替可能とするために個々のOSの構成(個々のOSが行う処理)を変更する必要はない。そして、表示装置22を使用するOSの切替は、ビデオデータ読出対象の仮想ビデオメモリ領域を単に切り替える、という簡単な処理で実現することができ、ビデオデータ読出対象の仮想ビデオメモリ領域を切り替える際にOSに通知する等の煩雑な処理や新たなインタフェースも不要となる。
なお、上記では個々のOSに対応する仮想ビデオメモリ領域のサイズをビデオメモリ26と同サイズとしていたが、本発明はこれに限定されるものではなく、ビデオメモリ26のサイズを仮想ビデオメモリ領域の最大サイズとし、個々のOSがビデオメモリ26に書き込むビデオデータの属性(画素数(解像度)や階調数(色数))を取得し、画素数や階調数が少ないビデオデータをビデオメモリ26に書き込むOSについては、確保する仮想ビデオメモリ領域のサイズを小さくするようにしてもよい。これにより、個々のOSに対応する仮想ビデオメモリ領域のサイズを最適化することができ、コンピュータ10のメモリ14を有効に使用することができる。
また、上記では、表示制御部40は表示装置22を使用する個々のOSからの表示装置22の情報の問い合わせをフックし、ビデオメモリ26のアドレスに代えて対応する仮想ビデオメモリ領域のアドレスを通知することで、個々のOSに対し、対応する仮想ビデオメモリ領域にビデオデータを書き込む処理を行わせるようにしていたが、本発明はこれに限定されるものではなく、個々のOSはデバイスドライバを通じて表示制御部40にビデオデータの書き込みを依頼し、表示制御部40はビデオデータの書き込みが依頼される毎に、書き込みが依頼されたビデオデータを、書込依頼元のOSに対応する仮想ビデオメモリ領域に書き込む処理を行うように構成することも可能である。
また、上記では、表示制御部40はビデオデータ読出対象の仮想ビデオメモリ領域を単に切り替える処理を行う態様を説明したが、本発明はこれに限定されるものではなく、複数の仮想ビデオメモリ領域に書き込まれているビデオデータを合成し、単一の画面のビデオデータとしてビデオメモリ26に書き込む処理を行うようにしてもよい。
更に、上記ではユーザインタフェース装置の一例として表示装置22を説明したが、本発明はこれに限定されるものではなく、表示装置以外のユーザインタフェース装置に適用することも可能であり、特にデータの流れがOSからユーザインタフェース装置へのデータの出力のみで、ユーザインタフェース装置からOSへのデータの入力の無いユーザインタフェース装置が好適である。
本実施形態に係るコンピュータの概略構成を示すブロック図である。 本実施形態における機能ブロック図である。 コンピュータで実行される初期化処理の内容を示すフローチャートである。 表示切替指示に応じてコンピュータ(表示制御部)で実行される表示切替処理の内容を示すフローチャートである。
符号の説明
10 コンピュータ
14 メモリ
18 記憶部
22 表示装置
24 表示装置I/F部
26 ビデオメモリ
40 表示制御部
42 仮想ビデオメモリ対応部
44 仮想ビデオメモリ領域選択部
46 ビデオメモリサイズ調査部
48 ビデオメモリサイズ記憶部
50 仮想ビデオメモリ領域切替部
50 仮想ビデメモリ領域切替部
52 指示部

Claims (8)

  1. ユーザインタフェース装置が接続され、複数種のオペレーティング・システムのプログラムを各々実行すると共に、前記複数種のオペレーティング・システムのうちの何れか1つのオペレーティング・システムを介して任意の処理を行う複数種のアプリケーションのプログラムを各々実行することで、前記複数種のオペレーティング・システム及び前記複数種のアプリケーションを各々動作させる情報処理装置であって、
    前記ユーザインタフェース装置を前記複数種のオペレーティング・システムのうちの何れか1つに使用させると共に、前記ユーザインタフェース装置を使用するオペレーティング・システムを情報処理装置の稼働中に切り替える制御手段を備えたことを特徴とする情報処理装置。
  2. ユーザインタフェース装置が接続され、複数種のオペレーティング・システムのプログラムを各々実行すると共に、前記複数種のオペレーティング・システムのうちの何れか1つのオペレーティング・システムを介して任意の処理を行う複数種のアプリケーションのプログラムを各々実行することで、前記複数種のオペレーティング・システム及び前記複数種のアプリケーションを各々動作させる情報処理装置であって、
    前記複数種のオペレーティング・システムのうち前記ユーザインタフェース装置を使用する個々のオペレーティング・システムからデバイスドライバを通じて前記ユーザインタフェース装置へ出力されるデータを、前記個々のオペレーティング・システムに対応して各々設けられたメモリ領域のうちデータ出力元のオペレーティング・システムに対応するメモリ領域に書き込ませ、何れか1つのメモリ領域に書き込まれているデータを前記ユーザインタフェース装置へ出力すると共に、書き込まれているデータを前記ユーザインタフェース装置へ出力するメモリ領域を情報処理装置の稼働中に切り替える制御手段を備えたことを特徴とする情報処理装置。
  3. 前記ユーザインタフェース装置はバッファメモリを備えており、前記個々のオペレーティング・システムからデバイスドライバを通じて前記ユーザインタフェース装置へ出力されるデータは、前記ユーザインタフェース装置の前記バッファメモリへ書き込むためのデータであり、
    前記制御手段は、前記メモリ領域から前記ユーザインタフェース装置へ出力するデータを、前記ユーザインタフェース装置の前記バッファメモリに書き込むことを特徴とする請求項2記載の情報処理装置。
  4. 前記制御手段は、前記ユーザインタフェース装置を使用する個々のオペレーティング・システムの初期化時に、個々のオペレーティング・システムがデバイスドライバを通じて前記ユーザインタフェース装置の前記バッファメモリのアドレスを問い合わせる処理をフックして、対応するメモリ領域のアドレスを問い合わせ元のオペレーティング・システムへ通知することで、個々のオペレーティング・システムからデバイスドライバを通じて前記ユーザインタフェース装置へ出力されるデータを対応するメモリ領域に書き込ませることを特徴とする請求項3記載の情報処理装置。
  5. 前記制御手段は、前記ユーザインタフェース装置を使用するオペレーティング・システムの切り替えを指示する指示手段からの前記指示に応じて、書き込まれているデータを前記ユーザインタフェース装置へ出力するメモリ領域の切り替えを行うことを特徴とする請求項2記載の情報処理装置。
  6. 前記制御手段は、前記情報処理装置に設けられているメモリから、前記複数種のオペレーティング・システムのうち前記ユーザインタフェース装置を使用するオペレーティング・システムと同数のメモリ領域を確保すると共に、確保した個々のメモリ領域に対応するオペレーティング・システムを識別する識別情報を第1記憶手段に記憶しておき、前記第1記憶手段に記憶した前記識別情報に基づいて、前記個々のメモリ領域に対応するオペレーティング・システムを判断することを特徴とする請求項2記載の情報処理装置。
  7. 前記ユーザインタフェース装置は表示装置であり、前記制御手段は、前記表示装置に搭載されているビデオメモリのサイズを調査し、当該調査によって判明した前記ビデオメモリのサイズを第2記憶手段に記憶しておき、前記メモリ領域の確保にあたり、前記第2記憶手段に記憶されている前記ビデオメモリのサイズに基づいて前記個々のメモリ領域のサイズを決定することを特徴とする請求項6記載の情報処理装置。
  8. ユーザインタフェース装置が接続され、複数種のオペレーティング・システムのプログラムを各々実行すると共に、前記複数種のオペレーティング・システムのうちの何れか1つのオペレーティング・システムを介して任意の処理を行う複数種のアプリケーションのプログラムを各々実行することで、前記複数種のオペレーティング・システム及び前記複数種のアプリケーションを各々動作させるコンピュータを、
    前記複数種のオペレーティング・システムのうち前記ユーザインタフェース装置を使用する個々のオペレーティング・システムからデバイスドライバを通じて前記ユーザインタフェース装置へ出力されるデータを、前記個々のオペレーティング・システムに対応して各々設けられたメモリ領域のうちデータ出力元のオペレーティング・システムに対応するメモリ領域に書き込ませ、何れか1つのメモリ領域に書き込まれているデータを前記ユーザインタフェース装置へ出力すると共に、書き込まれているデータを前記ユーザインタフェース装置へ出力するメモリ領域を情報処理装置の稼働中に切り替える制御手段として機能させるためのプログラム。
JP2005179769A 2005-06-20 2005-06-20 情報処理装置及びプログラム Pending JP2006350956A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005179769A JP2006350956A (ja) 2005-06-20 2005-06-20 情報処理装置及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005179769A JP2006350956A (ja) 2005-06-20 2005-06-20 情報処理装置及びプログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2009277871A Division JP2010055641A (ja) 2009-12-07 2009-12-07 情報処理装置及びプログラム

Publications (1)

Publication Number Publication Date
JP2006350956A true JP2006350956A (ja) 2006-12-28

Family

ID=37646676

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005179769A Pending JP2006350956A (ja) 2005-06-20 2005-06-20 情報処理装置及びプログラム

Country Status (1)

Country Link
JP (1) JP2006350956A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009266027A (ja) * 2008-04-25 2009-11-12 Toshiba Corp 情報処理装置および制御方法
JP2010181976A (ja) * 2009-02-03 2010-08-19 Ricoh Co Ltd 情報処理装置、画像形成装置及びプログラムインストール方法
WO2012001787A1 (ja) * 2010-06-30 2012-01-05 富士通株式会社 情報処理装置、情報処理方法、および情報処理プログラム
WO2013165447A1 (en) * 2012-05-01 2013-11-07 Concurix Corporation Hybrid operating system
CN109828846A (zh) * 2017-11-23 2019-05-31 电子科技大学中山学院 一种QML视频播放GStream错误的处理方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009266027A (ja) * 2008-04-25 2009-11-12 Toshiba Corp 情報処理装置および制御方法
JP2010181976A (ja) * 2009-02-03 2010-08-19 Ricoh Co Ltd 情報処理装置、画像形成装置及びプログラムインストール方法
WO2012001787A1 (ja) * 2010-06-30 2012-01-05 富士通株式会社 情報処理装置、情報処理方法、および情報処理プログラム
CN102971709A (zh) * 2010-06-30 2013-03-13 富士通株式会社 信息处理装置、信息处理方法以及信息处理程序
JPWO2012001787A1 (ja) * 2010-06-30 2013-08-22 富士通株式会社 情報処理装置、情報処理方法、および情報処理プログラム
WO2013165447A1 (en) * 2012-05-01 2013-11-07 Concurix Corporation Hybrid operating system
US8615766B2 (en) 2012-05-01 2013-12-24 Concurix Corporation Hybrid operating system
CN109828846A (zh) * 2017-11-23 2019-05-31 电子科技大学中山学院 一种QML视频播放GStream错误的处理方法

Similar Documents

Publication Publication Date Title
JP5746100B2 (ja) 画像形成装置
KR20100098558A (ko) 적어도 두 개의 그래픽 프로세서들을 포함하는 디바이스들에서의 세팅 제어
US20130139075A1 (en) Image forming device having a plurality of platforms and method for performing application thereof
CN109683967B (zh) 固件支持方法、装置、移动终端及可读存储介质
JP5895385B2 (ja) 画像出力装置及びそのプログラム
JP2017204120A (ja) 情報処理装置、インストーラー及びプリンタドライバ
JP2006350956A (ja) 情報処理装置及びプログラム
JP5540793B2 (ja) 機能提供装置及びプログラム
JP6504248B2 (ja) 画像出力制御方法、画像出力制御プログラム及び表示装置
JP2008152762A (ja) プログラムのインストール装置
JP2010055641A (ja) 情報処理装置及びプログラム
JP2000276358A (ja) 割り込みコントローラ、asic、及び電子機器
JP6433966B2 (ja) 情報処理装置、情報処理方法、およびプログラム
JP6179200B2 (ja) 情報処理装置、機器、情報処理システム、情報処理方法、及び情報処理プログラム
JP6033394B2 (ja) プログラマブル表示器、そのプログラム
JP5149336B2 (ja) コンピュータシステム、及び、このコンピュータシステムで用いられるキーボード
JP2003150379A (ja) 複数のpdaオペレーティングシステムをメニューを通して起動させる方法
JP7192303B2 (ja) 情報処理装置およびプログラム
JP5760618B2 (ja) 管理装置および管理方法
JP5870214B2 (ja) プログラマブルコントローラシステム、そのプログラマブル表示器、支援装置、プログラム
US8869137B2 (en) Information processing apparatus that automatically and sequentially displays graphical user interface images and recording medium storing program
CN106716350B (zh) 用于提供用户界面屏幕的装置和方法
JP2007122089A (ja) コンピュータシステム、それにおける基本プログラムの起動方法、及びローダプログラム
CN113467729B (zh) 电子装置与多屏幕显示方法
JP2005025369A (ja) コンピュータのセットアップ支援システム、物理アクセスドライバおよびセットアップ支援方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Effective date: 20080317

Free format text: JAPANESE INTERMEDIATE CODE: A621

A977 Report on retrieval

Effective date: 20090928

Free format text: JAPANESE INTERMEDIATE CODE: A971007

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091006

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091207

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100112