So-net無料ブログ作成

KさんのITRON本 うあっちゃー、アマゾン売り切れです。 [書籍ITRON本]

SuperHで学ぶμITRON仕様OS―リアルタイムOSの動作原理と実装法がわかる!

SuperHで学ぶμITRON仕様OS―リアルタイムOSの動作原理と実装法がわかる!

  • 作者: 鹿取 祐二
  • 出版社/メーカー: 電波新聞社
  • 発売日: 2005/12
  • メディア: 単行本


まだ発売もしていないのに~~~~。

それで第5章まで読んだところでの書評です。

その前にちょっと気になるところの補足!
本のタイトルに、「SuperHで学ぶ・・・」となっていますが、これは本当は「SuperHをネタにしてはいるけれど、本当はH8でもM16CでもM32RでもIA32でも、PowerPCでもなんでも、取り合えず16bit以上のCPUで学ぶ・・・」です。
「SuperH」って書いてあるから俺には関係無いと考えるのは早計です。
なぜならどんなOS、例えばWindowsの様な汎用OSのアプリケーションレベルのプログラマにとって、ハードウエア依存は縁がない様に思えますが、抽象化層という皮を一枚、一枚めくると、やがてハードウエア依存丸出しのところが出てきます。ITRONの場合、初めからそれが見えているだけです。つまりCPUや周辺機能の依存性は切っても切れない関係なので、逆に初めから依存性を意識してITRONを扱う事が重要です。それがよりよいシステム(この場合はリアルタイム性の性能が高い)をつくる事にもなりますから。

まあ、まず基本であるμITRON4.0仕様書と比べるのが良いでしょう。
ITRONを扱うなら、当然この仕様書は入手していますよね。まだの人は、TRON協会のホームページから入手して下さい。PDF版ならロハで落とせますから。

