リアルタイム/マルチタスクシステムの徹底研究
組み込みシステムの基本とタスクスケジューリング技術の基礎
藤倉 俊幸 著
B5判 264ページ
定価2,305円(税込)
JAN9784789833264
2003年1月1日発行
大変恐縮ですが,こちらの商品は品切れ絶版となりました.
携帯電話,デジカメ,冷蔵庫,洗濯機,湯沸かしポット,PDA,ガスメータ,……これらはマイコンが組み込まれ,さまざまな制御を行う組み込み機器です.
本書では,これら組み込み機器を開発するときのキーワードとなる,マルチタスク,リアルタイム,テスト,状態マシン,プライオリティインヘリタンスなどを一つ一つとりあげ,ていねいに解説しています.また,組み込みシステムの基礎技術の大きな柱であるタスクスケジューリングについて,詳細に解説しました.最後に資料編として,仕様書をどのように書いたら/読んだらよいかをまとめています.
目次
第1部 「組み込みシステム開発に役立つノウハウ」
第1章 マルチタスクシステムとは
1 CPU効率からソフト開発効率へ
2 リエントラント
3 機能分割と時間分割
4 GOTO文との類似性
5 並行化の粒度
6 アトミックアクション
7 RTOSの種類
8 オブジェクト指向アプローチ
9 同期と非同期
10 反復型開発
第2章 マルチタスクプログラミング実装の概要
1 プログラム--あたりまえの話から--
2 並行構造
第3章 ソフトウェアアーキテクチャとは何だろうか
1 アーキテクチャの表現
2 アーキテクチャ前駆体
3 アーキテクチャとUML
4 ソフトウェア構造の種類
5 アーキテクチャスタイル選択の重要性
第4章 組み込みにおける要求仕様書について――上流工程の概要
1 上流開発行程とは
2 ビジネスモデルとドメインモデル
3 問題フレーム
4 人の扱い
5 数理モデル
6 要求項目の抽出
7 UMLロボット
第5章 テストのはなし
1 不具合と障害とバグ
2 テストから見た組み込みの特徴
3 テストの種類
4 虫の出方
第6章 状態マシンのはなし
1 状態マシンの種類
2 状態マシンの設計
コラム1 オートマ
第7章 時間オートマタのはなし
1 時間オートマ
2 Kronos
第8章 アクティブオブジェクトモデリングのはなし
1 アクティブオブジェクトとは
2 アクティブオブジェクトモデリング
3 構造化クラス
第9章 Cによる抽象化プログラミング-抽象データ型の利用
1 簡単なサンプル--ストップウォッチから
2 抽象データ型とは
3 相互運用性および開放性のサンプル
4 この手法の特徴と限界
第10章 バグの箇所を探る多重障害検出手法
1 まずは具体例から
2 情報を有効に使う
3 組み合わせを考慮する
4 Conflictの求め方
5 さらなる絞り込み
第11章 プロセスの優先順位逆転を防ぐ方法
--プライオリティインヘリタンスとプライオリティシーリング
1 クリティカルセクションとは
2 リアルタイム同期
第12章 産業機器に搭載されるオペレーティングシステムとは
1 産業用OSの特徴と変遷
2 OSの構成
3 リアルタイム性
4 OSとミドルウェアの関係
第13章 産業用OSの中核をなすITRONの光と影
1 ITRONの開発環境
2 ソフトウェア部品
3 移植性
4 ITRONの特徴
コラム1 タスク分割と優先度の原則
第14章 リアルタイムOSとは
1 main()の前,printfの向こう側
2 OSは何をするか
第2部 タスクスケジューリング技術入門
第15章 リアルタイムアプリケーションに要求される時間的制約とは
1 時間領域の仕様
2 期限付きということ--エアバス・システムを考察する
3 冗長性に関する時間的問題--センサが複数あるシステムの問題
4 物理系からの時間的制約--船のオートパイロット・システム
5 データとしての時間とコントロールとしての時間--交通信号制御シミュレーションの場合
6 周期のばらつき制御
7 時刻修正--交通制御/ミサイルの例を考える
8 因果関係の推測--物理時間とコンピュータが扱う時間
9 実現不可能な時間的要求--自動運転システムを実現できない?
10 ビジネス系アプリケーションとの違い--ハードだけでは解決しない問題
コラム1 リアルタイムシステムについての入門書
コラム2 図書館へ行こう
コラム3 正確さと精度
第16章 ハードリアルタイム処理を実現するための理論と手法
1 最悪実行時間(WCET)
2 スケーラビリティ
3 もっとも簡単なタスクモデル
4 プリエンプションありの場合
5 割り込みハンドラ
6 待ち状態ありの場合
7 リアルタイム同期
8 時間の扱い
9 エラー検出
10 商用RTOSについて
11 ハードリアルタイムシステム例
第17章 リアルタイムスケジューリング法の詳細
1 NP完全問題
2 タスク属性
3 スケジューリング方式の分類
4 Earliest Deadline First(EDF)
5 Bratleyのアルゴリズム--プリエンプト禁止条件下で実行可能なスケジュールを生成する
6 Latest Deadline First(LDF)--スケジュールを後ろから作る
7 実行順序付きEDF
8 Rate Monotonic(RM)
9 LLFとESF--タスクの余裕時間の小さいタスクからプライオリティを付けていく
10 Deadline Monotonic(DM)--RM法の拡張
11 オーバーヘッド時間
12 タスク間依存関係がある場合
13 リアルタイム同期
14 商用RTOSのリアルタイム同期
コラム1 スケジューリング評価関数
コラム2 スケジュール異常
コラム3 マルチCPUにおけるスケジューリング
第18章 スケジュール可能性を判定する理論と手法
1 スケジュール可能性とは
2 必要条件と十分条件
3 RMとDMのスケジュール可能性判定
4 EDFのスケジュール可能性判定
5 クリティカルセクションがある場合
6 タスクブロック時間の計算
7 プライオリティインヘリタンスプロトコル
8 プライオリティシーリングプロトコル
9 スタックリソースポリシー
10 オーバーロードへの対応
11 Robust Earliest Deadline
12 プライオリティレベル
コラム1 推移的プライオリティ継承
コラム2 Mathematicaのプログラムの読み方
コラム3 Mathematicaについて
資料編 技術者のための仕様書の読み方と書き方
第1章 それはレトリックの問題か?
1 レトリックについて
2 自然言語の曖昧性
3 書き方の問題
4 読み方の問題
5 ではどうするか?
第2章 論理的に明確な表現(否定)
1 矛盾とは
2 矛盾関係と反対関係
3 全称命題に関連した矛盾と反対
4 その他の矛盾と反対
第3章 論理的に明確な表現(推論)
1 裏
2 対偶
3 逆
4 推論形式の表現
5 必要条件と十分条件
6 前提部の正しさ
第4章 時間に関する表現
1 因果律と時間
2 現在・過去・未来と継続・完了
3 時制
4 時相論理
5 継続に関する表現
6 同時か継起か
7 期間に関する表現
8 因果関係
9 時間の抽出化とドキュメント
第5章 データ表現――中身と入れ物,実体と参照
1 要求仕様書の変数表現
2 データとその入れ物に関する表現
3 「これ」か「それ」か
4 メタ形式
5 引用形式
6 中身を問題にする場合
7 一般化
8 再定義
第6章 シーケンス図の問題点
1 論理的正確さのみを求められる問題
2 ETDとOSD
3 実時間論理での表現
4 上流工程の仕様書