BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Barrelfish - マルチコア異機種ハードウエアのためのマルチカーネルOS

Barrelfish - マルチコア異機種ハードウエアのためのマルチカーネルOS

原文(投稿日:2011/07/09)へのリンク

Microsoft と ETH Zurich (スイス連邦工科大学チューリッヒ校) の研究チームが Barrelfish のソースコードを公開した。Barrelfish はマルチコア異機種ハードウェアを対象とする,次世代のマルチカーネルオペレーティングシステムである。

今日のオペレーティングシステムは,マルチプロセッサやマルチコアのハードウェアで動作するが,最初からマルチコアを念頭に設計されたものではない。さらに今後10年のうちに実現されるであろう,数百個のコアを持つ異機種構成ハードウェアに対応することはできない。おもな問題点は共有メモリの概念と,ロックで保護された同一データへのアクセスから発生する競合にある。Barrelfish はこの問題に対処しようとするものだ。

Barrelfish は Microsoft と ETH Zurich コンピュータサイエンス部門の システムグループ が運営する,オペレーティングシステムの共同研究である。既存のオペレーティングシステムの制限を受けない,まったく新しい分野の試みとして,2007 年に開始された。チームの目標は,大規模マルチコアをサポートし,新たな基準のハードウェアであれば移植作業を要さずにインストール可能なコンセプトOSを構築することにあった。

Barrelfish では 下図 に示すように,マルチカーネルの概念を採用する。

 

これについて研究員の Rebecca Isaacs 氏は,次のように説明している

オペレーティングシステムとはどのような構造であるべきか,その基準となるモデルを思い浮かべることができるでしょうか? それがマルチカーネルなのです。マルチカーネルは,分散システムとしてのオペレーティングシステムを,構成概念から説明するためのモデルです。私たちのシステムでは,オペレーティングシステムはすべてのノードに複製され,それぞれのコアで稼働するオペレーティングシステムのインスタンスが,相互にメッセージを送信します。Barrelfish はマルチカーネルモデルを実装したものなのです。

ACM シンポジウム 2009 で発表された論文 "マルチカーネル:スケーラブルなマルチコアシステムのための新たなOSアーキテクチャ (The Multikernel: A new OS architecture for scalable multicore systems)" (PDF) には,Barrelfish の3つの設計原則が概説されている。

  1. コア間通信がすべて明示的であること
  2. OSアーキテクチャがハードウェア中立であること
  3. 状態の共有に代えて複製を用いること

主任研究員の Paul Barham 氏は,これらの原則について次のように 説明する

通常のマルチプロセッサオペレーティングシステムでは,すべてのプロセッサは共有メモリを使用して,同じカーネルベースのデータ構造を操作します。しかしプロセッサはそれぞれキャッシュを持っているので,カーネルデータ構造の断片が多数,各プロセッサのキャッシュに格納されることになります。各コアは共通のデータ構造を操作していると思っていますが,実際にはシステムデータ構造の多数のコピーが存在しているので,ハードウェアによって一貫性を維持しなければなりません。

このキャッシュ一貫性 (cache-coherence) プロトコルが,プロセッサ数のスケールアップを極めて困難にするのです。オペレーティングシステムの開発者は,オペレーション実行時にカーネル状態のどのビットがどのプロセッサ間でコピーされるのか,十分に考えなければなりません。更新が行われたとき,どのプロセッサがそれを知る必要があるのか,すべてのコアに通知が必要なのはどのデータか,などです。 マルチカーネルのアイデアは,これら通信パターンを明示化することにあります。マシン内部にどのようなキャッシュラインを引き回す必要があるか,あれこれ推測する代わりに,各プロセッサに独立したカーネルを動作させて,変更を行った時にはそれを明示するメッセージを他のすべてのコアに送信させるのです。 この手法は,スレッドを使った共有メモリプログラムよりも,分散システムに近いものです。

Barrelfish は当初,x86-64bit および ARM を使用したマルチプロセッサハードウェアで動作していた。その後,48 コアを持つ研究レベルのマルチプロセッサである Intel Single Chip Cloud と,単一 FPGA の多コア型コンピュータである Beehive (PDF) のサポートが追加されている。

ソースコード は先日,MIT オープンソースライセンス の下に Mercurial で公開されている。

この記事に星をつける

おすすめ度
スタイル

BT