Get in Touch
  • If you’re interested in a Wind River product, simply answer a few questions and we’ll get in touch right away.
  • If you’d like to speak with someone immediately, call our number for sales inquiries below.

    Toll-free: 800-545-WIND (800-545-9463)

【設計しながら学ぶRTOSの基本編】第1回 ガイダンス

こんにちは、南角 です。
さらに新しい展開ということで、6回ほどの予定で記事を掲載することになりました。
今回は少し趣向を変えてRTOSのシステム設計を行いながら、RTOSの内部構造に触れてみたいと思います。引き続きよろしくお願いします。

皆さんの会社でもソフトウェアを開発する時のドキュメントは、いろいろな呼び方があると思います。
内部仕様書や外部仕様書、システム仕様書、インターフェース仕様書、プログラム仕様書、あるいは試験仕様書など。

今回はRTOS自身のシステム仕様書より、少し前のシステムの構想を考えるあたりの、RTOSの基本的な部分を中心に設計を行います。

今回は実装は行いませんが、実際に想定しているのは、授業やゼミで使用している、M16C/62AあたりのCPUです。ただしきちんとしたアプリケーションを、搭載する必要はないため、メモリ使用量に関しては、それほど気にしないことにします。
私の大学院の授業「オペレーティングシステム特論」で、来年度は今回の内容をベースにして、大学院生に16ビットCPU上にRTOSを実装させようと思っています。また機会があれば、その報告などもしたいと思います。

内容的には次のようなものを考えています。

  • TCB
    TCBの構造ですが、CPUコンテキストの保存領域以外にどのような領域が必要になるかは、RTOSの提供する機能によって変わってきます。そのあたりをRTOSの提供する機能を考えながら、TCBの構造を決めていきたいと思います。
  • システムレディキュー
    比較的単純なRTOSを目指すので、普通ならばTCBの配列で済ますところですが、今は実行時間や、メモリ容量は気にせず、ビットマップ付きのマルチレベルキューの構造にしたいと思います。
  • スケジューラ(ディスパッチャ)
    RTOS実現には、周期的なタイマー割り込み(システムクロック、システムチック)が必要ですが、いわばそのドライバです。ある意味、RTOSの中心機能です。
  • RTOSと割り込み
    特にカーネル自身とペリフェラルとの排他制御を中心に考えてみたいと思います。
  • セマフォ
    最低でもセマフォくらいは備えていないとRTOSとは呼べないですよね。システムレディキューとセマフォの解放待ち行列の違いなど考えてみたいと思います。
  • マルチコア間の排他制御
    ここまでは、シングルコアのCPUを対象としていますが、共有メモリのマルチCPU(マルチコア)に拡張する場合の、システムレディキューやセマフォなどの排他制御を中心に、マルチコア対応RTOS機能を含めて考えてみたいと思います。

RTOSがタスクに対して、C言語の関数の形で提供する機能はシステムコールと呼ぶことにします。
システムコールの名前はVxWorks的な名前にして、機能イメージがわきやすいようにして行きたいと思います。
では、次回。

コラム1 - スピンロック

先日、神戸会場で大学の入学試験の試験監督をやり、そこでスピンロックの経験をしました。
以前、現実世界の変化をセンサーがCPUに知らせる、あるいはCPUが知るための仕組みとして
・割り込み
・ポーリング
・スピンロック
があり、それらを約束の時間に電話をする場合のたとえで説明したことがあったと思います。 その時、例えば携帯電話のアラームをセットする場合は、作業効率は良いが、アラームをとめたり、電話が終わってから、やっていた作業の再開準備のためのオーバーヘッドが大きい。
ポーリングがオーバーヘッドは小さいが、空振りしたり、タイミングを外す場合がある。
ポーリングの一種であるスピンロックは、即座に対応できるし、オーバーヘッドも最小だが、他の作業ができない。
今回試験開始や終了の時間は、他の試験場と合わせねばならず、受験生への公平さのために、ずっと電波時計とにらめっこで、合図を送りました。
これはまさにスピンロックです。そしてスピンロックは、ポーリングとは、その意味合いが、全然違うのではないかとふと思いました。

コラム2 - 特許と論文

企業に勤めていた時代は、なにか新しいアイデアがあるとまず特許でした。おかげで、特許もそれなりに取得しています。
しかし、大学に来るとまず、論文です。残念ながら、企業と違い、大学では特許作成のサポートがほとんどないため、絶対特許になるというアイデアでも、特許はあきらめて論文に書かざるをえません。何か、特許を損したような気分です。

設計しながら学ぶRTOSの基本編 第1回 おわり

■著者プロフィール

南角 茂樹(なんかく しげき)

大阪電気通信大学 総合情報学部 メディアコンピュータシステム学科 准教授、同大学院総合情報学研究科(コンピュータサイエンス専攻)、エイシップ・ソリューションズ株式会社 研究顧問。
慶應義塾大学工学部数理工学科卒業後、大手電機会社を経て現職。組み込みシステムおよびリアルタイムOSを専門とし、著書、解説記事、発表・講演、登録特許等多数。

Thank You

Wind River, a wholly owned subsidiary of Intel Corporation (NASDAQ: INTC), is a world leader in embedded and mobile software. Wind River has been pioneering computing inside embedded devices since 1981 and its technology is found in more than 500 million products