制御されたテストとエラー検出のためのツール、Hermit

隠者

再現可能なコンテナーとしての隠者は、システムスタックが抽象化として再現性を提供した場合にどのようになるかについてのアイデアを提供します

Facebookが発表 最近出版物を通じて、 隠者を形成します。 確定的プログラム実行環境、これにより、同じ結果を達成し、同じ入力データを使用して異なる起動で実行プロセスを繰り返すことができます。

通常の実行中は、現在の時刻、スレッド スケジューリング関数、仮想メモリ アドレス、疑似乱数ジェネレータからのデータ、さまざまな一意の識別子など、さまざまな外部要因が出力に影響します。

Hermit はコンテナ内でプログラムを実行することを許可します これらの要因は、その後の実行でも一定のままです。 揮発性環境の構成を完全に再現する繰り返し実行、 エラー診断、デバッグに使用可能 反復を伴うマルチステップ、回帰テスト、ストレス テスト、マルチスレッド トラブルシューティング、反復可能なビルド システム用の固定環境を作成します。

Hermit は、任意のプログラムの決定論的実行を強制し、再現可能なラッパーとして機能します。 つまり、タイミング、スレッドインターリーブ、乱数生成などの非決定性のソースからプログラムを密閉して分離します。 保証された決定論は強力なツールであり、同時実行ストレス テスト、記録/再生、再現可能なビルド、同時実行エラーの自動診断など、多くのアプリケーションの基盤として機能します。

Hermit は、ファイル システムの変更や外部ネットワークからの応答など、非決定性のソースからゲスト プログラムを分離することはできません。 代わりに、完全な決定論を提供するには、ユーザーは固定ファイル システムの基本イメージ (Docker など) を提供し、外部ネットワークを無効にする必要があります。

隠者について

隠者 力が再現可能な環境を作り出すことを可能にする システムコールをインターセプトすることにより、一部は一定の出力を生成する独自のハンドラーに置き換えられ、一部はカーネルにリダイレクトされます。その後、非永続データが出力から削除されます。

通話を傍受するには システムには、 フレームワークが使用されている 白昼夢、そのコードは Facebook でも公開されています。 ファイル システムの変更やネットワーク リクエストが実行の進行状況に影響しないようにするには、 実行は静止画像を使用して実行されます ファイル システムを無効にし、外部ネットワークへのアクセスを無効にします。 疑似乱数ジェネレーターにアクセスすることにより、Hermit は、実行されるたびに繰り返される定義済みのシーケンスを生成します。

非決定性の最も複雑な原因は、スレッド スケジューラにあります。 カーネルがスレッドをスケジュールする方法は、CPU 時間を必要とするシステム上で実行されている物理 CPU やその他のスレッドの数など、多くの外的要因によって異なります。

より複雑で非永続的なパフォーマンスへの影響のうち、 ハイライト スレッド スケジューラ、その動作は、CPU コアの数や他の実行中のスレッドの存在など、多くの外的要因に依存します。

繰り返し可能なスケジューラの動作を確保するには、すべてのスレッドがシリアル化され、単一の CPU コアにバインドされます そして、制御がスレッドに渡される順序で。 各スレッドは一定数の命令を実行でき、その後実行は停止され、別のスレッドに転送されます (制限のために、CPU PMU (Performance Monitoring Unit) が使用され、指定された数の条件分岐後に実行が停止されます)。

診断する 競合状態によるスレッドの問題、隠者 異常な操作を検出するモードがあります そして封鎖を引き起こした。 このような問題を特定するために、正しい操作と実行の異常終了が登録された状態を比較します。

最後に、それについてもっと学ぶことに興味があるなら、それを知っておくべきです プロジェクトコード Rust で書かれており、BSD ライセンスの下で配布されています。

で詳細を確認できます 次のリンク。


コメントを残す

あなたのメールアドレスが公開されることはありません。 必須フィールドには付いています *

*

*

  1. データの責任者:AB Internet Networks 2008 SL
  2. データの目的:SPAMの制御、コメント管理。
  3. 正当化:あなたの同意
  4. データの伝達:法的義務がある場合を除き、データが第三者に伝達されることはありません。
  5. データストレージ:Occentus Networks(EU)がホストするデータベース
  6. 権利:いつでも情報を制限、回復、削除できます。