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

斉藤 直希

tag: 組み込み

技術解説 2008年12月 9日

● OSを使うべきか,使わないべきか

 ここではOSを使わずにタスクを管理する場合と,OSを利用してタスクを管理する場合とを比較します.

 OSを使わない場合は,基本的に図13のような大域ループから各処理を読み出す構造になります.このような方法はシンプルであるというメリットがある一方,時間のかかる処理がある場合にはほかの処理の起動が遅れるという問題があります注22(図14)

zu13_01.gif
図13 OSを使わない場合の処理起動
OSを使わない場合,大域ループの中から順番に呼び出すことになる.次にその処理が実行されるのは残りの処理をすべて終了した後となる.優先的に実行させたい処理は割り込みを使って行う.

注22;急ぎの処理は割り込みというハードウェアの仕組みを使うことになる.

zu14_01.gif
図14 大域ループ構造のスケジューリングの問題
一つでも処理時間が長いタスクがあると,起動タイミングに影響を与えてしまう.

 OSを使った場合は,それぞれのタスクはOSから呼び出されることになります(図15).μITRON仕様の場合,優先度ベース・スケジューリングに従ってタスクが実行されるため,高い優先度に設定したタスクは必要なタイミングで即座に実行できます.ただし,その分優先度の低いタスクの実行が遅れることになります(図16)

zu15_01.gif
図15 OSを使った場合のタスク呼び出し
OSを使うとスケジューリング規則に従ってタスクが実行される.

zu16_01.gif
図16 優先度ベース・スケジューリング
優先度と起動順序でタスクの実行順序が決まる.高優先度のタスクが起動された場合,即座に高優先度タスクに切り替わる.低優先度タスクは処理が終了するまで実行が遅れることになる.

 必要なメモリ・サイズについては,OSを使えばその分メモリが必要になります.どの程度必要かについてはOSが提供する機能によってまちまちです.例えば筆者がTOPPERS/JSPカーネルをM32Cプロセッサ(14)にポーティングした場合,約25Kバイト程度のROM容量が必要でした注23.また,スケジューリングについてもOSを介する分だけ時間を必要とします.例えば,M32Cプロセッサにおいて単なる関数呼び出しは数サイクルで済みますが(12),TOPPERS/JSPカーネルを同プロセッサで評価した場合,タスク切り替えに約13μs必要でした注24

注23;TOPPERS/JSPバージョン1.4.3にてカーネルをライブラリ化せず,中身が空のタスク一つ,ログタスク,シリアル・ドライバ,タイマ・ドライバという構成でリンクした場合のモジュール・サイズ.カーネルをライブラリ化するなど工夫すれば使用メモリを減らすことも可能だが,それでも十数Kバイトは必要.
注24;機能にも依存するがTOPPERS/JSPカーネルを評価ボード(OAKS32(13),30MHz)で測定した場合.

7.OSをどう勉強したらよいか

 これまで組み込みシステム向けOSの概要とOSのタスク管理機能について簡単に説明しました.最後にこれからのOSの学び方について少し述べます.

 最初に紹介したOSの定義から考えると,OSとは基本的にプログラムの実行を制御するソフトウェアであるといえます.従ってOSを学ぶ際の第1歩としては,ここで説明したようにプログラムの実行を制御する機能について知ることです.また,残りのOS機能についてもさまざまなものがあります.しかし,OSはシステムが目的を達成するために必要な処理を行う裏方的なプログラムなので,必要に応じて整理していくとよいと思います.

 OSを理解するための効果的な方法としては,何を作りたいのか,まずは漠然でもいいから対象を定めてみることだと思います.対象が決まり,その目的を考えることでOSに要求する機能の候補が特定できます.あとは個々の機能がその目的を満たすのか比較検討してみることでOSが提供する機能の意味が理解しやすくなります.

 企業の技術者は自社で扱っている製品を対象としてもよいと思います.例えば,組み込みシステムをテーマにしたイベントなど(15)(18),ほかにも目標を定める機会はいろいろあると思うので,挑戦してみるとよいかもしれません.本稿がOSについて考えるきっかけになれば幸いです.



参考・引用*文献

(1)戸川望ほか;組み込みシステム概論,pp.29-56,CQ出版社,2008年.
(2)JIS X 0001,日本規格協会,1994年.
(3)JIS X 0010,日本規格協会,1987年.
(4)TOPPERSプロジェクト/INDEX,TOPPERS Project.
(5)ミスポのWebページ.
(6)組み込み設計のための優れたOSソフトウェア,開発ツールとサービス,QNX ソフトウエア システムズ.
(7)Wind River社のWebページ.
(8)Symbian OSのWebページ.
(9)LynxOSのWebページ.
(10)トロン協会のWebページ.
(11)OSEK VDX のWebページ.
(12)M32C/80シリーズソフトウェアマニュアル,ルネサス テクノロジ.
(13)OAKSボード,オークス電子.
(14)M32C/83グループハードウェアマニュアル,ルネサス テクノロジ.
(15)ETロボコン2008公式サイト,組み込みシステム技術協会.
(16)Surveyor/Hamana Project.
(17)渡邉友裕ほか;新人研修は「模型ロケット」<新人技術者編>,Design Wave Magazine,2006年6月号.
(18)大西秀一,服部博行;新人研修は「模型ロケット」<指導者・管理者編>,Design Wave Magazine,2006年6月号.
(19)服部博行,ほか;第10回LSI IPデザイン・アワード IP優秀賞「オープンソース保護OS:メモリ保護と時間保護を有する自動車向けリアルタイムOS」

さいとう・なおき
<筆者プロフィール>
斉藤直希.某公設試験研究機関勤務.M16CプロセッサへのTOPPERS/JSPカーネルポーティングをきっかけに組み込みの世界へ入る.最近は安全を求められる組み込みシステムのためのリスク分析手法や形式手法に興味を持っている.趣味はボサノバの音楽鑑賞.最近は子供と一緒に遊ぶことが多く,そちらが趣味となりつつある.

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! 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日