« MTPaginateプラグインを導入 | メイン | 2006年11月18日~19日の日記 »
2006年11月24日
ITRONプログラミング入門を読んで
ITRON関連の本(借り物)を半分ほど読了しました。後半はサンプルプログラムの説明や、実践的なテクニックの紹介なので、まだ読まずにおいています。
ITRONプログラミング入門(Amazon)
以下に、自分なりに理解した内容をまとめてみました。あくまで、うち自身の備忘録として書いたものですので、まったく適切な概要ではないことを、ご承知おきください。
ITRONをベースとした、カーネル一般についての話
- 基本的な仕組みとして、入力を与えられて、それを処理して、出力を返すもの
- カーネルの管理する資源としてオブジェクトがある
- オブジェクトには、処理を実行するタスクや、それの同期制御をするためのイベントフラグ、セマフォなどがある
- 処理の流れは、タスク部と非タスク部がある。非タスク部は、割り込み処理によるものである
割り込みの仕組み
- 割り込みが発生すると、CPUに通知される。
- CPUは割り込みベクタを参照して、割り込みハンドラの書かれた所定のアドレスを呼び出す
- 割り込みハンドラ内で、割り込み原因を分析し、各ルーチンを呼び出すか、割り込みハンドラ内で直接処理をするか、各々方式がある
- 割り込み処理中は、使えるサービスコールに制限がかかる
割り込みとカーネルとタスクの関係
- 各タスクの処理はカーネルによって開始や終了が管理される
- 一方割り込みはカーネルの都合関係なしに発生してくる
- 処理の上下関係?としては、割込み>カーネル>タスク、といった感じ
カーネルの4つの機能
- サービスコール
- スケジューリング
- ディスパッチ
- 割り込み制御処理
その他、気になったところをメモ
- タイマハンドラにおける位相時間とは、毎周期の呼び出し点と、起動時点の差のこと
- CPUロック状態、ディスパッチ禁止状態などにより、タスクの優先度や割り込みへの制御ができる
- 各オブジェクトは、実行要求をレディキューで待たせることができる
- ディスパッチ時にはコンテキストを保存する
- ランデブ機能は、2つのタスクで事象の待ち合わせを行なうもの
投稿者 bokupi : 2006年11月24日 18:08
トラックバック
このエントリーのトラックバックURL:
http://omoshiro-joho.com/c-i-mnet/cgi-bin/mt/mt-tb.cgi/1218