SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

[組込み開発入門] ロボットを作ろう

【第2回】リアルタイムOS(RTOS)とは

レゴマインドストームNXTでロボットプログラミング


  • X ポスト
  • このエントリーをはてなブックマークに追加

 組込みソフトウェア開発では、プログラム内で多様な処理を行う必要がある場合にリアルタイムOS(RTOS)を利用してプログラムの動作を制御します。 今回は、そのRTOSにスポットをあてて、RTOSが提供してくれる機能とその効果について学びます。

  • X ポスト
  • このエントリーをはてなブックマークに追加

はじめに

 本連載では、「レゴマインドストームNXT」を利用して、機器に組み込む制御ソフトウェア(組込みソフトウェア)の開発を行っていきます。組込みソフトウェア開発では、プログラム内で多様な処理を行う必要がある場合にリアルタイムOS(RTOS)を利用してプログラムの動作を制御します。今回は、このRTOSにスポットをあて、RTOSが提供してくれる機能とその効果について学びます。

RTOSってなんだろう

組込みソフトウェアの特徴

 RTOSの必要性や効果を理解するために、まず、組込みソフトウェアの特徴についてみていきましょう。携帯電話や自動車という実際の製品で利用される組込みソフトウェアには以下のようなものがあります。

例1:携帯電話のメール受信制御ソフトウェア
一定時間ごとに電波状況を検出し、
携帯電話局のサーバに自携帯電話へのメールが着信していないかを確認する
例2:自動車のABS(Antilock Brake System)制御ソフトウェア
ブレーキをかけた場合にタイヤが滑ったことを検出し、
自動的にブレーキを弱くすることでタイヤロックを回避し、
自動車が操作不能になることを防止する

1)処理時間

 例1の組込みソフトウェアでは、電波が利用できる状況において何らかの理由で受信処理が動作しなくても、次回の受信で正常に処理できれば機能としては問題ありません。しかし、例2の組込みソフトウェアでは、ブレーキ中のタイヤロックを検出してすぐに処理が完了しないと、自動車が操作不能になり大きな事故や被害が発生します。

 例1のように、一定時間内に処理が終わらなくても機能として有効なものを「ソフトリアルタイム処理」と呼びます。また、例2のように、一定時間で処理が終わらないと機能として有効でなくなるものを「ハードリアルタイム処理」と呼びます。

 PC向けのアプリケーションソフトウェアなどでは、動作させるパソコンの性能による処理時間の変動が許されることも多いのですが、「ハードリアルタイム処理」の組込みソフトウェアでは、必ず定められた時間内に処理が終わることを保障する必要があります。

2)処理効率

 携帯電話は利用者が端末を操作していないときも、電波状況監視などの制御が行っています。このように、常時あるいは一定周期に制御が行われる(=動作する)プログラムが多ければ多いほど、電力を多く消費します。携帯電話のように電源が安定供給されない製品の場合は、消費電力が多いと製品の動作時間が短くなります。

 例えば、携帯電話でメール画面を操作中に電話が着信した場合を考えてみましょう。この場合、メール画面の処理を行いながら、着信が発生しているかを監視し、着信した時の画面切り換えなどの制御を行う必要があります。メール画面を表示している最中に、繰り返し着信の有無を確認すると無駄なプログラムが動作することになります。

 このように組込みソフトウェアは、一定周期や操作などの何らかのきっかけで、必要な処理だけを無駄なく動作させる必要があります。

3)リソース量(プログラムサイズ、利用メモリ量)

 例1、例2は、どちらも小さな機械の中にソフトウェアを格納して動作させることになります。小さな機械にはあまり多くのメモリは搭載できないので、できる限りプログラムは小さく、利用するメモリ量は少なくする必要があります。また、例にあげた自動車や携帯電話などは大量に製品を製造するため、個々の部品の価格が大きく影響します。できるだけ安価なCPUやメモリで動作させないと製品が高価になってしまいます。

次のページ
組込みソフトウェアに求められることを実現するための基盤

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
[組込み開発入門] ロボットを作ろう連載記事一覧

もっと読む

この記事の著者

高橋 修(タカハシ オサム)

(株)永和システムマネジメント所属パッケージ製品、IT系システムの開発を経て、組み込み分野向けツール開発に従事。組み込みソフトウェアのマニアックさとライブ感に大きな価値を感じている。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/3702 2009/03/17 10:21

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング