JP2001507835A - 過去に互換性のあるオペレーティングシステムのリアルタイムサービス - Google Patents

過去に互換性のあるオペレーティングシステムのリアルタイムサービス

Info

Publication number
JP2001507835A
JP2001507835A JP53022798A JP53022798A JP2001507835A JP 2001507835 A JP2001507835 A JP 2001507835A JP 53022798 A JP53022798 A JP 53022798A JP 53022798 A JP53022798 A JP 53022798A JP 2001507835 A JP2001507835 A JP 2001507835A
Authority
JP
Japan
Prior art keywords
operating system
computer
virtual
virtual machine
scheduling
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
JP53022798A
Other languages
English (en)
Inventor
ターキーニ,リチャード
Original Assignee
シーラス ロジック,インコーポレイテッド
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 シーラス ロジック,インコーポレイテッド filed Critical シーラス ロジック,インコーポレイテッド
Publication of JP2001507835A publication Critical patent/JP2001507835A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45537Provision of facilities of other operating environments, e.g. WINE

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】 Windows 95等のモダンオペレーティングシステム上でDOSアプリケーション等の以前のアプリケーションを実行する際のCPUホッギングに関連する問題が、様々なプロセスおよびデバイスによる保証されたCPUアクセスに対する要求を管理するための仮想デバイスドライバVxDを作ることによって克服される。仮想デバイスドライバは、仮想マシンマネージャのサービスを利用し、それによって、プロセスおよびデバイスを要求することによりCPUアクセスが保証される。

Description

