組み込み向けリアルタイムOSの基礎知識 ―― プログラムの実行およびコンピュータ資源を管理するOSの種類や機能を整理する

斉藤 直希

tag: 組み込み

技術解説 2008年12月 9日

 ここで「プログラムの実行制御」とは何でしょうか.簡単にいえば,プログラムを必要に応じて動かしたり止めたりすることです(図2)

zu02_01.gif
図2 プログラムの実行制御
OSは要求に応じてプログラムを開始,停止する.次に実行するプログラムを決めることをスケジューリング,プログラムを停止して別のプログラムに切り替えることをディスパッチという.

 「コンピュータ資源を管理」とはどういうことでしょうか.コンピュータ資源とは,プロセッサ,メモリ,スイッチなど,プログラムが扱う対象とするさまざまなものを指します注2.資源の管理とは,資源を複数のプログラムで利用できるように調整することです.調整するとは,あるプログラムが資源を利用している間,別のプログラムがそれを利用できないようにしたり,利用する順序をあるルールに従って決定し,振り分けたりするということです(図3)

zu03_01.gif
図3 コンピュータ資源の管理
あるプログラムが資源を利用している間は別のプログラムからアクセスできないようにしたりアクセスの順番を制御することで不整合を防ぐ.

2.コンピュータ資源の仮想化,効率化を図るOS

 OSはどのような目的を持ったものなのでしょうか.OSの目的を大別すると次の2点が挙げられます.
  1. コンピュータ資源利用の効率化
  2. コンピュータ資源の仮想化

● コンピュータ資源利用の効率化

 コンピュータ資源利用の効率化とは,「コンピュータが仕事をしていない時間を減らし,ついでにコンピュータとやりとりを行う周辺装置(あるいは利用者)が仕事をしていない時間も減らす」ということです(図4)

zu04_01.gif
図4 コンピュータ資源の利用効率化
時間のかかる入出力処理の完了を待つ間に別のプログラムを実行することでプロセッサの利用効率を上げる.

 一つのケースは,コンピュータが周辺機器に処理を依頼するような場合です.身の回りの問題として,ある人が別の人に仕事を依頼する場合を考えてみましょう.完了の報告を受けるまで依頼した人は何をしているでしょうか.大抵の場合,報告を受けるまで別の仕事に取り掛かっているはずです.

 もう一つのケースは,コンピュータに対し複数の周辺装置(または利用者)が同時に仕事を依頼する場合です.現実の問題として,複数の人から同時に仕事を依頼されたらどのように仕事を進めるでしょうか.重要な仕事を先に進めるのはもちろんですが,一つの仕事だけに集中してしまうと,ちょっとした仕事を依頼しただけの別の相手が長く待たされてしまうことがあります.その場合,それぞれの依頼をいくつかの細かい作業に分割し,交互に作業を切り替えて進めることがあるかもしれません.そうすれば,依頼した各人が同程度の満足感を得られるはずです.このように,処理をどのように割り振るかは,OSを特徴付ける大きな要素であり,各OSごとにさまざまな方法が採られています.

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日