JP3898663B2 - オペレーティングシステム制御方法、およびその方法をコンピュータに実行させるプログラム、ならびにオペレーティングシステム制御装置 - Google Patents

オペレーティングシステム制御方法、およびその方法をコンピュータに実行させるプログラム、ならびにオペレーティングシステム制御装置 Download PDF

Info

Publication number
JP3898663B2
JP3898663B2 JP2003083906A JP2003083906A JP3898663B2 JP 3898663 B2 JP3898663 B2 JP 3898663B2 JP 2003083906 A JP2003083906 A JP 2003083906A JP 2003083906 A JP2003083906 A JP 2003083906A JP 3898663 B2 JP3898663 B2 JP 3898663B2
Authority
JP
Japan
Prior art keywords
instruction
operating system
executed
group
processing unit
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.)
Expired - Fee Related
Application number
JP2003083906A
Other languages
English (en)
Other versions
JP2004295261A (ja
Inventor
秀夫 谷口
能成 乃村
一男 田中
健一 伊藤
雄作 中島
正樹 田渕
圭 桝本
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.)
NTT Data Corp
Original Assignee
NTT Data Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NTT Data Corp filed Critical NTT Data Corp
Priority to JP2003083906A priority Critical patent/JP3898663B2/ja
Publication of JP2004295261A publication Critical patent/JP2004295261A/ja
Application granted granted Critical
Publication of JP3898663B2 publication Critical patent/JP3898663B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
この発明は、一台のコンピュータで同時に動作する複数のオペレーティングシステムのうちの一つのオペレーティングシステムの動作を制御するオペレーティングシステム制御方法およびその方法をコンピュータに実行させるプログラム、ならびにオペレーティングシステム制御装置に関する。
【0002】
【従来の技術】
通常のコンピュータでは、一つのオペレーティングシステムがプロセッサ、メモリ、二次記憶装置などのコンピュータ資源を管理し、コンピュータが効率良く動作できるように資源スケジュールを実施している。しかし、オペレーティングシステムには、バッチ処理に優れているもの、TSS(Time Sharing System)に優れているもの、GUI(Graphical User Interface)に優れているものなど様々な種類があることから、各OSの特徴を活かして複数のOSを同時に利用したいという要求がある。
【0003】
たとえば、大型計算機においては、実際の業務に伴うオンライン処理を実行するオペレーティングシステムと、開発用のオペレーティングシステムとを一台のコンピュータで動作させたいという要求がある。あるいは、GUIの整っているオペレーティングシステムと、実時間性に優れているオペレーティングシステムとを同時に稼動させたいという要求もある。
【0004】
しかしながら、個々のオペレーティングシステムは、単独でコンピュータ資源の管理を実施することを前提として設計されていることから、複数のオペレーティングシステムを共存させるためには、個々のオペレーティングシステムに対して何らかの改造が必要となる。
【0005】
特に、あるオペレーティングシステムを起動した後で他のオペレーティングシステムを起動するためには、先に起動したオペレーティングシステムの走行環境を破壊することなく他のオペレーティングシステムを起動する必要がある。したがって、他のオペレーティングシステムを物理メモリへロードする場合に、先に起動したオペレーティングシステムがロードされている物理メモリ領域が上書きされることや、コンピュータに接続された入出力装置の初期化が繰り返しおこなわれることなどを防ぐ必要がある。
【0006】
そこで、先に起動したオペレーティングシステムの走行環境を破壊することなく他のオペレーティングシステムを起動する技術が開発されている(たとえば、特許文献1、2および3参照。)。
【0007】
また、先に起動したオペレーティングシステムの走行環境を破壊しないように他のオペレーティングシステムを起動する場合に利用可能な技術として、プログラムの内容を変更する技術が開発されている(たとえば、特許文献4〜7参照。)。
【0008】
【特許文献1】
特開平11−149385号公報
【特許文献2】
特開2001−216172号公報
【特許文献3】
特開平8−212089号公報
【特許文献4】
特開2000−181725号公報
【特許文献5】
特開2000−305768号公報
【特許文献6】
特開平11−65854号公報
【特許文献7】
特開平6−332751号公報
【0009】
【発明が解決しようとする課題】
しかしながら、かかる従来技術では、オペレーティングシステムの起動の際に他のオペレーティングシステムの走行環境を破壊しないように防止する技術であり、既に実行中の複数のオペレーティングシステムに対するものではない。また、走行環境を破壊しない処理であっても、同時に複数のオペレーティングシステムが同時に動作している場合に、一方のオペレーティングシステムに実行させたくない処理が存在する場合もある。
【0010】
また、かかる従来技術では、後から起動するオペレーティングシステムを改造する必要があるか、あるいは、改造する必要がない場合にも、特別なハードウェアが必要であるなどの問題がある。
【0011】
この発明は、上述した従来技術による問題点を解消するためになされたものであり、複数のオペレーションシステムの実行中に、一方のオペレーティングシステムに実行させたくない処理を回避することができるオペレーティングシステム制御方法およびその方法をコンピュータに実行させるプログラム、ならびにオペレーティングシステム制御装置を提供することを目的とする。また、この発明の別の目的は、複数のオペレーションシステムの実行中に、一方のオペレーティングシステムに実行させたくない処理を回避するとともに、オペレーティングシステムの改造を不要とし、もって開発期間の短縮および開発コストの低減を図ることができるオペレーティングシステム制御方法およびその方法をコンピュータに実行させるプログラム、ならびにオペレーティングシステム制御装置を提供することである。
【0012】
【課題を解決するための手段】
上記目的を達成するため、請求項1にかかる発明は、一台のコンピュータで同時に動作する複数のオペレーティングシステムのうちの一つのオペレーティングシステムの動作を前記コンピュータで制御するオペレーティングシステム制御方法であって、特定命令判定部によって、動作中の一のオペレーティングシステムにおいて、該一のオペレーティングシステムに実行させたくない処理が実行される場合に、前記コンピュータを構成する中央演算装置のトレースモードにおいて各命令が実行される際に発生する割込みの処理の中で、割込みが発生した際に前記中央演算装置がスタックに積んだ次命令アドレスを用いて次に実行される命令を取り出し、該取り出した命令に対して、前記コンピュータが予め保持している代替え処理が必要な特定の命令群と前記中央演算装置が実行しようとする命令群と比較して一致するか否かを判断することによって、前記次に実行される命令が前記特定の命令群に属する命令であるか否かの判定をおこなう命令群判定工程と、切替え処理部によって、前記命令群判定工程が特定の命令群に属する命令であると判定をおこなった場合に、代替え処理をおこなう他のオペレーティングシステムへの切替え処理をおこなう切替え処理工程と、を含んだことを特徴とする。
【0013】
この請求項1の発明によれば、動作中の一のオペレーティングシステムにおいて、該一のオペレーティングシステムに実行させたくない処理が実行される場合に、コンピュータを構成する中央演算装置のトレースモードにおいて各命令が実行される際に発生する割込みの処理の中で、割込みが発生した際に中央演算装置がスタックに積んだ次命令アドレスを用いて次に実行される命令を取り出し、該取り出した命令に対して、コンピュータが予め保持している代替え処理が必要な特定の命令群と中央演算装置が実行しようとする命令群と比較して一致するか否かを判断することによって、次に実行される命令が特定の命令群に属する命令であるか否かの判定をおこない、特定の命令群に属する命令であると判定をおこなった場合に、代替え処理をおこなう他のオペレーティングシステムへの切替え処理をおこなうことで、複数のオペレーティングシステムが同時に動作している場合に、一方のオペレーティングシステムに実行させたくない処理を代替え処理によって回避することができる。また、本発明によれば、特定命令の判定によって代替え処理をおこなわずにすむ場合には、オペレーティングシステムの切替えをする必要がないので、命令判定から代替え処理の速度を向上させることができる。
【0015】
また、この請求項1の発明によれば、コンピュータを構成する中央演算装置のトレースモードにおいて各命令が実行される際に発生する割込みの処理の中で前記判定をおこなうことで、実行中のオペレーティングシステムの処理から自動的に制御を受け取って代替え処理をおこなうことができる。
【0017】
また、この請求項1の発明によれば、割込みが発生した際に中央演算装置がスタックに積んだ次命令アドレスを用いて次に実行される命令を取り出し、該取り出した命令に対して判定をおこなうことで、次に実行される命令の判定を確実におこなうことができる。
【0018】
また、請求項にかかる発明は、請求項に記載のオペレーティングシステム制御方法において、前記命令群判定工程は、前記代替え処理が必要ない場合には、前記取り出した命令以下の命令群の実行をスキップすることを特徴とする
【0020】
また、請求項にかかる発明は、請求項1または2に記載のオペレーティングシステム制御方法において、前記命令群判定工程は、前記取り出した命令が前記特定の命令群の先頭の命令である場合、または前記特定の命令群の先頭だけでは前記特定の命令群の先頭であるか否かを判定できない場合に、順次、次の命令を取り出して前記特定の命令群であるか否かを判定することを特徴とする。
【0024】
また、請求項にかかる発明は、請求項に記載のオペレーティングシステム制御方法において、いくつかの特定の命令群に対しては代替処理をおこなうことなくスキップすることを特徴とする。
【0025】
この請求項の発明によれば、いくつかの特定の命令群に対しては代替処理をおこなうことなくスキップすることで、実行不要な命令群をスキップして処理の効率化を図ることができる。
【0026】
また、請求項にかかる発明は、一台のコンピュータで同時に動作する複数のオペレーティングシステムのうちの一つのオペレーティングシステムの動作を前記コンピュータで制御するオペレーティングシステム制御方法であって、動作中の一のオペレーティングシステムにおいて、該一のオペレーティングシステムに実行させたくない処理が実行される場合において、他のオペレーティングシステムへの切替え処理を、切替え処理部によっておこなう切替え処理工程、を含み、前記他のオペレーティングシステムにおいて、前記コンピュータを構成する中央演算装置のトレースモードにおいて各命令が実行される際に発生する割込みの処理の中で、割込みが発生した際に前記中央演算装置がスタックに積んだ次命令アドレスを用いて次に実行される命令を取り出し、該取り出した命令に対して、前記コンピュータが予め保持している代替え処理が必要な特定の命令群と前記中央演算装置が実行しようとする命令群と比較して一致するか否かを判断することによって、前記次に実行される命令が前記特定の命令群に属する命令であるか否かの判定を、特定命令判定部によっておこなう命令群判定工程と、前記命令群判定工程により前記次に実行される命令が前記特定の命令群に属する命令であると判定した場合に、代替え処理部によって代替え処理をおこなう代替え処理工程とを含んだことを特徴とする。
【0027】
この請求項の発明によれば、動作中の一のオペレーティングシステムにおいて、該一のオペレーティングシステムに実行させたくない処理が実行される場合において、他のオペレーティングシステムへの切替え処理を、切替え処理部によっておこない、他のオペレーティングシステムにおいて、コンピュータを構成する中央演算装置のトレースモードにおいて各命令が実行される際に発生する割込みの処理の中で、割込みが発生した際に演算装置がスタックに積んだ次命令アドレスを用いて次に実行される命令を取り出し、該取り出した命令に対して、コンピュータが予め保持している代替え処理が必要な特定の命令群と中央演算装置が実行しようとする命令群と比較して一致するか否かを判断することによって、次に実行される命令が特定の命令群に属する命令であるか否かの判定を、特定命令判定部によっておこない、次に実行される命令が特定の命令群に属する命令であると判定した場合に、代替え処理部によって代替え処理をおこなうことで、複数のオペレーティングシステムが同時に動作している場合に、一方のオペレーティングシステムに実行させたくない処理を代替え処理によって回避することができる。また、切り替えた他のオペレーティングシステムで特定命令群の判定処理および代替え処理をおこなうので、切替え元のオペレーティングシステムの改造が不要になり、開発期間の短縮化を図ることができる。
【0028】
また、請求項にかかる発明は、一台のコンピュータで同時に動作する複数のオペレーティングシステムのうちの一つのオペレーティングシステムの動作を前記コンピュータで制御するオペレーティングシステム制御方法であって、作中の一のオペレーティングシステムにおいて該一のオペレーティングシステムに実行させたくない処理が実行される場合に、前記一のオペレーティングシステムから前記一のオペレーティングシステムで使用されていたスタックの内容を受け渡されることにより、前記一のオペレーティングシステムから他のオペレーティングシステムに切替えられた場合に、前記一のオペレーティングシステムにおいて前記コンピュータを構成する中央演算装置のトレースモードにおいて各命令が実行される際に発生する割込みの処理の中で、割込みが発生した際に前記中央演算装置がスタックに積んだ次命令アドレスを用いて前記一のオペレーティングシステムで次に実行される命令を取り出し、該取り出した命令に対して、前記コンピュータが予め保持している代替え処理が必要な特定の命令群と前記中央演算装置が実行しようとする命令群と比較して一致するか否かを判断することによって、前記一のオペレーティングシステムで前記次に実行される命令が前記特定の命令群に属する命令であるか否かの判定を、前記他のオペレーティングシステムの命令群判定部によっておこなう命令群判定工程と、前記命令群判定工程が特定の命令群に属する命令であると判定をおこなった場合に、切り替えられた前記他のオペレーティングシステムの代替え処理部によって、代替え処理をおこなう代替え処理工程と、を含んだことを特徴とする。
【0029】
この請求項の発明によれば、動作中の一のオペレーティングシステムにおいて該一のオペレーティングシステムに実行させたくない処理が実行される場合に、一のオペレーティングシステムから一のオペレーティングシステムで使用されていたスタックの内容を受け渡されることにより、一のオペレーティングシステムから他のオペレーティングシステムに切替えられた場合に、一のオペレーティングシステムにおいてコンピュータを構成する中央演算装置のトレースモードにおいて各命令が実行される際に発生する割込みの処理の中で、割込みが発生した際に中央演算装置がスタックに積んだ次命令アドレスを用いて一のオペレーティングシステムで次に実行される命令を取り出し、該取り出した命令に対して、コンピュータが予め保持している代替え処理が必要な特定の命令群と中央演算装置が実行しようとする命令群と比較して一致するか否かを判断することによって、一のオペレーティングシステムで次に実行される命令が特定の命令群に属する命令であるか否かの判定を、他のオペレーティングシステムの命令群判定部によっておこない、特定の命令群に属する命令であると判定をおこなった場合に、切り替えられた他のオペレーティングシステムの代替え処理部によって、代替え処理をおこなうことで、複数のオペレーティングシステムが同時に動作している場合に、一方のオペレーティングシステムに実行させたくない処理を代替え処理によって回避することができる。また、切り替えたオペレーティングシステムで特定命令群の判定処理および代替え処理をおこなうので、切替え元のオペレーティングシステムの改造が不要になり、開発期間の短縮化を図ることができる。
【0031】
また、この請求項の発明によれば、コンピュータを構成する中央演算装置のトレースモードにおいて各命令が実行される際に発生する割込みの処理の中で判定をおこなうことで、実行中のオペレーティングシステムの処理から自動的に制御を受け取って代替え処理をおこなうことができる。
【0033】
また、この請求項の発明によれば、割込みが発生した際に中央演算装置がスタックに積んだ次命令アドレスを用いて次に実行される命令を取り出し、該取り出した命令に対して判定をおこなうことで、次に実行される命令の判定を確実におこなうことができる。
【0034】
また、請求項にかかる発明は、請求項に記載のオペレーティングシステム制御方法において、前記命令群判定工程は、前記代替え処理が必要ない場合には、前記取り出した命令以下の命令群の実行をスキップすることを特徴とする。
【0036】
また、請求項にかかる発明は、請求項6または7に記載のオペレーティングシステム制御方法において、前記命令群判定工程は、前記取り出した命令が前記特定の命令群の先頭の命令である場合、または前記特定の命令群の先頭だけでは前記特定の命令群の先頭であるか否かを判定できない場合に、順次、次の命令を取り出して前記特定の命令群であるか否かを判定することを特徴とする。
【0038】
また、請求項にかかる発明は、請求項6〜8のいずれか一つに記載のオペレーティングシステム制御方法において、前記代替処理工程は、いくつかの特定の命令群に対しては代替処理をおこなうことなくスキップすることを特徴とする。
【0039】
この請求項の発明によれば、いくつかの特定の命令群に対しては代替処理をおこなうことなくスキップすることで、実行不要な命令群をスキップして処理の効率化を図ることができる。
【0040】
また、請求項10にかかる発明は、請求項1〜のいずれか一つに記載された方法をコンピュータに実行させるプログラムであるので、請求項1〜のいずれか一つの動作をコンピュータによって実行することができる。
【0041】
また、請求項11にかかる発明は、一台のコンピュータで同時に動作する複数のオペレーティングシステムのうちの一つのオペレーティングシステムを制御するオペレーティングシステム制御装置であって、動作中の一のオペレーティングシステムにおいて、該一のオペレーティングシステムに実行させたくない処理が実行される場合に、中央演算装置のトレースモードにおいて各命令が実行される際に発生する割込みの処理の中で、割込みが発生した際に前記中央演算装置がスタックに積んだ次命令アドレスを用いて次に実行される命令を取り出し、該取り出した命令に対して、予め保持している代替え処理が必要な特定の命令群と前記中央演算装置が実行しようとする命令群と比較して一致するか否かを判断することによって、前記次に実行される命令が前記特定の命令群に属する命令であるか否かの判定をおこなう命令群判定手段と、前記命令群判定手段が特定の命令群に属する命令であると判定をおこなった場合に、代替え処理をおこなう他のオペレーティングシステムへの切替え処理をおこなう切替え処理手段と、切り替えられた前記他のオペレーティングシステムで、代替え処理をおこなう代替え処理手段と、を備えたことを特徴とする。
【0042】
この請求項11の発明によれば、動作中の一のオペレーティングシステムにおいて、該一のオペレーティングシステムに実行させたくない処理が実行される場合に、中央演算装置のトレースモードにおいて各命令が実行される際に発生する割込みの処理の中で、割込みが発生した際に中央演算装置がスタックに積んだ次命令アドレスを用いて次に実行される命令を取り出し、該取り出した命令に対して、予め保持している代替え処理が必要な特定の命令群と中央演算装置が実行しようとする命令群と比較して一致するか否かを判断することによって、次に実行される命令が特定の命令群に属する命令であるか否かの判定をおこない、特定の命令群に属する命令であると判定をおこなった場合に、代替え処理をおこなう他のオペレーティングシステムへの切替え処理をおこない、切り替えられた他のオペレーティングシステムで、代替え処理をおこなうことで、複数のオペレーティングシステムが同時に動作している場合に、一方のオペレーティングシステムに実行させたくない処理を代替え処理によって回避することができる。また、本発明によれば、特定命令の判定によって代替え処理をおこなわずにすむ場合には、オペレーティングシステムの切替えをする必要がないので、命令判定から代替え処理の速度を向上させることができる。
【0043】
また、請求項12にかかる発明は、一台のコンピュータで同時に動作する複数のオペレーティングシステムのうちの一つのオペレーティングシステムを制御するオペレーティングシステム制御装置であって、動作中の一のオペレーティングシステムにおいて、該一のオペレーティングシステムに実行させたくない処理が実行される場合に、他のオペレーティングシステムへの切替え処理をおこなう切替え処理手段と、記一のオペレーティングシステムにおいて中央演算装置のトレースモードにおいて各命令が実行される際に発生する割込みの処理の中で、割込みが発生した際に前記中央演算装置がスタックに積んだ次命令アドレスを用いて次に実行される命令を取り出し、該取り出した命令に対して、予め保持している代替え処理が必要な特定の命令群と前記中央演算装置が実行しようとする命令群と比較して一致するか否かを判断することによって、前記一のオペレーティングシステムで前記次に実行される命令が前記特定の命令群に属する命令であるか否かの判定を、切り替えられた前記他のオペレーティングシステムにおいておこなう命令群判定手段と、記命令群判定手段が特定の命令群に属する命令であると判定をおこなった場合に、切り替えられた前記他のオペレーティングシステムにおいて代替え処理をおこなう代替え処理手段と、を備えたことを特徴とする。
【0044】
この請求項12の発明によれば、動作中の一のオペレーティングシステムにおいて、該一のオペレーティングシステムに実行させたくない処理が実行される場合に、他のオペレーティングシステムへの切替え処理をおこない、一のオペレーティングシステムにおいて中央演算装置のトレースモードにおいて各命令が実行される際に発生する割込みの処理の中で、割込みが発生した際に中央演算装置がスタックに積んだ次命令アドレスを用いて次に実行される命令を取り出し、該取り出した命令に対して、予め保持している代替え処理が必要な特定の命令群と中央演算装置が実行しようとする命令群と比較して一致するか否かを判断することによって、一のオペレーティングシステムで次に実行される命令が特定の命令群に属する命令であるか否かの判定を、切り替えられた他のオペレーティングシステムにおいておこない、特定の命令群に属する命令であると判定をおこなった場合に、切り替えられた他のオペレーティングシステムにおいて代替え処理をおこなうことで、複数のオペレーティングシステムが同時に動作している場合に、一方のオペレーティングシステムに実行させたくない処理を代替え処理によって回避することができる。また、切り替えたオペレーティングシステムで特定命令群の判定処理および代替え処理をおこなうので、切替え元のオペレーティングシステムの改造が不要になり、開発期間の短縮化を図ることができる。
【0045】
【発明の実施の形態】
以下に添付図面を参照して、この発明にかかるオペレーティングシステム制御方法、およびその方法をコンピュータに実行させるプログラム、ならびにオペレーティングシステム制御装置の好適な実施の形態を詳細に説明する。
【0046】
なお、本実施の形態では、CPU(中央演算装置:Central Processing Unit)として、Intel(R)社のPentium(R)(IA−32アーキテクチャ)を採用した例をもとに説明する。以下説明で用いる用語をIA−32アーキテクチャでは、割り込みベクタテーブルは割り込みディスクリプタテーブルと、割り込みベクタテーブルレジスタは割り込みディスクリプタテーブルレジスタ(IDTR)と、ページテーブルレジスタはコントロール3レジスタ(CR3)と、プログラムカウンタ(PC)はインストラクションポインタ(EIP)と、トレースモードはデバッグモード(シングル・ステップ・モード)と、トレース例外はデバッグ例外と呼ぶ。
【0047】
(実施の形態1)
図1は、この発明の実施の形態1であるマルチオペレーティングシステムおよびオペレーティングシステム制御装置の機能的構成を示すブロック図である。本実施の形態のオペレーティングシステム制御装置は、図1に示すように、ハードウェア120と、OS−A100と、OS−B110と、AP(アプリケーションプログラム)130,140から構成されている。
【0048】
同マルチオペレーティングシステムでは、OS−A100からOS−B110へ、またはOS−B110からOS−A100への切り替えが割り込み処理ルーチンの中で実行される。割り込みの発生要因としては、後述するトレース例外処理の中の次命令の特定命令判定処理によって次命令が特定命令群であると判定された場合に、OS−A100からOS−B110へ切り替えられるようになっている。この他の割り込み要因としては、タイマ割り込みによる定期的な切り替え要求や、LAN(Local Area Network)カードからのハードウェア割り込み等が挙げられる。
【0049】
図1において、ハードウェア120は、計算機資源であり、制御部125と、物理メモリ126と、割り込みベクタテーブルレジスタ121と、ページテーブルレジスタ122と、その他のレジスタ123と、プログラムカウンタ124や、図示しないキーボード、ディスプレイ等から構成されている。
【0050】
ハードウェア120には、マルチ構成のOS−A100およびOS−B110が存在している。OS−A100およびOS−B110のそれぞれは、ハードウェア120の計算機資源を管理し、割り込み処理ルーチンの中で切り替えられる。すなわち、ある時間を考えると、ハードウェア120は、一つのOS(OS−A100およびOS−B110)により占有される。
【0051】
OS−A100は、割り込み振分け処理部101と、OS切替え処理部102と、トレース例外処理部103と、割り込みベクタテーブル105と、ページテーブル106と、レジスタ退避領域107等から構成されている。また、トレース例外処理部103は、特定命令判定処理部104を備えている。AP130は、OS−A100上で走行するアプリケーションプログラムである。
【0052】
一方、OS−B110は、OS−A100に併設されており、割り込み振分け処理部111と、OS切替え処理部112と、代替え処理部113と、割り込みベクタテーブル114と、ページテーブル115と、レジスタ退避領域116等から構成されている。AP140は、OS−B110上で走行するアプリケーションプログラムである。
【0053】
ハードウェア120において、制御部125は、CPU等であり、プログラム実行により各部を制御する。物理メモリ126は、物理的に実在する大容量の記憶装置であり、仮想記憶制御方式に用いられ、各種命令やデータ等を実際に記憶する。
【0054】
割り込みベクタテーブルレジスタ121は、割り込みに応じた割込番号を格納するレジスタである。この割込番号は、後述する割り込みベクタテーブル105または割り込みベクタテーブル114での割り込み処理ルーチンの論理アドレスに対応している。
【0055】
ページテーブルレジスタ122は、後述するページテーブル106またはページテーブル115へのページインデックスを格納するレジスタである。その他レジスタ123は、汎用レジスタ、フラグレジスタ等である。プログラムカウンタ(PC)124は、仮想メモリ空間から命令をフェッチする論理アドレスを1インクリメントする。
【0056】
OS−A100において、割り込み振分け処理部101は、割り込み発生時に、割り込みベクタテーブルレジスタ121の割込番号に基づいて、割り込みベクタテーブル105を参照して、所定の割り込み処理ルーチンへジャンプさせる。なお、実際には、割り込み振分け処理部101の処理は、割り込み発生時に制御部125内部で実行される。
【0057】
OS切替え処理部102は、OS−A100からOS−B110への切替えの際のレジスタなどの待避、トレース例外時のスタックの未使用レジスタへの格納および切替え処理をおこなうものである。
【0058】
トレース例外処理部103は、CPUの走行モードをトレースモード(IA−32アーキテクチャでは、デバッグモードと呼ぶ。さらに詳しく言うと、1命令実行毎にトレース例外が発生するモードを、シングル・ステップ・モードと呼ぶ。)に設定し、一つの命令を実行するごとにトレース例外(int 0x01)が発生した場合にに実行されるものである。このトレース例外処理部103は、1命令実行毎にトレース例外が発生したときに実行されるように、割り込みベクタテーブルレジスタ(IDTR)121で指定されるOS−A100の割り込みベクタテーブル105に登録されている。そして、このトレース例外処理部103には、特定命令判定処理部104を有し、特定命令判定処理部104は、トレース例外発生時にCPUがスタックに積んだプログラムカウンタで指定される次命令を読み出し、読み出した命令がOS−Aの走行環境を破壊するような命令群の先頭の命令であるか否かを調べるものである。なお、トレースモードの設定は、フラグレジスタ(EFLAGS)の所定のビットをセットすることによっておこなう。
【0059】
ページテーブル106は、仮想メモリ空間の各仮想ページと、物理メモリ12の各物理ページとの対応関係を表すテーブルである。
【0060】
レジスタ退避領域107は、OS切り替え時に、切り替え前のOSに対応するレジスタ(割り込みベクタテーブルレジスタ121、ページテーブルレジスタ122、その他レジスタ123)の内容を退避するための領域である。具体的には、OS−A100からOS−B110へ切り替えられる場合、レジスタ退避領域107には、OS−A100に対応するレジスタの内容が退避される。
【0061】
OS−B110において、割り込み振分け処理部111は、割り込み発生時に、割り込みベクタテーブルレジスタ121の割込番号に基づいて、割り込みベクタテーブル114を参照して、所定の割り込み処理ルーチンへジャンプさせる。なお、実際には、割り込み振分け処理部111の処理は、割り込み発生時に制御部125内部で実行される。
【0062】
OS切替え処理部112は、OS−B110からOS−A100への切替えの際のレジスタなどの待避、トレース例外時のスタックの未使用レジスタへの格納および切替え処理をおこなうものである。
【0063】
代替え処理部113は、OS−A100の特定命令判定処理部104による判定結果が特定命令群である場合に、その特定命令に対する代替え処理をおこなうものである。
【0064】
ページテーブル115は、仮想メモリ空間の各仮想ページと、物理メモリ126の各物理ページとの対応関係を表すテーブルである。
【0065】
レジスタ退避領域116は、OS切り替え時に、切り替え前のOSに対応するレジスタ(割り込みベクタテーブルレジスタ121、ページテーブルレジスタ122、その他レジスタ123)の内容を退避するための領域である。具体的には、OS−B110からOS−A100へ切り替えられる場合、レジスタ退避領域107には、OS−B110に対応するレジスタの内容が退避される。
【0066】
次に、以上のように構成された本実施の形態のマルチオペレーティングシステムおよびオペレーティングシステム制御装置によるオペレーティングシステムの制御処理について説明する。
【0067】
まず、本実施の形態に係るオペレーティングシステム制御方法による命令群代替処理の概念について説明する。図2は、本実施の形態に係るオペレーティングシステム制御方法による命令群代替処理の概念を説明するための説明図である。
【0068】
図2には、オペレーティングシステムOS−B110を物理メモリの高アドレス領域にロードして実行し、他のオペレーティングシステムOS−A100を物理メモリの低アドレス領域にロードして実行している状態を示している。ここでは、OS−B110を物理メモリの高アドレス領域にOS−A100を低アドレス領域にロードすることで説明するが、この高低が逆でもよい。
【0069】
図2に示した状態で、OS−A100は、所定の処理をおこなう場合、CPUの走行モードをトレースモード(IA−32アーキテクチャでは、デバッグモードと呼ぶ。さらに詳しく言うと、1命令実行毎にデバッグ例外が発生するモードを、シングル・ステップ・モードと呼ぶ。)に設定する。なお、トレースモードの設定は、フラグレジスタ(EFLAGS)の所定のビットをセットすることによっておこなう。
【0070】
ここで、OS−A100が行う所定の処理は、任意に定めることが可能である。このような所定の処理としては、OS−A100とOS−B110とが同時に稼働する場合に、OS−A100に実行させたくない処理や互いのOSの走行環境に影響を与えるような処理が該当する。このような処理としては、たとえば、OS−B110がLAN(Local Area Network)による通信をおこなっている場合におけるOS−A100によるLAN通信処理がある。このような場合、OS−A100によるLAN通信処理を代替え処理する。
【0071】
また、OS−B110がマウス割り込みやキーボード割り込みを検出したとき、すなわち、ユーザがコンピュータを操作しているとにおけるフレキシブルディスクドライブ装置(FDD)に対するアクセスを禁止してOS−B110で代替え処理を行うことによって、FDDからの不正プログラムの侵入やデータ等へのFDへの不正コピー防止による機密漏洩を防止することができる。
【0072】
さらに、OS−A100であるデータベースへのアクセスが認証されていない場合、このデータベースへのアクセス処理をOS−B110で監視したり代替え処理をおこなうことによって、OS−A100による認証が成功した場合に監視をやめて、OS−A100からのデータベースアクセスを許容することが可能である。
【0073】
CPUの走行モードをトレースモードに設定した場合、OS−A100では、一つの命令を実行するごとにトレース例外(int 0x01)が発生し、割込みベクタテーブルレジスタ(IDTR)121で指定されるOS−A100の割込みベクタタテーブル105に登録されているトレース例外処理部103が起動される。
【0074】
そして、起動されたトレース例外処理部103による処理の中で、前記トレース例外発生時にCPUがスタックに積んだプログラムカウンタ(PC)125で指定される次命令を読み出し、読み出した命令がある特定の命令群の先頭の命令であるか否かを調べる。
【0075】
ここで、スタックは、割込み発生時のオペレーティングシステムの走行状態を保存するためにレジスタなどの値を一時的に保存する記憶部である。このスタックに積まれるレジスタには、CPUによって自動的に値が積まれるレジスタとトレース例外処理部103によって値が積まれるレジスタとがある。
【0076】
その結果、読み出した命令が当該ある特定の命令群の先頭の命令である場合には、OS切替え処理部102を起動してOS−A100からOS−B110への切替え処理をおこなう。そして、切替えられたOS−B110の代替え処理部113によってその特定の命令群に対して代替え処理をおこなう。あるいは、いくつかの命令群に対しては代替え処理が必要ない場合もあり、そのような場合には、読み出した命令以下の命令群の実行をスキップする。
【0077】
次に、OS−A100のトレース例外処理部103の処理手順について説明する。図3は、OS−A100のトレース例外処理部103の処理手順を示すフローチャートである。
【0078】
OS−A100のトレース例外処理部103は、割り込み振分け処理部101によって起動されると、割り込みを禁止し(ステップS301)、走行状態を保存するために必要なレジスタのうちCPUが保存していないレジスタや引数などをスタックに積む(ステップS302)。
【0079】
そして、CPUがスタックに格納したプログラムカウンタ(PC)の値を取り出す(ステップS303)。ここで、プログラムカウンタ(PC)の値の取り出しは、スタックに対してPOP命令を実行しておこなうが、POP命令と同じ回数分、かつPOP命令で取り出した順番と逆の順番でPUSH命令を実行することで、ステップS303実行前の状態に、スタックを戻すことができる。
【0080】
そして、スタックから取り出したプログラムカウンタ(PC)の値を用いてCPUが次に実行する命令を取得し(ステップS304)、取得した命令が特定の命令群の先頭の命令であるか否かを調べる(ステップS305)。
【0081】
ここで、先頭の命令だけでは特定の命令群の先頭であるか否かが判定できない場合には、順次、次の命令を調べることによって特定の命令群であるか否かを判定する。すなわち、このトレース例外処理部103は、代替え処理が必要な特定の命令群を保持し、CPUが実行しようとする命令群とのマッチングをとることによって特定の命令群であるか否かの判定をおこなう。
【0082】
そして、特定の命令群である場合には、OS切替え処理部102にジャンプする(ステップS306)。これにより、OS−A100からOS−B110への切替え処理がおこなわれ、切替わったOS−B110の代替え処理部113によって、その特定の命令群に対応する代替え処理がおこなわれることになる。
【0083】
一方、取得した命令が特定の命令群の先頭の命令でない場合には、スタックに積んだレジスタの値を元に戻すなどの復帰処理をおこない(ステップS307)、割込み禁止を解除する(ステップS308)。
【0084】
次に、本実施の形態によるOS切り替え処理および命令の代替え処理について説明する。図4は、本実施の形態のOS切り替え処理および命令の代替え処理の流れを示す説明図である。本実施の形態では、仮想メモリ空間400および仮想メモリ空間410の各論理アドレスには、同図に示した処理に対応する各種命令が割り当てられている。
【0085】
図4の例では、OS−A100が動作状態にあり、OS−B110が待機状態にあるものとする。この状態で、OS−A100側でトレース例外が発生すると、割り込み振分け処理部101は、▲1▼で、割り込みベクタテーブルレジスタ121の割込番号に基づいて、割り込みベクタテーブル105を参照し、OS切替え処理へジャンプする。
【0086】
これにより、OS切り替え処理部102は、▲2▼で、仮想メモリ空間400のL番地より実行される。以後、プログラムカウンタ124が1インクリメントされる毎に、仮想メモリ空間400の番地が1つ移行し、当該番地の命令が以下のように順次実行される。
【0087】
OS切替え中により優先度の高い割り込みが多重で入ってくることを防止するために、割り込み禁止命令を実行する。そして、OS切り替え処理(レジスタをレジスタ退避領域に退避)では、仮想メモリ空間400のY番地で、OS−A100に対応する割り込みベクタテーブルレジスタ121、ページテーブルレジスタ122およびその他レジスタ123の内容がレジスタ退避領域107に退避される。
【0088】
次のOS切替え処理(トレース例外時のスタックを未使用レジスタに格納)では、トレース例外時のスタックの内容、たとえばプログラムカウンタ(PC)の値等を未使用のレジスタまたは使用頻度の低いレジスタに格納し、OS−B110に受け渡す。なお、本実施の形態では未使用レジスタまたは使用頻度の低いレジスタを利用してOS−B110へのスタックの内容の受け渡しをおこなっているが、この他、たとえば共有メモリを介してスタックの内容をOS−B110に受け渡すことも可能である。
【0089】
次のOS切替え処理(IDTR切り替え命令)では、割り込みベクタテーブルレジスタ121が、OS−A100用からOS−B110用に切り替えられる。次のOS切り替え処理(ページテーブルレジスタ変更命令)では、仮想メモリ空間400のN番地で、ページテーブルレジスタ122がOS−A100用からOS−B110用に変更される。これにより、OS−A100からOS−B110へ切り替えられる(▲3▼)。
【0090】
仮想メモリ空間410のN+1番地でにおいて、まずCPUのトレースモードを解除する。そして、次のOS切替え処理(トレース例外時のスタックを未使用レジスタから取得)では、トレース例外時のスタックの内容、たとえばプログラムカウンタ(PC)の値等を未使用のレジスタまたは使用頻度の低いレジスタを介してOS−A100から取得する。
【0091】
次のOS切替え処理(レジスタ退避領域からレジスタを復帰)では、以前にレジスタ退避領域116に退避されていたOS−B110用のレジスタの内容が割り込みベクタテーブルレジスタ121、ページテーブルレジスタ122およびその他レジスタ123にそれぞれ復帰される(▲4▼)。
【0092】
次に、代替え処理部113によって、OS−A100で特定の命令と判定された命令群に対する代替え処理を実行する。そして、割り込み許可命令を実行し、仮想メモリ空間410のS番地でIRET命令が実行され(割り込み復帰命令)、前回OS−B110で割り込みが発生した箇所に復帰する(▲5▼)。
【0093】
OS切替えの割り込みが発生したら、割り込み振分け処理部111は、▲1▼で、割り込みベクタテーブルレジスタ121の割込番号に基づいて、割り込みベクタテーブル114を参照し、OS切替え処理へジャンプする(▲6▼)。
【0094】
次に、OS切替え中により優先度の高い割り込みが多重で入ってくることを防止するために、割り込み禁止命令を実行する。そして、OS切り替え処理(レジスタをレジスタ退避領域に退避)では、OS−B110に対応する割り込みベクタテーブルレジスタ121、ページテーブルレジスタ122およびその他レジスタ123の内容がレジスタ退避領域116に退避される(▲7▼)。
【0095】
次のOS切替え処理(トレース例外時のスタックを未使用レジスタに格納)では、トレース例外時のスタックの内容、たとえばプログラムカウンタ(PC)の値等を未使用のレジスタまたは使用頻度の低いレジスタに格納し、OS−A100に受け渡す。
【0096】
次のOS切り替え処理(IDTR切り替え命令)では、割り込みベクタテーブルレジスタ121が、OS−B110用からOS−A100用に切り替えられる。次のOS切り替え処理(ページテーブルレジスタ変更命令)では、仮想メモリ空間410のN番地で、ページテーブルレジスタ122がOS−B110用からOS−A100用に変更される。これにより、OS−B110からOS−A100へ切り替えられる(▲8▼)。
【0097】
仮想メモリ空間400N+1番地で、OS切替え処理(トレース例外時のスタックを未使用レジスタから取得)では、トレース例外時のスタックの内容、たとえばプログラムカウンタ(PC)の値等を未使用のレジスタまたは使用頻度の低いレジスタを介してOS−B100から取得する(▲9▼)。そして、次のOS切替え処理(トレース例外時のスタックの内容の書き込み)では、取得した値をスタックに書き込む。
【0098】
次のOS切り替え処理(レジスタ退避領域からレジスタを復帰)では、先にレジスタ退避領域107に退避されていたOS−A100用のレジスタの内容が割り込みベクタテーブルレジスタ121、ページテーブルレジスタ122およびその他レジスタ123にそれぞれ復帰される。
【0099】
次に、割り込み許可命令を実行する。そして、仮想メモリ空間400のX番地でIRET(割り込み復帰命令)が実行され、トレース例外発生時の次の命令または命令をとばして次に実行させてもよい命令に復帰する(丸付き10)。
【0100】
次に、本実施の形態に係るオペレーティングシステムを実行するコンピュータについて説明する。図5は、本実施の形態に係るオペレーティングシステムを実行するコンピュータを示す図である。
【0101】
図5に示すように、このコンピュータ500は、オペレーティングシステムなどのプログラムを実行するCPU510と、キーボードやマウスなどの入力装置520と、各種データを記憶するROM(Read Only Memory)530と、実行するプログラムや演算の一時結果などを記憶する物理メモリ(RAM:Random Access Memory)126と、記録媒体500からプログラムを読み取る読取装置550と、ディスプレイやプリンタなどの出力装置560と、装置各部を接続するバス570とから構成される。
【0102】
また、CPU510は、読取装置550を経由して記録媒体500に記録されているオペレーティングシステムなどのプログラムを物理メモリ126に読み込んで実行する。なお、記録媒体500としては、光ディスク、フレキシブルディスク、ハードディスクなどが挙げられる。
【0103】
このように実施の形態1では、動作中のOS−A100の中で特定の実行させたくない処理が実行される際に、次に実行される命令が特定の命令群に属する命令であるか否かの判定をおこない、特定の命令群に属する命令であると判定をおこなった場合に、特定の命令群に対する代替え処理をおこなうOS−B110への切替え処理をおこない、OS−B110側で、特定の命令群に対する代替え処理をおこなっているので、OS−A100とOS−B110が同時に動作している場合に、OS−A100に実行させたくない処理を代替え処理によって回避することができる。
【0104】
また、本実施の形態では、特定命令の判定によって代替え処理をおこなわずにすむ場合には、OS−A100からOS−B110への切替えをおこなう必要がなくなるので、命令判定から代替え処理の速度を向上させることができる。
【0105】
(実施の形態2)
実施の形態1のマルチオペレーティングシステムおよびオペレーティングシステム制御装置は、OS−A100の命令の判定処理をOS−A100側でおこない、OS−B110側で特定命令の代替え処理をおこなっていたが、この実施の形態2のマルチオペレーティングシステムおよびオペレーティングシステム制御装置では、OS−Aの命令の判定および代替え処理をOS−B側でおこなうものである。
【0106】
図6は、実施の形態2のマルチオペレーティングシステムおよびオペレーティングシステム制御装置の機能的構成を示すブロック図である。本実施の形態のオペレーティングシステム制御装置は、図6に示すように、ハードウェア120と、OS−A600と、OS−B610と、AP(アプリケーションプログラム)130,140から構成されている。
【0107】
同マルチオペレーティングシステムでも、OS−A600からOS−B610へ、またはOS−B610からOS−A600への切り替えが割り込み処理ルーチンの中で実行される。割り込みの発生要因としては、後述するトレース例外処理の中の次命令の特定命令判定処理によって次命令が特定命令群であると判定された場合に、OS−A100からOS−B110へ切り替えられるようになっている。この他の割り込み要因としては、タイマ割り込みによる定期的な切り替え要求や、LAN(Local Area Network)カードからのハードウェア割り込み等が挙げられる。
【0108】
図6において、ハードウェア120は、計算機資源であり、その構成は実施の形態1と同様であるので説明を省略する。
【0109】
OS−A600は、割り込み振分け処理部101と、OS切替え処理部102と、割り込みベクタテーブル105と 、ページテーブル106と、レジスタ退避領域107等から構成されている。これら各部の構成は実施の形態1と同様であるため説明を省略する。
【0110】
一方、OS−B610は、OS−A600に併設されており、割り込み振分け処理部111と、OS切替え処理部112と、トレース例外処理部613と 、割り込みベクタテーブル114と 、ページテーブル115と、レジスタ退避領域116等から構成されている。AP140は、OS−B110上で走行するアプリケーションプログラムである。割り込み振分け処理部111、OS切替え処理部112、割り込みベクタテーブル114と 、ページテーブル115、レジスタ退避領域116の構成は実施の形態1と同様であるため説明を省略する。
【0111】
実施の形態2では、OS−B610にトレース例外処理部613を備えている点が実施の形態1と異なっている。トレース例外処理部613は、特定命令判定処理部614と代替え処理部615を備えている。AP130は、OS−A100上で走行するアプリケーションプログラムである。
【0112】
OS−B610において、トレース例外処理部613は、CPUの走行モードをトレースモードに設定し、OS−A600の一つの命令を実行するごとにトレース例外(int 0x01)が発生した場合にに実行されるものである。このトレース例外処理部613は、1命令実行毎にトレース例外が発生したときに実行されるように、割り込みベクタテーブルレジスタ(IDTR)121で指定されるOS−B610の割り込みベクタテーブル105に登録されている。そして、このトレース例外処理部613には、特定命令判定処理部614を有し、特定命令判定処理部614は、トレース例外発生時にCPUがスタックに積んだプログラムカウンタで指定される次命令を読み出し、読み出した命令が特定の命令群の先頭の命令であるか否かを調べるものである。なお、トレースモードの設定は、フラグレジスタ(EFLAGS)の所定のビットをセットすることによっておこなう。また、代替え処理部615は、OS−A特定命令判定処理部614による判定結果が特定命令群である場合に、その特定命令に対する代替え処理をおこなうものである。
【0113】
次に、本実施の形態によるオペレーティングシステムの制御処理について説明する。まず、本実施の形態に係るオペレーティングシステム制御方法による命令群代替処理の概念について説明する。図7は、本実施の形態に係るオペレーティングシステム制御方法による命令群代替処理の概念を説明するための説明図である。
【0114】
図7には、オペレーティングシステムOS−B110を物理メモリの高アドレス領域にロードして実行し、他のオペレーティングシステムOS−A100を物理メモリの低アドレス領域にロードして実行している状態を示している。ここでは、OS−B110を物理メモリの高アドレス領域にOS−A100を低アドレス領域にロードすることで説明するが、この高低が逆でもよい。
【0115】
図7に示した状態で、OS−A600は、ある特定の処理をおこなう場合、CPUの走行モードをトレースモードに設定する。なお、トレースモードの設定は、フラグレジスタ(EFLAGS)の所定のビットをセットすることによっておこなう。そして、OS切替え処理部102を起動してOS−A100からOS−B110への切替え処理をおこなう。
【0116】
すると、OS−A600では、一つの命令を実行するごとにトレース例外(int 0x01)が発生する。このとき、割込みベクタテーブルレジスタ(IDTR)121で指定されるOS−B610の割込みベクタタテーブル114に登録されているトレース例外処理部613が起動される。
【0117】
そして、起動されたトレース例外処理部613による処理の中で、前記トレース例外発生時にCPUがスタックに積んだプログラムカウンタ(PC)125で指定される次命令を読み出し、読み出した命令がある特定の命令群の先頭の命令であるか否かを調べる。
【0118】
その結果、読み出した命令が当該ある特定の命令群の先頭の命令である場合には、代替え処理部615によってその特定の命令群に対して代替え処理をおこなう。あるいは、いくつかの命令群に対しては代替え処理が必要ない場合もあり、そのような場合には、読み出した命令以下の命令群の実行をスキップする。
【0119】
図8は、本実施の形態のOS切り替え処理および特定命令の判定および代替え処理の流れを示す説明図である。本実施の形態では、仮想メモリ空間400および仮想メモリ空間410の各論理アドレスには、同図に示した処理に対応する各種命令が割り当てられている。
【0120】
図8の例では、OS−A600が動作状態にあり、OS−B610が待機状態にあるものとする。この状態で、OS−A600側である特定の処理をおこなうと、割り込み振分け処理部101は、▲1▼で、割り込みベクタテーブルレジスタ121の割込番号に基づいて、割り込みベクタテーブル105を参照し、OS切替え処理へジャンプする。
【0121】
これにより、OS切り替え処理部102は、▲2▼で、仮想メモリ空間400のL番地より実行される。以後、プログラムカウンタ124が1インクリメントされる毎に、仮想メモリ空間400の番地が1つ移行し、当該番地の命令が以下のように順次実行される。
【0122】
OS切替え中により優先度の高い割り込みが多重で入ってくることを防止するために、割り込み禁止命令を実行する。そして、OS切り替え処理(レジスタをレジスタ退避領域に退避)では、仮想メモリ空間400のY番地で、OS−A600に対応する割り込みベクタテーブルレジスタ121、ページテーブルレジスタ122およびその他レジスタ123の内容がレジスタ退避領域107に退避される。
【0123】
次のOS切替え処理(トレース例外時のスタックを未使用レジスタに格納)では、トレース例外時のスタックの内容、たとえばプログラムカウンタ(PC)の値等を未使用のレジスタまたは使用頻度の低いレジスタに格納し、OS−B610に受け渡す。なお、本実施の形態では未使用レジスタまたは使用頻度の低いレジスタを利用してOS−B110へのスタックの内容の受け渡しをおこなっているが、この他、たとえば共有メモリを介してスタックの内容をOS−B110に受け渡すことも可能である。
【0124】
次のOS切替え処理(IDTR切り替え命令)では、割り込みベクタテーブルレジスタ121が、OS−A600用からOS−B610用に切り替えられる。次のOS切り替え処理(ページテーブルレジスタ変更命令)では、仮想メモリ空間400のN番地で、ページテーブルレジスタ122がOS−A600用からOS−B610用に変更される。これにより、OS−A600からOS−B610へ切り替えられる(▲3▼)。
【0125】
仮想メモリ空間410のN+1番地でにおいて、まずCPUのトレースモードを解除する。そして、次のOS切替え処理(トレース例外時のスタックを未使用レジスタから取得)では、トレース例外時のスタックの内容、たとえばプログラムカウンタ(PC)の値等を未使用のレジスタまたは使用頻度の低いレジスタを介してOS−A600から取得する。
【0126】
次のOS切替え処理(レジスタ退避領域からレジスタを復帰)では、以前にレジスタ退避領域116に退避されていたOS−B610用のレジスタの内容が割り込みベクタテーブルレジスタ121、ページテーブルレジスタ122およびその他レジスタ123にそれぞれ復帰される(▲4▼)。
【0127】
次に、特定命令判定処理部614によって、OS−A600の命令または命令群が特定命令か否かの判定処理をおこなう。そして特定命令である場合には、代替え処理部615によって、OS−A600で特定の命令と判定された命令群に対する代替え処理を実行する(▲5▼)。そして、割り込み許可命令を実行し、仮想メモリ空間410のS番地でIRET命令が実行され(割り込み復帰命令)、前回OS−B110で割り込みが発生した箇所に復帰する(▲6▼)。
【0128】
OS切替えの割り込みが発生したら、割り込み振分け処理部111は、▲1▼で、割り込みベクタテーブルレジスタ121の割込番号に基づいて、割り込みベクタテーブル114を参照し、OS切替え処理へジャンプする(▲7▼)。
【0129】
次に、OS切替え中により優先度の高い割り込みが多重で入ってくることを防止するために、割り込み禁止命令を実行する。そして、CPUをトレースモードに設定する。次にOS切り替え処理(レジスタをレジスタ退避領域に退避)では、OS−B610に対応する割り込みベクタテーブルレジスタ121、ページテーブルレジスタ122およびその他レジスタ123の内容がレジスタ退避領域116に退避される(▲8▼)。
【0130】
次のOS切替え処理(トレース例外時のスタックを未使用レジスタに格納)では、トレース例外時のスタックの内容、たとえばプログラムカウンタ(PC)の値等を未使用のレジスタまたは使用頻度の低いレジスタに格納し、OS−A600に受け渡す。
【0131】
次のOS切り替え処理(IDTR切り替え命令)では、割り込みベクタテーブルレジスタ121が、OS−B610用からOS−A600用に切り替えられる。次のOS切り替え処理(ページテーブルレジスタ変更命令)では、仮想メモリ空間410のN番地で、ページテーブルレジスタ122がOS−B610用からOS−A600用に変更される。これにより、OS−B610からOS−A600へ切り替えられる(▲9▼)。
【0132】
仮想メモリ空間400N+1番地で、OS切替え処理(トレース例外時のスタックを未使用レジスタから取得)では、トレース例外時のスタックの内容、たとえばプログラムカウンタ(PC)の値等を未使用のレジスタまたは使用頻度の低いレジスタを介してOS−B100から取得する(丸付き10)。そして、次のOS切替え処理(トレース例外時のスタックの内容の書き込み)では、取得した値をスタックに書き込む。
【0133】
次のOS切り替え処理(レジスタ退避領域からレジスタを復帰)では、先にレジスタ退避領域107に退避されていたOS−A100用のレジスタの内容が割り込みベクタテーブルレジスタ121、ページテーブルレジスタ122およびその他レジスタ123にそれぞれ復帰される。
【0134】
次に、割り込み許可命令を実行する。そして、仮想メモリ空間400のX番地でIRET(割り込み復帰命令)が実行され、トレース例外発生時の次の命令または命令をとばして次に実行させてもよい命令に復帰する。
【0135】
次に、OS−B610でおこなわれる特定命令判定処理および代替え処理について説明する。図9は、OS−B610のトレース例外処理部613の処理手順を示すフローチャートである。
【0136】
OS−B610のトレース例外処理部613は、割り込み振分け処理部111によって起動されると、割り込みを禁止し(ステップS901)、走行状態を保存するために必要なレジスタのうちCPUが保存していないレジスタや引数などをスタックに積む(ステップS902)。
【0137】
そして、CPUがスタックに格納したプログラムカウンタ(PC)の値を取り出す(ステップS903)。ここで、プログラムカウンタ(PC)の値の取り出しは、スタックに対してPOP命令を実行しておこなうが、POP命令と同じ回数分、かつPOP命令で取り出した順番と逆の順番でPUSH命令を実行することで、ステップS303実行前の状態に、スタックを戻すことができる。
【0138】
そして、スタックから取り出したプログラムカウンタ(PC)の値を用いてCPUが次に実行する命令を取得し(ステップS904)、取得した命令が特定の命令群の先頭の命令であるか否かを調べる(ステップS905)。
【0139】
ここで、先頭の命令だけでは特定の命令群の先頭であるか否かが判定できない場合には、順次、次の命令を調べることによって特定の命令群であるか否かを判定する。すなわち、このトレース例外処理部613の特定命令判定処理部614は、代替え処理が必要な特定の命令群を保持し、CPUが実行しようとする命令群とのマッチングをとることによって特定の命令群であるか否かの判定をおこなう。
【0140】
そして、特定の命令群である場合には、その特定の命令群に対応する代替処理をおこなう(ステップS906)。ここで、代替処理としては、おこなうべき処理が何もない場合もある。そして、代替え処理した特定の命令群をスキップし(ステップS907)、ステップS904に戻って次の命令を取得し、取得した命令が新たな特定の命令群の始まりであるか否かを調べる。
【0141】
一方、取得した命令が特定の命令群の先頭の命令でない場合には、スタックに積んだレジスタの値を元に戻すなどの復帰処理をおこない(ステップS908)、割込み禁止を解除する(ステップS909)。
【0142】
このように実施の形態2では、動作中のOS−A600の中で特定の実行させたくない処理が実行される際に、OS−A600からOS−B610へ切替え処理をおこない、OS−B610側で、次に実行される命令が特定の命令群に属する命令であるか否かの判定をおこない、特定の命令群に属する命令であると判定をおこなった場合に、特定の命令群に対する代替え処理をおこなっているので、OS−A100とOS−B110が同時に動作している場合に、OS−A100に実行させたくない処理を代替え処理によって回避することができる。
【0143】
また、実施の形態2では、切り替えたOS−B610側で特定命令群の判定処理および代替え処理をおこなっているので、切替え元のOS−A600の改造が不要になり、開発期間の短縮化を図ることができる。
【0144】
なお、実施の形態1および2では、OS−AとOS−Bの二つのオペレーティングシステムを同時に稼働させる場合を例にあげて説明したが、3つ以上のオペレーティングシステムを稼働させる場合にも本発明を適用することが可能である。
【0145】
【発明の効果】
以上説明したように、請求項1にかかる発明によれば、動作中の一のオペレーティングシステムにおいて、該一のオペレーティングシステムに実行させたくない処理が実行される場合に、コンピュータを構成する中央演算装置のトレースモードにおいて各命令が実行される際に発生する割込みの処理の中で、割込みが発生した際に中央演算装置がスタックに積んだ次命令アドレスを用いて次に実行される命令を取り出し、該取り出した命令に対して、コンピュータが予め保持している代替え処理が必要な特定の命令群と中央演算装置が実行しようとする命令群と比較して一致するか否かを判断することによって、次に実行される命令が特定の命令群に属する命令であるか否かの判定をおこない、特定の命令群に属する命令であると判定をおこなった場合に、代替え処理をおこなう他のオペレーティングシステムへの切替え処理をおこなうことで、複数のオペレーティングシステムが同時に動作している場合に、一方のオペレーティングシステムに実行させたくない処理を代替え処理によって回避することができるという効果を奏する。また、本発明によれば、特定命令の判定によって代替え処理をおこなわずにすむ場合には、オペレーティングシステムの切替えをする必要がないので、命令判定から代替え処理の速度を向上させることができるという効果を奏する。
【0146】
また、請求項にかかる発明によれば、コンピュータを構成する中央演算装置のトレースモードにおいて各命令が実行される際に発生する割込みの処理の中で前記判定をおこなうことで、実行中のオペレーティングシステムの処理から自動的に制御を受け取って代替え処理をおこなうことができるという効果を奏する。
【0147】
また、請求項にかかる発明によれば、次に実行される命令の判定を確実におこなうことができるという効果を奏する。
【0151】
また、請求項にかかる発明によれば、実行不要な命令群をスキップして処理の効率化を図ることができるという効果を奏する。
【0152】
また、請求項にかかる発明によれば、複数のオペレーティングシステムが同時に動作している場合に、一方のオペレーティングシステムに実行させたくない処理を代替え処理によって回避することができるという効果を奏する。また、本発明によれば、切り替えた他のオペレーティングシステムで特定命令群の判定処理および代替え処理をおこなうので、切替え元のオペレーティングシステムの改造が不要になり、開発期間の短縮化を図ることができるという効果を奏する。
【0153】
また、請求項にかかる発明によれば、複数のオペレーティングシステムが同時に動作している場合に、一方のオペレーティングシステムに実行させたくない処理を代替え処理によって回避することができるという効果を奏する。また、切り替えたオペレーティングシステムで特定命令群の判定処理および代替え処理をおこなうので、切替え元のオペレーティングシステムの改造が不要になり、開発期間の短縮化を図ることができるという効果を奏する。
【0154】
また、請求項にかかる発明によれば、実行中のオペレーティングシステムの処理から自動的に制御を受け取って代替え処理をおこなうことができるという効果を奏する。
【0155】
また、請求項にかかる発明によれば、次に実行される命令の判定を確実におこなうことができるという効果を奏する。
【0158】
また、請求項にかかる発明によれば、実行不要な命令群をスキップして処理の効率化を図ることができるという効果を奏する。
【0159】
また、請求項10にかかる発明は、請求項1〜のいずれか一つの動作をコンピュータによって実行することができるという効果を奏する。
【0160】
また、請求項11にかかる発明によれば、複数のオペレーティングシステムが同時に動作している場合に、一方のオペレーティングシステムに実行させたくない処理を代替え処理によって回避することができるという効果を奏する。また、本発明によれば、特定命令の判定によって代替え処理をおこなわずにすむ場合には、オペレーティングシステムの切替えをする必要がないので、命令判定から代替え処理の速度を向上させることができるという効果を奏する。
【0161】
また、請求項12にかかる発明によれば、複数のオペレーティングシステムが同時に動作している場合に、一方のオペレーティングシステムに実行させたくない処理を代替え処理によって回避することができるという効果を奏する。また、切り替えたオペレーティングシステムで特定命令群の判定処理および代替え処理をおこなうので、切替え元のオペレーティングシステムの改造が不要になり、開発期間の短縮化を図ることができるという効果を奏する。
【図面の簡単な説明】
【図1】実施の形態1のマルチオペレーティングシステムおよびオペレーティングシステム制御装置の機能的構成を示すブロック図である。
【図2】実施の形態1のオペレーティングシステム制御方法による命令群代替処理の概念を説明するための説明図である。
【図3】実施の形態1のOS−Aのトレース例外処理部の処理手順を示すフローチャートである。
【図4】実施の形態1のOS切り替え処理および命令の代替え処理の流れを示す説明図である。
【図5】実施の形態1のオペレーティングシステムを実行するコンピュータを示す図である。
【図6】実施の形態2のマルチオペレーティングシステムおよびオペレーティングシステム制御装置の機能的構成を示すブロック図である。
【図7】実施の形態2のオペレーティングシステム制御方法による命令群代替処理の概念を説明するための説明図である。
【図8】実施の形態2のOS切り替え処理および特定命令の判定および代替え処理の流れを示す説明図である。
【図9】実施の形態2のOS−Aのトレース例外処理部の処理手順を示すフローチャートである。
【符号の説明】
100,600 OS−A
101,111 割り込み振分け処理部
102,112 OS切替え処理部
103,613 トレース例外処理部
104,614 特定命令判定処理部
105,114 割り込みベクタタテーブル
106,115 ページテーブル
107,116 レジスタ退避領域
113,615 代替え処理部
120 ハードウェア
121 割り込みベクタテーブルレジスタ
122 ページテーブルレジスタ
123 その他レジスタ
124 プログラムカウンタ
125 制御部
126 物理メモリ
400,410 仮想メモリ空間
500 コンピュータ
500 記録媒体
520 入力装置
550 読取装置
560 出力装置
570 バス

Claims (12)

  1. 一台のコンピュータで同時に動作する複数のオペレーティングシステムのうちの一つのオペレーティングシステムの動作を前記コンピュータで制御するオペレーティングシステム制御方法であって、
    特定命令判定部によって、動作中の一のオペレーティングシステムにおいて、該一のオペレーティングシステムに実行させたくない処理が実行される場合に、前記コンピュータを構成する中央演算装置のトレースモードにおいて各命令が実行される際に発生する割込みの処理の中で、割込みが発生した際に前記中央演算装置がスタックに積んだ次命令アドレスを用いて次に実行される命令を取り出し、該取り出した命令に対して、前記コンピュータが予め保持している代替え処理が必要な特定の命令群と前記中央演算装置が実行しようとする命令群と比較して一致するか否かを判断することによって、前記次に実行される命令が前記特定の命令群に属する命令であるか否かの判定をおこなう命令群判定工程と、
    切替え処理部によって、前記命令群判定工程が特定の命令群に属する命令であると判定をおこなった場合に、代替え処理をおこなう他のオペレーティングシステムへの切替え処理をおこなう切替え処理工程と、
    を含んだことを特徴とするオペレーティングシステム制御方法。
  2. 前記命令群判定工程は、前記代替え処理が必要ない場合には、前記取り出した命令以下の命令群の実行をスキップすることを特徴とする請求項1に記載のオペレーティングシステム制御方法。
  3. 前記命令群判定工程は、前記取り出した命令が前記特定の命令群の先頭の命令である場合、または前記特定の命令群の先頭だけでは前記特定の命令群の先頭であるか否かを判定できない場合に、順次、次の命令を取り出して前記特定の命令群であるか否かを判定することを特徴とする請求項1または2に記載のオペレーティングシステム制御方法。
  4. くつかの特定の命令群に対しては代替処理をおこなうことなくスキップすることを特徴とする請求項に記載のオペレーティングシステム制御方法。
  5. 一台のコンピュータで同時に動作する複数のオペレーティングシステムのうちの一つのオペレーティングシステムの動作を前記コンピュータで制御するオペレーティングシステム制御方法であって、
    作中の一のオペレーティングシステムにおいて、該一のオペレーティングシステムに実行させたくない処理が実行される場合において、他のオペレーティングシステムへの切替え処理を、切替え処理部によっておこなう切替え処理工程、を含み、
    前記他のオペレーティングシステムにおいて、前記コンピュータを構成する中央演算装置のトレースモードにおいて各命令が実行される際に発生する割込みの処理の中で、割込みが発生した際に前記中央演算装置がスタックに積んだ次命令アドレスを用いて次に実行される命令を取り出し、該取り出した命令に対して、前記コンピュータが予め保持している代替え処理が必要な特定の命令群と前記中央演算装置が実行しようとする命令群と比較して一致するか否かを判断することによって、前記次に実行される命令が前記特定の命令群に属する命令であるか否かの判定を、特定命令判定部によっておこなう命令群判定工程と、前記命令群判定工程により前記次に実行される命令が前記特定の命令群に属する命令であると判定した場合に、代替え処理部によって代替え処理をおこなう代替え処理工程とを含んだことを特徴とするオペレーティングシステム制御方法。
  6. 一台のコンピュータで同時に動作する複数のオペレーティングシステムのうちの一つのオペレーティングシステムの動作を前記コンピュータで制御するオペレーティングシステム制御方法であって、
    作中の一のオペレーティングシステムにおいて該一のオペレーティングシステムに実行させたくない処理が実行される場合に、前記一のオペレーティングシステムから前記一のオペレーティングシステムで使用されていたスタックの内容を受け渡されることにより、前記一のオペレーティングシステムから他のオペレーティングシステムに切替えられた場合に、前記一のオペレーティングシステムにおいて前記コンピュータを構成する中央演算装置のトレースモードにおいて各命令が実行される際に発生する割込みの処理の中で、割込みが発生した際に前記中央演算装置がスタックに積んだ次命令アドレスを用いて前記一のオペレーティングシステムで次に実行される命令を取り出し、該取り出した命令に対して、前記コンピュータが予め保持している代替え処理が必要な特定の命令群と前記中央演算装置が実行しようとする命令群と比較して一致するか否かを判断することによって、前記一のオペレーティングシステムで前記次に実行される命令が前記特定の命令群に属する命令であるか否かの判定を、前記他のオペレーティングシステムの命令群判定部によっておこなう命令群判定工程と、
    前記命令群判定工程が特定の命令群に属する命令であると判定をおこなった場合に、切り替えられた前記他のオペレーティングシステムの代替え処理部によって、代替え処理をおこなう代替え処理工程と、
    を含んだことを特徴とするオペレーティングシステム制御方法。
  7. 前記命令群判定工程は、前記代替え処理が必要ない場合には、前記取り出した命令以下の命令群の実行をスキップすることを特徴とする請求項に記載のオペレーティングシステム制御方法。
  8. 前記命令群判定工程は、前記取り出した命令が前記特定の命令群の先頭の命令である場合、または前記特定の命令群の先頭だけでは前記特定の命令群の先頭であるか否かを判定できない場合に、順次、次の命令を取り出して前記特定の命令群であるか否かを判定することを特徴とする請求項6または7に記載のオペレーティングシステム制御方法。
  9. 前記代替処理工程は、いくつかの特定の命令群に対しては代替処理をおこなうことなくスキップすることを特徴とする請求項6〜8のいずれか一つに記載のオペレーティングシステム制御方法。
  10. 請求項1〜のいずれか一つに記載されたオペレーティングシステム制御方法をコンピュータに実行させるプログラム。
  11. 一台のコンピュータで同時に動作する複数のオペレーティングシステムのうちの一つのオペレーティングシステムを制御するオペレーティングシステム制御装置であって、
    動作中の一のオペレーティングシステムにおいて、該一のオペレーティングシステムに実行させたくない処理が実行される場合に、中央演算装置のトレースモードにおいて各命令が実行される際に発生する割込みの処理の中で、割込みが発生した際に前記中央演算装置がスタックに積んだ次命令アドレスを用いて次に実行される命令を取り出し、該取り出した命令に対して、予め保持している代替え処理が必要な特定の命令群と前記中央演算装置が実行しようとする命令群と比較して一致するか否かを判断することによって、前記次に実行される命令が前記特定の命令群に属する命令であるか否かの判定をおこなう命令群判定手段と、
    前記命令群判定手段が特定の命令群に属する命令であると判定をおこなった場合に、代替え処理をおこなう他のオペレーティングシステムへの切替え処理をおこなう切替え処理手段と、
    切り替えられた前記他のオペレーティングシステムで、代替え処理をおこなう代替え処理手段と、
    を備えたことを特徴とするオペレーティングシステム制御装置。
  12. 一台のコンピュータで同時に動作する複数のオペレーティングシステムのうちの一つのオペレーティングシステムを制御するオペレーティングシステム制御装置であって、
    動作中の一のオペレーティングシステムにおいて、該一のオペレーティングシステムに実行させたくない処理が実行される場合に、他のオペレーティングシステムへの切替え処理をおこなう切替え処理手段と、
    記一のオペレーティングシステムにおいて中央演算装置のトレースモードにおいて各命令が実行される際に発生する割込みの処理の中で、割込みが発生した際に前記中央演算装置がスタックに積んだ次命令アドレスを用いて次に実行される命令を取り出し、該取り出した命令に対して、予め保持している代替え処理が必要な特定の命令群と前記中央演算装置が実行しようとする命令群と比較して一致するか否かを判断することによって、前記一のオペレーティングシステムで前記次に実行される命令が前記特定の命令群に属する命令であるか否かの判定を、切り替えられた前記他のオペレーティングシステムにおいておこなう命令群判定手段と、
    記命令群判定手段が特定の命令群に属する命令であると判定をおこなった場合に、切り替えられた前記他のオペレーティングシステムにおいて代替え処理をおこなう代替え処理手段と、
    を備えたことを特徴とするオペレーティングシステム制御装置。