【発明の詳細な説明】 過去に互換性のあるオペレーティングシステムのリアルタイムサービス 発明の分野 本発明は、マルチタスキングコンピュータシステムおよび方法に関し、特に、 DOSアプリケーションの実行を可能とする過去(backwardly)に互換性のある オペレーティングシステムによってサービスされるリアルタイムアプリケーショ ンに対する十分なCPUリソースを確保するための技術に関する。 発明の背景 新しく設計されたマイクロプロセッサは、拡大したメモリアドレッシング機構 と、向上した能力を生みだす改訂されたアーキテクチャとを備え得る。このよう なマイクロプロセッサが新しいコンピュータシステムで使用される場合には、そ れらのマイクロプロセッサにより、その向上した能力のために、前にあったもの より機能的に優れたコンピュータがしばしば生み出される。新しいコンピュータ が、その前にあったものに対して持ち得る任意の機能的な利点にもかかわらず、 改良されたマイクロプロセッサを用いたコンピュータは、商業的に成功しないか もしれない。「ソフトウェア」と時に呼ばれるコンピュータプログラムは、マイ クロプロセッサに対して特定的である。従って、新しいマイクロプロセッサを用 いたコンピュータが市場に紹介されると、通常、その上で実行できるソフトウェ アはほとんど、または全く存在しない。以前のマイクロプロセッサ用に書かれた 現存のソフトウェアは、新しいコンピュータに対して互換性がない可能性が高い 。その結果、このような新しいコンピュータの売上げは、そのコンピュータに対 して十分なソフトウェアが利用可能であることを消費者がわかるまでは不振であ ることが多い。さらに、現存のコンピュータ用のソフトウェアライブラリを持つ 消費者は、全て新しいソフトウェアに投資することを必要とする新しいコンピュ ータを購入することを嫌がるかもしれない。この問題は、ソフトウェアのライタ および販売者が、マイクロプロセッサを組み込んだコンピュータの売上げが、ソ フ トウェアの比較的大きな潜在的購入者のグループを生じさせるのに十分となるま で、その新しいマイクロプロセッサ用のソフトウェアを作成することを嫌がると いう事実としばしば組み合わせられる。消費者およびソフトウェアライタの両方 の側の「成り行きを見守る」姿勢により、新しいマイクロプロセッサおよびその マイクロプロセッサを使用したコンピュータの成功が危うくなり得る。 新しいマイクロプロセッサの設計者は、時に、複数のモードで動作するように 新しいマイクロプロセッサを設計することによってこの問題を解決しようとする 。例えば、第1のモードでは、マイクロプロセッサは先行のマイクロプロセッサ をエミュレートし、先行のマイクロプロセッサ用に書かれた現存のプログラムを 実行する。第2のモードでは、マイクロプロセッサは、その向上した能力をフル に活用する。このような設計により、そのマイクロプロセッサを用いたコンピュ ータシステムのメーカーが、そのコンピュータ上で先行のマイクロプロセッサ用 に書かれた現存のプログラムの全てが実行されることを宣伝でき、その結果(理 論上は)、ソフトウェアライタが、その新しい向上したモードで実行されるよう に設計されたプログラムを書き始める時点にまでコンピュータの売上げを刺激す ることができる。 そのようなマイクロプロセッサの1つに、カリフォルニアのサンタクララにあ るIntel Corporationが製造したインテル80286がある。インテル8028 6の設計および動作は、Intel Corporationから入手可能で、本明細書中に参考 として援用される、「iAPX286 Programmer's Reference Manual Including the iAPX286 Numeric Supplement」というタイトルの刊行物に詳細に記載されている 。 インテル80286(以下「80286」)は、2つのモードで動作する。「 リアルモード」と呼ばれる第1のモードでは、80286が、例えばIBMのP Cおよび互換性コンピュータに使用される、8088マイクロプロセッサ系のイ ンテルの以前の8086のアーキテクチャをエミュレートする。従って、802 86マイクロプロセッサを組み込んだコンピュータ(IBMのPC/AT等)が 、IBMのPCおよび互換性コンピュータ用に書かれた現存の8086プログラ ムを実行できる。 「保護モード」と呼ばれる第2のモードでは、80286アーキテクチャは、 拡大したメモリアドレッシング能力、向上したマルチタスキング支援機能、およ び精巧な保護機構を提供する。 このようなマイクロプロセッサの別のものには、インテル80386がある。 インテル80386の設計および動作は、Intel Corporationから入手可能で、 本明細書中に参考として援用される、「iAPX386 Programmer's Reference Manua l Including the iAPX386 Numeric Supplement」というタイトルの刊行物に詳細 に記載されている。 80286に関して上に記載したようなリアルモードおよび保護モードに加え て、80386は、仮想−8086モードと呼ばれる第3のモードを有する。仮 想8086においては、80386は、リアルモードに類似の様式で8086プ ロセッサをエミュレートする。リアルモードと仮想−8086モードとの違いは 、仮想−8086モードでは、80386が、メモリ管理、保護およびマルチタ スキング支援を提供することである。仮想−8086モードにより、8086プ ログラムを80386上のタスクの1つとして実行することが可能となる。仮想 −8086モードの各タスクは、8086上で実行しているという錯覚を持つ。 特別なオペレーティングシステムソフトウェアである、仮想マシンモニタ(V MM)は、幾つかの8086プログラムのマルチタスキングを調整する。VMM は、保護モードで実行する。別のタスクが開始され得るように1つのタスクから VMMに制御を移すための2つの標準的技術が存在する。第1に、8086プロ グラムによって実行される全ての割込み、ソフトウェアおよびハードウェアによ って制御がVMMに移されるように、VMMが80386に対してコンフィギュ レーションする。第2に、VMMがタイマ割込みを設定する。指定の間隔後に割 込まれた際に、VMMが制御を受け取る。 これらの技術は、ディスクオペレーティングシステム(DOS)の下で実行さ れるように設計された8086プログラムからの移行を支援するために用いられ 得る。ワシントン州のレドモンドにあるMicrosoft Corporationが提供するMS −DOSバージョン3.X等の典型的なパーソナルコンピュータDOSは、シン グルスレッドオペレーティングシステムである。すなわち、DOSがマルチタス キング環境を支援するように設計されていない。DOSがマルチタスキング環境 で実行されると、DOSが割込まれる際に問題が生じ得る。DOSがインターバ ルタイマの実行の間などの、機能を実行する間に無作為に割込まれると、別のタ スクへの移行により、DOSデータ構造の崩壊が生じ得る。従って、VMMによ り、別のタスクが開始される前にDOSが機能を完了することが可能になる。D OSシステム呼出しから出る際に、DOSデータ構造は適切な状態にある。 残念なことに、タスクを移す前に全ての機能呼出しが完了することを可能とす るVMMにより、システム性能は不十分なものとなる。DOSの幾つかのシステ ム呼出しは、完了するのに不定量の時間がかかり得る。例えば、キーボートから 1つの文字を取り出すための呼出しは、キーが実際に入力されるまでは完了しな い。同様に、プログラムが通信ポートから読み出すためのシステム呼出しを発す る場合、ある文字が実際に受け取られるまでは、そのシステム呼出しが完了しな い。DOSはコードの一部をループスルーし(loop through)、その文字が受け 取られたかどうかを見るためにポートをチェックする。従って、この不定の期間 は他のタスクをスケジュールすることができない。 データ構造が崩壊不可能である状態にDOSがあったかどうかがVMMにはわ からないので、不定期間のシステム呼出しのタイマ割込みは不十分である。 米国特許第4,974,159号(Hargroveら、1990年11月27日に発行)は、 制御を仮想マシンマネージャ(VMM)へ移すことに失敗するDOSルーチンの 問題に対して、制御が仮想マシンマネージャに定期的に移され、それによってシ ステムがDOSアプリケーションによってロックアップしないことを確実にする ために、仮想マシンブレークポイント命令を実行可能コードに書くことによって 取り組んでいる。Hargroveのアプローチでは、DOSデータ構造を崩壊させるこ となくタスク切換えが生じ得るプログラム実行の特定の点が検出される。これら の点の幾つかが、仮想マシンブレークポイントの挿入のために選択される。実行 の際にブレークポイントに到達すると、仮想マシンマネージャが、DOSデータ 構造を崩壊させることなく自由に別のタスクを開始する、または他の機能を行う 。Hargroveによる、仮想マシンブレークポイントの挿入に使用されたブレークポ イントの位置は、キーボード呼出しを読み出すための呼出し等の、不定期間のD OSシステム呼出し中に位置する。キーが押されなければ、キーが押されるまで ア プリケーションは一時停止する。Hargroveは、仮想マシンブレークポイントを任 意の他の種の位置に配置する例を提供していない。 Hargroveの技術の実現は、選択されたルーチンのコピーが別に保存され、それ によって実行可能コードにおいて1バイトの仮想マシンブレークポイント命令に よって上書きされるコードの部分が修復されることを必要とする。これは複雑で 、不必要なプロセスステップおよびストレージを必要とする。 Windows95オペレーティングシステムは、仮想マシン環境で実行され るDOSアプリケーションによってCPUホッギングを受ける上記のタイプのオ ペレーティングシステムである。 インテルアーキテクチャ信号処理オペレーティングシステム(Intel Architect ure Signal Processing Operating System)(IASPOX)により、ネイティ ブ信号処理(NSP)の概念が紹介され、このシステムは、IntelおよびS pectron Microsystemsにより開発された。 IASPOXオペレーティングシステムは、それと共に、システムメモリとC PUの使用法および利用とに関して著しいオーバーヘッドをもたらす。IASP OXを購入し、それをホストコンピュータに別個にインストールしなければなら ない。IASPOXは、PCのタスクのスケジューリングを引き受け、IASP OXアプリケーションがアイドル状態にある場合にのみウィンドウズアプリケー ション/ドライバを実行する。IASPOXは、リアルタイムクロックを、約9 00マイクロ秒の細分に再プログラムし、それによって、IASPOXタスクが 全く実行されていない場合でも著しい割込み(保護モードにおいて486/66 Mhzで1つの割込みにつき15マイクロ秒の)オーバーヘッドが引き起こされ る。1秒につき1,000の割込みまたは1ミリ秒毎に1回に端数を切り捨てる と、割込み待ち時間のみで、いかなるコードも実行することなくCPUの1.5 %を消費する。 現在IASPOXは、VxDのプログラミングモデルに従わず、Window s95のカーネルを徐々に害するので、Microsoftによって支持されて いない。現在のIASPOXコードの約80%がすでにWindows95内に あり、冗長インタフェースおよび不必要なメモリ消費につながっている。また、 新しいカーネルおよび関連するプリミティブと、ツールと、開発環境(15MB のディスクスペース)とにプログラマが頼ることを必要とする。 さらに、IASPOXは、その下でのタスクとして動作しているWindow s95と共にスーパーオペレーティングシステムとして明らかに実行している。 このように、IASPOXは、Windows95の状態に関係なくプロセッサ へのアクセスに対する制御を維持する。 発明の要旨 本発明によれば、リアルタイムアプリケーションが、同時に実行中のDOSア プリケーションを含むあらゆるアプリケーションの状態とは無関係にCPUアク セスを保証し得る。本発明によれば、仮想マシンマネージャによって提供される ネスト(nest)された実行/優先イベント機構が、そのアクセスを提供するため に利用される。本発明は、リアルタイムサービスまたはRTSと呼ばれるプロセ スとして実現される。RTSは、どのアプリケーションまたは仮想マシンが実行 されているかとは無関係に、実行される優先コールバック機能をスケジュールす る仮想デバイスドライバ(VxD)として実現される。 本発明は、オペレーティングシステムおよび少なくとも1つのプロセスまたは デバイスと相互作用し、それによってコンピュータ上で実行されているどのよう なアプリケーションの状態とも無関係にCPVアクセスが確保されるスケジュー リングプロセスを実行することによって、コンピュータにおける反復プロセスを スケジュールするための方法および装置に関する。 本発明のさらに他の目的および利点は、本発明の実施を意図する最良の形態の 例示を単に目的として、本発明の好適な実施形態のみが示され、説明される以下 の詳細な説明から当業者には容易に明らかとなるであろう。理解されるように、 本発明は、他の異なる実施形態も可能であり、その幾つかの細部を、全て本発明 から逸脱することなく種々の明白な点で改変することが可能である。従って、図 面および説明は、限定的なものではなく、事実上例示的なものとして考えられる ものである。図面の簡単な説明 図1は、本発明を行うのに有用な従来技術のオペレーティングシステム例を表 す。 図2は、図1に示されるオペレーティングシステムのためのデバイスドライバ 例の構成要素のブロック図である。 図3は、リアルタイムサービス(RTS)が、本発明の仮想デバイスドライバ としてどのように実現されるかを示すブロック図である。 図4は、モデム機能からの十分なCPUアクセスを確保するための本発明のリ アルタイムサービスを使用したホストベースのモデムのブロック図である。 図5は、RTSと、仮想マシンマネージャおよびタイミングデバイスのための 仮想デバイスドライバ(VTD)に支援されるモデムVxDおよびオペレーティ ングシステムサービスとの間のプロセス間通信を示すタイミング図である。 図6は、モデムのバックグラウンド機能を作動させるために定期的に使用され るプロセス間通信のタイミング図である。 図7は、モデムのハートビート(heartbeat)として機能するように用いられ るプロセス間通信のタイミング図である。 図8は、他のプロセスを妨害しない時にアプリケーションが移行を開始するこ とを許可するために使用されるプロセス間通信のタイミング図である。 好適な実施形態の詳細な説明 図1は、本発明を実施するために有用な従来技術のオペレーティングシステム 例の図示である。 アプリケーションレイヤー100は、32ビットアプリケーションと同様に、 16ビットアプリケーション、およびDOSアプリケーションを含む様々なアプ リケーションを含む。シェル110は、オペレーティングシステムコア機能に対 するインタフェースとして働く。シェルは、複数のユーザインタフェースツール も含む。コアは、3つのコメントである、ユーザ領域、カーネル領域、およびグ ラフィカルデバイスインタフェースから構成される。 ユーザ構成要素は、キーボード、マウス、および他の入力デバイスからの入力 と、ユーザインタフェース(ウィンドウ、アイコン、メニュー等)に対する出力 を管理する。ユーザ構成要素はまた、音声ドライバ、タイマ、および通信ポート とのインタラクションを管理する。 図1に示されるオペレーティングシステム(好ましくは、Windows95 )は、システムおよびアプリケーションに対する全ての入力に関して非同期入力 モデルを使用する。様々な入力デバイスが割込みを生成するので、割込みハンド ラが、これらの割込みをメッセージに変換し、メッセージを未処理の入力スレッ ド領域に送信し、未処理の入力スレッド領域は、次に、各メッセージを適切なメ ッセージキューに渡す。32ビットベースのスレッドの各々は、それ自体のメッ セージキューを有し得、全ての16ビットベースのアプリケーションは、共通の 1つのメッセージキューを共有する。 グラフィカルデバイスインタフェース(GDI)は、画面に現れるものを管理 するグラフィックシステムである。GDIはまた、プリンタおよび他の出力デバ イスに対してグラフィックス支援を提供する。GDIは、グラフィックプリミテ ィブを描画し、ビットマップを操作し、ディスプレイデバイスのためのドライバ およびプリンタ出力デバイスドライバを含むデバイス独立グラフィックドライバ と相互作用する。 カーネルは、I/Oサービス、仮想メモリ管理、およびタスクスケジューリン グを含む基礎的なオペレーティングシステム機能性を提供する。 例外取扱いは、カーネルの別のサービスである。カーネルはまた、仮想メモリ を割当て、インポート参照を解決し、アプリケーションに対する要求時ページン グを支援する。カーネルにより、16ビットおよび32ビットのアプリケーショ ンの両方に対するサービスが提供される。 オペレーティングシステムにおける中央情報データベースは、レジストリと呼 ばれる。この階層型データベースは、オペレーティングシステムを単純化し、且 つオペレーティングシステムを、より適応可能にする。 オペレーティングシステムにおけるレジストリの主な役割は、ハードウェア検 出およびプラグアンドプレイシステム構成要素による使用のためにハードウェア 特定的情報に関する中央保管所として機能することである。オペレーティングシ ステムは、レジストリの階層構造における列挙プロセスによって識別されたハー ドウェア構成要素およびデバイスに関する情報を維持する。新しいデバイスがイ ンストールされると、システムは、レジストリにおける現存のコンフィギュレー ションをチェックし、それによって使用されていないハードウェアリソース(例 えば、IRQ、I/Oアドレス、DMAチャネル等)が決定され、その結果、そ の新しいデバイスが、そのシステムにすでにインストールされているデバイスと コンフリクトすることなく適切にコンフィギュレーションされ得る。 ちょうどコンフィギュレーションマネージャがコンピュータ上の各デバイスが 必要とする全てのリソースを提供するように、別の構成要素である仮想マシンマ ネージャは、コンピュータ上で実行中のアプリケーションおよびシステムプロセ スの各々が必要とするリソースを提供する。仮想マシンマネージャは、アプリケ ーションおよびシステムプロセスが実行される仮想マシン環境を生成および維持 する。 仮想マシン(VM)は、アプリケーションの観点からは別個のコンピュータ( コンピュータは、リソースの全てを備えて完全なものとなる)であるかのように 見えるメモリ中の環境である。マシンマネージャは各アプリケーションに対して 、それが必要とするシステムリソースを提供する。 オペレーティングシステムは、システムVMと呼ばれる単一のVMを備え、そ こでは、全てのシステムプロセスが実行される。さらに、32ビットベースおよ び16ビットベースのアプリケーションの全てがこのVMで実行される。MS− DOSベースのアプリケーションの各々は、それ自体のVM内で実行される。 プロセススケジューラは、実行するアプリケーションおよび他のプロセスにシ ステムリソースを提供する、および複数のアプリケーションが同時に実行される ことが可能となるようにプロセスをスケジューリングする責任がある構成要素で ある。 プロセススケジューラはまた、複数のアプリケーションおよび他のプロセスが 同時に実行されることが可能となるようにプロセスのスケジューリングを行う。 オペレーティングシステムは、同時プロセススケジューリングのための2つの方 法、すなわちコーオペレイティブマルチタスキングおよびプリエンプティブマル チタスキングを使用する。 Windows3.1等の以前のオペレーティングシステムにおいては、アプ リケーションが、コーオペレイティブマルチタスキングとして公知の方法によっ て同時に実行される。この方法を用いた場合、オペレーティングシステムは、ア プリケーションがメッセージキューを定期的にチェックし、他の実行中のアプリ ケーションに対してシステムの制御を放棄することを必要とした。メッセージキ ューを頻繁にチェックしなかったアプリケーションは、効果的にCPU時間を「 ホッグ(hog)」し、ユーザが別のアプリケーションに切換えることを防止する 。互換性の理由から、オペレーティングシステムは、16ビットベースのアプリ ケーションをコーオペレイティブにマルチタスキングする。 オペレーティングシステムは、32ビットベースのアプリケーションに対して プリエンプティブマルチタスキングを用いる。これは、オペレーティングシステ ムが、システムの要求に応じて、別の実行中であるタスクから制御を取り上げる 、または別の実行中のタスクに制御を与えることを意味する。 16ビットベースのアプリケーションとは異なり、32ビットベースのアプリ ケーションは、適切にマルチタスキングを行うために、他の実行中のタスクに譲 る必要がない。32ビットベースのアプリケーションは、アプリケーションを同 時に実行する能力を促進するためにオペレーティングシステムが提供する機構で あるマルチスレッディングを利用することができる。システムで実行中の32ビ ットベースのアプリケーションは、オペレーティングシステムの観点からプロセ スと呼ばれる。各プロセスは、オペレーティングシステムによって実行される際 にコードパスフローを識別する実行の少なくとも1つのスレッドからなる。1つ のスレッドは、コードの1つのユニットであり、これは、コードの他のユニット と同時に実行するためにオペレーティングシステムからタイムスライスを得るこ とができ、1つのプロセスに関連していなければならない。しかし、32ビット ベースのアプリケーションは、スループットを向上させる、応答性を高める、お よびバックグラウンド処理を助けることによって、ユーザに対してアプリケーシ ョンを向上させるために、所与のプロセスに対して複数のスレッドを起動するこ とができる。オペレーティングシステムのプリエンプティブマルチタスキングの 性質のため、実行のスレッドにより、コードがバックグラウンドでスムーズに処 理されることが可能となる。 IFSマネージャは、ファイルシステムデバイスおよび他のファイルシステム デバイス構成要素に対するアクセスを調停する。 プラグアンドプレイの機能性を支援するために、オペレーティングシステムア ーキテクチャは、コンフィギュレーションプロセスを調整するコンフイギュレー ションマネージャを含む。このプロセスは、単一のシステムに共存する多くのバ スおよびデバイスアーキテクチャに関与し得、同じバスアーキテクチャを用いた 2つ以上のデバイスタイプを有するが、各デバイスが別のコンフィギュレーショ ン要件セットを有する。(バスは、情報がコンピュータとデバイスとの間で転送 されることを可能とする機構である。)例えば、マウスおよびキーボードは共に 、同じキーボードコントローラバスを使用し得る;CD−ROMドライブおよび ハードディスクドライブは共に、同じSCSIバスを使用し得る。 コンフィギュレーションマネージャは、多数のサブコンポーネントと連動し、 それによって、システムの各バスおよび各デバイスが識別され、各デバイスに対 するコンフィギュレーション設定が識別される。コンフィギュレーションマネー ジャにより、コンピュータ上の各デバイスが、他のデバイスとコンフリクトする ことなく、IRQ,I/Oポートアドレス、および他のリソースを使用し得るこ とが確実となる。 コンフィギュレーションマネージャはまた、存在するデバイスの数およびタイ プの変化についてコンピュータを監視する援助をし、変化が生じた場合に必要に 応じてデバイスの再コンフィギュレーションを管理する。これらのイベントが起 こると、コンフィギュレーションマネージャは、アプリケーションに情報を伝え る。 その役割を果たすために、コンフィギュレーションマネージャは、バス調査器 (bus enumerator)に、それらの特定のバスにある全てのデバイスおよびそれぞ れのリソース要件を識別するように依頼する。 オペレーティングシステムは、ディスクデバイス、ディスプレイアダプタ、マ ウスおよび他のポインティングデバイス、モデム、ファクシミリマシン、および プリンタを含むハードウェアデバイスおよび周辺デバイスに対して向上した支援 を提供する。 Windows3.1等の以前のオペレーティングシステムにおいては、デバ イスドライバは、大半はモノリシックであり、開発が複雑であった。記載されて いるオペレーティングシステムは、ハードウェアベンダが自分達のハードウェア に対してデバイス特定的コードを提供することを容易にするユニバーサルドライ バ/ミニドライバアーキテクチャを使用する。 図2に示されるように、ユニバーサルドライバ(210)は、ある特定のデバ イスクラスのデバイス(プリンタまたはモデム等)にとって、適切なオペレーテ ィングシステム構成要素(印刷または通信サブシステム等)と通信するために必 要なコードの大部分を含む。ミニドライバ(220)は、比較的小型で、ある特 定のデバイスが必要とする任意の追加の命令を含む単純なドライバである。しか し、多くの場合には、ある特定のカテゴリのデバイスに対するユニバーサルドラ イバはまた、そのカテゴリにとって最も一般的な標準型に設計されたデバイスを 動作させるのに必要なコードを含む。(例えば、ユニモデムドライバは、ATコ マンドを支援する全てのモデムで機能する。) 仮想デバイスドライバ(VxD )は、ハードウェアデバイスまたはインストールされたソフトウェア等のシステ ムリソースを管理し、それによって2つ以上のアプリケーションがリソースを同 時に使用可能となる、32ビットの保護モードドライバである。「VxD」は、 一般的な仮想デバイスドライバを意味し、「x」はデバイスドライバのタイプを 表す。例えば、ディスプレイデバイス用の仮想デバイスドライバは、VDDとし て知られ、タイマデバイス用の仮想デバイスドライバはVTDであり、プリンタ デバイス用の仮想デバイスドライバはVPDである、等である。 Windows3.l等の以前のオペレーティングシステムにおいては、Vx Dは、静的にロードされ、多くのメモリ空間をとった。しかし、説明されている オペレーティングシステムは、VxDを動的にロードする。すなわち、任意の所 与の時間に必要とされるもののみがメモリにロードされる。さらに、新しいVx Dは、メモリの全てがページロックされる必要はなく、その結果、システム中の 利用可能なメモリがさらに増加する。 VxDは、ディスクコントローラ、シリアルおよびパラレルポート、キーボー ド、およびディスプレイデバイス等を含む、典型的なコンピュータ用の全てのハ ードウェアデバイスを支援する。ハードウェアデバイスの状態が、複数のアプリ ケーション間で切換えを行うことによって中断させられ得る場合には、デバイス は、各アプリケーションに対して対応する仮想デバイスを持たなければならない 。この仮想デバイスは、アプリケーションが継続する時はいつでもデバイスが正 しい状態にあることを確実にする。 ほとんどの仮想デバイスはハードウェアを管理するが、インストールされたソ フトウェアのみを管理するものもある(MS−DOSデバイスドライバまたはT SRプログラム等)。このような仮想デバイスは、ソフトウェアをエミュレート する、またはソフトウェアが現在実行中のアプリケーションのみに適用されるデ ータを使用することを確実にするためのコードを含む。また、VxDはソフトウ ェアの性能を向上させるためにしばしば使用される。 図3は、リアルタイムサービス(RTS)が、本発明による仮想デバイスドラ イバとしてどのように実現されるかを示すブロック図である。図3に示されるよ うに、リング3レベルでは、システム仮想マシンは、複数の32ビットアプリケ ーションを別個のアドレス空間で実行する。しかし、16ビットのアプリケーシ ョンは、単一のアドレス空間で実行される。さらに、DOSアプリケーションは 、示されるように、別個の仮想マシンとして実行される。仮想マシンマネージャ サブシステムは、リング0で示される。仮想マシンマネージャサブシステムは、 他の機能に加えて、本発明のリアルタイムサービスを含む仮想デバイスドライバ を管理する。仮想デバイスドライバとして実現されているリアルタイムサービス は、必要な時にリアルタイムサービスへのCPUアクセスを確保するために必要 な特定の仮想メモリマネージャサブシステム能力に対するアクセスを持つ。この ことは、以下により詳しく説明される。 図4は、モデム機能に対する十分なCPUアクセスを確保するために本発明の リアルタイムサービスを用いたホストベースのモデムのブロック図である。説明 されているアプリケーションのソフトウェアアーキテクチャは、説明の便宜上、 複数のレイヤーに分割されている。アプリケーションレイヤー400では、32 ビットアプリケーション(ウィンドウズアプリケーション401等)およびDO Sアプリケーション(アプリケーション402等)が、同時に実行中であり得る 。レイヤー410では、仮想マシンマネージャ413がコンフィギュレーション マネージャ412と共に示されている。これらは説明済みである。VCOMMブ ロック411は、ウィンドウズベースのアプリケーションおよびドライバがポー トおよびモデムを使用することを可能とする保護モードサービスを提供する通信 デバイスドライバである。システムリソースを大切にするために、通信ドライバ は、アプリケーションによって使用されている場合のみにメモリにロードされる 。また、VCOMMは、通信デバイスのコンフィギュレーションおよびインスト ールを補助するためにオペレーティングシステムにおいてプラグアンドプレイサ ービスを使用する。リアルタイムサービスブロック414が、レイヤー410お よびレイヤー420内に部分的に示されている。太線480は、オペレーティン グシステムと、この具体的な実施例のホストベースのモデムのためのソフトウェ アとの間の境界を象徴するように設計されている。この境界線は、固定境界を表 すことを意図したものではなく、むしろ、アプリケーションからアプリケーショ ンへ、だいたいのコードがソフトウェアスタックのオペレーティングシステム側 またはモデム側のどちらかで実現され得ることを示すものである。RTSが境界 480を越えるという事実は、RTSがモデムサービスのために仮想マシンマネ ージャ413に対するインタフェースとして機能するという事実を示しているに 過ぎない。 図3に示されるように、16ビットアプリケーションは、単一のアドレス空間 で実行される。それらは、先制的にスケジュールされるのではなく、協調的にス ケジュールされる。単一の別個のアドレス空間で動作しているように示される3 2ビットアプリケーションは、先制的にスケジュールされ、その結果、必要な時 にCPUのアテンションを得る。しかし、16ビットアプリケーションは、メッ セージボートを使ってスケジューリングを行う。従って、16ビットアプリケー ションが、プロセッサを制御している場合には、制御を放棄するためのメッセー ジを通知するまでは、16ビットアプリケーションが制御を維持する。このよう なアプリケーションが非協調的である場合には、アテンションが必要な他のプロ セスの排除に対してCPUをホッグできる。 従来、モデムはマイクロコントローラおよびデータポンプを利用してきた。マ イクロコントローラを排除し、さもなければマイクロコントローラが行うであろ う処理をホストに行わせることが望ましい。しかし、このようなホストベースの モデムは、イベントおよび応答に関する、時には厳格な要件を満たすために、C PUへの保証されたアクセスを必要とする。16ビットアプリケーションが非協 調的となる能力、または他のアプリケーションが他の要求を落としめてCPUへ の専用アクセスを要求する能力により、必要とされる指定の間隔内でのCPUへ のアクセスを保証できなければ、ホストベースのモデムを作製することが不可能 となる可能性が生じる。本発明によれば、VxDアーキテクチャのサービスが利 用され、それによって、他のアプリケーションまたはドライバが実行中であるか もしれないこととは無関係に、モデムがCPU時間のスライスを得ることが可能 となる。 ACUバックグラウンドプロセスまたは機能は、主ルーチンにほぼ類似してお り、複数の従属ルーチンを逐次的に呼出す。マイクロコントローラ環境において は、ACUバックグラウンドループは、継続的に実行され、マイクロコントロー ラによって扱われる。マイクロコントローラの機能性がホストによって扱われて いる場合には、ホストベースのモデム環境において、モデム機能が、例えばどの ようなコネクションまたは文字も落とすことなく確実に起きることを可能とする ために十分なCPUアクセスおよび時間が存在することを確実にする必要がある 。 ウィンドウズインタフェースレイヤー420は、ポートドライバインタフェー ス421、DOSのCOMMポート仮想化(Virtual ization)422、および プラグアンドプレイインタフェース423を含む。これらのモジュールにより、 レイヤー400のアプリケーションが、オペレーティングシステムを介してモデ ムの主コードにアクセスすることが可能となる。ウィンドウズインタフェースレ イヤーの各インタフェースは、ユニバーサル同期受信機送信機(UART)エミ ュレーションモジュール431と通信する。これによっても、インタフェースレ イヤーの各インタフェースモジュールが、以下のコードに対する標準インタフェ ー スを持つことが可能となる。 モジュールレイヤー440は、ファクシミリモジュール441、データモジュ ール442(V.42)、音声モジュール(VCE)(443)、およびDTE モジュール445を含む。モジュール441〜443は、それぞれのタイプのサ ービスに関するデータを扱う。上に言及されたACUは、自動制御ユニットを表 し、モデムをコンフィギュレーションするために機能する。ACUは全ての従属 ルーチンを逐次的に繰り返し呼び出すバックグラウンドプロセスとして動作する 。ある特定のモジュール442が行うべき作業を持つ場合には、ループ中にリス トされた次のモジュールに制御を渡す前にその作業を完了する期間は、バックグ ラウンドプロセスを一時停止する。上記のように、ACUモジュールが十分頻繁 に起動させられない場合には、様々なサービスに関する文字またはコネクション が失われ得る。レイヤー440のDTEモジュール445は、I/Oバッファ情 報の対応するモジュールへの移動を管理する。モジュールI/Oレイヤー450 は、様々なタイプのサービスモジュール441〜443に対してそれぞれのイン タフェースとモデムタスク454とを含む。モデムタスク454は、標準化イン タフェースを、モデムタスク自体のレイヤーおよびそれ以上のレイヤーにあるモ ジュールに提供し、データポンプ472の特質からそれらを隔離している。割込 みレイヤーは、データ送信/受信モジュール461を含み、これは、文字をデー タポンプからPCI/Oインタフェース471を通してサービスI/Oモジュー ル451〜453と、次に対応するモジュール441および443とに移動させ る。割込みレイヤーがデータポンプを適時にサービスし、それによってバッファ のオーバーフロー等により失われる文字がないことが確実にされることが特に重 要である。タイマ462は、それを行うことを助ける。タイマは、RTS414 によって定期的に起動され、それによってモデムに対する十分に頻繁なハートビ ートが確保される。 図5は、RTSと、モデムVxDと、仮想マシンマネージャに支援されるオペ レーティングシステムサービスと、タイミングデバイスのための仮想デバイスド ライバ(VTD)との間のプロセス間通信を表すタイミング図である。この具体 的な図は、同時に実行される複数のサービスを含む。実行中のサービスの各タイ プの説明を容易にするために、この図面の部分が抽出され、後続の図に表示され る。 3つの主要なサービスが図5に同時に示されている。1番目は、モデム機能の 妥当性を確保するために適時にモデムにおいてACUを起動させるバックグラウ ンドコールバックである。第2のサービスは、モデムの頻繁なハートビートを確 保するように設計されたものである。第3のサービスは、アプリケーションプロ セスが、他のプロセスを妨害しない時に移行を開始することを可能にする。これ らは、図6〜図8にそれぞれ示される。 図6では、プロセスが、モデムデバイスドライバからRTSに対する、バック グラウンドコールバックを登録するための要求で開始する。それに応答して、R TSが、仮想マシンマネージャに対してset_global_timeout 命令を呼び出す。RTSはまた、タイマの細分性を設定するために、VTD_b egin_min_int_Periodを送信する。典型的には、タイマは、 54ミリ秒のデフォルトに設定される。しかし、このデフォルトは、このコマン ドを用いて、インテル8253タイマ等のプログラム可能割込みタイマ(PIT )が許容する細分性にまで減少させられ得る。次に、モデムVxDは、バックグ ラウンドタイムアウト間隔を設定する。典型的には、これは100ミリ秒以下で ある。以前に設定されたグローバルタイムアウトに応じて、グローバルタイムア ウトが生じ、VMMモジュールがRTSに知らせる。RTSは次に、sched ule_global_eventコマンドをVMMに送り、グローバルイベン トスケジュール完了応答(global event scheduled response)を受け取る。そ の応答が入ると、ACUに対するバックグラウンドコールが実行され、別のse t_global_timeoutコマンドがVMMに送られる。RTSとVM Mとの間の最後の4つの相互交換は、定期的に生じ、その結果、定期的なACU バックグラウンドプロセスの実行が生じる反復セットを構成する。 図7は、モデムのハートビートとして機能するように用いられるプロセス間通 信のタイミング図である。モデムVxDは、タイマコールバックをRTSに登録 し、タイマタイムアウト間隔を設定する。それに応答して、RTSは、set_ async_timerをVMMに送り、そのタイマがタイムアウトすると、R TSが、VMMによって知らされ、モデムコードにおいてモデムクロックのハー トビートまたは減分をトリガするタイマコールバックを実行する。タイマコール バックが実行された後、RTSは再び、set_async_timerコマン ドをVMMに送る。タイマタイムアウトがあり、ハートビートとしてタイマコー ルバックを実行する非同期タイマの設定プロセスは、定期的に繰り返され、それ によって、モデムの十分なハートビートが確保される。 図8は、レイヤー400のアプリケーションが他のプロセスを妨害しない時に 移行を開始することを可能とするために使用されるプロセス間通信のタイミング 図である。特定の初期化シーケンスにおいては,ウィンドウズアプリケーション が、モデムの「性格」に関する情報を要求し得る。このような呼出しは、RTS へ経路づけられ、次に、SHELL_CallAtAppyTimeを呼出す。 VMMが、モデムとアプリケーションとの間の性格交換が、継続中のI/Oまた は他のプロセスを破損することなく生じ得ることを検出すると、アプリケーショ ンコールバックが実行され、それによって、アプリケーションおよび交換が生じ る。 従って、リアルタイムサービスおよび仮想マシンマネージャのサービスを使用 することによって、同時に実行中の他のアプリケーションまたはドライバとは無 関係に、CPUアテンションの十分な割当てを受けることが保証されるホストベ ースのモデム、他のプロセス、またはデバイスが実現され得る。このリアルタイ ムサービスを仮想デバイスドライバとして実現することによって、従来技術では 生じたであろう問題とは無関係に、CPU時間に対する公平および平等な競争を 許可するように、仮想マシンマネージャのサービスに対するアクセスが持てる。 この開示では、本発明の好適な実施形態のみが示され、説明されたが、上記の ように、本発明は、様々な他の組み合わせおよび環境で使用することが可能であ り、本明細書に述べられたような発明概念の範囲内で変更または改変することが 可能であることが理解されるものとする。

