(57)【特許請求の範囲】
【請求項１】
上位領域及び下位領域を有するアドレス空間、及び前記アドレス空間にアクセスするための複数のアドレスラインを有し、前記複数のアドレスラインの各々は、第一と第二の状態を有し、且つあらかじめ決められたアドレスラインは、コンピュータのオペレーティングシステムの一部分にアクセスするために前記第一の状態になければならないコンピュータシステムにおいて、アプリケーションプログラムを前記コンピュータのオペレーティングシステムにインタフェースするための方法であって、
前記方法は、
（ａ）前記オペレーティングシステムの一部分が前記アドレス空間の上位領域に蓄積され、
（ｂ）オペレーティングシステム・スタブが前記アドレス空間の下位領域に蓄積され、
（ｃ）アプリケーションプログラムからの、前記オペレーティングシステムへの呼び出しが前記オペレーティングシステム・スタブへ向けられ、且つ、
（ｄ）前記オペレーティングシステム・スタブへ向けられた呼び出しの各々に対して、
（ｄ１）前記あらかじめ決められたアドレスラインが前記第一の状態にあるか否かが判断され、もし、第一の状態にないならば、前記あらかじめ決められたアドレスラインは前記第一の状態に置き換えられ、
（ｄ２）前記あらかじめ決められたアドレスラインが前記第一の状態に置き換えられた後、前記上位領域に蓄積された前記オペレーティングシステムの一部分へ前記呼び出しが転送され、且つ、
（ｄ３）前記オペレーティングシステムの一部分への各呼び出しが完了した後、あらかじめ決められた数より多い呼び出しが前記アプリケーションプログラムによって前記オペレーティングシステムに対して行われたか否かが判断され、もし、そうであれば、前記あらかじめ決められたアドレスラインは前記第一の状態のままにされ、もし、そうでなければ、前記あらかじめ決められたアドレスラインは前記第二の状態に置き換えられる、
コンピュータにより実行されるステップを有することを特徴とする方法。
【請求項２】
下位メモリーと上位メモリーを有し、前記上位メモリーは、アドレスラインを第一の状態に設定することによってアクセス可能であり、オペレーティングシステム機能が前記上位メモリーに蓄積され、且つ前記アドレスラインが第二の状態にあることが前記アプリケーションプログラムによって予期されるコンピュータシステムにおいて、前記アプリケーションプログラムによってオペレーティングシステムのオペレーティングシステム機能を呼び出すための方法であって、
前記方法は、
オペレーティングシステム・スタブが前記下位メモリーに蓄積され、
前記アプリケーションプログラムからの、前記オペレーティングシステム機能の呼び出しが前記オペレーティングシステム・スタブへ向けられ、且つ
前記オペレーティングシステム・スタブの制御の下で、前記アドレスラインが前記第一の状態にあることが確実にされ、前記オペレーティングシステム機能が呼び出され、且つ、前記オペレーティングシステム機能が完了すると、実行の初期の段階においてあらかじめ決められた数より少ない呼び出しが前記アプリケーションプログラムによりオペレーティングシステムに対して行なわれたとき、前記アドレスラインが前記第二の状態に設定される、
コンピュータにより実行されるステップを有することを特徴とする方法。
【請求項３】
コンピュータプログラムの正しい動作を確実にするためのコンピュータシステムにおける装置であって、
前記プログラムは、初期の動作段階にあり、前記装置は、
イネーブルされた状態及びディスエーブルされた状態を有するあらかじめ決められたアドレスラインと、
上位メモリー領域と下位メモリー領域を有するメモリーであって、前記上位メモリー領域は、あらかじめ決められたアドレスラインがイネーブルされた状態にあるときのみアドレス可能であるメモリーと、
を備え、
前記上位メモリー領域にオペレーティングシステム要素が蓄積され、
前記下位メモリー領域にオペレーティングシステム・スタブが蓄積され、前記プログラムからの、オペレーティングシステムへの呼び出しが前記オペレーティングシステム・スタブによって受取られ、前記受取られたオペレーティングシステムへの呼び出しが前記オペレーティングシステム要素へ向けられる前に、前記あらかじめ決められたアドレスラインが前記イネーブル状態にあることが確実にされ、さらに、前記プログラムが初期の動作段階にあるか否かが前記オペレーティングシステム・スタブによって判断され、且つ、前記プログラムが前記初期の動作段階にあるとき、前記あらかじめ決められたアドレスラインがディスエーブル状態に置き換えられることを特徴とする装置。
【請求項４】
あらかじめ決められた数より少ない呼び出しが前記プログラムから前記オペレーティングシステム要素に対して行われたか否かが前記オペレーティングシステム・スタブによって判断されることにより、前記プログラムが初期の動作段階にあるか否かが判断されることを特徴とする請求項３に記載の装置。
【請求項５】
オペレーティングシステム・モジュールを含む上位メモリー領域とアプリケーション・モジュールを含む下位メモリー領域を有し、第一の状態と第二の状態を有するインジケータを有し、前記インジケータが前記第二の状態にあるときのみ前記オペレーティンスシステム・モジュールへアクセスすることが可能なコンピュータシステムにおいて、前記オペレーティングシステム・モジュールへアクセスすることが前記アプリケーション・モジュールによって可能にされるための方法であって、
前記方法は、
前記アプリケーション・モジュールから前記オペレーティンスシステム・モジュールへコンピュータの制御を移す前に、前記インジケータが第二の状態にあることが確実にされ、
前記アプリケーション・モジュールから前記オペレーティンスシステム・モジュールへ移されるコンピュータの制御の回数が数えられ、
数えられた回数があらかじめ決められた値より少ないとき、前記インジケータが第一の状態にあることが確実にされる、
コンピュータにより実行されるステップを有することを特徴とする方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明はコンピュータのオペレーティングシステムに応用プログラム（アプリケーションプログラム）とのインタフェースを持たせる方法を対象にするものであり、更に詳述すれば、コンピュータのオペレーティングシステムがコンピュータメモリーの上位メモリー領域に蓄積されているところのコンピュータのオペレーティングシステムにインタフェースさせる方法を対象としている。
【０００２】
多くのパーソナルコンピュータは応用プログラムにコンピュータとのインタフェースを持たせるためのオペレーティングシステムを有している。パーソナルコンピュータはまたコンピュータメモリーと称されるコンピュータのメモリーの番地を指定するのに十分な数のアドレスラインを持つマイクロプロセッサーを含んでいる。このアドレスラインはパーソナルコンピュータのメモリーのアドレス空間を規定し、ここでそのアドレス空間は上位領域と下位領域を持っている。
【０００３】
一般に、パーソナルコンピュータのオペレーティングシステムはコンピュータのアドレス空間の使用可能な最下位の領域に蓄積される。この理由のために、オペレーティングシステムがアクセスされる時、コンピュータのアドレスラインのある部分は通常論理零に設定される。特に、アドレスライン２０（Ａ２０）は、オペレーティングシステムがパーソナルコンピュータのアドレス空間の使用可能な最下位の領域に蓄積されている時は、通常論理零に設定される。逆に、オペレーティングシステムがコンピュータのアドレス空間の上位領域、即ち上位メモリー領域に蓄積されている場合は、オペレーティングシステムがアクセスされた時はアドレスライン２０は論理１に設定しなければならない。
【０００４】
ここで、上位領域および下位領域の用語は、それぞれアドレスライン２０がエンエーブルあるいはディスエーブルされた時にアドレス可能になるコンピュータメモリーの部分を区別するために使用される。一般に、コンピュータメモリーの下位領域は常にアクセス可能であり、そしてコンピュータメモリーの上位領域はプログラム制御の下でアクセス可能にすることができる。
【０００５】
ある種の応用プログラムはそれらの初期の実行段階では、アドレスライン２０が零に設定されている必要がある。しかしながら、もしオペレーティングシステムがコンピュータのアドレス空間の上位領域に蓄積されていると、オペレーティングシステムがアクセスできるようにアドレスライン２０は論理１に設定されなければならない。この理由のために、実行時にアドレスライン２０が論理零に設定されていなければならない応用プログラムはオペレーティングシステムがコンピュータのアドレス空間の上位領域に蓄積されている時は正しく動作できない。従って、オペレーティングシステムがコンピュータのアドレス空間の上位領域に蓄積されている時、固定蓄積装置からコンピュータメモリーに応用プログラムを格納する方法を備えることが望ましい。
【０００６】
更に、応用プログラムのコンピュータのメモリーへの格納を完了し、コンピュータがそのプログラムの実行を開始した後は、オペレーティングシステムへの全ての呼び出しはアドレスライン２０を論理１に設定して行わなければならない。しかしながら、ある種の応用プログラムはそれらの実行の初期の段階でアドレスライン２０が論理１に設定されていると、正しく動作しないので、少なくともこの時点の前にアドレスライン２０を論理零に設定しておく必要がある。更に、応用プログラムが実行中にアドレスライン２０の状態を変更するのは時間がかかり、その応用プログラムの処理に必要な全体の時間を増加させる。この理由のために、オペレーティングシステムへの正しいアクセスを可能にするために、可能な限り、アドレスライン２０を論理１に設定しておくことが望ましい。従って、コンピュータのオペレーティングシステムがコンピュータのアドレス空間の上位領域に蓄積されている時に、固定蓄積媒体からコンピュータのメモリーへ応用プログラムを格納する方法を備えることが望ましく、そしてこの方法はまた応用プログラムが実行中可能な限り長い時間アドレスライン２０を論理１に設定しておくことが可能になる。
【０００７】
【発明の課題及び課題を解決するための手段】
本発明は、応用プログラムにコンピュータのオペレーティングシステムとのインタフェースを持たせる方法である。コンピュータはコンピュータのアドレス空間をアクセスするための複数のアドレスラインを含んでおり、ここで複数のアドレスラインは、コンピュータのアドレス空間の上位領域とコンピュータアドレス空間の下位領域を指定する。コンピュータのあらかじめ決められたアドレスラインは最初アドレス空間の上位領域をアクセスする状態に設定されなければならない。この方法は、コンピュータのオペレーティングシステムをコンピュータのアドレス空間の上位領域に蓄積するステップを含んでいる。この方法はまたオペレーティングシステムへの各呼び出しに先だってあらかじめ決めたアドレスラインが第一の状態にあるかどうかを判断し、もし、第一の状態でないならば、あらかじめ決められたアドレスラインを第一の状態に設定するステップを含んでいる。この方法は、更に、応用プログラムが実行中に、オペレーティングシステムへあらかじめ決められた回数以上の呼び出しが行われたかどうかを判断し、もし、決められた回数以上であると、オペレーティングシステムへの次の呼び出しが完了した後あらかじめ決められたアドレスラインを第一の状態のままとし、もし、決められた回数以上でなければ、オペレーティングシステムへの呼び出しが完了した後あらかじめ決められたアドレスラインを第二の状態に戻すステップを含んでいる。
【０００８】
【発明の実施の形態】
本発明は応用プログラムにパーソナルコンピュータとのインタフェースを持たせる方法である。図２は、本発明の主題である方法を実施するパーソナルコンピュータを示す。図１は、本方法を示す決定流れ図である。当業者には知られている如く、パーソナルコンピュータは一般に応用プログラム（アプリケーションプログラム）２０２にパーソナルコンピュータとのインタフェースを持たせるオペレーティングシステム２００を含んでいる。またパーソナルコンピュータは通常オペレーティングシステムを蓄積するためと、パーソナルコンピュータにより実行される応用プログラムを蓄積するためのメモリー装置２０４を含んでいる。パーソナルコンピュータは更にマイクロプロセッサ、あるいは他のデータ処理装置を含んでおり、それらはパーソナルコンピュータのアドレス空間２１０をアクセスするために十分な数のアドレスラインを持っている。マイクロプロセッサ２０６のアドレスラインは、パーソナルコンピュータのアドレス空間の上位領域２１２とパーソナルコンピュータのアドレス空間の下位領域２１４を指定する。
【０００９】
先に説明したように、上位領域２１２および下位領域２１４の用語はここではそれぞれあらかじめ決められたアドレスラインをイネーブルおよびディスエーブルすることで番地指定が可能なコンピュータメモリーのそれらの部分を区別するために使用される。一般に、コンピュータメモリーの下位領域２１４は常にアクセス可能であり、そしてコンピュータメモリーの上位領域２１２はプログラム制御の下でアクセス可能とすることができる。
【００１０】
本発明の好ましい実施の形態では、パーソナルコンピュータのオペレーティングシステム２００はパーソナルコンピュータのアドレス空間２１０の上位領域に蓄積される。このように、マイクロプロセッサのアドレスライン２０８のあらかじめ決められたものはオペレーティングシステム２００にアクセスするためにあらかじめ決められた状態になければならない。特に、しばしばＡ２０（図２参照）と呼ばれるアドレスライン２０はパーソナルコンピュータのアドレス空間２１０の上位領域をアクセスするためには論理１に設定しなければならない。
【００１１】
しかしながら、ある種の応用プログラムはある時間中は、アドレスライン２０が論理１に設定されていると正しく動作しない。一例として、ある種の応用プログラム２０２はそれらの実行の初期の段階でアドレスライン２０が論理１に設定されていると正しく実行されないであろう。従って、対象とするパーソナルコンピュータのオペレーティングシステム２００がアクセスされている時はアドレスライン２０を論理１に設定し、そして応用プログラム２０２の正しい動作のために必要な時はアドレスライン２０を論理零に設定するのが望ましい。
【００１２】
アドレスライン２０の切り替えを行うために、対象とするコンピュータはスタブ２１６、即ちオペレーティングシステムの一部分をコンピュータのアドレス空間２１０の下位領域に蓄積する。応用プログラム２０２からオペレーティングシステム２００への全ての呼び出しはスタッブ２１６に向けられ、次にスタブはその呼び出しをオペレーティングシステムに向けさせる。更に、オペレーティングシステム２００がその呼び出しの処理を完了した後、オペレーティングシステムはコンピュータの制御を、制御が応用プログラム２０２に戻される前に、スタブに戻す。
【００１３】
本発明によるコンピュータのオペレーティングシステム、スタブ、および応用プログラムが相互に作用するこの方法の一例が図１の決定流れ図に示される。ここで、応用プログラムからオペレーティングシステムへの呼び出しはスタブにより受け付けられる（ステップ１００）。スタブはアドレスライン２０が設定されているかどうかを判断し（ステップ１０２）、そして、もし、設定されていないならば、アドレスライン２０を設定し（ステップ１０４）、その後その呼び出しをオペレーティングシステムに転送する（ステップ１０６）。この方法では、オペレーティングシステムへの各アクセスに先だって、スタブはアドレスライン２０が設定されていることを確認する。
【００１４】
上述した、アドレスライン２０の設定および再設定は時間がかかり、応用プログラムの処理を完了させる必要な全体の時間を増大させることは、当業者は理解できるであろう。応用プログラムの正しい動作のために必要な時はアドレスライン２０が設定されていることを保証しながら、アドレスライン２０の切り替えの時間負荷を最小にするため、また応用プログラムが誤動作する危険なしにアドレスライン２０を設定する安全な時点を、スタブは判別しなければならない。本発明の好ましい実施の形態では、この判別はオペレーティングシステムへの呼び出しの処理が完了した後でスタブにより行われる（ステップ１０６）。
【００１５】
呼び出しが完了した時に、スタブはオペレーティングシステムがあらかじめ決められた回数以上に呼び出されたかどうかを判断し（ステップ１０８）、もし、決められた回数以上でなかったら、アドレスライン２０を復旧させる（ステップ１１０）、その後コンピュータの制御を応用プログラムに戻す（ステップ１１２）。しかしながら、もし、オペレーティングシステムがあらかじめ決められた回数以上に呼び出されていたら、スタブはその場合アドレスライン２０を設定したままで、応用プログラムに制御を戻す。
【００１６】
アドレスライン２０を設定したままにしておくのが安全な時点を判別する上記の方法は、有効に且つ効率よく実行される。しかしながら、アドレスライン２０を設定したままにしておくのが安全な時間帯を判別する他の方法も本発明の正しい範囲と真意から離れることなく、上記の方法に置換できることは、当業者は理解するであう。更に、あらかじめ決められたアドレスラインを設定したままにしておくシステム呼び出しの回数はプログラム毎に変更可能であり、またオペレーティングシステム毎に変更可能である。この情報はプログラムと組み合わせることができる。
【００１７】
また、本発明は単一のアドレスラインを参照してこれまで説明されてきたが、複数のアドレスラインも上に述べた方法で切り替えることができることは当業者には明らかであろう。
ここでは本発明の幾つかの現在好ましい実施例のみを詳細に説明したが、本発明の正しい範囲と真意から離れることなく多くの修正と変形が提供できることは当業者には明らかであろう。従って本発明は本出願に付加されている特許請求の範囲の項目以外では制限されるものではない。また、この分野の当業者は、アドレスラインのイネーブル及びディスエーブルがスタッブに代えてアプリケーションプログラムによって行われることを理解するであろう。
【図面の簡単な説明】
【図１】本発明の主題である方法を図示する決定流れ図である。
【図２】本発明の主題である方法を実施するパーソナルコンピュータを示す。
【図１】
0003616649.tif 000002
【図２】
0003616649.tif 000003