V - oraccha/omicron GitHub Wiki

Stanford 大の David R.Cheriton 教授らによる分散OS

  • [http://www-dsg.stanford.edu/ Stanford University Distributed Systems Group]

CacheKernel は V++ のカーネル.

[http://www.cs.berkeley.edu/~gribble/osprelims/F95/summaries/v/v.html Summary of The V Distributed System]


V の設計思想

  • 高速通信を前提にした分散システムの設計. . スループットだけではなく,レスポンス性能を重視したトランザクションオリエンテッドな通信.
  • システムを定義するのはソフトウェアではなくプロトコルである. . ネットワークプロトコル,I/O,ネーミング,認証.
  • 小さな分散カーネルとサーバによるシステム構成 . 分散カーネルはネットワーク透過なプロセス,アドレス空間,通信モデルを提供する.残りのサービスはプロセスレベルのサーバとして実現する.

V の IPC

  • RPCに適した単純なプリミティブ.
    • Send-Receive-Reply をベースにした同期型.
    • 固定長メッセージ(32byte) + 可変長データセグメント.
      • V における実際のネットワークトラヒックを測定したところ,50%が32byte以下のサイズだったらしい.
  • RPC に適した通信プロトコルである VMTP.
    • コネクションの設定/切断がなく,リクエスト/レスポンス主体の通信に向いている.
  • 通信のためのカーネルの最適化.
    • 同期型 IPC なので,プロセスは通常一度に一つのメッセージ通信しか行なわない.そこで,プロセス構造体内に VMTP ヘッダを持つことで,バッファ管理を簡単にしている.
  • マルチキャストのサポート.
    • IPC のエンドポイントとしてプロセス,またはプロセスグループを指定できる.
    • V では単一のネームサーバを持たず,CSNH(Character String Name Handling)サーバグループというプロセスグループに属した複数サーバによって名前が管理される.クライアントが文字列を CSNH サーバグループにマルチキャストした場合,その名前に対応する資源を管理しているサーバが Reply することで,サーバが特定される.

論文

  • David Cheriton, The V distributed system, Communication of the ACM, pp.314-333, March 1988. ([http://citeseer.nj.nec.com/context/1261/0 ResearchIndex])