Claims (1)

  1. 【特許請求の範囲】 1.プロセスまたはデバイスに対する十分なコンピュータリソースを確保するた めの装置であって、 a.コンピュータと、 b.DOSアプリケーションを実行するために過去に互換性のある、該コンピ ュータ上のオペレーティングシステム動作と、 c.DOSアプリケーションのいかなる状態とも無関係にCPUアクセスを確 保するために、該オペレーティングシステムおよび少なくとも1つのプロセスま たはデバイスと相互作用する仮想デバイスドライバと、 を備えた装置。 2.前記オペレーティングシステムがWindows95である、請求項1に記 載の装置。 3.前記仮想デバイスドライバが仮想マシンマネージャと相互作用する、請求項 1に記載の装置。 4.前記少なくとも1つのプロセスまたはデバイスがホストベースのモデムであ る、請求項1に記載の装置。 5.前記仮想デバイスドライバが、繰り返されるバックグラウンドプロセスをス ケジュールするために使用される、請求項4に記載の装置。 6.前記仮想デバイスドライバが、繰り返されるハートビートプロセスをスケジ ュールするために使用される、請求項4に記載の装置。 7.前記仮想デバイスドライバが、アプリケーションとモデムとの間のモデム情 報の交換をスケジュールするために使用される、請求項4に記載の装置。 8.前記少なくとも1つのプロセスまたはデバイスが、前記コンピュータの外部 のデバイスである、請求項1に記載の装置。 9.前記少なくとも1つのプロセスまたはデバイスが、リアルタイムデータを収 集するためのデバイスである、請求項1に記載の装置。 10.DOSアプリケーションを実行するために過去に互換性のあるオペレーテ ィングシステムを備えたコンピュータにおいて、反復プロセスをスケジュールす るための方法であって、 a.DOSアプリケーションのいかなる状態とも無関係にCPUアクセスを確 保するための、該オペレーティングシステムおよび少なくとも1つのプロセスま たはデバイスと相互作用するスケジューリングプロセスを実行するステップ、 を包含する方法。 11.仮想マシンマネージャおよびタイミングプロセスを持つオペレーティング システムを備えたコンピュータにおいて反復プロセスをスケジュールするための 方法であって、 a.該仮想マシンマネージャのサービスを使用して反復プロセスのためのスケ ジューリング機構として機能するための仮想デバイスドライバを実行するステッ プ、 を包含する方法。 12.前記仮想マシンマネージャの前記サービスが、set global t imeoutを含む、請求項11に記載の方法。 13.前記仮想マシンマネージャの前記サービスが、schedule glo bal eventを含む、請求項12に記載の方法。 14.前記仮想マシンマネージャの前記サービスが、set async ti merを含む、請求項12に記載の方法。 15.前記仮想マシンマネージャの前記サービスが、shell call a t Appy timeを含む、請求項12に記載の方法。 16.リアルタイム要件をサービスするためのシステムであって、 a.オペレーティングシステムを備えたコンピュータと、 b.少なくとも1つの周辺デバイスドライバによって管理される1つ以上の周 辺デバイスと、 c.該周辺デバイスの少なくとも1つによるコンピュータリソースへのアクセ スを確保するための、仮想デバイスドライバとして実現されるプロセススケジュ ーラと、 を備えたシステム。 17.前記1つ以上の周辺デバイスの1つがネットワーク制御盤である、請求項 16に記載のシステム。 18.前記ネットワーク制御盤が、1つ以上のユーザデバイスが接続されたネッ トワークに接続される、請求項17に記載のシステム。 19.周辺デバイスのリアルタイム要件をサービスするための方法であって、 a.コンピュータリソースに対して定期的および保証されたアクセスを必要と する該周辺デバイスに関連するプロセスに対して共通のスケジューリング機構と して機能するために仮想デバイスドライバを使用するステップ、 を包含する方法。 20.コンピュータプログラムプロダクトであって a.メモリ媒体と、 b.該メモリ媒体に格納されたコンピュータプログラムであって、オペレーテ ィングシステムおよび少なくとも1つのプロセスまたはデバイスと相互作用し、 それによってDOSアプリケーションのいかなる状態とも無関係に該プロセスま たはデバイスによるCPUアクセスを確保するスケジューリングプロセスを実行 するための命令を含むコンピュータプログラムと、 を備えた、コンピュータプログラムプロダクト。 21.仮想マシンマネージャおよびタイミングプロセスを持つオペレーティング システムを備えたコンピュータにおいて反復プロセスをスケジュールするための コンピュータプログラムプロダクトであって、 a.メモリ媒体と、 b.該メモリ媒体に格納されるコンピュータプログラムであって、該仮想マシ ンマネージャのサービスを用いて、反復プロセスのためのスケジューリング機構 として機能するように仮想デバイスドライバを実行するための命令を備えたコン ピュータプログラムと、 を備えた、コンピュータプログラムプロダクト。
