JP2016062606A - 共有メモリにおけるメッセージデータにアクセスすることによりクライアントとサーバとの間で通信するためのメカニズム及び方法 - Google Patents

共有メモリにおけるメッセージデータにアクセスすることによりクライアントとサーバとの間で通信するためのメカニズム及び方法 Download PDF

Info

Publication number
JP2016062606A
JP2016062606A JP2015173381A JP2015173381A JP2016062606A JP 2016062606 A JP2016062606 A JP 2016062606A JP 2015173381 A JP2015173381 A JP 2015173381A JP 2015173381 A JP2015173381 A JP 2015173381A JP 2016062606 A JP2016062606 A JP 2016062606A
Authority
JP
Japan
Prior art keywords
client
buffer
server
data
buffers
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.)
Ceased
Application number
JP2015173381A
Other languages
English (en)
Inventor
クリスチャン・レイノルズ・デッカー
Reynolds Decker Christian
トロイ・スティーブン・ブラウン
Stephen Brown Troy
ケビン・ブレット・チャップマン
Brett Chapman Kevin
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.)
GE Aviation Systems LLC
Original Assignee
GE Aviation Systems LLC
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 GE Aviation Systems LLC filed Critical GE Aviation Systems LLC
Publication of JP2016062606A publication Critical patent/JP2016062606A/ja
Ceased legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • 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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • 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/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Computer Hardware Design (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)
  • Multi Processors (AREA)

Abstract

【課題】共有メモリにおけるメッセージデータにアクセスすることによりクライアントとサーバとの間で通信するためのメカニズム及び方法を提供する。【解決手段】少なくとも1つのクライアントにより共有メモリにおけるメッセージデータにアクセスするためのメカニズム及び方法は、共有メモリ22におけるデータの割り振りであって、メモリが複数のバッファ36において構成される、割り振りと、データへのアクセスをロック又は制限せずにクライアント40又はサーバによりデータ50にアクセスすることとを含む。【選択図】図3

Description

本発明は、共有メモリにおけるメッセージデータにアクセスすることによりクライアントとサーバとの間で通信するためのメカニズム及び方法に関する。
列線交換ユニット(LRU)は、車両又は航空機のようなより大きなユニットのモジュラー式コンポーネントであり、故障時にそれらが置換及び/又は交換され得ることを保証するために仕様通りに設計される。例えば、航空機のLRUは、航空機の機能を管理し、及び/又は動作させるための、完全に含まれたシステム、センサ、無線機、又は他の補助機器を含み得る。航空機環境において、LRUは、ARINC系列の規格によって定義されたもののような、特定の動作、相互運用性、及び/又はフォームファクタ規格に従って動作するように設計され得る。
複数のLRUが、飛行制御コンピュータ又は他のコンピュータシステムの共通又は共有メモリにおけるデータへのアクセス又は同データの交換のために、データネットワークにより相互接続され得る。飛行制御コンピュータ又は他のコンピュータシステムは更に、航空機の機能を管理し、及び/又は動作させ得る。
一実施形態において、共有メモリにおけるメッセージデータにアクセスすることにより少なくとも1つのクライアントと少なくとも1つのサーバとの間で通信するためのメカニズムは、共有メモリにおけるデータの少なくとも1つのメールスロットへの割り振りであって、所定の一定のアドレスによりアクセス可能である割り振りと、少なくとも1つのクライアントの各々のためのバッファのセットの割り振りであって、バッファの各々がそれぞれのクライアント又はサーバのいずれかによって制御可能である割り振りと、少なくとも1つのクライアントと少なくとも1つのサーバとを識別する参照を有する少なくとも1つのメールスロットと、クライアント制御バッファを介してメッセージデータを直接操作することを少なくとも1つのクライアントに可能にさせるアクティブアクセスポインタを有する少なくとも1つのクライアントと、サーバ制御バッファを介してメッセージデータを直接操作することを少なくとも1つのサーバに可能にさせるアクティブアクセスポインタを有する少なくとも1つのサーバとを含む。アクティブアクセスポインタは、オペレーティングシステムレベルでデータをコピーせずにアトミック操作のみを使用してバッファ間で割り振られる。
別の実施形態において、共有メモリにおけるメッセージデータにアクセスすることにより少なくとも1つのクライアントと1つのサーバとの間で通信するための方法は、共有メモリにおけるデータを少なくとも1つのメールスロットに割り振ることと、各々の少なくとも1つのメールスロットにアクセスするための単一の所定のアドレスを割り当てることと、少なくとも1つのクライアントの各々のために複数のバッファを割り振ることであって、各々のバッファは、クライアント制御可能であるか又はサーバ制御可能であるかのいずれかであり、バッファの数は、それぞれのクライアントによって要求されるトランザクションの数と等しい、割り振ることと、クライアント制御バッファの制御をサーバのアクティブアクセスポインタを介してメッセージデータを直接操作することをサーバに可能にさせるサーバ制御バッファに変更するように、クライアント制御バッファからクライアントのアクティブアクセスポインタを割り振ることとを含む。メッセージデータは、オペレーティングシステムレベルでメッセージデータをコピーせずにバッファへのアクティブアクセスポインタを介してアクセスされる。
本発明の一実施形態に係る航空機及び通信ネットワークを上から見下ろした概略図である。 本発明の一実施形態に係る、共有メモリにアクセスする複数のクライアント及び/又はサーバ間の通信の概略図である。 本発明の一実施形態に係る、メールスロットのバッファにアクセスするクライアントの概略図である。 本発明の一実施形態に係る、一方向及び双方向のメモリ空間の概略図である。 本発明の一実施形態に係る、クライアントがバッファにおけるメッセージデータにアクセスするためのメカニズムの概略図である。 本発明の一実施形態に係る、クライアントがバッファにおけるデータへの読み出し/書き込みトランザクションを実行するためのメカニズムの概略図である。 本発明の一実施形態に係る、クライアントを安全なバッファに向けるためのメカニズムの概略図である。
説明される本発明の実施形態は、航空機の複数のセンサ、システム、及びコンポーネントにアクセス可能な共通又は共有メモリを相互接続するデータネットワークを有する航空機の環境において説明される。しかしながら、本発明の実施形態は、共通又は共有メモリにアクセスするクライアント及びサーバを使用するいずれの環境においても実現され得る。更に、「クライアント」及び「サーバ」が以下に説明される一方で、説明される特定の実施形態は、クライアント及びサーバの両方の非限定的な例である、ということが理解されるであろう。クライアント及びサーバの追加の例は、リモートの(データネットワーク若しくはインターネットを介した)又はローカルな離散ユニット、アプリケーション、コンピュータプロセス、プロセススレッド、等、あるいはそれらの任意の組み合わせを含み得、それらは、共有メモリにアクセスする。例えば、複数の「クライアント」は全て、共通のランダムアクセスメモリ(RAM)にアクセスする単一のコンピュータ又はコンピューティングユニット上に存在し得る。
図1に示されているように、胴体10と、左エンジンシステム12及び右エンジンシステム14として示された少なくとも1つのタービンエンジンとを有する、航空機8が示される。左右のエンジンシステム12、14は、実質的に同一であり得る。タービンエンジン12、14が示されている一方で、航空機は、より少ない若しくは追加のエンジンシステム、又は、プロペラベースのエンジンといった代替の推進エンジンシステムを含み得る。集合的に列線交換ユニット(LRU)18と呼ばれる、複数のセンサ、システム、及びコンポーネントと、航空機8の機首付近で互いに最も近くに設置された2つの飛行管理システム又は飛行制御コンピュータとして示された少なくとも1つのサーバ20又はコンピューティングユニットとを更に備える、航空機8が示される。サーバ20の少なくとも1つは更に、メモリ22を含み得る。LRU18及びサーバ20は、航空機8の少なくとも一部を横断するデータ通信ネットワーク24を定義する伝送線及び/又は通信線により、通信可能に相互接続され得る。LRU18の例は、飛行管理システム及び/又はオンボードメンテナンスシステムを含み得る。追加のLRU18が含まれ得る。サーバ20が説明される一方で、本発明の実施形態は、任意のコンピューティングシステム、フライトコンピュータ、又は、複数のシステムからのデータを表示するディスプレイシステムを含み得る。
メモリ22は、ランダムアクセスメモリ(RAM)、フラッシュメモリ、若しくは1つ以上の異なるタイプのポータブル電子メモリ、等、又はこれらのタイプのメモリの任意の適切な組み合わせを含み得る。LRU18及び/又はサーバ20は、LRU18及び/又はサーバ20、あるいは、それらにおける任意のコンピュータプログラム又はプロセスが、メモリ22(例えば、「共有メモリ」22)の少なくとも一部にアクセスし得るように、メモリ22と動作可能に結合され得る。
本明細書において使用される場合、「プログラム」及び/又は「プロセス」は、それぞれのLRU18、サーバ20、又は航空機8の機能の少なくとも1つの管理及び/又は動作を制御するための実行可能な命令のセットを有するコンピュータプログラムの全部又は一部を含み得る。プログラム及び/又はプロセスは、機械実行可能な命令又はデータ構造を搬送又は記憶するための機械可読媒体を含み得るコンピュータプログラム製品を含み得る。そのような機械可読媒体は、汎用若しくは専用コンピュータ、又はプロセッサを有する他の機械によってアクセスされ得る、任意の利用可能な媒体であり得る。一般的に、そのようなコンピュータプログラムは、特定のタスクを実行するという技術的効果を有するか又は特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造、アルゴリズム、等を含み得る。機械実行可能な命令、関連づけられたデータ構造、及びプログラムは、本明細書に開示される情報の交換を実行するためのプログラムコードの例を表す。機械実行可能な命令は、例えば、汎用コンピュータ、専用コンピュータ、コントローラ、又は専用処理機械に、ある特定の機能又は機能のグループを実行させる、命令及びデータを含み得る。
図1に示された航空機8は、本発明の一実施形態の概略的な表現にすぎず、複数のLRU18及びサーバ20が航空機8全体にわたって設置され得ることを示すために使用される。LRU18及びサーバ20の正確な場所は、本発明の実施形態と密接に関連しない。加えて、より多くの又はより少ないLRU18及び/又はサーバ20が本発明の実施形態に含まれ得る。
通信ネットワーク24は、バスとして示されているが、LRUとサーバ20との間の通信可能な相互接続を容易にするための、複数のデータ通信コネクタ及びインターフェース、例えば、イーサネット(登録商標)又は光ファイバーケーブル、並びに、ルーティング及び/又はスイッチングコンポーネントを含み得る。更に、通信ネットワーク24の構成及び動作は、特定の航空機環境に適用可能な規格又は規定の一般的なセットによって定義され得る。例えば、航空機8の通信ネットワーク24は、ARINC664(A664)規格若しくはARINC653(A653)規格によって定義及び/又は構成され得、各々は引用によりその全内容が本明細書に組み込まれる。
図2は、本発明の一実施形態に係るデータ通信システム24の概略図を示す。1つ以上のスレッド又はコンピュータプロセス26を各々が含む複数のLRU18は、共有RAMとして示された共有メモリ22へのアクセスを有する。加えて、1つ以上のスレッド又はコンピュータプロセス28を各々が含む1つ以上のサーバ20もまた、共有メモリ22へのアクセスを有する。この意味で、各々のプロセス26、28は、共有メモリ22へのアクセスを有し得る。
所定の一定のアドレス指定可能なメモリの場所、すなわち、メモリ22の「一定のアドレス」34に位置付けられた、少なくとも1つのグルーピング、すなわち、「メールスロット」32への、データ30の割り振りを更に備える、メモリ22が示される。本明細書において使用される場合、「メールスロット」は、航空機8のためのデータ記憶の特定の利用のために割り振られる、メモリ22の所定のサブセットを含み得る。例えば、単一のメールスロット32が、航空機8の対気速度といったデータの単一の割り振りを備え得る一方で、別のメールスロット32は、中間地点又は現在の飛行計画といった複数の関連又は非関連データ要素を備え得る。本発明の実施形態は、各々の個々のメールスロット32が同一のメッセージデータ定義を使用する構成、又は、異なるメッセージデータ定義が異なるメールスロット32において使用される構成を含み得る。示されているように、メールスロット32は、単方向リストのように、一定のアドレス34から始まって順に整列させられ得るが、メールスロット32の追加の編成構造は、全てが一定のアドレス34の場所から始まる、各々のメールスロット32のためのマトリックス、変数割り振り、等を含むように構成され得る。
プロセス26、28、及び/又は、それぞれ、LRU18及びサーバ20の各々は、共有メモリ22の所定の一定のアドレス34を含むように予め構成される。この意味で、各々のプロセス26、28、LRU18、及び/又はサーバ20は、一定のアドレス34の場所を、それゆえに、アクセスされるデータを有する1つ以上のメールスロット32を、識別するように予め構成される。本明細書において使用される場合、各々のLRU18及び/又は各々のLRUプロセス26は、共有メモリ22におけるデータにアクセスするための「クライアント」とみなされ得、各々のサーバ20及び/又は各々のサーバプロセス28は、共有メモリ22におけるデータにアクセスするための「サーバ」とみなされ得る。サーバ20がクライアントと同様のアクション又は機能を実行し、クライアントがサーバ20と同様のアクション又は機能を実行する、追加の実施形態が含まれ得る。この意味で、「クライアント」及び「サーバ」は、そうでないと注意されない限り、置換可能な機能を実行し得る。加えて、サーバ20及びLRU18が別個のコンポーネントとして示される一方で、本発明の実施形態は、互いと同一のシステム上に存在し、及び/又は、共有メモリ22と同一のシステム上に存在する、サーバ20又はクライアントを含み得る。
本発明の一実施形態において、共有メモリ22におけるメールスロット32の数は、クライアント及び/又はサーバにとってアクセス可能なメールスロット32の既知の数に基づいて、メモリ22の初期化中に予め定義される。本発明の別の実施形態において、メールスロット32の数は、クライアント及び/又はサーバによってアクセス可能なメールスロット32の集合的な数により、ランタイム時又はランタイム中に定義される。この意味で、メールスロット32の数は、必要に応じて増減しながら動的であり得るか、又は、追加のメールスロット32がアクセスされる必要がある場合に追加されるのみであり得る。
ここで図3を参照すると、共有メモリ22は、複数のクライアント40及びサーバ50と通信し得る。共有メモリ22の各々のメールスロット32は更に、その特定のメールスロット32に関連づけられ得る1つ以上のクライアント40及び1つ以上のサーバ50の各々への参照のリストを含む参照リスト33を備え得る。参照リスト33は、例えば、それぞれのクライアント40及び/又はサーバ50の各々のために関連づけられたルーティング、ソース、及び/又は宛先情報を含み得るので、例えば、クライアント40又はサーバ50は、他のそれぞれのサーバ50又はクライアント40への通信の少なくとも1つの経路を得るために共有メモリ22の参照リスト33を調べ得る。この意味で、一定のアドレス34及び参照リスト33を有する既知のメールスロット32の使用は、クライアント40及び/又はサーバ50自身の間の直接的な通信メカニズムを定義する必要なしに1つ以上のクライアント40及び/又はサーバ50間の通信を容易にする。
概略的に示されているように、1つ以上のクライアント40の各々は更に、アドレス指定可能な特定のメモリ空間、又は複数のメモリ空間グルーピング、例えばバッファ、を識別することができるアクティブアクセスポインタ42を備えるので、クライアントは1つ以上のバッファにアクセスできる。示されているように、第1のクライアント54は、第1のクライアント54に関連づけられ、複数のバッファ36を含む、第1のアドレス指定可能なメモリ空間55にアクセスし得る。同じく示されているように、第2のクライアント56は、第2のクライアント56に関連づけられ、第2の複数のバッファ36を含む、第2のアドレス指定可能なメモリ空間57にアクセスし得る。それぞれのアドレス指定可能なメモリ空間55、57の各々は、それらのそれぞれのクライアント54、56及び/又はそれらのそれぞれのクライアントのアクティブアクセスポインタ42により識別及び管理される。複数のバッファ36の各々は、特定のデータ要素のために必要とされる所定量のデータを記憶するように構成され得る。本発明の実施形態は、例えば、第1のクライアント54は、特定のメールスロット32に関連づけられたそれ独自のメモリ空間55及び/又はバッファ36にアクセスすることしかできないので、例えば、第2のクライアント56のメモリ空間57にはアクセスできない、という構成を含み得る。この意味で、各々のクライアント54、56は、たとえバッファ36の個々の制御が他のコンポーネントに割り当てられ得るとしても、それらのそれぞれのメモリ空間55、57を「所有」する。クライアント40が、それらのそれぞれのメモリ空間55、57に限定され得る一方で、サーバ50は、いずれのクライアント40のメモリ空間55、57におけるバッファ36にもアクセスすることができる。
各々のアドレス指定可能なメモリ空間55、57のためのバッファ36の数は、各々のそれぞれのクライアント54、56によって要求されるトランザクションの数により定義され得る。オプションで、各々のアドレス指定可能なメモリ空間55、57のためのバッファ36の数は、各々のそれぞれのクライアント54、56によって要求されるトランザクションの数、プラス1つ余分なバッファ36により定義され得る。かくして、図示された例では、第1のクライアント54は、共有メモリ22において2つのトランザクションを実行することを要求していて、3つのバッファ36(2つプラス1つ余分なバッファ)を提供されている一方で、第2のクライアント56は、共有メモリ22において3つのトランザクションを実行することを要求していて、4つのバッファ36(3つプラス1つ余分なバッファ)を提供されている。
本発明の一実施形態において、各々のアドレス指定可能なメモリ空間55、57におけるバッファ36の数、及び各々のバッファ36のサイズは、共有メモリ22の初期化中に、メールスロット32にアクセスすることができるクライアント40の既知の数、及びトランザクションの既知の数に基づいて、予め定義される。本発明の別の実施形態において、各々のアドレス指定可能なメモリ空間55、57におけるバッファ36の数は、ランタイム時又はランタイム中に、続いてメールスロット32にアクセスするクライアント40の集合的な数、及び要求されているトランザクションの数により、定義される。この意味で、バッファ36の数は、必要に応じて増減しながら動的であり得るか、又は、追加のクライアント40がメールスロット32にアクセスしている場合又はトランザクションが要求された場合に追加されるのみであり得る。本発明の更なる別の実施形態において、メールスロット32及びアドレス指定可能なメモリ空間55、57は、別々に構成され得る。例えば、メールスロット32は、説明されたように予め定義され得るが、アドレス指定可能なメモリ空間55、57は、ランタイム中に動的に構成され、又はその逆もある。予め定義される例又は動的な定義の例のいずれにおいても、メールスロット32の数及び/又はバッファ36の構成は、共有メモリ22に記憶されたアルゴリズム又は実行可能なプログラムに従って定義され得る。
加えて、1つ以上のサーバ50は各々、アクティブアクセスポインタ52を備え、それぞれのアクティブアクセスポインタ52によって示された特定のバッファ36にアクセスすることができる。例えば、サーバ50は、クライアント40及び/又はそのクライアント40に関連づけられたアドレス指定可能なメモリ空間55、57及びその中のバッファ36の少なくとも1つを識別し得る、メールスロット32の参照リスト33にアクセスし得る。図示されている例では、第1のクライアント54は、第1のバッファ58に関連づけられる。本発明の実施形態は、各々のメールスロット32と通信する単一のサーバ50のみを含み得る。
図4は更に、クライアントのアドレス指定可能なメモリ空間55、57の構成及び動作の代替の概略図を示す。少なくとも、クライアント40(図示せず)によって管理される利用可能なバッファキュー82とサーバ50(図示せず)によって管理される要求バッファキュー84とを備える、一方向メモリ空間80が示される。利用可能なバッファキュー82は、メモリ空間80において利用可能なバッファ36の最大数を保持するように構成され得る一方で、要求バッファキュー84は、クライアント40によって要求されるバッファ36の最大数(すなわち、メモリ空間80におけるバッファ36の最大数マイナス1)を保持するように構成され得る。「余分な」バッファが含まれない実施形態では、利用可能なバッファキュー82及び要求バッファキュー84は、クライアント40によって要求されるバッファ36の最大数の数と等しい同一の数のバッファを保持するように構成され得る。
図示されている例において、バッファ36は、それぞれのクライアント40及び/又はサーバ50によってトランザクションされるデータペイロード又はメッセージを含み得る。クライアント40が一方向トランザクション要求を実行する(トランザクションがサーバ50のインタラクションを待っている、例えば、「要求保留中」である)場合、各々のトランザクション要求のためのバッファ36が、サーバ50によるトランザクション又は処理を待つために要求バッファキュー84に移り得る。サーバ50が要求されたトランザクションを実行及び/又は処理すると、バッファ36は、クライアント40に更なるトランザクション要求を実行させるために、利用可能なバッファキュー82へと戻される。クライアント40はあるいは、利用可能なバッファキュー82にバッファ36を戻す前にバッファ36のメッセージデータが要求バッファキュー84から戻された場合、バッファ36のメッセージデータに追加のトランザクション及び/又は処理を実行し得る。本明細書において使用される場合、利用可能なバッファキュー82において割り振られたバッファ36は、新たなトランザクションを開始するために「利用可能」であるか又は「非占有」であるとみなされ得る一方で、要求バッファキュー84において割り振られたバッファ36は、「利用不可能」であるか又は「占有」されているとみなされ得る。
更に、要求バッファキュー84は利用可能なバッファキュー82より1つ少ない利用可能なバッファ36のキュー空間によって構成され得るので、本発明の実施形態は、クライアント40が、そのそれぞれのメモリ空間80の全ての利用可能なバッファ36で同時保留中の完了したトランザクション要求を実行することはできない(例えば、全てのバッファ36が要求バッファキュー84内に同時に存在することはできない)構成を含み得る。図は1つのキュー82、84から別のキュー82、84に移動するバッファ36を示すが、バッファ36自身はメモリ空間80内の場所を変更できない、ということが理解される。この意味で、キュー82、84は、「仮想キュー」であり得る。キュー82、84は、一方向メモリ空間80におけるトランザクション処理中のそれぞれのバッファ36の所有権を示す本発明の一実施形態を示し得るにすぎない。
双方向メモリ空間86が加えて示され、上述のごとくの利用可能なバッファキュー82及び要求バッファキュー84に加えて、クライアント40(図示せず)によって管理される応答バッファキュー88を備え得る。双方向メモリ空間86の利用可能なバッファキュー82及び要求バッファキュー84は、そうでないと注意されない限り、上述された動作と同様に動作する。示されているように、応答バッファキュー88もまた、クライアント40によって要求されるバッファ36の最大数(すなわち、メモリ空間80におけるバッファ36の最大数マイナス1)を保持するように構成され得る。「余分な」バッファが含まれない実施形態では、応答バッファキュー88は、クライアント40によって要求されるバッファ36の最大数の数と等しいバッファ数を保持するように構成され得る。
一方向メモリ空間80と双方向メモリ空間86との間の1つの差は、サーバ50が要求バッファキュー84において要求されたトランザクションを実行及び/又は処理すると、バッファ36がクライアント40による何らかの追加の処理のために応答バッファキュー88に転送される(トランザクションがクライアント40のインタラクションを待っている、例えば、「応答保留中」である)ことである。応答バッファキュー88におけるクライアント40による追加の処理が完了すると、バッファ36は、クライアント40が更なるトランザクション要求を実行するために、利用可能なバッファキュー82に戻される。本明細書において使用される場合、応答バッファキュー88において割り振られたバッファ36は、「利用不可能」であるか又は「占有」されているとみなされ得る。応答バッファキュー88もまた、上述されているように、「仮想キュー」であり得る。更に、本発明の実施形態は、クライアント40が、そのそれぞれのメモリ空間86の全ての利用可能なバッファ36で同時保留中の完了したトランザクション要求を実行することはできないがゆえに、要求バッファキュー84と応答バッファキュー88との間で割り付けられるバッファ36の集合的な数は、クライアント40によって要求されるバッファ36の数を超過し得ない、という構成を含み得る。
これらの構成において、一方向メモリ空間80は、例えば、読み出し専用トランザクション中に、一方向通信を提供し得る一方で、双方向メモリ空間86は、例えば、読み出し及び書き込み動作中に、双方向通信を提供し得る。本発明の実施形態は、クライアント40がトランザクションを開始し得、サーバ50が対応するトランザクションによって応答し得る構成を含み得る。任意の数の一方向及び双方向メモリ空間80、86が、上述のごとく、本発明の実施形態に含まれ得、要求されるトランザクションにより定義され得る。
共有メモリ22のバッファ36におけるメッセージデータにアクセスすることにより少なくとも1つのクライアント40と少なくとも1つのサーバ50との間で通信するためのメカニズムが、図5に関し説明される。図5では、単一のクライアント40及び対応するアドレス指定可能なメモリ空間57のみが、理解の容易さ及び簡潔さのために示される。本発明の実施形態は、同様のメカニズムを各々が実行する、複数のクライアント40及びそれぞれのメモリ空間57を含み得る。加えて、例示目的のために、占有44及び非占有46の状態を含む異なる分類状態を有する複数のバッファ36が示される。これらの例において、「占有」44のバッファは、クライアント40に「制御」されるか又はサーバ50に「制御」されるか、のいずれかであり得、「制御」は、バッファ36内のメッセージデータを直接操作するそれぞれのコントローラの能力を表す。所有権は、例えば、クライアント40により制御及び/又は管理され得るか、あるいは、クライアントのアクティブアクセスポインタ42により割り振り及び/又は管理され得る。クライアント40及び/又はアクティブアクセスポインタ42は、データトランザクション要求に基づいて複数のバッファ36にアクセスを向ける。
したがって、第1のバッファ58は、占有バッファ44として識別されていて、第1の通信を介してクライアント40により制御される。クライアント40が第1のバッファによるトランザクション又はトランザクションの一部を完了した場合、クライアント40は、サーバ50によるトランザクションが必要とされることを表すために、バッファを、例えば、「要求保留中」に設定し、第1の通信64を停止し得る。サーバ50によるトランザクションに関わらず、クライアント40が新たなトランザクションを要求する場合、アクティブアクセスポインタ42は、トランザクションのために利用可能な第2のバッファ60を識別すること、及び、第2のバッファ60として示された次の利用可能な(例えば、非占有)バッファ36を指摘することにより、クライアント40の通信を管理するであろう。クライアント40は続いて、第2の通信66を介して第2のバッファ60と通信し得、第2のバッファ60は、占有状態44(図示せず)を有するであろう。クライアントはここで、第2のバッファ60に記憶されたデータに、意図された第2のトランザクションを実行するであろう。同一のクライアント40による別のトランザクション要求がなされると、クライアント40による入来トランザクション要求がクライアント40及び/又はアクティブアクセスポインタ42によって識別された非占有バッファ46にアクセスし得るよう、メカニズムが繰り返される。
図6に示されたメカニズムは、図5に示されたメカニズムの上に成り立つ。この例において、クライアント40は、例えば、第1のバッファ58での読み出し/書き込みトランザクションを実行していたが、このトランザクションを完了してしまい、バッファ58を、例えば、サーバ50によるトランザクションが必要とされることを表すために「要求保留中」に設定していて、現在は第2のバッファ60でのトランザクションを実行している。
サーバ50は、スケジュールに従って複数のクライアント40のためのトランザクションを実行中であり得る。例えば、サーバ50は、ラウンドロビンスケジュール、ファーストイン/ファーストアウトスケジュール、ラストイン/ファーストアウトスケジュール、シーケンシャルスケジュール、サービス品質スケジューリング、各々のクライアント40が、インタラクトするための定義されたタイムスロットを有する、タイムドスケジュール、又はそれらの組み合わせに基づいて、クライアントのためのトランザクションを実行中であり得る。複数のクライアント40のトランザクションに対処するための追加のアルゴリズム及び/又はスケジューリング方法が含まれ得る。
図示されている例では、クライアント40がサービスされるべきであるとサーバ50が決定した場合、サーバ50はまず、クライアント40を識別するためにメールボックス32及び/又は参照リスト33を調べ得る(通信68として示されている)。サーバ50は次に、サーバ50による任意のトランザクションが必要とされるかどうかを決定するために、クライアント40及び/又はクライアントのアクティブアクセスポインタ42を調べ得る(通信70として示されている)。サーバ50によるトランザクションが必要とされない場合、サーバ50は、スケジュール又はアルゴリズムに従って動作し続け得、例えば、サービスされるべき次のクライアント40に移動し得る。しかしながら、上述されているように、第1のバッファ58は、サーバ50によって完了されるべきトランザクションを含む。クライアント40及び/又はアクティブアクセスポインタ42は、第1のバッファ58がサーバ50の制御の準備ができていることを識別し、例えば、共有メモリ22における第1のバッファ58の場所を含み得る。
サーバのアクティブアクセスポインタ52が続いて、識別された第1のバッファ58を指摘し、要求されたトランザクションを提供することに進む(通信72として示されている)。サーバ50の要求されたトランザクションが完了した場合、サーバ50は、バッファ58を、例えば、更なるトランザクションのための「応答保留中」、又は、新たなトランザクションのために利用可能(非占有)、に設定し得る。サーバは続いて、第1のバッファ58からの通信72を切断し得、必要に応じて追加のクライアント40のバッファ36にサービスするために、又はスケジュールに従って、上述された通信を繰り返し得る。加えて、本発明の実施形態は、サーバ50による特定のバッファ36のサービスの優先順位付けのための優先順位インジケータを含み得る。
加えて、サーバ50のための1つのトランザクション要求が説明されているが、クライアント40が、キューに入れられた複数のサーバ50への要求を結果として生じるトランザクションを発生させ得ることが理解される。サーバ50が複数のサーバトランザクション要求にどのように応答するかに関わらず、本発明の実施形態は、全てのバッファ36が占有される一方でクライアント40又はサーバ50が追加のトランザクションを要求しようと試みる例を含み得る。利用可能又は非占有46であるバッファ36が存在しない、そのようなシナリオが図7に示される。この例では、クライアントが、バッファ36内のデータについてのトランザクションを実行中であり、全ての他のバッファ36が占有され44、例えば、サーバ50のトランザクションを待っている。この例において、通信メカニズムは、追加の非占有46バッファ36が利用可能になるまで、クライアント40、アクティブアクセスポインタ42、及び/又は現在のバッファ36の少なくとも1つは常に、失敗したトランザクションのインジケーションによってそれぞれのトランザクション要求に応答するであろう、と規定する。この意味で、トランザクション要求が失敗した場合、クライアント40は、要求されたトランザクションを再び実行しようとし得、それは、例えば、後の時間に1つ以上のバッファ36が非占有46になった場合に成功裏に完了し得る。かくして、メカニズムは、クライアント40によって要求されるトランザクションの数プラス1(すなわち、オプションの「余分なバッファ」36)を提供するので、追加のバッファ36が利用可能になるまで、クライアント40はなおもトランザクションのために、たとえそれらが未完了のトランザクションであっても、余分なバッファ36を常に有するであろう。「余分な」バッファが提供されない実施形態において、クライアント40は、要求されたトランザクションを実行しようと試みるためのバッファ36を有し得ず、1つ以上のバッファ36が再び利用可能になるまで、トランザクションは実行されないであろう。
上述されたメカニズムは、機械アセンブリ言語を超えて設計レベルでデータをコピーすることなく、例えば、オペレーティングシステムレベルでデータをコピーすることなく(例えば、「ゼロコピー」で)、機械アセンブリ言語トランザクション及び/又はアトミック操作のみを使用して動作し得る。上述された本発明の実施形態の技術的効果は、メッセージデータが決して他のクライアント40及び/又はサーバ50によりアクセスを「ロック」又は「ブロック」されないように、クライアント40及び/又はサーバ50を、アクティブアクセスポインタ42、52を使用して、メッセージデータを含むそれぞれのバッファ36に向けることにより、ゼロコピー動作が達成されることを含む。加えて、機械アセンブリ言語の使用は、更新が、単一のアトミック操作サイクルで完了するので、データ及び/又はバッファへの他の更新はアトミックスワップより短い操作サイクルで完了させられることができないがゆえに、他の更新により割込まれることができない、参照の「アトミックスワップ」操作を可能にする。この意味で、スワップ操作は、参照のバッファ36へのスイッチングが絶対的に成功するか又は失敗するかのいずれかであることを保証するので、例えばスワップの割込みに起因する、参照自身の破損の潜在性は存在しない。メカニズムは、クライアント40及び/又はプロセス26、28の境界にわたって働き、割込み禁止に依拠しない。
機械アセンブリ言語命令及び基本的なデータ構造(例えば、単方向リスト、基本的な参照)を利用することにより、メカニズムは、プロセスの優先順位の複雑な構成、又は、より低い優先順位のプロセスへのプレアクセスがデータをロックし、たとえより高い優先順位のプロセスがアクセスを要求したとしてもアクセスのためにそれを「解放」しない、「優先順位の逆転」現象なしに、アクセス可能なデータのための「ロックフリー」又は「ブロックフリー」アクセスを可能にする、ゼロコピーデータ交換を使用する、共有メモリ22における少なくとも1つのサーバ50と少なくとも1つのクライアント40との間の非同期プロセス間データ通信を提供する。実際、機械命令を使用する動作は、「ファーストワントゥザデータウィン」の傾向があるので、より高い優先順位のプロセスは常に、それらの動作をまず実行し得る。加えて、メカニズムは、スレッドレベルだけでなくプロセスレベルで実行され得る、アクセス可能なデータのための「待ちなし」のアクセスを提供する。
本発明の実施形態は更に、プログラミングアプリケーションプログラマブルインターフェース(API)を提供して、APIを介しオペレーティングシステムレベル(又はアプリケーションレベル、等)でメカニズムにアクセスすることにより、上述されたメカニズムを利用し得る。技術的効果は、上述された実施形態が、データロック、データブロック、及び/又は優先順位の逆転を防止するためのゼロコピー方法を提供することである。
上述されたメカニズムは更に、たとえトランザクション要求の数が、予期若しくは意図されたよりも多かったとしても、又は、サーバが応答できるよりも速いレートで発生させられたとしても、メールスロット32が複数のクライアント40及び/又はサーバ50のトランザクション要求を割り振ることができるように、配列及び構成される。更に、説明されたメカニズムは、1つ以上のクライアントが、ターゲットサーバをトランザクション要求で飽和させ、それが意図されたサービスを提供できないようにすることにより、機械又はネットワークリソースをその意図されたユーザに利用不可能にしようと試みる、サービス妨害攻撃に対し備え得る。サービス妨害攻撃は、帯域幅、処理能力、若しくは優先トランザクションに応答する能力を含み得る、サーバ50、クライアント40、及び/又はバッファ36のリソースを独占しようと試み得るか、あるいは意図されたサービスを妨げ得るか又は減少させ得るか、あるいは最悪の場合、ターゲットサーバ又はリソースを故障させる。しかしながら、上述されたメカニズムのリソースのいずれの試みられる独占でも、サーバ50のスケジューリングに加えられた、余分なバッファ36の失敗したトランザクション要求のオプションの組み合わせが、上述のごとく、トランザクション要求がリソースを消費せずに行われ得ることなく、及びそれぞれのデータをロック又はブロックすることなく、そのようなサービス妨害攻撃を防止するであろう。
上記実施形態において実現され得る追加の利点は、上述された実施形態が、非機械言語レベルでのデータコピー努力の結果として生じる良好でないシステムリソース性能を防止することである。更に、本発明の実施形態は、上述されているように、参照及びバッファを利用することにより、必要なコピーの数を減じる。上述された実施形態の別の利点は、バッファにおけるより古いデータを上書きするためのビルトインメカニズムを含むので、いずれのタイプの「ガベージコレクション」データ管理スキームも必要としない。更に、サーバから1つ以上のクライアントへの典型的なデータ共有が、グローバルなデータストレージを作成すること、及び、それを、例えばオペレーティングシステムレベルでの、セマフォ(すなわち、ロック/アンロックインジケータのようなアクセス制御値)、任意の他のミューテックス、又は、特にデータストアが大きい場合に処理時間の観点で非常にコストがかかり得る、ロッキングデータ保護(例えば、データ割込み、等)を使用して保護することにより、達成される。これは、本明細書において説明された、より効率的で、より高速なロックフリーアクセス動作を可能にする。更に、オペレーティングシステムは典型的に、プロセス間のセマフォ制御を提供せず、プロセス内のスレッド間でしか提供しない。
上述された実施形態において実現され得る他の利点は、メールスロットの設計が、プロセスを緩慢に結合させ続けるフレキシビリティを有し、調整をほとんど必要とせず、「ステージドスタートアップ」を必要としない(すなわち、プロセス、クライアント、及び/又はサーバが任意の時間にオンラインになり得る)ことを含む。加えて、上述されたAPIの実現は、システム開発のための減じられた開発コスト、及び、異なるコピー方法と比較して同様のハードウェアでの増大した性能マージン、という結果を生じ得る。
未だ説明されていない程度まで、様々な実施形態の異なる特徴及び構造が所望の通りに互いと組み合わせられて使用され得る。1つの特徴が実施形態の全てで説明され得ないことは、それがなくてもよいと解釈されるように意図されているのではなく、説明の簡潔さのためになされている。かくして、異なる実施形態の様々な特徴は、新たな実施形態が明らかに説明されていようとされていまいと、新たな実施形態を形成するために所望の通りに混合され、調和させられ得る。本明細書において説明された特徴の全ての組み合わせ又は置き換えが、本開示によってカバーされる。
記載されたこの説明は、ベストモードを含む発明を開示し、また、任意のデバイス又はシステムの製造及び使用と組み込まれた任意の方法の実行とを含む発明の実現をいずれの当業者にも可能にさせるために、例を使用する。本発明の特許可能な範囲は、請求項によって定義され、当業者が想到する他の例を含み得る。そのような他の例は、それらが請求項の文字通りの言語と異ならない構造要素を有する場合、又は、それらが請求項の文字通りの言語との実質的な差を有しない均等な構造要素を含む場合、請求項の範囲内であるように意図される。
8 航空機
10 胴体
12 左エンジンシステム
14 右エンジンシステム
18 列線交換ユニット(LRU)
20 サーバ
22 メモリ
24 データ通信ネットワーク、データ通信システム
26 LRUプロセス
28 サーバプロセス
30 データ割り振り
32 メールスロット、メールボックス
33 参照リスト
34 一定のアドレス
36 複数のバッファ
40 クライアント
42 アクティブアクセスポインタ
44 占有バッファ、占有状態
46 非占有バッファ
50 サーバ
52 アクティブアクセスポインタ
54 第1のクライアント
55 第1のアドレス指定可能なメモリ空間
56 第2のクライアント
57 第2のアドレス指定可能なメモリ空間
58 第1のバッファ
60 第2のバッファ
64 第1の通信
66 第2の通信
68 通信
70 通信
72 通信
80 一方向メモリ空間
82 利用可能なバッファキュー
84 要求バッファキュー
86 双方向メモリ空間
88 応答バッファキュー

Claims (15)

  1. 共有メモリにおけるメッセージデータにアクセスすることにより少なくとも1つのクライアントと少なくとも1つのサーバとの間で通信するためのメカニズムであって、
    前記共有メモリにおけるデータの少なくとも1つのメールスロットへの割り振りであって、所定の一定のアドレスによりアクセス可能である割り振りと、トランザクション要求を実行するための前記少なくとも1つのクライアントの各々のためのバッファのセットの割り振りであって、前記バッファの各々がそれぞれのクライアント又は前記サーバのいずれかによって制御可能である割り振りと、
    前記少なくとも1つのクライアントと前記少なくとも1つのサーバとを識別する参照を有する前記少なくとも1つのメールスロットと、
    クライアント制御バッファを介してメッセージデータを直接操作することを前記少なくとも1つのクライアントに可能にさせるアクティブアクセスポインタを有する前記少なくとも1つのクライアントと、
    サーバ制御バッファを介して前記メッセージデータを直接操作することを前記少なくとも1つのサーバに可能にさせるアクティブアクセスポインタを有する前記少なくとも1つのサーバと
    を備え、前記アクティブアクセスポインタは、オペレーティングシステムレベルで前記データをコピーせずにアトミック操作のみを使用してバッファ間で割り振られる、メカニズム。
  2. 前記メカニズムは、飛行管理システムである、請求項1に記載のメカニズム。
  3. 前記少なくとも1つのメールスロット及び前記バッファのセットは、前記共有メモリの初期化中に予め定義される、請求項1に記載のメカニズム。
  4. 前記トランザクション要求は、前記データを読み出すこと又は前記バッファに新たなデータを書き込むことの少なくとも1つを備える、請求項1に記載のメカニズム。
  5. 少なくとも1つのトランザクションが、少なくとも利用可能なバッファキューと要求バッファキューとを備える、一方向メモリ空間に割り振られる、請求項4に記載のメカニズム。
  6. 少なくとも1つのトランザクションが、少なくとも利用可能なバッファキューと要求バッファキューと応答バッファキューとを備える、双方向メモリ空間に割り振られる、請求項4に記載のメカニズム。
  7. バッファの数が、少なくともそれぞれのクライアントによって要求されるトランザクションの数、プラス1つ余分なバッファと等しい、請求項1に記載のメカニズム。
  8. 共有メモリにおけるメッセージデータにアクセスすることにより少なくとも1つのクライアントと1つのサーバとの間で通信するための方法であって、
    前記共有メモリにおけるデータを少なくとも1つのメールスロットに割り振ることと、
    各々の少なくとも1つのメールスロットにアクセスするための単一の所定のアドレスを割り当てることと、
    前記少なくとも1つのクライアントの各々のために複数のバッファを割り振ることであって、各々のバッファは、クライアント制御可能であるか又はサーバ制御可能であるかのいずれかであり、バッファの数は、それぞれのクライアントによって要求されるトランザクションの数と等しい、割り振ることと、
    クライアント制御バッファの制御をサーバのアクティブアクセスポインタを介して前記メッセージデータを直接操作することを前記サーバに可能にさせるサーバ制御バッファに変更するように、前記クライアント制御バッファからクライアントのアクティブアクセスポインタを割り振ることと
    を備え、前記メッセージデータは、オペレーティングシステムレベルで前記メッセージデータをコピーせずに前記バッファへのアクティブアクセスポインタを介してアクセスされる、方法。
  9. 前記データを少なくとも1つのメールスロットに割り振ること、前記単一の所定のアドレスを割り当てること、及び前記少なくとも1つのクライアントの各々のために複数のバッファを割り振ることは、前記共有メモリの初期化中に行われる、請求項8に記載の方法。
  10. 前記メッセージデータにアクセスすることは、前記データを読み出すこと又は前記バッファに新たなデータを書き込むことの少なくとも1つを備える、請求項8に記載の方法。
  11. 少なくとも1つのトランザクションが、少なくともステート部分とメッセージデータ部分とを備える、一方向メモリ空間において実行される、請求項10に記載の方法。
  12. 少なくとも1つのトランザクションが、少なくとも利用可能なバッファキューと要求バッファキューと応答バッファキューとを備える、双方向メモリ空間において実行される、請求項10に記載の方法。
  13. それぞれの非占有クライアント制御バッファにおいて新たなクライアントのトランザクション要求を開始することを更に備える、請求項8に記載の方法。
  14. 前記バッファの数は、少なくともそれぞれのクライアントによって要求されるトランザクションの数、プラス1つ余分なバッファと等しい、請求項8に記載の方法。
  15. 前記新たなクライアントのトランザクション要求は、全てのそれぞれのクライアントのバッファが占有されている場合、失敗する、請求項14に記載の方法。
JP2015173381A 2014-09-15 2015-09-03 共有メモリにおけるメッセージデータにアクセスすることによりクライアントとサーバとの間で通信するためのメカニズム及び方法 Ceased JP2016062606A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/486,325 US10560542B2 (en) 2014-09-15 2014-09-15 Mechanism and method for communicating between a client and a server by accessing message data in a shared memory
US14/486,325 2014-09-15

Publications (1)

Publication Number Publication Date
JP2016062606A true JP2016062606A (ja) 2016-04-25

Family

ID=54363015

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015173381A Ceased JP2016062606A (ja) 2014-09-15 2015-09-03 共有メモリにおけるメッセージデータにアクセスすることによりクライアントとサーバとの間で通信するためのメカニズム及び方法

Country Status (7)

Country Link
US (1) US10560542B2 (ja)
JP (1) JP2016062606A (ja)
CN (1) CN105426258B (ja)
BR (1) BR102015020596A2 (ja)
CA (1) CA2902933A1 (ja)
FR (1) FR3025907B1 (ja)
GB (1) GB2532843B (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3030805B1 (fr) * 2014-12-19 2016-12-23 Thales Sa Qualite de service d'un systeme de gestion de vol
US10417261B2 (en) 2016-02-18 2019-09-17 General Electric Company Systems and methods for flexible access of internal data of an avionics system
DE102016217100B4 (de) 2016-09-08 2019-12-24 Continental Teves Ag & Co. Ohg Verfahren zum Verarbeiten von Fahrzeug-zu-X-Nachrichten
DE102016217099B4 (de) 2016-09-08 2019-12-24 Continental Teves Ag & Co. Ohg Verfahren zum Verarbeiten von Fahrzeug-zu-X-Nachrichten
CN109960623B (zh) * 2017-12-26 2022-09-20 中国航空工业集团公司西安航空计算技术研究所 一种机载分区操作系统仿真器运行时监控方法
CN111182041B (zh) * 2019-12-19 2022-05-13 苏州浪潮智能科技有限公司 一种网络服务器共享缓存区的方法和设备
CN111464621B (zh) * 2020-03-30 2022-06-24 四川新网银行股份有限公司 分布式系统异步通信中消息发送与接收的数量检测方法
US11995922B2 (en) 2020-07-30 2024-05-28 Ge Aviation Systems Llc Flight management system and method for reporting an intermitted error
CN112114983B (zh) * 2020-09-14 2022-04-19 深圳花儿数据技术有限公司 一种基于共享内存的通信方法、装置和设备
CN113204573B (zh) * 2021-05-21 2023-07-07 珠海金山数字网络科技有限公司 一种数据读写访问系统及方法

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05224956A (ja) 1992-02-14 1993-09-03 Nippon Telegr & Teleph Corp <Ntt> プロセス間メッセージ通信方法
JP3489157B2 (ja) 1993-11-26 2004-01-19 株式会社日立製作所 分散共有メモリシステムおよび計算機
US6047391A (en) * 1997-09-29 2000-04-04 Honeywell International Inc. Method for strong partitioning of a multi-processor VME backplane bus
US6519686B2 (en) * 1998-01-05 2003-02-11 Intel Corporation Information streaming in a multi-process system using shared memory
US6341338B1 (en) * 1999-02-04 2002-01-22 Sun Microsystems, Inc. Protocol for coordinating the distribution of shared memory
WO2001013229A2 (en) 1999-08-19 2001-02-22 Venturcom, Inc. System and method for data exchange
US20020144010A1 (en) * 2000-05-09 2002-10-03 Honeywell International Inc. Communication handling in integrated modular avionics
US7203706B2 (en) * 2002-08-01 2007-04-10 Oracle International Corporation Buffered message queue architecture for database management systems with memory optimizations and “zero copy” buffered message queue
US7380039B2 (en) * 2003-12-30 2008-05-27 3Tera, Inc. Apparatus, method and system for aggregrating computing resources
US7562138B2 (en) * 2004-12-28 2009-07-14 Sap Shared memory based monitoring for application servers
US7454477B2 (en) * 2005-05-16 2008-11-18 Microsoft Corporation Zero-copy transfer of memory between address spaces
US7589735B2 (en) * 2005-08-24 2009-09-15 Innovative Solutions & Support (Iss) Aircraft flat panel display system with graphical image integrity
US8347373B2 (en) * 2007-05-08 2013-01-01 Fortinet, Inc. Content filtering of remote file-system access protocols
JP2008077325A (ja) * 2006-09-20 2008-04-03 Hitachi Ltd ストレージ装置及びストレージ装置に対する設定方法
US8055856B2 (en) * 2008-03-24 2011-11-08 Nvidia Corporation Lock mechanism to enable atomic updates to shared memory
FR2938671B1 (fr) * 2008-11-17 2011-06-03 Sagem Defense Securite Equipement avionique securise et procede de securisation associe
US8316368B2 (en) * 2009-02-05 2012-11-20 Honeywell International Inc. Safe partition scheduling on multi-core processors
FR2947359B1 (fr) * 2009-06-30 2011-07-29 St Microelectronics Grenoble 2 Sas Procede et dispositif de simulation d'un signal de reinitialisation dans un systeme sur puce simule
WO2012005639A1 (en) * 2010-07-06 2012-01-12 Saab Ab Simulating and testing avionics
US9098462B1 (en) * 2010-09-14 2015-08-04 The Boeing Company Communications via shared memory
WO2013191606A1 (en) * 2012-06-21 2013-12-27 Saab Ab Dynamic memory access management
US9539155B2 (en) 2012-10-26 2017-01-10 Hill-Rom Services, Inc. Control system for patient support apparatus
EP2743830A1 (en) * 2012-12-13 2014-06-18 Eurocopter España, S.A. Flexible data communication among partitions in integrated modular avionics
US10069779B2 (en) * 2013-03-25 2018-09-04 Ge Aviation Systems Llc Method of hybrid message passing with shared memory
EP2784676A1 (en) * 2013-03-28 2014-10-01 Eurocopter España, S.A. DIMA extension health monitor supervisor
WO2014174340A1 (en) * 2013-04-22 2014-10-30 Chad Klippert Aircraft flight data monitoring and reporting system and use thereof
US9485113B2 (en) * 2013-10-11 2016-11-01 Ge Aviation Systems Llc Data communications network for an aircraft
US9749256B2 (en) * 2013-10-11 2017-08-29 Ge Aviation Systems Llc Data communications network for an aircraft
EP2963619A1 (en) * 2014-06-30 2016-01-06 Airbus Operations GmbH Data collection apparatus, data collection system and method for data collection in vehicles
US9794340B2 (en) * 2014-09-15 2017-10-17 Ge Aviation Systems Llc Mechanism and method for accessing data in a shared memory
US9537862B2 (en) 2014-12-31 2017-01-03 Vivint, Inc. Relayed network access control systems and methods

Also Published As

Publication number Publication date
FR3025907B1 (fr) 2019-07-26
US10560542B2 (en) 2020-02-11
GB2532843A (en) 2016-06-01
GB201516102D0 (en) 2015-10-28
GB2532843B (en) 2018-08-29
CN105426258A (zh) 2016-03-23
CN105426258B (zh) 2021-04-09
BR102015020596A2 (pt) 2016-03-22
FR3025907A1 (fr) 2016-03-18
US20160080517A1 (en) 2016-03-17
CA2902933A1 (en) 2016-03-15

Similar Documents

Publication Publication Date Title
JP2016062606A (ja) 共有メモリにおけるメッセージデータにアクセスすることによりクライアントとサーバとの間で通信するためのメカニズム及び方法
US9794340B2 (en) Mechanism and method for accessing data in a shared memory
CN112256423B (zh) 分布式资源管理系统中的动态租户结构调整的系统、设备和过程
US7260663B2 (en) System and method for presenting interrupts
US5526492A (en) System having arbitrary master computer for selecting server and switching server to another server when selected processor malfunctions based upon priority order in connection request
CN111522639A (zh) Kubernetes集群架构系统下多维资源调度方法
US8155134B2 (en) System-on-chip communication manager
US9535756B2 (en) Latency-hiding context management for concurrent distributed tasks in a distributed system
US11863469B2 (en) Utilizing coherently attached interfaces in a network stack framework
WO2013049399A1 (en) System and method for providing and managing message queues for multinode applications in a middleware machine environment
EP2962200B1 (en) System and method for using a sequencer in a concurrent priority queue
US11928504B2 (en) System and method for queuing work within a virtualized scheduler based on in-unit accounting of in-unit entries
CN114928579B (zh) 数据处理方法、装置、计算机设备及存储介质
US9317346B2 (en) Method and apparatus for transmitting data elements between threads of a parallel computer system
US10379900B2 (en) Dispatching jobs for execution in parallel by multiple processors
US11334246B2 (en) Nanoservices—a programming design pattern for managing the state of fine-grained object instances
JP5696891B2 (ja) Io構成によるジョブスケジューリング方法
US8688880B2 (en) Centralized serialization of requests in a multiprocessor system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180822

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20190402

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190410

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190423

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190723

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190806

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191030

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200406

A045 Written measure of dismissal of application [lapsed due to lack of payment]

Free format text: JAPANESE INTERMEDIATE CODE: A045

Effective date: 20200831