JP2003083906A 2003-03-25 2003-03-25 オペレーティングシステム制御方法、およびその方法をコンピュータに実行させるプログラム、ならびにオペレーティングシステム制御装置 Expired - Fee Related JP3898663B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003083906A JP3898663B2 (ja) 2003-03-25 2003-03-25 オペレーティングシステム制御方法、およびその方法をコンピュータに実行させるプログラム、ならびにオペレーティングシステム制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003083906A JP3898663B2 (ja) 2003-03-25 2003-03-25 オペレーティングシステム制御方法、およびその方法をコンピュータに実行させるプログラム、ならびにオペレーティングシステム制御装置

Publications (2)

Publication Number Publication Date
JP2004295261A JP2004295261A (ja) 2004-10-21
JP3898663B2 true JP3898663B2 (ja) 2007-03-28

Family

ID=33399214

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003083906A Expired - Fee Related JP3898663B2 (ja) 2003-03-25 2003-03-25 オペレーティングシステム制御方法、およびその方法をコンピュータに実行させるプログラム、ならびにオペレーティングシステム制御装置

Country Status (1)

Country Link
JP (1) JP3898663B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4678396B2 (ja) * 2007-09-25 2011-04-27 日本電気株式会社 仮想マシンモニタをモニタするコンピュータとその方法、および仮想マシンモニタモニタプログラム

