ハイパーコールはLinuxシステムコールと同じ時間がかかりますか?

ハイパーコールはLinuxシステムコールと同じ時間がかかりますか?

禅ホームページから

ハイパーコールは、オペレーティングシステムへのハイパーバイザーなどのシステムコールです。あるいは、ハイパーバイザーへのハイパーコールはカーネルへのシステムコールです。ハイパーコールは、システムコールがアプリケーションからカーネルへのソフトウェアトラップであるかのように、ドメインからハイパーバイザーへのソフトウェアトラップです。ドメインはハイパーコールを使用して、ページテーブルの更新などの特権アクションを要求します。システムコールと同様に、ハイパーコールは同期的ですが、ハイパーバイザーからドメインへの戻りパスはイベントチャネルを使用します。イベントチャネルは非同期通知キューであり、基本ハードウェアの割り込み通知と同じタイプのイベントを通知します。キューに保留中のイベントを含むドメインが予約されている場合は、オペレーティングシステムのイベントコールバックハンドラが呼び出され、適切なアクションが実行されます。

  • ハイパーコールとシステムコールの両方が同じことをすると仮定すると、同じ時間がかかりますか?
  • ハイパーバイザーがハイパーコールを処理する方法とシステムコールを同じ方法で処理するLinuxカーネルの違いは何ですか?

ベストアンサー1

スーパーコールはシステムコールより遅いです。これは、ハイパーコールが実行される前に、まずホスト/ハイパーバイザーに到達してからCPUに移動する必要があるためです。戻りパスも同様です。実際、同様のカーネルで行われたベンチマークはスーパーコアハイパーコールは約3〜4倍長くかかることがわかりました(リンクされたページのPDF 15ページ)。

おすすめ記事