JPH09218844A - ダイナミック機能置換を有するデータ構造 - Google Patents
ダイナミック機能置換を有するデータ構造Info
- Publication number
- JPH09218844A JPH09218844A JP8266827A JP26682796A JPH09218844A JP H09218844 A JPH09218844 A JP H09218844A JP 8266827 A JP8266827 A JP 8266827A JP 26682796 A JP26682796 A JP 26682796A JP H09218844 A JPH09218844 A JP H09218844A
- Authority
- JP
- Japan
- Prior art keywords
- driver
- stream
- module
- data
- streams
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
- G06F9/4484—Executing subprograms
- G06F9/4486—Formation of subprogram jump address
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
Abstract
れの機能の基礎的な識別性を意識せずに、STREAM
Sがいろいろなモジュール又はドライバの機能を実行す
ることを可能にする。 【解決手段】 ダイナミック機能置換として参照される
STREAMSフレーム・ワークへの拡張性は、フレー
ム・ワークの変更を必要とせず、それぞれの機能の基礎
的な識別性を意識せずに、STREAMSがいろいろな
モジュール又はドライバの機能を実行することを可能に
する機能ポインタを含むデータ構造を使用する。これに
より、モジュールやドライバの書直しや修正の必要な
く、これらの機能の定義を置換し、STREAMSモジ
ュールとドライバの実行時の動作を変更する、単純でエ
レガントなメカニズムが提供される。
Description
ライズで通信サービスのフレーム・ワークに関連する。
特に、本発明は、ターミナルとホストコンピュータ間、
同一コンピュータ内のプロセス間、及び、異なるコンピ
ュータのプロセス間での通信を含む通信サービスを提供
するストリーム・フレーム・ワークに関連する。
トコルと色々なタイプの文字デバイス・ドライバーを実
行する産業上の基本のフレーム・ワークになった(S. R
ago, UNIX System V Network Programming, Addison We
sley professional computingseries (1993))。STR
EAMSサブシステムは、異なる種類の文字ベースのI
/Oを支援するために以前からUNIXオペレーティン
グ・システムの中に存在した異種でしばしば互換性のな
いメカニズムを統一するために設計された。特に、ST
REAMSはターミナルI/Oのサポートを提供するシ
ーリスト(clist)メカニズムに置き換わるものだ
った。
テムの中で、各ターミナル・ラインは、一つの関連する
処理エレメント(伝送制御手順と呼ばれる)を持つこと
ができる。伝送制御手順は、すべての特別な文字処理を
扱う。このように、ユーザがターミナルのデータストリ
ームの非定型的な処理を必要とするならば、伝送制御手
順を変えてもよいが、一時点で一つの伝送制御手順のみ
が一つのターミナルと関連する。
ストリームからデータストリームへ、モジュールと呼ば
れる中間の処理エレメントを「push」によって加わ
え、「pop」によって移すことができる。モジュール
はスタックされ、1つ以上のモジュールをデータストリ
ームの中で一度に使用することができる。これにより、
単純なタスクを実行する独立のモジュールが、UNIX
コマンドがシェル・パイプラインを通して接続されるの
と同じ方法で、より複雑なタスクを実行するのに有効な
方法で結合することができる。
理エレメント間でメッセージをやりとりすることによっ
て行う。データ・コピーによるコストのかかるオーバー
ヘッドを避けるため、メッセージのポインタだけが転送
される。メッセージは、タイプと関連プライオリティー
を持ち、その両方がメッセージの処理方法を示す。デー
タ転送装置を操作(ドライブ)する要求を、異なる文字
をベースとするサブシステムに関連付けるよりはむし
ろ、I/Oを実行するメッセージ転送の使用が、データ
転送装置をドライブするデータを作り出す方が良い。
装置からデータを読みたいときには、ドライバの読込ル
ーチンが起動され、同様に、ユーザがデータを書きたい
ときには、ドライバの書込ルーチンが起動される。ST
REAMSの中では、ドライバは通常、ユーザが、いつ
ストリームから読取りを行い、いつ書込みを行うか知ら
ない。書込みがメッセージとしてドライバに送り出され
ている間、データが有効になるまでその読取りが定型的
にブロック化される。
11のレベルでのプロセス12とカーネル13の中のデバイス
・ドライバ14との間に双方向性データパスを提供する。
ユーザのプロセスによって書かれたデータはドライバへ
向かってダウンストリーム15方向へ進む、そして、ドラ
イバによってハードウェアから受け取られたデータはユ
ーザによって検索されるためにアップストリーム16方向
へ進む。データがメッセージ中をアップストリーム及び
ダウンストリームのどちらの方向に進むとしても、ドラ
イバとモジュールは、データフローをバイト・ストリー
ムとみなすことができる。
とドライバ14の2つの処理エレメントから成る。ストリ
ーム・ヘッドは、ユーザ空間のアプリケーションとカー
ネル空間の他のストリームの間にインターフェースを提
供する一組のルーチンから成る。アプリケーションがS
TREAMSファイル記述子でシステム・コールをする
とき、ストリームは、起動されるルーチンか、 データ
・コピーの実行結果か、メッセージ生成か、又は制御操
作かを有する。ストリーム・ヘッドが、ユーザ空間とカ
ーネル空間の間にデータをコピーすることができるスト
リーム中の唯一のコンポーネントである。すべての他の
コンポーネントは、単にメッセージを通過することによ
ってデータ転送を達成し、ストリームのユーザと直接的
な相互作用から分離される。
エンド又はテイルで見つけられるドライバである。ドラ
イバは周辺装置を制御し、カーネルと装置間でデータを
転送する。ドライバがハードウェアで相互に作用するの
で、ドライバはハードウェア・ドライバと呼ばれる。も
う1種類のドライバ(ソフトウェア・ドライバ又はスー
ド・ドライバと呼ばれる)は、ハードウェアと関連しな
い。その代わりに、そのようなドライバは、通信プロセ
ス間でターミナルのようなインターフェースをエミュレ
ートするようなアプリケーションに、サービスを提供す
る。
変更と同じ方法ではできない。ドライバは、単にそれら
のオブジェクトファイルをカーネル・オブジェクトファ
イルでリンクすることによってカーネルに加えられるこ
とができる。一方、ストリーム・ヘッドは、カーネル・
プロパを供給されて、固定される。システムの中のあら
ゆるストリームで、同じストリーム・ヘッド処理ルーチ
ンが使用される。しかし、各ストリーム・ヘッドは、そ
れが支援する処理オプションを変えることによって小さ
い範囲へ変更可能である。
行列である(図2参照)。待ち行列は1つのコンポーネ
ントを次にリンクし、それによって ストリームを形成
する。ストリームの中の各コンポーネントは、少くとも
1対の待ち行列、すなわち読取り用(アップストリー
ム)のための1つの待ち行列(21又は23)と書込み用
(ダウンストリーム)のための1つの待ち行列(20又は
22)を含む。それらが上下へ流れるように、待ち行列
は、メッセージを記憶するための領域としての役目を果
たし、状況情報を含んで、メッセージを処理するために
使用されるルーチンのためにレジストリとして機能す
る。
てメッセージを通したい時は、待ち行列は次のコンポー
ネントを識別するために使用される。それから、次のコ
ンポーネント待ち行列は、そのコンポーネントにメッセ
ージを渡すために呼び出す機能を識別するために使用さ
れる。このように、各コンポーネントの待ち行列は、コ
ンポーネントと他のストリームとの間にインターフェー
スを供給する。
に動的に付加されるか、ストリームから移される中間の
処理エレメントである。モジュールは構造的にドライバ
に似ているが、通常は、ストリーム・ヘッドとドライバ
との間で通過しているメッセージ上で、何らかのフィル
タ処理を実行している。例えば、モジュールは1つのイ
ンターフェースと他との間でデータの暗号化や変換を実
行する。
ザがストリームをカスタマイズすることができる唯一の
方法ではない。また、ユーザは多重構成を確立すること
ができ、またそれを取り除くことができる。複数のスト
リームを、多重ドライバかマルチプレクサ40と呼ばれる
特別な種類のソフトウェア・ドライバの下にリンクする
(図4参照)。多重ドライバは、ドライバをアクセスす
るために開かれた上位のストリームとドライバの下にリ
ンクされる下位のストリームとの間でメッセージを発送
する。多重ドライバは、ウィンドウ・システムとでネッ
トワーキング・プロトコルを実行することによく適して
いる。ウィンドウ・システムは、複数のウィンドウと物
理端末の間でデータを多重送信する。ネットワーキング
は、複数のユーザと複数の伝送媒体との間に多重メッセ
ージのプロトコルを作る。
めに使用されている間、また、それらはプロセスと他の
プロセスを連結するために使用される場合がある。パイ
プは、ストリームとしてUNIX System V
リリース4の中で実行され、2種類のパイプ、すなわち
ネーミングされていないパイプとネーミングされたパイ
プがある。ネーミングされていないパイプ(または、匿
名のパイプと呼ばれる)は、ファイルシステム・ネーム
空間の中でエントリを持たない。パイプ・システム・コ
ールが、2つのストリーム・ヘッド17a、17bを割り当
て、各々の書込み待ち行列をもう一方の読取り待ち行列
に向けることによってネーミングされていないパイプを
つくる(図5参照)。
first-out)方式で読み出される故にFIFOと呼ばれる
ネーミングされたパイプも、mknodシステム・コー
ルを経てつくられる。それは、ファイルシステムの中で
名前を持ち、オープン・システム・コールでアクセスさ
れることができる。ネーミングされたパイプが、その読
取り待ち行列でその書込み待ち行列をポインティングす
る1つのストリーム・ヘッド17である(図6参照)。ネ
ーミングされたパイプに書かれたデータは、同じパイプ
の終端から読み出すことができる。
くパイプにある。最初に、ローカルなプロセス間通信
(IPC)が、遠隔あるいはネットワークされたIPC
と同じメカニズムを使用する。これは、ローカルIPC
接続を扱うために遠隔接続と同じものをアプリケーショ
ンに与える。したがって、ストリームに適用することが
できるほとんどのオペレーションは、パイプに適用する
ことができる。例えば、モジュールはパイプ上でより多
くの機能性を得るために後入れ先出しすることができ
る。次に、STREAMSに基づくパイプは、2つの代
わりに1つのパイプで2つのプロセス間の双方向通信が
できる全二重である。
AMSメッセージにポインタを渡すことによって発生す
る。メッセージはタイプ化され、そのタイプはメッセー
ジの目的とそのプライオリティを示す。タイプに基づい
て、メッセージは高いプライオリティか通常のプライオ
リティかが決まる。通常のプライオリティ・メッセージ
は、フロー制御とメッセージ待ち行列のために、さらに
プライオリティ・バンドに細分化される。
いデータは、ストリーム・ヘッドによるM_DATAメ
ッセージ中のパッケージである。これは、最も共通のメ
ッセージ・タイプである。ユーザが制御情報を送り出す
か受け取る必要がある場合に、M_PROTOメッセー
ジが使用される。制御情報は、ストリームの中のモジュ
ールかドライバから準備されて、そのコンポーネントに
よって解読されて、通常はコンポーネントを通しては送
られない。特別なメッセージ・タイプであるM_PCP
ROTOは、インターフェース承認のような高い優先制
御情報のために予約される。
ロックから成る。より複雑なメッセージは、複数のメッ
セージ・ブロックを結びつけることによってつくること
ができ、論理上これらはより大きいメッセージとみなさ
れる。1つのメッセージ・ブロックの中のデータは、次
のメッセージ・ブロックの中のデータに隣接しているよ
うに見られる。メッセージ構造は、通常、ユーザ・レベ
ル・アプリケーションに透過的である。これに対する一
つの例外は、制御情報とユーザ・データを含む複雑なメ
ッセージを扱っているときである。
ネルのサブシステムであるので、カーネルによって供給
されたシステム環境を理解することは、重要である。S
TREAMSドライバとモジュールは、STREAMS
サブシステムと他のカーネルによって強要された制約を
守らなければならない。Device Driver Interface/Driv
er-Kernel Reference Manual, Prentice-Hall, Englewo
od Cliffs, NJ ("DDI/DKI")は、エントリ・ポイント・
ドライバとモジュールとがカーネルの中で作用するため
に定義されなければならないのと同様に、ドライバとモ
ジュールによる使用のためにカーネルによって供給され
たすべてのデータ構造とインタフェース・ルーチンとを
定義する。
立のインターフェースに言及する。それは、オペレーテ
ィング・システムの同じバージョンのために、異なるハ
ードウェア・アーキテクチャに渡って互換性を促進す
る。DDI部分が、プロセッサ特性とプラットホーム特
性のインターフェースに言及する。それは、あるリリー
スから他のリリースまでの特別なハードウェア・アーキ
テクチャのために互換性を促進する。インターフェース
は、DDI、DKI、又は両方に属すことができる。各
システム・インプリメンテーションは、DDI又はDK
Iのそれ自身のバージョンを含む。すべてのシステム
は、同じDKIを共有する。同じプロセッサ・タイプを
使用しているすべてのシステムは、いくつかのプラット
ホーム特性のインターフェースを除いて同じDDIを持
つ。
とロギング機能を付加するようなSTREAMS拡張に
関して、サード・パーティ・プロバイダは、必然的に、
そのようなトレーシングとロギングを可能にするマクロ
をSTREAMSに加えるためにそれらのコードのすべ
てを修正することを要求される。このことは、標準規格
への書込みに対して開発者がそのようなプラットホーム
のために特別に何かをしなければならないので、特別な
プラットホームに移行することを決める開発者の数を制
限することとなる。このように、開発者は主に標準のコ
ードを使用することを選択する。
・ワークに拡張が加えられるときはいつでも、例えばシ
ステムがトレーシングかロギングであるかどうかをチェ
ックすることが必要になるので、パフォーマンス劣化が
生じる。通常は参照されない幾つかのグローバル変数に
ついてチェックする必要があるため、そのようなチェッ
クが実行されるまで、キャッシュ・ミスやCPUの機能
停止といったようなパフォーマンス劣化が生じる。グロ
ーバル変数が参照されているならば、それは必然的にシ
ステムのキャッシュになく、キャッシュ・ミスになる。
高速処理プロセッサでのキャッシュ・ミスは、プロセッ
サ機能停止に至り、システムの効果的なパフォーマンス
を損なうこととなる 。
性の複雑性や欠落とパフォーマンス低下といった2つの
劣化なく、いろいろな拡張又はオプションが容易に使用
可能であるSTREAMSフレーム・ワークを提供する
ことである。
MSフレーム・ワークに、ダイナミック機能置換として
参照される拡張性を提供することである。
めに、STREAMSフレーム・ワークは、フレーム・
ワークの変更を必要としないか又はこれらの機能がそれ
らの基礎の識別性を越えて実際にどの様に機能するかを
理解することなく、STREAMSがいろいろなモジュ
ールやドライバ機能を実行するのを許可する機能ポイン
タを含むデータ構造を使用する。ダイナミック機能置換
は、これらの機能定義を置き換え、そして、モジュール
やドライバの再書込又は修正を要求することなく、ST
REAMSモジュールとドライバの実行時の動作を変え
る、簡単でエレガントなメカニズムを提供する。ここで
記述されている拡張性とともに、アプリケーションの開
発者、サポータ、及びカスタマに、STREAMSモジ
ュールとドライバを開発し、修正し、処理するためのダ
イナミック・メカニズムを提供する。
能置換として参照されるSTREAMSフレーム・ワー
クに拡張性を供給する。上述のように、STREAMS
フレーム・ワークは、フレーム・ワークの変更を必要と
しないか又はこれらの機能がそれらの基礎の識別性を越
えて実際にどの様に機能するかを理解することなく、ST
REAMSがいろいろなモジュール又はドライバ機能を実行
するのを許可する機能ポインタを含むデータ構造を使用
する。ダイナミック機能置換は、これらの機能定義を置
き換え、そして、モジュールやドライバの再書込又は修
正を要求することなく、STREAMSモジュールとド
ライバの実行時の動作を変える、簡単でエレガントなメ
カニズムを提供する。
プリケーションの開発者、サポータ組織、及びカスタマ
は、STREAMSモジュールとドライバを開発し、修
正し、処理するためのダイナミック・メカニズムを供給
される。例えば、トレーシング又はロギング機能が実際
にストリームの中で割込み可能な時に負わされる、トレ
ーシング又はロギングと関連するパフォーマンス劣化の
ようなシステム効率が、全面的に最適化される。
そのシステムの内のすべてを変えることなく、開発者
が、オリジナルの実行パスを増やし、又は完全に置き換
えることができる。そのような新しい機能性は、例えば
エラー・キャッチャであってもよく、あるいは、アプリ
ケーションがX/Openの適合レベルを必要とし、モ
ジュール又はドライバがこのレベルに一致しないデフォ
ルト・バージョンを使用する時のような、モジュール又
はドライバ特定の適合バージョンを使用する特別な場合
であってもよい。開発者は、モジュール又はドライバの
適合バージョンが、システム上で複数の要求を満たすの
を手伝うアプリケーション・インスタンス単位毎に置換
されることを許可する。これは、今日のSTREAMS
インプリメンテーションで通常可能な特徴でない。
ステムであるので、それに記載された技術の実際の用法
は明らかに不明瞭であり、カーネル又はネットワーキン
グのプロトコルがどのように働くか理解することも明確
でない。以下に本発明を理解するために十分な予備知識
を持つ目的のためにサンプル例を示す。
ションは、与えられたネットワーク・ドライバかモジュ
ールの範囲内でトレーシングとロギング機能を含むため
に要求に応答する。あらゆるメッセージのために、メッ
セージがトレースされるかロギングされる必要があるか
どうかを決定することが必要であるので、コスト的には
かなり軽いウエイトであるこれらの機能が、まだパフォ
ーマンス劣化を包含する。それに加えて、もしサード・
パーティ・コードがこれらのマクロを追加するために修
正されなければ、サード・パーティ・コードは、そのよ
うな価値のあるトレーシングとロギングのユーティリテ
ィを使用することができない。それはサポートとメンテ
ナンスにコストがかかるので、ほとんどの開発者は、こ
の修正をすることを好まない。
るような特別なSTREAMSインスタンスを検査する
ために要求されるだけである。今日のトレーシングとロ
ギングのメカニズムにおいては、このことは可能でない
し、特別なインスタンスのために応答するドライバやモ
ジュールのために複雑なコードを書かないということは
可能でない。ダイナミック機能置換は、すべてのモジュ
ールかドライバのインスタンスの置換を許可するか、又
はSTREAMS待ち行列を基準に置換するかを許可す
る。これは、開発者、カスタマ、及びサポータが、特別
なサブシステムのすべての他のユーザに影響を与えるこ
となく、それらの置換機能を微調整することを許可す
る。特別なインスタンスのためのそのような微調整は、
異なるストリーム・インスタンス上で実行している他の
アプリケーションが従来通りにパフォーマンス劣化なし
で実行し続けるように、他のインスタンスのパフォーマ
ンスに影響を及ぼさない。
って、ユーザは、モジュールかドライバに変更を必要と
することなく、まだオリジナルの実行パスを実行してい
る間、すべてのトレーシングとロギング・サービスを含
む新しい機能を供給することができる。実際、これらの
新しい機能を拡張することによって、ドライバかモジュ
ールに書き直すことを要求することなく、適宜に、より
フレキシブルなトレーシングとロギング機能を提供する
ことが、可能である。これはまた、トレーシングとロギ
ング機能が必要でないときには、パフォーマンス劣化が
ないことを意味する。
いる一般的な機能を手作業で置換する要求に対してカス
タマイズされる新しいトレーシングとロギング機能を、
サード・パーティ開発者が作ることを許可する。このこ
とは、何千もの接続を管理している大きいネットワーク
・システムのために、あるいは、多重コンピュータ構成
の範囲内で、すべての他の接続かドライバ・インスタン
スのためにパフォーマンス劣化を払うことなく、特別な
事象のみをトレースするためか特別な条件の下でトレー
シング機能をカスタマイズすることが可能であることを
意味する。
能というこの新しい機能の実際の内容が開発者まで及ん
でいるので、このサポート機能は、特別な問題を目標と
するために、トレーシングとロギングでないカスタム・
エラー・キャッチャを適用することができる。実際、既
知のSTREAMSインプリメンテーションでは現在不
可能な非常に有益なカスタマー・サポートとパッチング
戦略とに至るモジュールかドライバの大規模な置換の代
わりにインスタンスを基準にして、パッチを適用するこ
とができる。
ン又は他のストリームのスタックの独立したモジュール
若しくはドライバを操作することができるモジュールと
ドライバの範囲内で、問題のある状況をつくることは、
カーネル開発者のための最も難しい問題の一つである。
現在のテスト・メカニズムは、特別なパスのためのモジ
ュールを操作する特別なテスト・ドライバとカスタムI
/Oコントロール(ioctls)に依存しており、非
常に限定的で、開発や保守が難しい。
は、作成されて送り出されたメッセージと内在するタイ
ミングを制御することによって、モジュールやドライバ
をブラック・ボックス・テスト・ターゲットとしてみな
すことができる。このようなカプセル化は、1つのパス
へテストを集中させ、パス処理の柔軟性と制御性の増加
が実現する。これはより高品質なモジュールやドライバ
を生み、総合的な開発とテスト回数が減らされる。
ード・パーティ会社から特別なツールを必要とすること
なくSTREAMSに基づくモジュールやドライバを開
発することを可能とする。ダイナミック・ロードの可能
なカーネル・モジュールが一般的に有効になれば、ダイ
ナミック機能置換は、アンロードやリロードによるカス
タマの生産性ロスを引き起し、また可能な限りそのカス
タマを速く簡単に支援するソフトウェア開発者の能力を
限定するモジュールやかドライバを要求することなく、
上述の用法のいずれかを適用するためのクイック・メカ
ニズムを提供する。
機能置換の主要な利点は: ・パフォーマンス劣化なしで、トレーシングやロギン
グ、又は他の機能タイプが実行される。 ・トレーシングやロギングのような機能を利用するため
のモジュールやドライバの特別な変更を要しない。 ・サポータは、より簡単に特別なエラー・キャッチャを
適用することができ、パッチが正しく働いているか否か
を検査しているときシステムのすべてのユーザに影響を
与えることなくパッチを適用することができ、それによ
って、カスタマのシステム上での影響を減らすこととな
る。 ・モジュール単位、ドライバ、又は待ち行列インスタン
スのレベルまで下げた、起動のための特別な状況をター
ゲットとすることができる。 ・製品品質を改善して、開発時間を短くする、新しいツ
ールを提供する。
置換は、標準のSVR4.2 Device Driver ReferenceのST
REAMSデータ構造を使用するが、本発明は、アプリ
ケーションのための他のデータ構造及び他のフレーム・
ワークにも適用される。本発明の実施例の中で処理され
たデータ構造は、ストリームタブ(streamtab)とキュー
イニット(qinit)構造である。各モジュールやドライバ
は、キューイニット構造にポインタを含むストリームタ
ブ構造を定義する。
レーム・ワークによってつくられる読取り、書込み、読
取りマルチプレクサ、及び書込みマルチプレクサの待ち
行列用である。
ズ、プット、サービス、及びSTREAMSフレーム・
ワークによって待ち行列のオーナ、即ちモジュールかド
ライバ上で起動される管理上の機能のための機能アドレ
スを含む。
は、モジュールやドライバの開発者によって実際に書か
れ、ストリーム上を上方や下方に流れるメッセージのよ
うな現在のアプリケーション実行パスに基づくフレーム
・ワークによって、自動的に実行される。STREAM
Sフレーム・ワークがこれらのデータ構造のすべての領
域を知っていて、アプリケーション又はモジュールやド
ライバと独立にそれらにアクセスするので、ダイナミッ
ク機能置換は、新しい機能アドレスを定義する代替スト
リームタブとキューイニット構造にこれらの構造アドレ
スを再設定する。デフォルトとして、STREAMSフ
レーム・ワークは、トレーシングとロギング機能のため
の標準の代替ストリームタブのような拡張機能を提供す
ることができる。
本法則を理解するために、以下に基本的なStreamsフレ
ーム・ワーク・データ構造を示す。最も重要な3つのデ
ータ構造は、以下の通りである。
ールドは、一般にDDI(上記について論じたデバイス
・ドライバ・インタフェース)として参照されるデバイ
ス・ドライバ・リファレンス SVR4.2によって、標準化
されている。
仕様 新しいstr_alt_install()ルーチンは、Streamsモジュー
ルやドライバのために代替ストリームタブのものを構成
する。フラグ・パラメーターは、それがモジュールかド
ライバであるかどうか指定する:
で、失敗の場合は−1で返る。
fooドライバは、トレーシング、デバッギングとパフォ
ーマンスの測定のために以下の代替ルーチンを持つ:
wsrv、open及びcloseそれぞれのルーチンを定義する。
次に、キューイニット構造を、以下に示す:
のものが、定義される。次に、代替ストリームタブのも
のを定義する:
r_alt_install()によって構成される:
合は、str_alt_install(name,flags,n,streamtabs)が失
敗となる: ・ネーム(name)が空である。 ・nが否定である。 ・nが肯定的であるが、ストリームタブ(streamtabs)が
空である。 ・フラグが、STR_IS_MODULE又はSTR_IS_DEVICEを含まな
い。 ・ネームによって指定されたモジュールやドライバが、
設置されなかった。 ・代替ストリームタブがすでに設置されて、モジュール
やドライバのアクティブ・インスタンスがある。
・インスタンスがあっても現在設置された代替ストリー
ムタブがない場合には、str_alt_install()は代替スト
リームタブが設置されることを許可する。すでに設置さ
れた代替ストリームタブを変えるかアンインストールす
るために、モジュールやドライバのすべてのアクティブ
・インスタンスは、最初に閉じられなければならない。
代替ストリームタブをアンインストールすることは、st
r_alt_install(name,flags,0,NULL)を呼び出すことによ
ってされる。
他に、通常のストリームタブが構成されるとき自動的に
構成される各Streamsモジュールやドライバのために、
STREAMSはデフォルト代替ストリームタブを自動
的に供給する。たとえモジュールやドライバのための開
発者供給の代替ストリームタブがなくても、このデフォ
ルト代替ストリームタブが存在する。デフォルト代替ス
トリームタブのキューイニットのすべての内容は、通常
のストリームタブのそれに置かれたルーチンを除いて同
一である。デフォルト代替ストリームタブの置かれたル
ーチンを以下に示す:
ールやドライバのストリームタブが持つストリームを交
替するために使用される。ioctlコマンドの中の一つが
モジュールのアクティブ・インスタンスを変えるために
使用され、そして、他のioctlコマンドは、モジュール
の将来のインスタンスを変えるために使用される。
ctlコマンドであり、そして、それは、ターゲット・ス
トリームのオーナか超特権のある管理者がモジュールや
ドライバの与えられたアクティブ・インスタンスのため
にキューイニット・ルーチンを交替することを許可す
る。argは、以下のメンバを含むストラルトアクティブ
(straltactive)構造を指さなければならない:
ターゲット・モジュールやドライバのネームであり、そ
して、str_install()かstr_alt_install()の中で通過さ
れたネームで突き合わされる。 ・alt_flagsは、ターゲットがモジュールかドライバで
あることを示す。 ・alt_majorとalt_minorの対は、ターゲット・モジュー
ルやドライバが探索されるストリームを指定する。alt_
majorがALT_OWN_MAJORであるならば、alt_minorは無視
される、そして、このioctlが呼び出されるストリーム
はターゲット・ストリームである。alt_majorがALT_OWN
_MAJORでないならば、呼出し元の証明がチェックされ
る、そして、特権ユーザーだけが次に進むことを許可さ
れる。alt_minorがALT_ALL_MINORSであるならば、alt_m
ajorによって指定されたすべてのアクティブ・ストリー
ムが、ターゲット・ストリームである。特権ユーザーは
必然的に、任意のストリームのモジュールやドライバを
変えるために、すべてのSTREAMSインプリメンテーショ
ンの標準部品であるストリーム管理ドライバ(「SA
D」)を使用することができる、しかし、それはSAD
ドライバである必要はない。SADドライバはシステム
の中であらゆるストリームを知っているSTREAMS
管理ドライバである。そして、それは各ストリームがど
こに位置するか知っている。 ・alt_indexフィールドは、どの代替ルーチンが使用さ
れることになっているか指定する。もしモジュール・コ
ンフィギュアNの代替ストリームタブがstr_alt_instal
l()経由ならば、それは以下の値の中で一つである:
トされる: EACCES alt_majorはALT_OWN_MAJORでなく、ユーザはsu
per_privilegeを持たない。 EFALUT argは、割当られたアドレス空間の外側を示
す。 EINVAL alt_name、alt_major、alt_minor、alt_flag
s、又はalt_indexは、不適当である。
ームのモジュールやドライバのキューイニット・ルーチ
ンを交替することを許可するために、I_ALTSTRTAB_ACTI
VE ioctlは、マルチプレクサの下にリンクされたストリ
ームに呼び出される。例えば下位のmuxルーチンを交
替するために、I_ALTSTRTAB_ACTIVE ioctlは、マルチプ
レクサのネームを指定している下位のストリームに呼び
出される。
ルーチンを交替するのを許可するために、マルチプレク
サの下にリンクされるストリームに、I_ALTSTRTAB_ACTI
VE ioctlは、呼び出される。
ドであり、それはモジュールやドライバのその後にオー
プンされたインスタンスのキューイニット・ルーチンを
変える。このコマンドも代替ストリームタブによって指
定されたモジュールに送り出されるモジュール情報を変
える。即ち、モジュールやドライバの次のオープン・イ
ンスタンスは代替ストリームタブ(代替キューイニット
のものと代替モジュール情報)を使用する。このioctl
コマンドは、モジュールやドライバのアクティブ・イン
スタンスに影響を及ぼさない。argは、以下のメンバを
含むストラルトフューチャ(straltfuture)構造を指さな
ければならない:
ドは、上述のように記述される。フェイル時、errnoは
以下の値にセットされる: EACCES ユーザは、超特権を持たない。 EFALUT argは、割当られたアドレス空間の外側を示
す。 EINVAL alt_name、alt_flags、又はalt_indexは、不適
当である。
ーチン、即ち、書込み側とmux読取り側とmux書込み側の
ために、ここで記述されたダイナミック機能置換メカニ
ズムが同様に作動する。モジュールのインスタンスでな
くモジュール毎に供給されるストリームタブのものを以
下に示す。 ・オリジナルの通常のストリームタブ。 ・デフォルト代替ストリームタブ。モジュールがstr_al
t_install()を通してインストールした代替ストリーム
タブのもの。
ドライバのための一つのmodsw構造がある。新しい
struct modswを次に示す:
しく記述されたQUEUE_KERNEL_FIELDSを持つ:
_FUTRUE ioctlのためのアルゴリズムの要素を、次に示
す:
のために本発明に従ってダイナミック機能置換を実行す
るデータ構造を示しているブロック構成図である。双方
向性データパス13を供給するコンピューターシステム11
の中で、データ構造10が、ユーザ・プロセスと、動的に
追加されるか移される中間処理エレメントであるモジュ
ール14と、前記データ経路と、及びデバイスドライバ15
との間で実行される。デバイス・ドライバは、システム
・カーネル18の中のレジデントであって、前記カーネル
と装置16の間にデータを伝送するために前記装置16を制
御する。ユーザ・プロセスによって書かれたデータはダ
ウンストリームをドライバの方へ進む、そして、ドライ
バによって装置から受け取られたデータはユーザ20で検
索されるためにアップストリームを進む。
_install()にモジュールやドライバをインストールする
ために使用されるユーティリティを通して、モジュール
やドライバがインストールされたあと、移動中に機能を
置換することを簡単に図8に示している。図8に示され
たデータ構造は、アプリケーション要求を基礎としてい
る。本発明の実施例は、容易性を追加するだけでなく
て、マルチプロセッサ・インプリメンテーションや標準
化に関連する問題を回避するデータ構造を主に改善す
る。そのような構造がモジュールやドライバの開発者に
よってでなくSTREAMSフレーム・ワークによって
制御されるので、これらのデータ構造は、時間の経過や
タイミングを考慮せずに更新される。更に、標準の構造
を使用することによって、開発者が専門のトレーニング
をする必要がなく、ここで記述された本発明に従ってそ
れらのプロダクトが実行される。このように、本発明は
開発時間の速度を上げて、費用を減らして、開発者の参
入をより好適にする。
かドライバのインスタンスを実行する通常機能110と、
オプションのモジュールかドライバのインスタンスを実
行する少くとも一つの代替機能120、130と、モジュール
とドライバに変更を必要とすることなくオリジナルの実
行パスか新しい実行パスを実行し、通常機能を少なくと
も一つの代替機能で動的に置換する制御コマンドを生成
するコントローラー140と、を含む。
事象だけを又は特別な状況の下にトレースするためにシ
ステム・トレーシング機能をカスタマイズする機能や;
指定されたシステム問題を対象とするためにカスタム・
フェイル・キャッチャを適用するためにサポート機能を
供給する機能や、インスタンス単位毎にパッチを適用す
る機能や、シングル・データ・パスをテストすることを
許可しデータ・パス処理の柔軟性と制御性が増加するこ
とを許可する機能や、あるいは、すべてのモジュールや
ドライバのインスタンスの置換かインスタンス単位毎の
置換を許可する機能、を含むことができる。
9の中で実行される。その中で、各モジュールかドライ
バがキューイニット構造にポインタを含むストリームタ
ブ構造を定義する(図8参照)。データ構造の中で、キ
ューイニット構造が読取り、書込み、及び読取りマルチ
プレクサのためにあり、キューイニット構造がopen、cl
ose、put、及びserviceの機能アドレスを含み、そし
て、管理機能がSTREAMSフレーム・ワークによっ
てモジュールかドライバ上で呼び出される。キューイニ
ット構造内で定義された機能は、現在のアプリケーショ
ン実行パスに基づくSTREAMSフレーム・ワークに
よって、自動的に実行される。
ストリームタブへの前記構造のアドレスと新しい機能ア
ドレスを定義するキューイニット構造を再設定する制御
コマンドを生成する。本発明の一つの実施例の中で、デ
フォルト代替ストリームタブのキューイニット構造のす
べての内容は、putルーチンを除いて通常のストリー
ムタブのそれらと同一である。
ライバのストリームタブが持つSTREAMSを代替するため
に使用される少くとも一つのSTREAMS ioctlコマ
ンドや、モジュールのアクティブ・インスタンスを変え
るために使用されるioctlコマンドや、モジュールの将
来のインスタンスを変えるために使用されるioctlコマ
ンドを含む制御コマンドを生成する。
義するMODSWテーブル100を含む。MODSWテー
ブルの中で、ポインタが異なるストリームタブ110、12
0、130にある。ここで記載されたデータ構造は、MOD
SWテーブル(デフォルト代替ストリームタブ120を選
択するために使用される例えばd_default_altエント
リ)に少くとも一つの新しいストリームタブ・エントリ
を追加する。特別なドライバかモジュールがシステムに
インストールされるとき、ユーザか開発者は、それらが
そのデフォルトにあって欲しいことを定義することがで
きる。それから、ここで記述されたデータ構造は、スト
リームタブのリンク・リストを通して幾つかの代替スト
リームタブを許可する。このように、ユーザが適合テス
トや機能テストを実行したい場合、システムをリロード
することは必要でない。むしろ、新しいストリームタブ
を選択することのみが必要となる。
機能かオプションのデータ構造を追加するすることがで
きる。例えば、ストリームが各待ち行列側に開かれると
き、(上述のように)読取り待ち行列と書込み待ち行列
がある。読取り待ち行列の中で、参照されたポインタ
が、待ち行列情報としてある。待ち行列情報が、他のス
トリームタブの後ろをポイントすることによって、移動
中のこれらの代替ストリームタブのいずれかを選択する
ことができる。デフォルトで、システムは特定のストリ
ームタブ(例えばノーマル・ストリームタブ110)を選
択する。しかし、望む場合、待ち行列ポインタを、シス
テムの範囲内で構成される代替ストリームタブ120、130
のいずれかにセットすることができる。ユーザ空間の見
解からは、どのストリームタブが選択されることになっ
ているか指定しろという1つ又は複数のIOCTLコマ
ンドを生成するコントローラーを実行することが必要な
だけである。そのような選択の結果、STREAMSフ
レーム・ワークの変更、即ち、アプリケーションの停止
は、必要でない。このように、STREAMSフレーム
・ワーク自身が、そのような代替機能と拡張機能を実行
するために適応させられる。付加IOCTLコマンドを
使用可能にすることが必要なだけで、定義済み機能を含
むデータ構造がつくられる。
rstrは、現在のストリームタブを示す。このように、代
替ストリームタブが選択されて、システムが現在の状態
に復帰されるとき、ポインタd_curstrは、システムを現
在のストリームタブの後ろへセットする。それゆえに、
例えば、トレーシングやデバッギングやタイム・スタン
プのためのキューイニットや、拡張又はオプション機能
をインストールするための代替ストリームタブや、特定
のシステム・テストのためのユーザ又は開発者によって
呼び出されたサンプル・コードの構造を含む本発明に従
って、図8にテンプレートのブロック概要図を示す。
処理エレメントであるモジュール、データ・パス、及び
デバイス・ドライバとの間に双方向性データパスを提供
するコンピュータ・システムで実行されるデータ構造で
あって、前記デバイス・ドライバが、システム・カーネ
ルの中に常駐し、前記カーネルとの間でデータを伝送す
る周辺装置を制御し、前記ユーザ・プロセスによって書
き込まれたデータが前記ドライバ方向へダウンストリー
ム上を進み、前記ドライバによって前記デバイスから受
け取られたデータがユーザによって検索されるためにア
ップストリーム上を進み、特定のモジュール又はドライ
バのインスタンスを実行する通常機能手段と、オプショ
ンのモジュール又はドライバのインスタンスを実行する
1又は複数の代替機能手段と、前記モジュールと前記ド
ライバに変更を必要とすることなく、今まで通り通常の
実行パスか、あるいは、新しい実行パスによる処理で、
前記通常機能手段を前記1又は複数の代替機能手段に動
的に置換する制御コマンドを生成するコントローラと、
を有する前記データ構造。
でだけトレースを行うシステム・トレーシング機能をカ
スタマイズする代替機能手段を有する(1)記載のデー
タ構造。 (3)更に、特定のシステム問題を目的とするカスタム
・フェイル・キャッチャを適用するサポート機能を提供
する代替機能手段を有する(1)又は(2)記載のデー
タ構造。 (4)更に、インスタンス単位毎にパッチを適用する代
替機能手段を有する(1)乃至(3)記載のデータ構
造。 (5)更に、シングルのデータ・パスでテストが可能と
なり、データ・パス実行の柔軟性と制御性が増加された
代替機能手段を有する(1)乃至(4)記載のデータ構
造。 (6)更に、モジュールかドライバ何れかの全てのイン
スタンスを置換するか、又はインスタンス単位毎に置換
することができる代替機能手段を有する(1)乃至
(5)記載のデータ構造。 (7)前記システムがSTREAMSフレーム・ワーク
の中で実行される(1)乃至(6)記載のデータ構造。 (8)各々のモジュール又はドライバが、キューイニッ
ト構造にポインタを含むストリームタブ構造を定義する
(7)記載のデータ構造。 (9)前記キューイニット構造が前記STREAMSフ
レーム・ワークによってつくられる読取り、、書込み、
読取りマルチプレクサ、及び書込みマルチプレクサの待
ち行列に使用される(8)記載のデータ構造。
STREAMSフレーム・ワークによってモジュール又
はドライバ上で呼び出されたオープン、クローズ、プッ
ト、サービス、及び管理上の機能ための機能アドレスを
含む(8)記載のデータ構造。 (11)機能が、現在のアプリケーション実行パスに基
づく前記STREAMSフレーム・ワークによって自動
的に実行される前記キューイニット構造の範囲内で定義
され、前記コントローラが、代替ストリームタブへ前記
構造のアドレスを再設定する制御コマンドと新しい機能
アドレスを定義するキューイニット構造を生成する
(8)記載のデータ構造。 (12)デフォルト代替ストリームタブの前記キューイ
ニット構造の全ての内容が、プット・ルーチンを除いて
通常のストリームタブのものと同一である(11)記載
のデータ構造。 (13)更に、前記コントローラが、STREAMSモ
ジュール又はドライバのストリームタブの内容を動的に
代替するために使用される1又は複数のSTREAMS
ioctlコマンドを有する(8)記載のデータ構
造。 (14)更に、前記コントローラが、モジュールのアク
ティブ・インスタンスを変えるために使用されるioc
tlコマンドを有する(13)記載のデータ構造。 (15)更に、前記コントローラが、モジュールの将来
のインスタンスを変えるために使用されるioctlコ
マンドを有する(13)記載のデータ構造。
れ移される中間処理エレメントであるモジュール、デー
タ・パス、及びデバイス・ドライバとの間に双方向性デ
ータパスを提供するコンピュータ・システムにおいて、
データ構造を実行する方法であって、前記デバイス・ド
ライバが、システム・カーネルの中に常駐し、前記カー
ネルとの間でデータを伝送する周辺装置を制御し、前記
ユーザ・プロセスによって書き込まれたデータが前記ド
ライバ方向へダウンストリーム上を進み、前記ドライバ
によって前記デバイスから受け取られたデータがユーザ
によって検索されるためにアップストリーム上を進み、
前期システムが、キューイニット構造を示すポインタを
含むストリームタブ構造を定義する各のモジュール又は
ドライバを有するSTREAMSフレーム・ワーク内で
実行され、特定のモジュール又はドライバのインスタン
スを実行する通常機能を供給するステップと、オプショ
ンのモジュール又はドライバのインスタンスを実行する
1又は複数の代替機能を提供するステップと、前記モジ
ュールと前記ドライバに変更を必要とすることなく、今
まで通り通常の実行パスか、あるいは、新しい実行パス
による処理で、前記通常機能を前記1又は複数の代替機
能に動的に置換する制御コマンドを生成するステップ
と、を有する前記方法。
TREAMSフレーム・ワークによってつくられる読取
り、、書込み、読取りマルチプレクサ、及び書込みマル
チプレクサの待ち行列に使用される(16)記載の方
法。 (18)前記キューイニット構造が、前記STREAM
Sフレーム・ワークによってモジュール又はドライバ上
で呼び出されたオープン、クローズ、プット、サービ
ス、及び管理上の機能ための機能アドレスを含む(1
6)記載の方法。 (19)更に、現在のアプリケーション実行パスに基づ
く前記STREAMSフレーム・ワークによって前記キ
ューイニット構造の範囲内で定義される機能を自動的に
実行するステップと、代替ストリームタブへ前記構造の
アドレスを再設定する制御コマンドと、新しい機能アド
レスを定義するキューイニット構造を生成するステップ
と、を有する(16)乃至(18)記載の方法。
前記キューイニット構造の全ての内容が、プット・ルー
チンを除いて通常のストリームタブのものと同一である
(16)乃至(19)記載の方法。 (21)更に、STREAMSモジュール又はドライバ
のストリームタブの内容を動的に代替するために使用さ
れる1又は複数のSTREAMS ioctlコマンド
を使用するステップを有する(16)乃至(20)記載
の方法。 (22)更に、モジュールのアクティブ・インスタンス
を変えるために使用されるioctlコマンドを使用す
るステップを有する(16)乃至(21)記載の方法。
る互換性の複雑性や欠落とパフォーマンス低下といった
2つの劣化なく、いろいろな拡張又はオプションが容易
に使用可能であるSTREAMSフレーム・ワークが供
給できることとなった。
MSフレーム・ワークに、ダイナミック機能置換として
参照される拡張性を提供することができるようになっ
た。
る。
である。
明に従ってダイナミック機能置換を実行するデータ構造
を示しているブロック構成図である。
TREAMSフレーム・ワークのデータ構造を示してい
るブロック図である。
Claims (1)
- 【請求項1】ユーザ・プロセス、動的に追加され移され
る中間処理エレメントであるモジュール、データ・パ
ス、及びデバイス・ドライバとの間に双方向性データパ
スを提供するコンピュータ・システムで実行されるデー
タ構造であって、 前記デバイス・ドライバが、システム・カーネルの中に
常駐し、前記カーネルとの間でデータを伝送する周辺装
置を制御し、 前記ユーザ・プロセスによって書き込まれたデータが前
記ドライバ方向へダウンストリーム上を進み、 前記ドライバによって前記デバイスから受け取られたデ
ータがユーザによって検索されるためにアップストリー
ム上を進み、 特定のモジュール又はドライバのインスタンスを実行す
る通常機能手段と、 オプションのモジュール又はドライバのインスタンスを
実行する1又は複数の代替機能手段と、 前記モジュールと前記ドライバに変更を必要とすること
なく、今まで通り通常の実行パスか、あるいは、新しい
実行パスによる処理で、前記通常機能手段を前記1又は
複数の代替機能手段に動的に置換する制御コマンドを生
成するコントローラと、 を有する前記データ構造。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/545,561 US5815707A (en) | 1995-10-19 | 1995-10-19 | Dynamic function replacement for streams framework |
US545,561 | 1995-10-19 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH09218844A true JPH09218844A (ja) | 1997-08-19 |
JP3891612B2 JP3891612B2 (ja) | 2007-03-14 |
Family
ID=24176723
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP26682796A Expired - Fee Related JP3891612B2 (ja) | 1995-10-19 | 1996-10-08 | ダイナミック機能置換を有するデータ構造 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5815707A (ja) |
JP (1) | JP3891612B2 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006511100A (ja) * | 2002-09-23 | 2006-03-30 | テレフオンアクチーボラゲット エル エム エリクソン(パブル) | プラグイン・ソフトウエアを用いて移動体プラットフォームの機能を拡張するための方法及びシステム |
US8117451B2 (en) | 2005-05-23 | 2012-02-14 | Kyocera Corporation | Device controller, method for controlling a device, and program therefor |
JP2013161108A (ja) * | 2012-02-01 | 2013-08-19 | Nec Corp | 情報処理装置、情報処理方法、及びプログラム |
Families Citing this family (64)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6070198A (en) * | 1995-10-19 | 2000-05-30 | Hewlett-Packard Company | Encryption with a streams-based protocol stack |
US6041345A (en) * | 1996-03-08 | 2000-03-21 | Microsoft Corporation | Active stream format for holding multiple media streams |
US6405255B1 (en) * | 1996-07-01 | 2002-06-11 | Sun Microsystems, Inc. | Mixing and splitting multiple independent audio data streams in kernel space |
US6408329B1 (en) * | 1996-08-08 | 2002-06-18 | Unisys Corporation | Remote login |
US5812857A (en) * | 1996-08-28 | 1998-09-22 | Extended Systems, Inc. | Field configurable embedded computer system |
US6397331B1 (en) * | 1997-09-16 | 2002-05-28 | Safenet, Inc. | Method for expanding secure kernel program memory |
FR2774489B1 (fr) * | 1998-02-05 | 2000-03-03 | Bull Sa | Gestion des interruptions sur une plate-forme informatique |
US6807667B1 (en) * | 1998-09-21 | 2004-10-19 | Microsoft Corporation | Method and system of an application program interface for abstracting network traffic control components to application programs |
US6490628B2 (en) * | 1998-09-25 | 2002-12-03 | Intel Corporation | Modem using a digital signal processor and a signal based command set |
US6625208B2 (en) * | 1998-09-25 | 2003-09-23 | Intel Corporation | Modem using batch processing of signal samples |
US6711205B1 (en) | 1998-09-25 | 2004-03-23 | Intel Corporation | Tone detector for use in a modem |
US6711206B1 (en) | 1998-09-25 | 2004-03-23 | Intel Corporation | Modem using a digital signal processor and separate transmit and receive sequencers |
US6502138B2 (en) * | 1998-09-25 | 2002-12-31 | Intel Corporation | Modem with code execution adapted to symbol rate |
US6351781B1 (en) * | 1998-09-25 | 2002-02-26 | Intel Corporation | Code swapping techniques for a modem implemented on a digital signal processor |
US6374312B1 (en) * | 1998-09-25 | 2002-04-16 | Intel Corporation | System for dedicating a host processor to running one of a plurality of modem programs and dedicating a DSP to running another one of the modem programs |
US6661848B1 (en) | 1998-09-25 | 2003-12-09 | Intel Corporation | Integrated audio and modem device |
US6973560B1 (en) * | 1999-07-16 | 2005-12-06 | Lamarck, Inc. | Fault tolerant and combinatorial software environment system, method and medium |
JP2001188745A (ja) * | 1999-12-28 | 2001-07-10 | Mitsubishi Electric Corp | 制御装置及び制御方法 |
US7584291B2 (en) * | 2000-05-12 | 2009-09-01 | Mosi Media, Llc | System and method for limiting dead air time in internet streaming media delivery |
US6983464B1 (en) * | 2000-07-31 | 2006-01-03 | Microsoft Corporation | Dynamic reconfiguration of multimedia stream processing modules |
US6848110B2 (en) | 2000-12-22 | 2005-01-25 | International Business Machines Corporation | Automatic feature augmentation for component based application programming interfaces |
US20020120747A1 (en) * | 2001-02-23 | 2002-08-29 | Frerichs David J. | System and method for maintaining constant buffering time in internet streaming media delivery |
US7631088B2 (en) * | 2001-02-27 | 2009-12-08 | Jonathan Logan | System and method for minimizing perceived dead air time in internet streaming media delivery |
NL1018008C1 (nl) * | 2001-05-07 | 2002-11-08 | Jean-Luc Rochet | Werkwijze en systeem voor het uitvoeren van gepersonifieerde interactieve geautomatiseerde elektronisch marketing van de leverancier van marketingdiensten. |
JP3907981B2 (ja) * | 2001-07-30 | 2007-04-18 | 富士通株式会社 | データ処理プログラム及びデータ処理装置 |
US7246233B2 (en) * | 2001-12-05 | 2007-07-17 | International Business Machines Corporation | Policy-driven kernel-based security implementation |
US20030105957A1 (en) * | 2001-12-05 | 2003-06-05 | International Business Machines Corporation | Kernel-based security implementation |
US7447801B2 (en) * | 2002-11-18 | 2008-11-04 | Microsoft Corporation | Composable data streams for managing flows |
JP4336852B2 (ja) * | 2002-12-18 | 2009-09-30 | 株式会社 インテック・ネットコア | 計算装置、計算プログラム及び計算方法 |
US7089378B2 (en) | 2003-03-27 | 2006-08-08 | Hewlett-Packard Development Company, L.P. | Shared receive queues |
US20040193833A1 (en) * | 2003-03-27 | 2004-09-30 | Kathryn Hampton | Physical mode addressing |
US8023520B2 (en) * | 2003-03-27 | 2011-09-20 | Hewlett-Packard Development Company, L.P. | Signaling packet |
US7565504B2 (en) | 2003-03-27 | 2009-07-21 | Hewlett-Packard Development Company, L.P. | Memory window access mechanism |
US7103744B2 (en) * | 2003-03-27 | 2006-09-05 | Hewlett-Packard Development Company, L.P. | Binding a memory window to a queue pair |
US8291176B2 (en) * | 2003-03-27 | 2012-10-16 | Hewlett-Packard Development Company, L.P. | Protection domain groups to isolate access to memory windows |
US7502826B2 (en) * | 2003-03-27 | 2009-03-10 | Hewlett-Packard Development Company, L.P. | Atomic operations |
US7554993B2 (en) * | 2003-03-27 | 2009-06-30 | Hewlett-Packard Development Company, L.P. | Method and apparatus for performing connection management with multiple stacks |
US7617376B2 (en) | 2003-08-14 | 2009-11-10 | Hewlett-Packard Development Company, L.P. | Method and apparatus for accessing a memory |
US7757232B2 (en) * | 2003-08-14 | 2010-07-13 | Hewlett-Packard Development Company, L.P. | Method and apparatus for implementing work request lists |
US7404190B2 (en) | 2003-09-18 | 2008-07-22 | Hewlett-Packard Development Company, L.P. | Method and apparatus for providing notification via multiple completion queue handlers |
US8959171B2 (en) | 2003-09-18 | 2015-02-17 | Hewlett-Packard Development Company, L.P. | Method and apparatus for acknowledging a request for data transfer |
US7395527B2 (en) | 2003-09-30 | 2008-07-01 | International Business Machines Corporation | Method and apparatus for counting instruction execution and data accesses |
US7421710B2 (en) * | 2003-10-08 | 2008-09-02 | Lsi Corporation | System and method of creating virtual data paths using a multiple-path driver |
US8150996B2 (en) | 2003-12-16 | 2012-04-03 | Hewlett-Packard Development Company, L.P. | Method and apparatus for handling flow control for a data transfer |
US7415705B2 (en) * | 2004-01-14 | 2008-08-19 | International Business Machines Corporation | Autonomic method and apparatus for hardware assist for patching code |
US7895382B2 (en) | 2004-01-14 | 2011-02-22 | International Business Machines Corporation | Method and apparatus for qualifying collection of performance monitoring events by types of interrupt when interrupt occurs |
US20050257093A1 (en) * | 2004-04-21 | 2005-11-17 | Johnson Stephen L | Dynamic update of pluggable modules using a reference manager |
US20060075109A1 (en) * | 2004-09-28 | 2006-04-06 | Matthew Hartley | Methodology, system and computer readable medium for masking network connection data |
US7400650B1 (en) * | 2005-01-31 | 2008-07-15 | Sun Microsystems, Inc. | System and method for eliminating Streams framework overhead in data communications |
US8521752B2 (en) | 2005-06-03 | 2013-08-27 | Osr Open Systems Resources, Inc. | Systems and methods for arbitrary data transformations |
US7581141B2 (en) * | 2006-03-01 | 2009-08-25 | Sun Microsystems, Inc. | Kernel module compatibility validation |
US7843901B2 (en) * | 2006-03-02 | 2010-11-30 | Tango Networks, Inc. | Call flow system and method for use in a legacy telecommunication system |
US11405846B2 (en) | 2006-03-02 | 2022-08-02 | Tango Networks, Inc. | Call flow system and method for use in a legacy telecommunication system |
US7890096B2 (en) | 2006-03-02 | 2011-02-15 | Tango Networks, Inc. | System and method for enabling call originations using SMS and hotline capabilities |
TWI308723B (en) * | 2006-07-21 | 2009-04-11 | Sunplus Technology Co Ltd | System for simulating mobile phone and method thereof |
US8539228B1 (en) | 2006-08-24 | 2013-09-17 | Osr Open Systems Resources, Inc. | Managing access to a resource |
US8561199B2 (en) * | 2007-01-11 | 2013-10-15 | International Business Machines Corporation | Method and system for secure lightweight stream processing |
US8024433B2 (en) * | 2007-04-24 | 2011-09-20 | Osr Open Systems Resources, Inc. | Managing application resources |
US7937449B1 (en) * | 2007-10-08 | 2011-05-03 | Empirix, Inc. | System and method for enabling network stack processes in user mode and kernel mode to access kernel memory locations |
US8352957B2 (en) * | 2008-01-31 | 2013-01-08 | Hewlett-Packard Development Company, L.P. | Apparatus and method for passing metadata in streams modules |
US8484616B1 (en) * | 2009-06-23 | 2013-07-09 | Emc Corporation | Universal module model |
US8903874B2 (en) | 2011-11-03 | 2014-12-02 | Osr Open Systems Resources, Inc. | File system directory attribute correction |
US9830329B2 (en) | 2014-01-15 | 2017-11-28 | W. Anthony Mason | Methods and systems for data storage |
CN104317556B (zh) * | 2014-10-22 | 2018-03-16 | 华为技术有限公司 | 一种流式应用升级方法、主控节点及流计算系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2746734B2 (ja) * | 1990-06-08 | 1998-05-06 | 富士通株式会社 | ストリームファイルに対してのアクセス処理方式 |
US5338247A (en) * | 1992-10-30 | 1994-08-16 | Miles Jeffrey A | Battery powered model car |
JP2793489B2 (ja) * | 1993-01-13 | 1998-09-03 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 共通データ・リンク・インターフェース |
US5517668A (en) * | 1994-01-10 | 1996-05-14 | Amdahl Corporation | Distributed protocol framework |
-
1995
- 1995-10-19 US US08/545,561 patent/US5815707A/en not_active Expired - Lifetime
-
1996
- 1996-10-08 JP JP26682796A patent/JP3891612B2/ja not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006511100A (ja) * | 2002-09-23 | 2006-03-30 | テレフオンアクチーボラゲット エル エム エリクソン(パブル) | プラグイン・ソフトウエアを用いて移動体プラットフォームの機能を拡張するための方法及びシステム |
US8117451B2 (en) | 2005-05-23 | 2012-02-14 | Kyocera Corporation | Device controller, method for controlling a device, and program therefor |
JP2013161108A (ja) * | 2012-02-01 | 2013-08-19 | Nec Corp | 情報処理装置、情報処理方法、及びプログラム |
Also Published As
Publication number | Publication date |
---|---|
JP3891612B2 (ja) | 2007-03-14 |
US5815707A (en) | 1998-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5815707A (en) | Dynamic function replacement for streams framework | |
EP1269322B1 (en) | Multi-channel, multi-service debug on a pipelined cpu architecture | |
Baker | Cluster computing white paper | |
JP3980487B2 (ja) | 区分処理環境におけるリソース平衡化 | |
US6111894A (en) | Hardware interface between a switch adapter and a communications subsystem in a data processing system | |
US7555744B2 (en) | Method and system for debugging a program from within a thread of execution of the program | |
US8146107B2 (en) | Virtual machine environment for interfacing a real time operating system environment with a native host operating system | |
US8028298B2 (en) | Systems and methods for managing shared resources in a computer system | |
JP2004537122A (ja) | 自律的なデータハンドラを用いるコンピュータ処理兼プログラミング方法 | |
KR20040004554A (ko) | 분할 처리 환경에서의 공유 i/o | |
JP2009110512A (ja) | ネットワークオンチップ、およびネットワークオンチップで以ってデータを処理する方法 | |
US6892324B1 (en) | Multi-channel, multi-service debug | |
Barnes et al. | RMoX: a Raw Metal occam Experiment | |
Mainwaring et al. | Design challenges of virtual networks: Fast, general-purpose communication | |
Weinsberg et al. | Tapping into the fountain of CPUs: on operating system support for programmable devices | |
Engel et al. | TOSKANA: a toolkit for operating system kernel aspects | |
Neugass et al. | VxWorks: an interactive development environment and real-time kernel for Gmicro | |
Jun et al. | SROS: A dynamically-scalable distributed real-time operating system for ATM switching network | |
Schmidt et al. | TAO: a High-performance ORB Endsystem Architecture for Real-time CORBA | |
Taherian | Open Source Real-Time OS (RTEMS) on SCI based Compute Clusters | |
Bhargava et al. | Push: An experimental facility for implementing distributed database services in operating systems | |
Marques et al. | The distributed operating system of the SMD project | |
Geist | Advanced programming in PVM | |
WO2003014917A1 (en) | A universal driver apparatus and method | |
Foster et al. | Nexus User's Guide |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060202 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060228 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060516 |
|
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: 20061128 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20061205 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |