プログラミング
 Computer >> コンピューター >  >> プログラミング >> プログラミング

分散共有メモリを実装するためのアルゴリズム


共有メモリ 複数のプログラムからアクセスできるメモリブロックです。共有メモリの概念は、通信の方法を提供し、冗長性の少ないメモリ管理を提供するために使用されます。

分散共有メモリ DSMと略されます 分散システムでの共有メモリの概念の実装です。 DSMシステムは、システム内のローカルの物理共有メモリを奪われた疎結合システムに共有メモリモデルを実装します。このタイプのシステムでは、分散共有メモリは、すべてのシステム(ノードとも呼ばれます)がアクセスできる仮想メモリ空​​間を提供します。 )分散階層の。

DSMの実装中に留意すべきいくつかの一般的な課題-

  • 共有メモリにリモートで保存されているデータのメモリアドレス(場所)の追跡。

  • リモートデータへの参照に関連する通信遅延と高いオーバーヘッドを削減するため。

  • DSMで共有されるデータの同時アクセスを制御します。

これらの課題に基づいて、分散共有メモリを実装するように設計されたアルゴリズムがあります。 4つのアルゴリズムがあります-

  • 中央サーバーアルゴリズム
  • 移行アルゴリズム
  • 読み取りレプリケーションアルゴリズム
  • 完全レプリケーションアルゴリズム

中央サーバーアルゴリズム

すべての共有データは中央サーバーによって維持されます 。分散システムの他のノードデータの読み取りと書き込みの要求 リクエストを処理し、確認メッセージとともにデータへのアクセスを更新または提供するサーバーへ 。

これらの確認メッセージは、サーバーによって処理されるデータ要求のステータスを提供するために使用されます。データが呼び出し元の関数に送信されると、同時実行性を維持するためにデータのアクセスシーケンスを示す番号が確認されます。また、障害が発生した場合はタイムアウトが返されます。

大規模な分散システムの場合、複数のサーバーが存在する可能性があります。この場合、サーバーはアドレスまたはマッピング機能を使用して配置されます。

分散共有メモリを実装するためのアルゴリズム

移行アルゴリズム

名前が示すように、移行アルゴリズムはデータ要素の移行の作業を行います。各リクエストを処理する中央サーバーを使用する代わりに、システムによってリクエストされたデータを含むブロックが移行されます さらなるアクセスと処理のためにそれに。リクエストに応じてデータを移行します。

ただし、このアルゴリズムは、システムが同じデータブロックに複数回アクセスし、仮想メモリを統合する機能を使用する場合に適しています。 コンセプトには、対処する必要のあるいくつかの欠点があります。

一度に1つのノードのみが共有データ要素にアクセスでき、ブロック全体がそのノードに移行されます。また、このアルゴリズムはスラッシングしやすい ノードからの要求に応じてデータ項目が移行されるため。

分散共有メモリを実装するためのアルゴリズム

読み取りレプリケーションアルゴリズム

読み取りレプリケーションアルゴリズムでは、アクセスされるデータブロックは複製されます。 読み取りのみが許可されます すべてのコピーで。書き込み操作を行う場合は、すべてのコピーが更新されるまで、すべての読み取りアクセスが停止されます。

同時アクセスが許可されるため、システム全体のパフォーマンスが向上します 。ただし、操作には費用がかかりますと書いてください。 同時実行性を維持するために共有されるすべてのブロックを更新する必要があるため。一貫性を維持するために、データ要素のすべてのコピーを追跡する必要があります。

分散共有メモリを実装するためのアルゴリズム

完全レプリケーションアルゴリズム

ノードが読み取りと書き込みの両方を実行できるようにするレプリケーションアルゴリズムを読み取るための拡張機能 同時の共有ブロックでの操作。ただし、このノードへのアクセスは、一貫性を維持するために制御されます。

すべてのノードの同時アクセスに関するデータの一貫性を維持するために、シーケンスが維持され、データで行われるすべての変更後にマルチキャスト 変更を加えると、すべてのデータコピーが反映されます。

分散共有メモリを実装するためのアルゴリズム


  1. メモリ管理における最適なアルゴリズムのためのC++プログラム

    ブロックサイズとプロセスサイズを含む2つの配列があるとします。タスクは、メモリ管理のベストフィットアルゴリズムに従って結果を印刷することです。 最適なアルゴリズムとは何ですか? Best Fitは、メモリ管理アルゴリズムです。要求プロセスの要件を満たす最小の空きパーティションの割り当てを処理します。このアルゴリズムでは、メモリブロック全体を探し、プロセスに最も小さく最も適切なブロックをチェックしてから、適切なプロセスを実行するために使用できるすぐ近くのブロックを探します。 したがって、ブロックサイズとプロセスサイズを取得し、プロセスの出力と、プロセスに割り当てられるブロックを返します。

  2. Djangoでのモデル復帰の実装

    この記事では、オブジェクトのデータトラッキング、削除されたデータの回復、およびオブジェクトの回復を追加する方法を学習します。復元とは、削除されたモデルデータを取り戻すことを意味し、1回のクリックですべての削除されたデータを復元し、各モデルオブジェクトの追跡も可能にします。 まず、Djangoプロジェクトとアプリを作成し、settings.py。のINSTALLED_APPSにアプリを追加します。 urls.pyを設定します django-reversionをインストールします モジュール- pip install django-reversion settings.py内 、次の