組み込みソフト開発のしきいを下げる"リアルタイムOS"のすべて
1. OSとは何か?
OSは「計算機の資源を管理するためのしくみ」です.少なくともこの記事では,このように定義したいと思います.OSが管理すべき資源には,図1のようなものが考えられます.計算機が管理する資源とは,メモリやハード・ディスクなどのハードウェア環境だけではなく,実際に動かすソフトウェアも管理の対象としています.
●OSを利用するメリット
「組み込みシステムにOSを載せて何がうれしいか?」という質問は,もともとOSなしで種々の組み込み機器を開発してきた方からよく聞かれる言葉です.これに対しての答えは,筆者なら次のように考えます.
1)限られた資源を有効に使うためのしくみがある プログラマはRAMやハード・ディスクなどの内部,または外部メモリの使用量を自分自身で管理する必要はない.すなわち,アプリケーション・プログラムの中でメモリの使用量を管理する処理を書く必要はない.
2)ハードウェアの差をOSが吸収する アプリケーション・プログラムを書くときに,ハードウェアに由来する仕様の差を考慮しなくてよい.ハードウェアの仕様の違いはデバイス・ドライバとAPIが吸収する.プログラマは,ハードウェア・レベルのしくみを知る必要はほとんどなく,システムのための処理をプログラムすることに集中できる.
3)タスク・スケジューリングが楽にできる 自分でスケジューラやモニタを書く手間が省ける.タスクやプロセスの細かいスケジューリングは,特に指定しないかぎり,ほぼ全部OSに任せることができる.タスク切り替え時の実行環境(スタック・ポインタ,各種レジスタの値など)の保存は,すべてOS側で管理する.よって,プログラマは基本的にそれらのことを気にしないで処理をプログラムすることができる.
[図1]計算機が管理する資源
計算機が管理する資源には,CPUの使用時間,メモリ,ハードディスク,モニタ,マウス,キーボード,プリンタ,ネットワークなどがある.