JP53022798A 1996-12-30 1997-12-24 過去に互換性のあるオペレーティングシステムのリアルタイムサービス Pending JP2001507835A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US77464896A 1996-12-30 1996-12-30
US08/774,648 1996-12-30
PCT/US1997/023907 WO1998029807A1 (en) 1996-12-30 1997-12-24 Real time services in backwardly compatible operating systems

Publications (1)

Publication Number Publication Date
JP2001507835A true JP2001507835A (ja) 2001-06-12

Family

ID=25101847

Family Applications (1)

Application Number Title Priority Date Filing Date
JP53022798A Pending JP2001507835A (ja) 1996-12-30 1997-12-24 過去に互換性のあるオペレーティングシステムのリアルタイムサービス

Country Status (5)

Country Link
EP (1) EP0948769A1 (ja)
JP (1) JP2001507835A (ja)
KR (1) KR20000062377A (ja)
TW (1) TW405091B (ja)
WO (1) WO1998029807A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005528665A (ja) * 2001-09-27 2005-09-22 インテル コーポレイション システムインテグリティとレガシー環境とを提供するための方法

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001042932A2 (en) * 1999-12-10 2001-06-14 Honeywell International Inc. Two layer operating system and method for avionics software applications
US20070180061A1 (en) 2006-02-02 2007-08-02 International Business Machines Corporation Methods and apparatus for interactive specification of context-sensitive sevice level agreements; for provisioning of resources required during service delivery events regulated by service level agreements; and for monitoring compliance with service level agreements during service delivery events
US20110283277A1 (en) 2010-05-11 2011-11-17 International Business Machines Corporation Virtualization and dynamic resource allocation aware storage level reordering
CN103748556B (zh) 2011-08-30 2018-02-02 惠普发展公司,有限责任合伙企业 与虚拟受信任运行时bios通信
US8832720B2 (en) * 2012-01-05 2014-09-09 Intel Corporation Multimedia driver architecture for reusability across operating systems and hardware platforms

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5787305A (en) * 1995-04-25 1998-07-28 Pc-Tel, Inc. Host signal processing modem using a software simulation of a UART
US5721830A (en) * 1995-09-12 1998-02-24 Pc-Tel, Inc. Host signal processing communication system that compensates for missed execution of signal maintenance procedures

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005528665A (ja) * 2001-09-27 2005-09-22 インテル コーポレイション システムインテグリティとレガシー環境とを提供するための方法

Also Published As

Publication number Publication date
EP0948769A1 (en) 1999-10-13
WO1998029807A1 (en) 1998-07-09
TW405091B (en) 2000-09-11
KR20000062377A (ko) 2000-10-25

Similar Documents

Publication Publication Date Title
US6230118B1 (en) DOS based application supports for a controllerless modem
US5706514A (en) Distributed execution of mode mismatched commands in multiprocessor computer systems
US6370606B1 (en) System and method for simulating hardware interrupts in a multiprocessor computer system
US5696970A (en) Architecture for implementing PCMCIA card services under the windows operating system in enhanced mode
US5964843A (en) System for enhancing device drivers
US5771370A (en) Method and apparatus for optimizing hardware and software co-simulation
JP4291964B2 (ja) 仮想計算機システム
US4787026A (en) Method to manage coprocessor in a virtual memory virtual machine data processing system
US8271976B2 (en) Systems and methods for initializing multiple virtual processors within a single virtual machine
US5768567A (en) Optimizing hardware and software co-simulator
US5530858A (en) Method and apparatus for background processing for PCMCIA card services
US20060248528A1 (en) Systems and methods for hypervisor discovery and utilization
US7051222B2 (en) Robust computer subsystem power management with or without explicit operating system support
CA2057404C (en) Method for operating time critical processes in a window system environment
US5937200A (en) Using firmware to enhance the functionality of a controller
US8065441B2 (en) Method and apparatus for supporting universal serial bus devices in a virtualized environment
JP2006523339A (ja) ロジカル・パーティション・コンピュータ・システム内のリソース転送を制御するための装置および方法
US6353857B2 (en) Controllerless modem
JP2001507835A (ja) 過去に互換性のあるオペレーティングシステムのリアルタイムサービス
JPH03196225A (ja) プログラマブル割込みコントローラ
US6907521B2 (en) Enabling video BIOS and display drivers to leverage system BIOS platform abstract
JPH10326205A (ja) システムコール発行方法
JPH0836485A (ja) 情報処理装置及び情報処理装置の制御方法
WO1996018953A1 (en) Cpu-cycle stealing for multi-tasking operating system
JPH0588918A (ja) マシン・サイクルの浪費を回避する方法