Also Published As

Publication number Publication date
JP2004295261A (ja) 2004-10-21

Similar Documents

Publication Publication Date Title
RU2265880C2 (ru) Новый режим процессора для ограничения функционирования гостевого программного обеспечения, выполняющегося на виртуальной машине, поддерживаемой монитором виртуальной машины
US7937700B1 (en) System, processor, and method for incremental state save/restore on world switch in a virtual machine environment
JP4519738B2 (ja) メモリアクセス制御装置
EP3317999B1 (en) Loading and virtualizing cryptographic keys
Case et al. Architecture of the IBM System/370
TWI509453B (zh) 非法模式改變處置
US4347565A (en) Address control system for software simulation
JP3546678B2 (ja) マルチos構成方法
KR20130036189A (ko) 하드웨어 모드와 보안 플래그에 의존하여 판독된 명령어에 대한 메모리 영역의 제한
US7529916B2 (en) Data processing apparatus and method for controlling access to registers
WO2022078375A1 (zh) 一种芯片系统、处理虚拟中断的方法及相应装置
CN1628284B (zh) 用于处理安全异常的方法与系统
CA1202425A (en) Multiprocessor system including firmware
JP3898663B2 (ja) オペレーティングシステム制御方法、およびその方法をコンピュータに実行させるプログラム、ならびにオペレーティングシステム制御装置
JP2523653B2 (ja) 仮想計算機システム
WO2019237862A1 (zh) 一种线性地址空间的布局方法及计算装置
CN111752604A (zh) 一种具有多个运行模式的处理器
JPS599937B2 (ja) 情報処理装置
EP1901171A1 (en) Apparatus and method for handling interrupt disabled section and page pinning apparatus and method
JP2001175486A (ja) 計算機システム
JP3585510B2 (ja) プログラム実行管理装置及びプログラム実行管理方法
JP2008140124A (ja) データ処理装置
JP2010198398A (ja) 計算機装置および制御方法
JP2004287618A (ja) オペレーティングシステム起動制御方法、およびその方法をコンピュータに実行させるプログラム、ならびにオペレーティングシステム起動制御装置
CN112380529B (zh) 一种基于操作的嵌入式裸机系统安全隔离系统

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20051028

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060105

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060306

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060926

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061124

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20061219

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20061221

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110105

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110105

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120105

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120105

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130105

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130105

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140105

Year of fee payment: 7

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees