JPH06301623A - デバイス操作方法 - Google Patents

デバイス操作方法

Info

Publication number
JPH06301623A
JPH06301623A JP6005676A JP567694A JPH06301623A JP H06301623 A JPH06301623 A JP H06301623A JP 6005676 A JP6005676 A JP 6005676A JP 567694 A JP567694 A JP 567694A JP H06301623 A JPH06301623 A JP H06301623A
Authority
JP
Japan
Prior art keywords
application
application program
access
data
driver
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.)
Granted
Application number
JP6005676A
Other languages
English (en)
Other versions
JP2557189B2 (ja
Inventor
James W Feeney
ジェームス・ウイリアム・フィーニー
Jr George W Wilhelm
ジョージ・ウイリアム・ウィルヘルム、ジュニア
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH06301623A publication Critical patent/JPH06301623A/ja
Application granted granted Critical
Publication of JP2557189B2 publication Critical patent/JP2557189B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms
    • 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/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space

Landscapes

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

Abstract

(57)【要約】 【目的】 データ処理環境において、アプリケーション
がハードウェア・デバイスとの最小可能対話時間を獲得
する。 【構成】 システムは2つのモードで操作可能である。
第1のモードでは、アプリケーションは処理システムを
利用して、ハードウェア・デバイスと対話する。このモ
ードでは、処理システムの多くの層が関与し、ハードウ
ェアとの対話時間が遅くなる。第2のモードでは、ドラ
イバによりハードウェア・デバイスの排他的所有権がア
プリケーションに許可される。このモードでは、アプリ
ケーションはハードウェア・デバイスへの直接アクセス
有し、処理システム層の関与を回避する。アプリケーシ
ョンは、アプリケーション・プログラム自身にリンクさ
れる低待ち時間プロセッサ・インタフェースを通じ、ド
ライバをアクセス及び使用する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はデータ処理システムに関
し、特にアプリケーション・プログラムが高速且つ矛盾
無くハードウェア・デバイスをアクセスする機能に関す
る。
【0002】
【従来の技術】典型的なデータ処理システム(システ
ム)は、複数のアプリケーション・プログラム(アプリ
ケーション)が同時に実行されることをサポートする。
これを達成するために、処理システムは実際のハードウ
ェアをアプリケーションから独立させる複数の層を有す
る。典型的な処理システムでは、層の1つはハードウェ
ア・デバイスを直接アクセスするデバイス・ドライバで
ある。次の層はAIXなどのオペレーティング・システ
ムである。この層は次にデバイス・ドライバをアクセス
可能なアプリケーションを制御する。アプリケーション
がハードウェア・デバイスと対話する時、対話は処理シ
ステムのこれらの層を通過しなければならない。各層は
処理時間を追加し、別のアプリケーションがハードウェ
ア・デバイスを使用することを許可するために、その使
用を禁止することもできる。
【0003】いくつかのシステムでは、要求される度に
全てのアプリケーションがハードウェア・デバイスを直
接アクセスすることを許可する。これが処理システムの
従来の操作方法である。しかしながら、この方法ではア
プリケーションが同時に1つしか実行されない。典型的
には1つのアプリケーションが実行され、それが終了す
ると次のアプリケーションが実行される。システムがよ
り高速になると、しばしば、プログラムの実行が処理の
継続以前に、ハードウェア・デバイスがそのオペレーシ
ョンを完了するのを待機しなければならない。全体シス
テムの利用を改良するために、複数のアプリケーション
が並行して実行されるようになった。その結果、複数の
アプリケーションが同一のハードウェア・デバイスを異
なる方法で同時に使用しようと試みることになった。そ
れによりアプリケーションの間でハードウェア・デバイ
スの使用を調整し、それらを互いに保護することが必要
となった。調整及びプログラミングのための努力は膨大
となっており、複数アプリケーションをサポートする汎
用目的処理システムでは、このアプローチは断念され
た。しかしながら、自動車または航空機の制御プロセッ
サなどの専用のタスクを実行する特殊目的処理システム
では使用されている。
【0004】調整及び複数アプリケーションを保護する
問題は、今日の汎用目的システムに及んだ。これらのシ
ステムでは、ハードウェア資源がシステムにより所有さ
れ、ハードウェア・デバイスとの対話がシステムを通じ
て行き来される。システムは典型的には、ハードウェア
を直接アクセスし制御するためのデバイス・ドライバ、
及びアプリケーションがデバイス・ドライバをアクセス
するのを制御するオペレーティング・システムなどの複
数の層を有する。これらの層を通じてハードウェア・デ
バイスと対話する要求は、ハードウェア・デバイスを使
用する単一のアプリケーションにとって性能の低下につ
ながる。
【0005】
【発明が解決しようとする課題】この性能低下を低減す
るために、いくつかのシステムではアプリケーションに
ハードウェア・デバイスに対する制限付きのアクセスを
許可する。システムがハードウェア・デバイス・オペレ
ーションのある部分に関与した状態を維持し、別のアプ
リケーションがハードウェアを要求する時期を知ること
ができる点で、アクセスは制限される。システムはこの
時、アプリケーションがハードウェア・デバイスに対す
る直接アクセスを断念することを要求する。アプリケー
ションが合理的な時間内でアクセスを断念しない場合、
システムはハードウェア・デバイスをアプリケーション
制御から取り除き、アプリケーションを終了する。
【0006】このモードの典型的なオペレーションは、
システムに接続される仮想表示デバイス及び入力デバイ
スの使用である。各アプリケーションは、実際にはそれ
ら全てが同一の表示デバイス及び入力デバイスを共用し
ている時に、自身が固有の表示デバイス及び入力デバイ
スを有しているものと思っている。キーボード・オペレ
ーション及び表示による通常のテキスト・モードでは、
システム層により追加される余分な処理時間は目立たな
い。しかしながら、マウスなどのポインティング・デバ
イス及びグラフィカル表示デバイスが使用される場合、
余分なオーバヘッドがポインティング・デバイスの移動
と表示上の移動の間の遅れとして気付かれる。これを修
正するために、アプリケーションが表示デバイスに対す
る直接出力アクセスを提供され、それにより表示デバイ
スが可能な限り迅速に更新される。入力デバイスに対す
るアクセスはシステムにより保持される。従って、オペ
レーションのこの部分は依然として低下した状態のまま
である。これはユーザが表示デバイスをあるアプリケー
ションから次のアプリケーションに切換えることを要求
できるように実施される。システムはユーザ信号を認識
し、表示デバイスへの直接アクセスをあるアプリケーシ
ョンから別のアプリケーションに移す。このオペレーシ
ョン方法は仮想表示デバイスでは受入れられる。なぜな
ら、人間の手の動きは視覚よりも十分遅いからである。
しかしながら、ネットワーク通信などのアプリケーショ
ンでは、入力及び出力デバイスの両方が可能な限り高速
に実行されなければならない。ハードウェアを介するア
プリケーション間の対話、特に並列処理環境では、ハー
ドウェアの対話の性能低下は受入れられない。
【0007】
【課題を解決するための手段】本発明はデバイスの排他
的使用を有するアプリケーションによる、コンピュータ
・システム内で使用されるデバイスのオペレーティング
方法を含む。デバイスに対するアプリケーションからの
要求がオペレーティング・システムにより処理される。
アプリケーションは一般ユーザ・モードまたは排他的低
待ち時間(lowlatency) モードによりデバイスの使用
を要求できる。オペレーティング・システムはデバイス
の排他的使用のための要求をデバイス・ドライバに受渡
し、デバイス・ドライバが要求されたデバイスへの排他
的アクセスを許可し、その間、そのデバイスに対する他
の要求を阻止する。デバイスに対するアプリケーション
の排他的アクセスは、その後、オペレーティング・シス
テムによって中断されない。
【0008】本発明はまたコンピュータ・システム間で
使用される通信システムを含む。第1のコンピュータ・
システム内のアダプタ・カードなどの通信デバイスが、
ネットワークなどの通信リンクを介し、システム間でデ
ータを転送する。デバイス・ドライバ・プログラムがあ
るコンピュータ・システム内で実行され、第1のデバイ
スへのアクセスを制御する。ドライバはオペレーティン
グ・システム・ソフトウェアとのインタフェースを含
む。デバイス・ドライバの一部分が通信デバイスとシス
テムの複数の並行して実行される(マルチタスクの)ア
プリケーション・プログラムとの間で、並行してデータ
を転送する。デバイス・ドライバの別の部分は、デバイ
スとシステムのあるアプリケーション・プログラムとの
間で排他的にデータを転送し、他のアプリケーション・
プログラムによるデバイスへのアクセスを阻止する。
【0009】本発明の他の特徴及び利点は、以降に図を
参照しながら示される本発明の実施例に関する詳細な説
明から明らかにされよう。
【0010】
【実施例】本発明の実施例は、1つのコンピュータ・シ
ステムのアプリケーション・プログラムが、オールノー
ド・スイッチ(スイッチ)(Allnode Switch(switc
h))と知られるデータ通信デバイスを介し、他のシス
テム上のアプリケーション・プログラムと通信する性能
を向上させる。このスイッチは独立したシステム上のア
プリケーション間でデータを送信するための超高速通信
経路を提供する。効率的に実行するために、アプリケー
ションは可能な限り高速にスイッチからデータを読出
し、またスイッチにデータを書込むことが可能でなけれ
ばならない。
【0011】本発明の"低待ち時間"モードは、アプリケ
ーションがハードウェア・デバイスに対する排他的な直
接アクセスを獲得することを可能とする。これは要求さ
れた時に、アプリケーションがハードウェア・デバイス
と最小時間内に直接対話することを可能とする。本発明
の目的は、データ処理環境において、アプリケーション
がハードウェア・デバイスとの最小可能対話時間を獲得
することである。最小対話時間が要求されない時には、
本発明はアプリケーションが単一のアプリケーションに
とっては対話時間が低下する"一般ユーザ"モードによ
り、ハードウェア・デバイスを共用することを許可す
る。
【0012】本発明では2つの要素が要求される。第1
は2重モードで操作するデバイス・ドライバ(時にカー
ネル拡張として知られる)である。このデバイス・ドラ
イバはシステムの一部であり、オペレーティング・シス
テムとハードウェア・デバイスとのインタフェースとな
る。
【0013】デバイス・ドライバのオペレーションの第
1のモードは、"一般ユーザ"モードである。これは複数
のアプリケーションがハードウェア・デバイスを共用す
ることを可能とする。このモードでは、ハードウェア・
デバイスと対話するためのアプリケーションからのコマ
ンドがオペレーティング・システムに渡される。オペレ
ーティング・システムは次にこれらのコマンドをデバイ
ス・ドライバに受渡す。デバイス・ドライバはコマンド
にもとづき、ハードウェア・デバイスと対話する。デー
タがハードウェア・デバイスに渡されるべき場合、デバ
イス・ドライバはアプリケーション・データ領域からデ
ータを獲得する。デバイス・ドライバは次に、データを
直接ハードウェア・デバイス内に、またはハードウェア
・デバイスがそれを受入れる準備が整うまでシステム送
信バッファ内に移動する。データがハードウェア・デバ
イスから受信されるべき場合、デバイス・ドライバはデ
ータをハードウェア・デバイスまたはシステム受信バッ
ファからアプリケーション・データ領域に移動する。ア
プリケーション・コマンドがデータを要求する以前に、
デバイス・ドライバがハードウェア・デバイスからデー
タを読出している場合、データはシステム受信バッファ
内に存在する。
【0014】デバイス・ドライバのオペレーションの第
2のモードは"低待ち時間(lowlatency )" モードであ
る。このモードでは、アプリケーションはハードウェア
・デバイスへの排他的直接アクセスを提供される。全て
の他のアプリケーションはこの時、ハードウェア・デバ
イスの使用を禁止される。このモードでは、アプリケー
ションはオペレーティング・システム及びデバイス・ド
ライバ層とのオーバヘッド無しに、ハードウェア・デバ
イスと直接対話する。データはアプリケーション・デー
タ領域とハードウェア・デバイスとの間で直接移動され
る。アプリケーションがハードウェア・デバイスへの排
他的直接アクセスを受取ると、これはハードウェア・デ
バイスへのアクセスを解放するまでシステムと対話する
必要はない。
【0015】ハードウェア・デバイスへのアプリケーシ
ョン・アクセスを単純化するために、本発明の第2の要
素が有効である。これは低待ち時間プログラミング・イ
ンタフェース(LLPI)・コードである。LLPIコ
ードはデバイス・ドライバの拡張であり、デバイス・ド
ライバと同じコマンドを処理可能である。LLPIコー
ドはアプリケーション・コードと一緒に在中し、アプリ
ケーション・コードによって直接呼ばれる。システムの
視点からこれはアプリケーションの一部であり、追加の
処理オーバヘッドを要求しない。
【0016】コンピュータ・システム−図1:図1は本
発明のコンピュータ・システムの実施例を示す。システ
ムはオペレーティング・システムAIX30及びデバイ
ス・ドライバ70を含む。AIX30は、AIXデバイ
ス・ドライバ・インタフェース60を用いて、デバイス
・ドライバ70へのアプリケーションのアクセスを制御
する。デバイス・ドライバ70はIBMマイクロチャネ
ル80を介し、ハードウェア・デバイス(好適にはアダ
プタ)へのアクセスを制御する。アダプタ90はスイッ
チ100を通じ、他のシステムとの間でデータを送受信
する。
【0017】アプリケーション10は2つのインタフェ
ースを有する。それらはAIX30に対するAIXファ
イル・システム・インタフェース20、及び低待ち時間
プログラミング・インタフェース(LLPI)40に対
する低待ち時間インタフェース50である。アプリケー
ション10は、デバイス・ドライバ70に対する一般ユ
ーザ・モード・アクセスに対応して、AIXファイル・
システム・インタフェース20を使用する。このモード
では、全ての対話がアプリケーション10からAIXフ
ァイル・システム・インタフェース20を介し、AIX
オペレーティング・システム30を通過し、AIXデバ
イス・ドライバ・インタフェース60を介し、デバイス
・ドライバ70を通過し、IBMマイクロチャネル80
を介しアダプタ90に至る。これは複数のアプリケーシ
ョンが同時に使用可能な高オーバヘッド経路である。A
IXオペレーティング・システム30及びデバイス・ド
ライバ70が、必要に応じてデータをバッファし、アプ
リケーション10による処理を延期することにより、ア
ダプタ90における衝突を防止する。
【0018】低待ち時間プログラミング・インタフェー
ス40に対するアプリケーション10の低待ち時間イン
タフェース50は、第2の低待ち時間モード・オペレー
ションにおいて使用される。AIXオペレーティング・
システム30は低待ち時間プログラミング・インタフェ
ース・コード40をアプリケーション10の一部として
考慮するため、低待ち時間インタフェース50を介する
呼出しは、AIXファイル・システム・インタフェース
20を介する呼出しに比較して、極めて少ない処理時間
しか必要としない。アプリケーション10からLLPI
40への初期コマンドは、アダプタ90への排他的直接
アクセスを獲得するために発せられる。このコマンドは
アプリケーション10により低待ち時間インタフェース
50を介し、LLPI40に送られる。LLPI40
は、低待ち時間モードを介しアクセスを要求する、AI
Xファイル・システム・オープン・コマンドを生成す
る。このオープン・コマンドは次にAIXファイル・シ
ステム・インタフェース20を介し、このコマンドを処
理するAIXオペレーティング・システム30に渡され
る。AIXオペレーティング・システム30はコマンド
がデバイス・ドライバ70用のものであると判断し、そ
のコマンドをAIXデバイス・ドライバ・インタフェー
ス60を介し、デバイス・ドライバ70に受渡す。デバ
イス・ドライバ70は次に、アプリケーション10がア
ダプタ90への排他的直接アクセスを有することが可能
かを判断する。アクセスが許可される場合、デバイス・
ドライバ70はアダプタ90のアドレスをアプリケーシ
ョン10のアドレス空間にマップする。デバイス・ドラ
イバはまた、低待ち時間モードまたは一般ユーザ・モー
ドにおいて、アダプタ90をアクセスする全ての将来呼
出しを拒否する。これはアプリケーション10がアダプ
タの排他的アクセスを有することを保証する。
【0019】排他的直接アクセスが1度、アプリケーシ
ョン10に許可されると、アダプタ90への全てのコマ
ンドは極めて低いオーバヘッド経路に従う。コマンドは
低待ち時間インタフェース50を介し、LLPI40に
渡される。LLPI40は次にIBMマイクロチャネル
80を介し、直接アダプタ90と対話する。
【0020】2つのモードに対応して要求される処理の
違いが、図2及び図3に最もよく示される。
【0021】一般ユーザ・モード−図2:図2は一般ユ
ーザ・コマンド経路の拡大図である。コマンドはアプリ
ケーション10で発信され、AIXファイル・システム
・インタフェース20を介してAIXオペレーティング
・システム30に渡される。AIXオペレーティング・
システム30が実際にコマンドの処理を開始する以前
に、アプリケーションからAIXへのコンテキスト・ス
イッチ21が生じなければならない。これは非常に高価
なオペレーションであり、アプリケーション10の処理
ステータスが保管され、AIXオペレーティング・シス
テム30の処理ステータスが復元される。AIXオペレ
ーティング・システム30は次にコマンドを処理し、そ
れをAIXデバイス・ドライバ・インタフェース60を
介してデバイス・ドライバ70に受渡す。デバイス・ド
ライバ70は次にアダプタのアドレス空間をアクセスし
なければならない(71)。次にデバイス・ドライバ7
0はIBMマイクロチャネル80を介し、アダプタ90
と対話する。対話が終了するとデバイス・ドライバ70
はアドレス空間を解放し(72)、処理を完了する。制
御は次にAIXデバイス・ドライバ・インタフェース6
0を介し、再度、AIXオペレーティング・システム3
0に戻る。AIXオペレーティング・システム30は次
にその処理を完了し、AIXからアプリケーションへの
コンテキスト・スイッチ22を実行する。この時、AI
Xオペレーティング・システム30のステータスが保管
され、アプリケーション・ステータス10が復元され
る。最後に、制御がAIXファイル・システム・インタ
フェース20を介してアプリケーションに戻される。
【0022】低待ち時間モード−図3:図3は低待ち時
間モードのオペレーションの場合のコマンドの単純なフ
ローを示す。コマンドはアプリケーション10において
発信され、低待ち時間インタフェース50を介し、低待
ち時間プログラミング・インタフェース40に渡され
る。低待ち時間プログラミング・インタフェース40が
アプリケーションの一部であるため、ステータスを保管
及び復元するためのコンテキスト・スイッチは必要とさ
れない。低待ち時間プログラミング・インタフェース4
0はIBMマイクロチャネル80を介し、アダプタ90
と直接対話可能となる。アダプタのアドレス空間のアク
セス(71)は要求されない。なぜなら、これは排他的
アクセスがデバイス・ドライバ70により許可される時
に1度だけ実行されるからである。アダプタのアドレス
空間の解放(72)も要求されない。なぜなら、これは
排他的アクセスがアプリケーション10により解放され
る時に実行されるからである。対話が完了すると、低待
ち時間プログラミング・インタフェース40が処理を完
了し、低待ち時間インタフェース50を介し制御を再
度、アプリケーション10に戻す。
【0023】本発明の実施には2つの関数が要求され
る。第1の関数は"v7open"関数であり、一般ユーザ・モ
ードまたは低待ち時間モードにおいてアダプタ90への
アクセスを要求するために、アプリケーション10によ
り使用される。第2の関数は"v7close" 関数であり、ア
ダプタ90へのアクセスを解放するために、アプリケー
ション10により使用される。これら両方の関数はデバ
イス・ドライバ70内で実施され、AIXファイル・シ
ステム・インタフェース20を介してアクセスされる。
v7close関数もまた、アプリケーション10がv7close関
数を呼出す以前に実行を終了する時、AIXオペレーテ
ィング・システム30によりAIXデバイス・ドライバ
・インタフェース60を介して呼出される。
【0024】デバイス・ドライバv7open関数−図4及び
表5:v7open関数は2つのモードの一方において、アプ
リケーション10がアダプタ90へのアクセスを獲得す
ることを許可する。第1のモードは一般ユーザ・モード
である。このモードでは、いくつかのアプリケーション
が衝突すること無くアダプタ90へのアクセスを共用で
きる。第2のモードは低待ち時間モードであり、単一の
アプリケーション10がアダプタ90への排他的直接ア
クセスを許可される。このモードでは、1つのアプリケ
ーション10だけがアダプタ90と対話することができ
る。
【0025】v7open関数はデバイス・ドライバ70で実
施される。これはAIXファイル・システム・インタフ
ェース20のオープン・コマンドにより呼出される。表
1はAIXオープン・コマンドに対応する擬似シンタク
ス、入力及び出力を示す。各システムに対応する実際の
シンタクスは異なるが、示される入力及び出力が要求さ
れる。主要な入力はアダプタ・ポインタ"v7"及びチャネ
ル番号"n"である。
【表1】AIX openコマンド擬似シンタクス シンタクス:fd=open("v7"、n); ここで、"v7"オールノード・アダプタ・ポインタはこの
まま要求される。 n オールノード・チャネル番号: 0<=n<=63 fd AIXファイル記述子: 0<=fd:オープン成功 -1=fd:オープン失敗、理由をエラー番号で示す。
【0026】この実施例では、AIXオペレーティング
・システム30が入力データを検査する。アダプタ・ポ
インタ"v7"を識別すると、AIXオペレーティング・シ
ステム30はこれがデバイス・ドライバ70に対するオ
ープン・コマンドであることを知る。これはデバイス・
ドライバ70内のv7open関数に対する呼出しに変換され
る。AIXオペレーティング・システム30は、制御を
AIXデバイス・ドライバ・インタフェース60を介
し、v7open関数に受渡す。v7open関数に対する呼出しの
擬似シンタクスが表2に示される。v7open関数はチャネ
ル番号nを調査する。チャネル番号n=1は排他的直接
アクセスの低待ち時間モードの要求を示す。他の全ての
チャネル番号は一般ユーザ・モード・アクセスを示す。
【表2】オールノードv7open関数擬似シンタクス シンタクス:rc=v7open(n); n オールノード・チャネル番号 0<=n<=63 rc 復帰コード 0=rc:クローズ成功 -1=rc:クローズ失敗、理由をエラー番号で示す。
【0027】v7open関数が次に図4の流れ図で示される
論理及び表5の擬似コードを実行する。処理の完了時
に、v7openはアクセスがこのアプリケーション10に対
応して、アダプタ90に許可されるかを判断する。アク
セスが許可されるとv7open関数は成功(rc=0)の復帰コ
ードをAIXデバイス・ドライバ・インタフェース60
を介し、AIXオペレーティング・システム30に返却
する。AIXオペレーティング・システム30は、次に
AIXファイル記述子をアダプタ90及びチャネル番号
nを要求するアプリケーション10に割当てる。AIX
ファイル・オペレーティング・システム30は次に、A
IXファイル・システム・インタフェース20を介し、
制御をアプリケーション10に返却する。
【0028】v7open関数がこのアプリケーションに対応
して、アダプタ90にアクセスを許可しない場合、v7op
en関数はAIXデバイス・ドライバ・インタフェース6
0を介し、AIXオペレーティング・システム30に失
敗(rc=-1 )の復帰コードを返却する。v7open関数はま
た、理由コードをAIXシステム変数エラー番号(errn
o )に配置する。AIXオペレーティング・システム3
0はこのエラー番号変数をアプリケーション10が検査
のために使用することを許可する。AIXオペレーティ
ング・システム30は次に失敗のAIXファイル記述子
(fd=-1 )を、AIXファイル・システム・インタフェ
ースを介し、アプリケーション10に返却する。アプリ
ケーション10は次に、失敗の理由を判断するために、
AIXシステム変数エラー番号を直接アクセスすること
ができる。
【0029】図4及び表5はv7open関数の流れ図及び擬
似コードを含む。最初に実行されなければならないこと
は、デバイス・ドライバ70が処理の途中で中断される
ことを阻止することである。これが実施されない場合、
割込みまたはアプリケーション・スワップが、別のアプ
リケーションによる本アプリケーションにより要求され
る同一のチャネルへのアクセス要求を許可してしまう。
これがライン104のチェックとライン107のセット
との間で発生すると、両方のアプリケーションがアダプ
タ90に対する排他的アクセスを許可されることにな
る。ライン102では、要求されているモードを判定す
るためのチェックが実施される。チャネルn=1の場
合、低待ち時間モードが要求され、実行はライン104
に移行する。それ以外の場合、実行はライン114に移
行する。
【0030】ライン104は低待ち時間モード要求の処
理を開始する。その時オープン状態のチャネルが存在し
ない場合、要求は許可されライン106からライン10
8が実行され、チャネル1をオープン状態にセットし、
アダプタ90のアドレスをアプリケーションに割当て、
成功裡の完了をセットする。1個または複数のチャネル
がオープン状態の場合、排他的アクセスは許可されな
い。ライン110及び111が次に実行され、AIXオ
ペレーティング・システム30及びアプリケーション1
0にアダプタが使用されており、排他的アクセスが許可
されなかったことを知らせる。
【0031】ライン114はアダプタ90に対する一般
ユーザ・アクセス要求の処理を開始する。ライン114
は、アダプタ90に対する排他的アクセスが既にアプリ
ケーション10に許可されているか最初にチェックす
る。排他的アクセスが許可されていない場合、ライン1
16から122が実行される。それ以外の場合には、ラ
イン125から126が実行され、AIXオペレーティ
ング・システム30及びアプリケーション10に、アダ
プタが現在低待ち時間モードで使用されており、一般ユ
ーザ・モードが許可されないことを知らせる。
【0032】ライン116は一般ユーザ・モードに対応
して要求されるチャネルnが使用可能か否かを確認す
る。チャネルnがオープン状態でない場合、ライン11
8及び119が実行され、チャネルnをオープン状態に
セットし、成功裡の完了をセットする。それ以外の場
合、ライン121及び122が実行され、AIXオペレ
ーティング・システム30及びアプリケーション10
に、要求チャネルが使用されており、アクセスが許可さ
れないことを知らせる。
【0033】ライン129は通常の割込み及びアプリケ
ーション・スワッピング・オペレーションのロックを解
放し、ライン130は完了復帰コードをAIXオペレー
ティング・システム30のオープン・コマンドに返却す
ることにより、v7open関数の実行を完了する。
【0034】v7open関数は、アプリケーション10にア
ダプタ90に対する排他的直接アクセスを提供するため
の主要な要素である。この関数は、他のアプリケーショ
ンがアダプタ90へのアクセスを許可されていない場合
に限り、低待ち時間モードを許可することによりこれを
保証する。この関数はまた、低待ち時間モードを要求す
るアプリケーションが存在しない場合、同時に最大63
チャネルのオープンを許可することにより、一般ユーザ
・モードにおけるアダプタ90への共用アクセスをサポ
ートする。しかしながら、本願は一般ユーザ・モード・
チャネル数が63であることを要求しない。それは実施
における判断による。v7open関数はデバイス・ドライバ
70のコード内に存在する。
【0035】デバイス・ドライバv7close関数−図5及
び表6:v7close 関数はアプリケーション10がアダプ
タ90に対するアクセスを解放することを許可する。こ
の関数は、提供されるAIXファイル記述子により示さ
れる特定のチャネルnに対するアプリケーション10の
アクセスを解放する。1度解放されると、そのチャネル
は同一または異なるアプリケーション10により使用可
能となる。
【0036】アプリケーション10がv7close 関数に呼
出しを発行することなく終了すると、AIXオペレーテ
ィング・システム30がAIXデバイス・ドライバ・イ
ンタフェース60を介し、v7close 関数を呼出す。AI
Xオペレーティング・システム30は、終了されるアプ
リケーション10に対応してデバイス・ドライバ70に
割当てられる各オープンAIXファイル記述子に対し、
1度v7close 関数を呼出す。これはアプリケーションが
予期せずに終了されたことにより、オープンされたチャ
ネルがアクセス不能になることを阻止する。この振舞い
は実施例で使用されるシステムの特徴ではあるが、本発
明では要求されない。
【0037】v7close 関数はデバイス・ドライバ70に
おいて実施される。これはAIXファイル・システム・
インタフェース20のクローズ・コマンドにより呼出さ
れる。表3はAIXクローズ・コマンドに対応する擬似
シンタクス、入力及び出力を示す。各システムに対応す
る実際のシンタクスは異なるが、示される入力及び出力
が要求される。主要な入力は成功裡のAIXオープン・
コマンド(図4及び表5)により返却されるAIXファ
イル記述子(fd)である。
【表3】AIX closeコマンド擬似シンタクス シンタクス:rc=close(fd); ここで、fd オープン成功により返却されるAIXファ
イル記述子 rc 復帰コード 0=rc:クローズ成功 -1=rc:クローズ失敗、理由をエラー番号で示す。
【0038】この実施例では、AIXオペレーティング
・システム30はAIXファイル記述子をデバイス及び
チャネル番号に変換する。デバイスをアダプタ70とし
て識別すると、チャネル番号がAIXデバイス・ドライ
バ・インタフェース60を介し、デバイス・ドライバの
v7close関数に渡される。v7close関数に対する呼出しの
擬似シンタクスが表4に示される。v7close 関数は、解
放されるアクセス・モードを判定するためにチャネル番
号nを検査する。チャネル番号1は低待ち時間モードに
おけるアダプタ90に対する排他的アクセスの解放を示
す。他の全てのチャネル番号は一般ユーザ・モード・チ
ャネルの解放を示す。v7close 関数は、図5及び以降の
章で述べられる擬似コードによって表される論理を実行
する。処理の完了時にv7close 関数は成功(rc=0)また
は不成功(rc=-1) 復帰コードを、AIXデバイス・ド
ライバ・インタフェース60を介し、AIXオペレーテ
ィング・システム30に返却する。AIXオペレーティ
ング・システム30は次に、AIXファイル・システム
・インタフェース20を介し、制御をアプリケーション
10に返却する。
【表4】オールノードv7close関数擬似シンタクス シンタクス:rc=v7close(n); n オールノード・チャネル番号 0<=n<=63 rc 復帰コード 0=rc:クローズ成功 -1=rc:v7クローズ失敗、理由をエラー番号で示す。
【0039】v7close 関数が不成功復帰コードを返却す
る場合、AIXシステム変数エラー番号に理由コードが
配置される。AIXオペレーティング・システム30は
アプリケーション10が検査のためにエラー番号変数を
使用することを許可する。AIXオペレーティング・シ
ステム30は次に、AIXファイル・システム・インタ
フェースを介し、アプリケーション10に失敗復帰コー
ド(rc=-1 )を返却する。アプリケーション10は次
に、失敗の理由を判断するためにAIXシステム変数エ
ラー番号を直接アクセスすることができる。
【0040】図5及び表6はv7close 関数の流れ図及び
擬似コードを含む。ライン201で、指定チャネルnが
オープン状態であるかがチェックされる。指定チャネル
がオープン状態の場合、ライン203からライン208
が実行される。それ以外の場合、ライン210及び21
1が実行され、AIXオペレーティング・システム30
及びアプリケーション10に、要求チャネルが既にクロ
ーズされていることを知らせる。
【0041】ライン203はオープンされたチャネルの
解放処理を開始する。チャネルn=1の場合、低待ち時
間モードが解放され、実行がライン205に移行し、ア
ダプタ90のアドレスがアプリケーション10のアドレ
ス空間から解放される。どちらの場合にも、実行はライ
ン207及び208に移行し、チャネルnがクローズ状
態にセットされ、成功の完了コード(rc=0)がセットさ
れる。全ての場合にライン213が実行され、完了復帰
コードをAIXオペレーティング・システム30のクロ
ーズ・コマンドに返却することにより、v7open関数の実
行を完了する。
【0042】v7close関数はv7open 関数の対の関数であ
る。これはアプリケーション10が特定のチャネルに対
応するアダプタ90へのアクセスを解放することを許可
する。この関数の主要要素はチャネルn=1の解放によ
り、アプリケーション10がアダプタ90のアドレス空
間へのアクセスを失う結果となることである。これによ
り別のアプリケーション10がアダプタに対する低待ち
時間モード・アクセスを獲得することが許可され、元の
アプリケーション10との衝突が防止される。v7close
関数はデバイス・ドライバ70のコード内に存在する。
【0043】本発明の主な利点は、第1にアプリケーシ
ョンが全ハードウェア・デバイスへの直接アクセスを獲
得することを許可し、アプリケーションがハードウェア
・デバイスとの最小可能対話時間を達成可能とする。第
2の利点は排他的アクセスが1度許可されると、アプリ
ケーションはアクセスの継続及び一貫した対話時間を保
証される。システム及び別のアプリケーションのいずれ
もが、アプリケーションがハードウェア・デバイスを使
用することを強制排除できない。
【0044】これまで説明のために、本発明の特定の実
施例について述べられてきたが、本発明の精神及び範囲
を逸脱することなく、様々な変更が可能であることが理
解されよう。特に別の実施例では、デバイスに対する排
他的アクセスのためのデバイス・ドライバ・キュー要求
を有する異なるプロセッサ−ハードウェア間デバイス・
インタフェースを使用し、表1乃至表4に示されるopen
/closeコマンド・シンタクスを変更する。またアプリケ
ーションが予期せず終了される場合に、オペレーティン
グ・システムがクローズ関数の呼出しを要求されずに、
その代わりにデバイス・ドライバがオープン状態のファ
イル記述子が存在するか否かをモニタしても良い。更に
ハードウェアが複数のアプリケーションによる同時アク
セスをサポートする場合、より多くの排他的チャネルが
存在しても良い。
【0045】以上述べたように、本発明には以下の態様
がある。
【0046】(1)コンピュータ・システムのデバイス
を操作する方法であって、(a)上記コンピュータ・シ
ステムのオペレーティング・システム(カーネル)によ
り、プログラムを実行中の並行アプリケーションからの
第1の(共用または一般ユーザ)モードで上記デバイス
にアクセスするための要求を処理するステップであっ
て、上記オペレーティング・システムが、上記デバイス
への上記第1のモードでのアクセスを同時に要求するア
プリケーション間の衝突を防止する処理ステップと、
(b)上記オペレーティング・システムにより、第2の
(排他的)モードでの上記デバイスへのアクセスのため
の最初のアプリケーション・プログラム要求を処理す
る、上記要求をデバイス・ドライバに受け渡すステップ
を含むステップと、(c)上記デバイス・ドライバによ
り、他のアプリケーション・プログラムからの上記デバ
イスへのアクセス要求を阻止するステップと、(d)上
記オペレーティング・システムによる介入無しに、上記
アプリケーション・プログラムにより直接、上記デバイ
スにアクセスするステップとを含むデバイス操作方法。
【0047】(2)ステップ(d)が上記アプリケーシ
ョン・プログラムが上記デバイスに対する直接(低待ち
時間)インタフェースを呼出すステップを含む、(1)
記載のデバイス操作方法。
【0048】(3)上記デバイスに対するインタフェー
スが上記アプリケーション・プログラム内にリンクされ
る、(2)記載のデバイス操作方法。
【0049】(4)ステップ(a)及びステップ(b)
が上記デバイス・ドライバに対するそれぞれの呼出しを
含む、(1)記載のデバイス操作方法。
【0050】(5)ステップ(d)が上記デバイスのメ
モリ・アドレスを上記アプリケーション・プログラムの
アドレス空間にマップするステップを含む、(1)記載
のデバイス操作方法。
【0051】(6)上記デバイスのアドレスがマップさ
れる上記アプリケーション・プログラムのアドレス空間
の一部にデータを移動することにより、上記アプリケー
ション・プログラムが上記デバイスへデータを送信す
る、(5)記載のデバイス操作方法。
【0052】(7)ステップ(d)が、データを上記デ
バイス・ドライバにより、上記デバイスから上記デバイ
スのアドレスがマップされる上記アプリケーション・プ
ログラムのアドレス空間に移動するステップと、上記ア
プリケーション・プログラムにより上記データを上記ア
プリケーション・プログラムのアドレス空間の上記一部
から読出すステップを含む(4)記載のデバイス操作方
法。
【0053】(8)ステップ(d)が、上記デバイス・
ドライバが上記データを上記デバイスからバッファに転
送するステップと、上記アプリケーション・プログラム
が上記データを要求するステップと、上記デバイス・ド
ライバが上記データをバッファから、上記デバイスのア
ドレスがマップされるアプリケーション・プログラムの
アドレス空間の一部に移動するステップと、上記アプリ
ケーション・プログラムがデータをアプリケーション・
プログラムのアドレス空間の上記一部から読出すステッ
プとを含む(5)記載のデバイス操作方法。
【0054】(9)第1及び第2のコンピュータ・シス
テム間で通信するためのシステムであって、第1のコン
ピュータ・システム内の通信デバイスと、上記通信デバ
イスと第2のシステム間でデータを転送する通信手段
と、通信手段により上記通信デバイスに接続される第2
のコンピュータ・システム内の第2のデバイスと、上記
通信デバイスへのアクセスを制御するために第1のシス
テム内で実行されるデバイス・ドライバとを含み、上記
ドライバが、オペレーティング・システム・ソフトウェ
アとのインタフェースと、上記オペレーティング・シス
テム・ソフトウェアに応答して、上記通信デバイスと第
1のシステムの複数の並行に実行されるアプリケーショ
ン・プログラムとの間でデータを同時に転送する手段
と、上記オペレーティング・システム・ソフトウェアに
応答して、上記通信デバイスと第1のシステム内で実行
される第1のアプリケーション・プログラムとの間でデ
ータを排他的に転送し、第1のシステムの他の並行して
実行されるアプリケーション・プログラムによる上記通
信デバイスへのアクセスを阻止する手段とを含むシステ
ム。
【0055】
【発明の効果】以上説明したように、本発明によればデ
ータ処理環境において、アプリケーションがハードウェ
ア・デバイスとの最小可能対話時間を獲得することが可
能となる。
【0056】
【表5】 101 PREVENT INTERRUPTS AND APPLICATION SWAPPING 102 IF ALLNODE CHANNEL NUMBER N=1 103 THEN 104 IF NO ALLNODE CHANNELS ARE OPEN 105 THEN 106 SET ALLNODE CHANNEL 1 TO OPEN 107 ASSIGN ALLNODE ADAPTER ADDRESSES TO APPLICATION 108 SET SUCCEEDED (RO=0) 109 ELSE 110 SET ERRNO=ALLNODE ADAPTER BUSY 111 SET FAILED (RC=-1) 112 END 113 ELSE SIXTH LEVEL /*COMMENT*/ 114 IF ALLNODE CHANNEL 1 IS NOT OPEN 115 THEN 116 IF ALLNODE CHANNEL N IS NOT OPEN 117 THEN 118 SET ALLNODE CHANNEL N TO OPEN 119 SET SUCCEEDED (RC=0) 120 ELSE 121 SET ERRNO=ALLNODE CHANNEL IN USE 122 SET FAILED (RC=-1) 123 END 124 ELSE 125 SET ERRNO=ALLNODE ADAPTER IN USE BY LLPI 126 SET FAILED (RC=-1) 127 END 128 END 129 ALLOW INTERRUPTS AND APPLICATION SWAPPING 130 RETURN (RC)
【0057】
【表6】 201 IF ALLNODE CHANNEL NUMBER N IS OPEN 202 THEN 203 IF ALLNODE CHANNEL NUMBER N=1 204 THEN 205 RELEASE ALLNODE ADAPTER ADDRESSES 206 END 207 SET ALLNODE CHANNEL N TO CLOSED 208 SET SUCCEEDED (RC=0) 209 ELSE 210 SET ERRNO=ALLNODE CHANNEL NOT OPEN 211 SET FAILED (RC=-1) 212 END 213 RETURN (RC)
【図面の簡単な説明】
【図1】本発明の実施例を組込むデータ処理システムの
層を示す図である。
【図2】実施例の"一般ユーザ"モードでコマンドを処理
する時のステップを示す流れ図である。
【図3】実施例の"低待ち時間"モードでコマンドを処理
する時のステップを示す流れ図である。
【図4】デバイス・ドライバ"v7open"関数の流れ図であ
る。
【図5】デバイス・ドライバ"v7open"関数の流れ図であ
る。
【符号の説明】
10 アプリケーション 20 AIXファイル・システム・インタフェース 21、22 コンテキスト・スイッチ 30 AIXオペレーティング・システム 40 低待ち時間プログラミング・インタフェース(L
LPI)・コード 50 低待ち時間インタフェース 60 AIXデバイス・ドライバ・インタフェース 70 デバイス・ドライバ 80 IBMマイクロチャネル 90 アダプタ 100 スイッチ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジョージ・ウイリアム・ウィルヘルム、ジ ュニア アメリカ合衆国13760、ニューヨーク州エ ンドウェル、クレストウッド・コート 412

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】コンピュータ・システムのデバイスを操作
    する方法であって、 (a)上記コンピュータ・システムのオペレーティング
    ・システム(カーネル)により、プログラムを実行中の
    並行アプリケーションからの第1の(共用または一般ユ
    ーザ)モードで上記デバイスにアクセスするための要求
    を処理するステップであって、 上記オペレーティング・システムが、上記デバイスへの
    上記第1のモードでのアクセスを同時に要求するアプリ
    ケーション間の衝突を防止する処理ステップと、 (b)上記オペレーティング・システムにより、第2の
    (排他的)モードでの上記デバイスへのアクセスのため
    の最初のアプリケーション・プログラム要求を処理す
    る、上記要求をデバイス・ドライバに受渡すステップを
    含むステップと、 (c)上記デバイス・ドライバにより、他のアプリケー
    ション・プログラムからの上記デバイスへのアクセス要
    求を阻止するステップと、 (d)上記オペレーティング・システムによる介入無し
    に、上記アプリケーション・プログラムにより直接、上
    記デバイスにアクセスするステップとを含むデバイス操
    作方法。
  2. 【請求項2】ステップ(d)が上記アプリケーション・
    プログラムが上記デバイスに対する直接(低待ち時間)
    インタフェースを呼出すステップを含む、請求項1記載
    のデバイス操作方法。
  3. 【請求項3】上記デバイスに対するインタフェースが上
    記アプリケーション・プログラム内にリンクされる、請
    求項2記載のデバイス操作方法。
  4. 【請求項4】ステップ(a)及びステップ(b)が上記
    デバイス・ドライバに対するそれぞれの呼出しを含む、
    請求項1記載のデバイス操作方法。
  5. 【請求項5】ステップ(d)が上記デバイスのメモリ・
    アドレスを上記アプリケーション・プログラムのアドレ
    ス空間にマップするステップを含む、請求項1記載のデ
    バイス操作方法。
  6. 【請求項6】上記デバイスのアドレスがマップされる上
    記アプリケーション・プログラムのアドレス空間の一部
    にデータを移動することにより、上記アプリケーション
    ・プログラムが上記デバイスへデータを送信する、請求
    項5記載のデバイス操作方法。
  7. 【請求項7】ステップ(d)が、 データを上記デバイス・ドライバにより、上記デバイス
    から上記デバイスのアドレスがマップされる上記アプリ
    ケーション・プログラムのアドレス空間に移動するステ
    ップと、 上記アプリケーション・プログラムにより上記データを
    上記アプリケーション・プログラムのアドレス空間の上
    記一部から読出すステップを含む請求項4記載のデバイ
    ス操作方法。
  8. 【請求項8】ステップ(d)が、 上記デバイス・ドライバが上記データを上記デバイスか
    らバッファに転送するステップと、 上記アプリケーション・プログラムが上記データを要求
    するステップと、 上記デバイス・ドライバが上記データをバッファから、
    上記デバイスのアドレスがマップされるアプリケーショ
    ン・プログラムのアドレス空間の一部に移動するステッ
    プと、 上記アプリケーション・プログラムがデータをアプリケ
    ーション・プログラムのアドレス空間の上記一部から読
    出すステップとを含む請求項5記載のデバイス操作方
    法。
  9. 【請求項9】第1及び第2のコンピュータ・システム間
    で通信するためのシステムであって、 第1のコンピュータ・システム内の通信デバイスと、 上記通信デバイスと第2のシステム間でデータを転送す
    る通信手段と、 通信手段により上記通信デバイスに接続される第2のコ
    ンピュータ・システム内の第2のデバイスと、 上記通信デバイスへのアクセスを制御するために第1の
    システム内で実行されるデバイス・ドライバとを含み、
    上記ドライバが、 オペレーティング・システム・ソフトウェアとのインタ
    フェースと、 上記オペレーティング・システム・ソフトウェアに応答
    して、上記通信デバイスと第1のシステムの複数の並行
    に実行されるアプリケーション・プログラムとの間でデ
    ータを同時に転送する手段と、 上記オペレーティング・システム・ソフトウェアに応答
    して、上記通信デバイスと第1のシステム内で実行され
    る第1のアプリケーション・プログラムとの間でデータ
    を排他的に転送し、第1のシステムの他の並行して実行
    されるアプリケーション・プログラムによる上記通信デ
    バイスへのアクセスを阻止する手段とを含むシステム。
JP6005676A 1993-02-12 1994-01-24 デバイス操作方法 Expired - Lifetime JP2557189B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US1719793A 1993-02-12 1993-02-12
US017197 1993-02-12

Publications (2)

Publication Number Publication Date
JPH06301623A true JPH06301623A (ja) 1994-10-28
JP2557189B2 JP2557189B2 (ja) 1996-11-27

Family

ID=21781267

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6005676A Expired - Lifetime JP2557189B2 (ja) 1993-02-12 1994-01-24 デバイス操作方法

Country Status (3)

Country Link
US (2) US5671442A (ja)
EP (1) EP0610677A3 (ja)
JP (1) JP2557189B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007534073A (ja) * 2004-04-21 2007-11-22 レベル、ファイブ、ネットワークス、インコーポレーテッド ユーザーレベルスタック
US8573485B2 (en) 2006-04-05 2013-11-05 Sony Corporation Information processing apparatus and method and program for mediating applications

Families Citing this family (85)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5778424A (en) * 1993-04-30 1998-07-07 Avsys Corporation Distributed placement, variable-size cache architecture
US5901312A (en) * 1994-12-13 1999-05-04 Microsoft Corporation Providing application programs with unmediated access to a contested hardware resource
US5915131A (en) * 1995-05-05 1999-06-22 Apple Computer, Inc. Method and apparatus for handling I/O requests utilizing separate programming interfaces to access separate I/O services
US5615392A (en) * 1995-05-05 1997-03-25 Apple Computer, Inc. Method and apparatus for consolidated buffer handling for computer device input/output
US5675781A (en) * 1995-07-06 1997-10-07 Sun Microsystems, Inc. Augmenting volume management of information storage devices to handle direct access to storage devices
US5768618A (en) * 1995-12-21 1998-06-16 Ncr Corporation Method for performing sequence of actions in device connected to computer in response to specified values being written into snooped sub portions of address space
US5978856A (en) * 1996-01-26 1999-11-02 Dell Usa, L.P. System and method for reducing latency in layered device driver architectures
US5963737A (en) * 1996-04-18 1999-10-05 International Business Machines Corporation Interupt vectoring for trace exception facility in computer systems
US6078942A (en) * 1996-04-25 2000-06-20 Microsoft Corporation Resource management for multimedia devices in a computer
US5854890A (en) * 1996-10-15 1998-12-29 National Instruments Corporation Fieldbus function block shell with user selectable data ownership
US6802028B1 (en) 1996-11-11 2004-10-05 Powerquest Corporation Computer virus detection and removal
US5931935A (en) * 1997-04-15 1999-08-03 Microsoft Corporation File system primitive allowing reprocessing of I/O requests by multiple drivers in a layered driver I/O system
US5966543A (en) * 1997-06-26 1999-10-12 International Business Machines Corporation Method of using collaborative spinlocks to provide exclusive access to a resource in a multiprocessor computer system
US5938745A (en) * 1997-06-25 1999-08-17 Intel Corporation Arbitrator for modem in a system without shared process space that passes a duplicate handle to a first listening application with matching identification string
US5913073A (en) * 1997-10-10 1999-06-15 Emc Corporation Input/output driver for benchmark testing
DE19752615C1 (de) * 1997-11-27 1999-04-08 Siemens Nixdorf Inf Syst Verfahren und Anordnung zum Laden von Daten für grundlegende Systemroutinen eines Datenverarbeitungssystems
US6078747A (en) * 1998-01-05 2000-06-20 Jewitt; James W. Application program interface to physical devices
AU2570399A (en) * 1998-01-30 1999-08-16 3Com Corporation Software architecture for providing low level hardware device drivers from the user mode under multi-tasking operating systems
US6412031B1 (en) * 1998-02-10 2002-06-25 Gateway, Inc. Simultaneous control of live video device access by multiple applications via software locks and in accordance with window visibility of applications in a multiwindow environment
US6105101A (en) * 1998-05-06 2000-08-15 Compaq Computer Corporation 16 bit bios interrupt calls under 32 bit protected mode application
TW444162B (en) * 1998-06-30 2001-07-01 Sony Corp Information processing apparatus, information processing method, and recording medium
US9361243B2 (en) 1998-07-31 2016-06-07 Kom Networks Inc. Method and system for providing restricted access to a storage medium
US8234477B2 (en) 1998-07-31 2012-07-31 Kom Networks, Inc. Method and system for providing restricted access to a storage medium
US20020073218A1 (en) * 1998-12-23 2002-06-13 Bill J. Aspromonte Stream device management system for multimedia clients in a broadcast network architecture
DE69919992T2 (de) 1999-06-09 2005-01-20 Texas Instruments Inc., Dallas Verteilter Speicher mit programmierbarer Grösse
WO2001016707A1 (en) * 1999-08-31 2001-03-08 Cryptec Systems, Inc. Smart card operating system with interfaces
DE10009570A1 (de) * 2000-02-29 2001-08-30 Partec Ag Verfahren zur Steuerung der Kommunikation von Einzelrechnern in einem Rechnerverbund
US6886171B2 (en) * 2001-02-20 2005-04-26 Stratus Technologies Bermuda Ltd. Caching for I/O virtual address translation and validation using device drivers
US7171022B2 (en) * 2001-12-05 2007-01-30 Lockheed Martin Corporation Common method for communicating area information
US7231643B1 (en) * 2002-02-22 2007-06-12 Lexar Media, Inc. Image rescue system including direct communication between an application program and a device driver
US7024672B2 (en) * 2002-06-26 2006-04-04 Microsoft Corporation Process-mode independent driver model
US7646724B2 (en) 2003-05-12 2010-01-12 International Business Machines Corporation Dynamic blocking in a shared host-network interface
US7383364B2 (en) * 2003-07-31 2008-06-03 International Business Machines Corporation Device address locking to facilitate optimum usage of the industry standard IIC bus
KR100522724B1 (ko) * 2003-10-24 2005-10-18 주식회사 레인콤 이동식 멀티미디어 플레이어의 구동 시스템과 구동 방법,이동식 멀티미디어 플레이어 및 기록 매체
US7076637B2 (en) * 2003-10-29 2006-07-11 Qualcomm Inc. System for providing transitions between operating modes of a device
US7558723B2 (en) * 2003-12-12 2009-07-07 Microsoft Corporation Systems and methods for bimodal device virtualization of actual and idealized hardware-based devices
GB0404696D0 (en) * 2004-03-02 2004-04-07 Level 5 Networks Ltd Dual driver interface
GB0408870D0 (en) * 2004-04-21 2004-05-26 Level 5 Networks Ltd Processsing packet headers
GB0408868D0 (en) * 2004-04-21 2004-05-26 Level 5 Networks Ltd Checking data integrity
GB0408877D0 (en) * 2004-04-21 2004-05-26 Level 5 Networks Ltd Signalling data reception
US7117282B1 (en) * 2004-04-26 2006-10-03 Dgi Creations, Llc Method and apparatus for active isolation of communications ports
US7669050B2 (en) * 2004-06-24 2010-02-23 International Business Machines Corporation Method to enable user mode process to operate in a privileged execution mode
GB0420057D0 (en) * 2004-09-09 2004-10-13 Level 5 Networks Ltd Dynamic resource allocation
GB0506403D0 (en) 2005-03-30 2005-05-04 Level 5 Networks Ltd Routing tables
GB0505297D0 (en) * 2005-03-15 2005-04-20 Level 5 Networks Ltd Redirecting instructions
GB0504987D0 (en) * 2005-03-10 2005-04-20 Level 5 Networks Ltd Memory access
GB0505300D0 (en) 2005-03-15 2005-04-20 Level 5 Networks Ltd Transmitting data
EP1861778B1 (en) * 2005-03-10 2017-06-21 Solarflare Communications Inc Data processing system
US7552240B2 (en) 2005-05-23 2009-06-23 International Business Machines Corporation Method for user space operations for direct I/O between an application instance and an I/O adapter
US7464189B2 (en) * 2005-05-23 2008-12-09 International Business Machines Corporation System and method for creation/deletion of linear block address table entries for direct I/O
US7502872B2 (en) * 2005-05-23 2009-03-10 International Bsuiness Machines Corporation Method for out of user space block mode I/O directly between an application instance and an I/O adapter
US20060265525A1 (en) * 2005-05-23 2006-11-23 Boyd William T System and method for processor queue to linear block address translation using protection table control based on a protection domain
US7502871B2 (en) * 2005-05-23 2009-03-10 International Business Machines Corporation Method for query/modification of linear block address table entries for direct I/O
US20070005815A1 (en) * 2005-05-23 2007-01-04 Boyd William T System and method for processing block mode I/O operations using a linear block address translation protection table
US7752436B2 (en) * 2005-08-09 2010-07-06 Intel Corporation Exclusive access for secure audio program
US20070168567A1 (en) * 2005-08-31 2007-07-19 Boyd William T System and method for file based I/O directly between an application instance and an I/O adapter
US7500071B2 (en) * 2005-08-31 2009-03-03 International Business Machines Corporation Method for out of user space I/O with server authentication
US7657662B2 (en) * 2005-08-31 2010-02-02 International Business Machines Corporation Processing user space operations directly between an application instance and an I/O adapter
US7577761B2 (en) * 2005-08-31 2009-08-18 International Business Machines Corporation Out of user space I/O directly between a host system and a physical adapter using file based linear block address translation
GB0600417D0 (en) 2006-01-10 2006-02-15 Level 5 Networks Inc Virtualisation support
US8414228B2 (en) 2006-01-04 2013-04-09 Sgs Tool Company Rotary cutting tool
US7306408B2 (en) 2006-01-04 2007-12-11 Sgs Tool Company Rotary cutting tool
US20080288504A1 (en) * 2007-05-17 2008-11-20 Fisher Iii William W Methods, media, and systems for recording and reporting content usage
US8566565B2 (en) * 2008-07-10 2013-10-22 Via Technologies, Inc. Microprocessor with multiple operating modes dynamically configurable by a device driver based on currently running applications
US8380909B2 (en) * 2009-04-08 2013-02-19 Google Inc. Multiple command queues having separate interrupts
US8433845B2 (en) 2009-04-08 2013-04-30 Google Inc. Data storage device which serializes memory device ready/busy signals
FR2956226B1 (fr) * 2010-02-10 2012-12-14 Airbus Operations Sas Procede, programme d'ordinateur et dispositif de supervision d'un ordonnanceur pour la gestion du partage de temps de traitement dans un systeme informatique multitache
US20120167082A1 (en) * 2010-12-23 2012-06-28 Sanjay Kumar Direct sharing of smart devices through virtualization
US8516509B2 (en) * 2011-02-08 2013-08-20 BlueStripe Software, Inc. Methods and computer program products for monitoring system calls using safely removable system function table chaining
US9442732B2 (en) 2012-03-19 2016-09-13 Via Technologies, Inc. Running state power saving via reduced instructions per clock operation
US20140143864A1 (en) 2012-11-21 2014-05-22 Snoopwall Llc System and method for detecting, alerting and blocking data leakage, eavesdropping and spyware
EP2790102A1 (en) 2013-04-12 2014-10-15 ST-Ericsson SA Vibrator and audio resource sharing for mobile communication device
CN109063467A (zh) * 2013-05-27 2018-12-21 华为终端(东莞)有限公司 系统功能调用的方法、装置及终端
US9330011B2 (en) 2013-09-20 2016-05-03 Via Alliance Semiconductor Co., Ltd. Microprocessor with integrated NOP slide detector
US10019260B2 (en) 2013-09-20 2018-07-10 Via Alliance Semiconductor Co., Ltd Fingerprint units comparing stored static fingerprints with dynamically generated fingerprints and reconfiguring processor settings upon a fingerprint match
WO2015024674A1 (en) * 2014-03-06 2015-02-26 Polar Electro Oy Device power saving during exercise
US10146297B2 (en) 2014-03-06 2018-12-04 Polar Electro Oy Device power saving during exercise
US9755902B2 (en) 2014-05-20 2017-09-05 Via Alliance Semiconductor Co., Ltd. Dynamic system configuration based on cloud-collaborative experimentation
US9575778B2 (en) 2014-05-20 2017-02-21 Via Alliance Semiconductor Co., Ltd. Dynamically configurable system based on cloud-collaborative experimentation
JP5925250B2 (ja) 2014-07-07 2016-05-25 ユニオンツール株式会社 スクエアエンドミル
US9208349B1 (en) * 2015-01-13 2015-12-08 Snoopwall, Inc. Securing data gathering devices of a personal computing device while performing sensitive data gathering activities to prevent the misappropriation of personal user data gathered therewith
US10445257B2 (en) 2017-04-30 2019-10-15 Microsoft Technology Licensing, Llc Execution of subset of driver code in separate protection domain
US11443040B2 (en) 2019-03-08 2022-09-13 International Business Machines Corporation Secure execution guest owner environmental controls
US11475167B2 (en) 2020-01-29 2022-10-18 International Business Machines Corporation Reserving one or more security modules for a secure guest
US11533174B2 (en) 2020-01-29 2022-12-20 International Business Machines Corporation Binding secure objects of a security module to a secure guest

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0664536B2 (ja) * 1986-01-17 1994-08-22 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション 仮想端末サブシステムの制御方法
JPS62166420A (ja) * 1986-01-17 1987-07-22 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション 仮想端末制御方法
US5029077A (en) * 1986-01-17 1991-07-02 International Business Machines Corporation System and method for controlling physical resources allocated to a virtual terminal
US5083262A (en) * 1986-04-28 1992-01-21 International Business Machines Corporation Language bindings for graphics functions to enable one application program to be used in different processing environments
US4768150A (en) * 1986-09-17 1988-08-30 International Business Machines Corporation Application program interface to networking functions
US4855936A (en) * 1987-09-25 1989-08-08 International Business Machines Corp. Full-screen input/output application program interface
US4972368A (en) * 1988-03-04 1990-11-20 Stallion Technologies, Pty. Ltd. Intelligent serial I/O subsystem
US5226141A (en) * 1989-07-14 1993-07-06 Touch Technologies, Inc. Variable capacity cache memory
EP0419064A3 (en) * 1989-09-22 1992-08-05 International Business Machines Corporation Computer system having apparatus for providing pointing device independent support in an operating environment
JPH0831042B2 (ja) * 1990-02-13 1996-03-27 インターナショナル・ビジネス・マシーンズ・コーポレイション 周辺装置マネジャ、マルチタスクデータ処理システムおよびインターフェース方法
US5367680A (en) * 1990-02-13 1994-11-22 International Business Machines Corporation Rendering context manager for display adapters supporting multiple domains
US5396635A (en) * 1990-06-01 1995-03-07 Vadem Corporation Power conservation apparatus having multiple power reduction levels dependent upon the activity of the computer system
US5179666A (en) * 1990-06-07 1993-01-12 Unisys Corporation Block oriented peripheral device interface
US5421014A (en) * 1990-07-13 1995-05-30 I-Tech Corporation Method for controlling multi-thread operations issued by an initiator-type device to one or more target-type peripheral devices
US5220653A (en) * 1990-10-26 1993-06-15 International Business Machines Corporation Scheduling input/output operations in multitasking systems
JPH0695895A (ja) * 1990-11-19 1994-04-08 Internatl Business Mach Corp <Ibm> アプリケーシヨンプログラム装置及びその方法
US5307491A (en) * 1991-02-12 1994-04-26 International Business Machines Corporation Layered SCSI device driver with error handling circuit providing sense data from device directly to the driver on the occurrence of an error
US5265252A (en) * 1991-03-26 1993-11-23 International Business Machines Corporation Device driver system having generic operating system interface
US5301277A (en) * 1991-04-10 1994-04-05 Seiko Epson Corporation Method and apparatus for communicating peripheral data to/from minor operating systems running as subprocesses on a main operating system
US5245702A (en) * 1991-07-05 1993-09-14 Sun Microsystems, Inc. Method and apparatus for providing shared off-screen memory
US5291585A (en) * 1991-07-29 1994-03-01 Dell Usa, L.P. Computer system having system feature extension software containing a self-describing feature table for accessing I/O devices according to machine-independent format
US5319751A (en) * 1991-12-27 1994-06-07 Intel Corporation Device driver configuration in a computer system
US5513328A (en) * 1992-10-05 1996-04-30 Christofferson; James F. Apparatus for inter-process/device communication for multiple systems of asynchronous devices
US5339432A (en) * 1992-10-13 1994-08-16 Microsoft Corporation Method and system for providing user control of device driver configuration
US5432941A (en) * 1992-10-13 1995-07-11 Microsoft Corporation Method and system for dynamically configuring a software system using configuration groups

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007534073A (ja) * 2004-04-21 2007-11-22 レベル、ファイブ、ネットワークス、インコーポレーテッド ユーザーレベルスタック
JP4825794B2 (ja) * 2004-04-21 2011-11-30 ソーラーフレア コミュニケーションズ インコーポレーテッド ユーザーレベルスタック
US8573485B2 (en) 2006-04-05 2013-11-05 Sony Corporation Information processing apparatus and method and program for mediating applications

Also Published As

Publication number Publication date
US5671442A (en) 1997-09-23
EP0610677A2 (en) 1994-08-17
JP2557189B2 (ja) 1996-11-27
EP0610677A3 (en) 1995-08-02
US5535416A (en) 1996-07-09

Similar Documents

Publication Publication Date Title
JP2557189B2 (ja) デバイス操作方法
US6044415A (en) System for transferring I/O data between an I/O device and an application program&#39;s memory in accordance with a request directly over a virtual connection
US5675796A (en) Concurrency management component for use by a computer program during the transfer of a message
US5313581A (en) System and method for communication between windowing environments
US5764984A (en) System for multiple co-existing operating system personalities on a microkernel
JP2757961B2 (ja) 複数の中央処理装置間が対等の関係を有するデータ処理システム用の装置および方法
US8549521B2 (en) Virtual devices using a plurality of processors
US20130024595A1 (en) Pci express switch with logical device capability
US5029077A (en) System and method for controlling physical resources allocated to a virtual terminal
EP2711845B1 (en) PCI express switch with logical device capability
US5918050A (en) Apparatus accessed at a physical I/O address for address and data translation and for context switching of I/O devices in response to commands from application programs
JPS62500549A (ja) マルチプロセッサ・システムにおけるマルチプロセッサの動作を順序付ける方法および装置
JPH01200466A (ja) データ処理システム
JP2002222110A (ja) ストレージシステム及び仮想プライベートボリューム制御方法
US7844782B2 (en) Data processing system with memory access
US7275121B1 (en) System and method for hardware assisted resource sharing
US5659750A (en) Apparatus for context switching of input/output devices in responses to commands from unprivileged application programs
US7103528B2 (en) Emulated atomic instruction sequences in a multiprocessor system
JPS6364133A (ja) 情報処理システム
US5265251A (en) Mechanism for allowing a single operation to shift the focus between user applications having direct hardware level access to multiple displays in a virtual terminal environment
US7320044B1 (en) System, method, and computer program product for interrupt scheduling in processing communication
JPH07200494A (ja) 分散制御方式
JP2866588B2 (ja) 処理プロセス間で制御の移転を行うシステムおよび方法
JP2002175287A (ja) 排他制御装置及び排他制御方法
JPH06161861A (ja) ファイル処理制御システム