この仕様書を書いたのは、ITRONに関しては事実上の長である高田先生です。この先生は東大を卒業後、豊橋技術科学大学の助教授から現在は名古屋大学の教授をしている(http://www.ertl.jp/~hiro/hiro-j.html)という、元々頭の良い上に、更に人一倍勉強しているので、まあ何て言いますか、仕様書の語句には無駄が無い、極めて哲学的な文章です。つまりかなり難解な、理解するには一字一句飲み込みながら読まないと、さーっぱりでした。

もともとこの仕様書は誰に向けて書かれたのか?
あくまでも推測ですが、ある程度RTOS理論等をやって来た人向けに思えます。例えば大学で情報処理を専攻して来たとか(HOSの作者のRyuz氏は、まさにその例)。

そんな訳で斜め読みではITRONの本当の概念には到達できないのですが、仕様書を真剣に読むのはちょっと苦痛。結局ここの所でITRONを始めようと思っても挫折する人は多いと思います。
仕様書を理解してからITRONに取り組もうと言うアプローチでは大変なので、逆のアプローチとして、取り合えずよく判らなくても始めてしまって、その中でITRONを理解していこう!と言うのが私の本ですね。これならば苦痛で諦めるという事は滅多に無いでしょう!。

ですが、Kさんの本の登場で、仕様の理解からスタートする事に対するハードルは随分低くなりました。
この本を読んで判る事は、”重要なのは概念の理解をしっかりさせる”事なんですね。特に実行中のプログラムの状態、これはOSの3状態である「実行状態」、「実行可能状態」、「待ち状態」ではなく、「タスクコンテキスト部」と「非タスクコンテキスト部」、「ディスパッチ禁止状態」と「ディスパッチ許可状態」、「CPUロック状態」と「CPUアンロック状態」です。これらの状態はそれぞれ別に定義され、「タスクコンテキスト部」でありながら「ディスパッチ禁止状態」でありまた「CPUロック状態」なんて事も有りますので、それぞれの状態が絡んだ時に可能な遷移(OSの3状態間の遷移)が異なって来ます。これを単に言葉で説明するとかなりややこしい説明となりますし、それぞれの状態の組合わせを考えると2の3乗通りの説明をしなければなりませんが、それをこのKさんは表で表現する事で、一発で片付けています。うまい!元々人に教えるプロなので、こう言った説明が実に上手い。表ならば参照性が高く、また条件を当て嵌めるだけで答えがでるので、極めて有用な表現手段です。

第2章までをしっかりと読んで置けば、それ以降の章の理解は容易でしょう。勿論仕様書の様に硬い文章ではないですし、丁寧に説明してくれるので、初心者の方でも大丈夫でしょう。

第3章のsetjump、longjumpを使った簡易OSの作成なんて、自分でやってみても結構楽しめるのではないでしょうか。この章でディスパッチのメカニズムを学ぶ事が出来ます。

第4章からは、ITRONプログラマーにとって極めて有用なITRON仕様の機能の解説が記載されています。
内容については触れませんが、スタンダードプロファイルのサービスコールについて、以下の順番に解説が行われます。
1.機能の概要
2.取りえる状態
3.関数コール(サービスコール)の説明
4.簡単な例題
5.スケジューリングの解説
この解説手順に振れが無い為、一通りこの本を読み終えた後、実際にITRONを使う段階になっても、参考書として読み返すにはうってつけです。
ITRONをやるならば、パソコンにはITRON仕様書のPDF、机の上にはこの本と私のHOS本があればばっちりです。

第5章ではITRONを使う上での注意点が解説され、特にデッドロックの回避と、安定した製品には欠かせないスタック使用量の算出も丁寧に解説してあります。スタック使用量の算出は、私のHOS本でも行っていますね。もともとKさんに「絶対必用!」と口が酸っぱくなる程言われたからなんですが。
さて、この本のもう一つの依存性である開発環境、つまりルネサスの製品版ITRONであるHI/7000シリーズでの話になりますが、何度も言いますが、依存性はどんな開発環境でも避けて通れないし、どの環境でも似たり寄ったりの手順だったりするので、参考にならない訳が無い(坂村先生風)。

第6章では、実際にマルチタスクシステムを構築してみますが、まだ読んでいないので、案内のみにとどまらせていただきます。

う~~んどうでしょう、大体お勧めする理由が判ってもらえたでしょうか?。
取り合えずITRONをやってみたいという方は、もうマイコンボードなんで1600円から購入できる訳ですし、開発環境もロハですし、そしてHOSがあるので、これに私のHOS本とKさんのITRON本を買って始めちゃって下さい。これだけの好条件が有るので、始める、始めないの理由はプログラマのやる気だけです。
その上で、業務にもITRONを使うとなるならば、ルネサスの製品版ITRONを視野に入れるべきでしょう。それは性能の観点からも、サポートの観点からもです。
別にHOSのサポートが劣るとは思いません。むしろ少人数のわりに良くやっていると思いますが、あくまでもサポートはメンバーのボランティアであり、強制する事はできません。
これが製品版のITRONならば、サポートを義務として要求する事ができますね。
性能に関しては、HOSがITRONの勉強を目的として、依存部以外の全てのコードをC言語で書いた為にソースの理解は容易ですが、メーカーのITRONは多分アセンブラで記述しているので、ここは比較にならないでしょう。タスクスイッチの速度が売りの一部でもある訳ですから。
だいたいルネサス自身がCPUを供給し、コンパイラを供給し、統合開発環境を供給し、ITRONを供給しているので、これらを組合わせた時の性能で他の製品に劣ることは絶対に許されない訳です。

ところでKさんは、実はTRON協会のメンバーであり、確か教育か普及のグループに居た筈ですが、その割にITRON仕様に対して辛口です。時折登場するコラムは楽しめます。


nice!(0)  コメント(4)  トラックバック(0) 

nice! 0

コメント 4

hamayan

家の近所の本屋では、またまた、まだ扱っていませんでした。
だめだ!田舎は駄目だ!
by hamayan (2005-12-23 18:31) 

hamayan

アマゾンで今なら一点在庫有りだそうです。
2~3日で着くとか、着かないとか。
by hamayan (2005-12-24 01:11) 

アドベンチャ

教材はHI7700 iTRON ですがコンテキストのところを、詳しく記述してあり、読み応えありました。
そのあと、hamayanさんのHOS本を読み返して、改めてHOSの正体が
みえてきた感じです。
HOS とくに、HOS-v4 tiny はソースが小さいので、”わかった”と思いました。
Design Wave次号 Aduc7026版HOS-v4tinyに挑戦中。
by アドベンチャ (2006-01-25 19:18) 

hamayan

実はKさんはHOS本の原稿段階で読んでおり、HOS本の不足しているところを補足する内容で執筆したとの事です。

Design Waveは私も購入しようと思っています。一冊とか、、、複数冊とか。
Aduc7026版HOS-v4tinyは期待しています。
by hamayan (2006-01-26 21:38) 

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。