組み込みソフト開発のしきいを下げる"リアルタイムOS"のすべて
●OSはハードウェアを仮想化,抽象化する
実際には,1台しかない計算機システムを,あたかも複数台あるように使える方法として考えられたのが計算機の仮想化と呼ばれるものです(図4).
例えば,UNIXはスーパーコンピュータからPC-AT互換機,Macintosh,果ては組み込み用のごくごく小さなシステムまで,種々のハードウェア上で動いています.
ハードウェアの違いに関係なく,同じような管理システムを提供するのがOSなのです.その管理システムは文字だけの表示であったり,MacOS,Windows,X-WindowのようなGUI(graphical user interface)を持っているかもしれません.しかし,見かけの問題であって,メモリ管理のしかたやネットワークの接続のしかたなどは,機種によらず同じような使いかたができます.
また,ハードウェアの使いかたを共通化することを,計算機科学の世界ではしばしば「ハードウェアの抽象化(あるいは仮想化)」といいます.どの計算機を使っても,同じOSを使うかぎり,一つの同じしくみの計算機ハードウェアであるかのように扱えるようにする役割をOSが担っているのです.
この考えかたに,ハードウェアだけでなくソフトウェアのありかたをも抽象化することを含めて,「計算機資源の抽象化(仮想化)」ということもあります.扱うハードウェアやソフトウェアをモデル化・抽象化することは,効率の良いシステムを設計するうえで非常に重要です.つまり,機種に依存しない柔軟なOSを作ることができるからです.また,どの部分が機種依存するのかを切り分けるためにも,この考えかたはたいせつです.
[図4]仮想的な計算機
実際には1台しかない計算機システムを複数台あるように使うためには,1台しかない物理的な資源を時間で区切って使ったり,メモリを共有したりという機構が必要になる.