24. 組み込みシステムに関する知識 i ·...

22
OSS モデルカリキュラムの学習ガイダンス 独立行政法人 情報処理推進機構 24. 組み込みシステムに関する知識 I 1. 科目の概要 組み込みシステムの基本的な構造と活用方法、組み込みシステムを構成するハードウェ ア、ソフトウェア、OS など様々な要素の役割や特徴について解説する。 2. 習得ポイント 本科目の学習により習得することが期待されるポイントは以下の通り。 習得ポイント シラバスの対応コマ I-24-1. 組み込みコンピュータシステム 組み込みコンピュータシステムとは何か、基本的な概念を説明する。組 み込みコンピュータシステムにおけるハードウェア、ソフトウェア、ネット ワークの全体的なアーキテクチャを解説する。 1 I-24-2. 組み込みシステムとOSSの関係、活用 事例 組み込みシステムにおける数多くのOSS活用事例を紹介し、組み込みシ ステムの構築にOSSの活用が有効であることを説明する。また組み込み システムにおけるOSS活用時の留意点についても解説する。 1 I-24-3. 組み込みシステムの制限と設計方法 組み込みシステムにおいてはハードウェア、ソフトウェア、ネットワークのリ ソースが限られていることを示し、組み込みシステムにおける各種の制限 について説明する。さらに、その条件下でうまくシステムを構築するため の設計方法を解説する。 2 I-24-4. 組み込みコンピュータの要件 組み込みコンピュータの基本構成と特徴について述べ、組み込みコン ピュータに求められる要件として、接続性、信頼性、効率性、移植性など があることを示し、それらの内容について説明する。 3 I-24-5. 組み込みシステムのCPU、OS、ネット ワーク機能 組み込みシステムに利用される代表的なCPU、OS、ネットワーク形態を 紹介する。またそれらの特徴を解説し、組み込みシステム特有の課題や 対応方法(低消費電力など)についても述べる。 3 I-24-6. 組み込みシステムにおけるハードウェ アの基本構成 組み込みコンピュータハードウェアの基本構成と役割、特徴を説明す る。中心となるCPUのアーキテクチャ、システムバスのアーキテクチャ、バ スを介したデータのやりとりとCPUにおける演算処理の実際等について 概説する。 4 I-24-7. 組み込み向けCPUのアーキテクチャ 組み込みコンピュータの中核となるCPU内部のアーキテクチャについ て、詳細な説明を行う。また命令セットやメモリとの接続、メモリ管理方式 等についても解説を加え、さらに、代表的な組み込み向けプロセッサの いくつかについて、そのアーキテクチャを紹介する。 5 I-24-8. 組み込み向けソフトウェアの基本 組み込み向けソフトウェアの役割と特徴を説明する。組み込み向けソフト ウェア処理の基本として、タスクとスケジューリングを説明し、並行処理の アーキテクチャに関する基本的な方式とタスク管理方法などに関する話 題にも触れる。 6 I-24-9. 組み込みOSカーネルの機能 組み込み向けOSのカーネルに関して、その機能と役割、特徴を解説す る。組み込みOSカーネルに求められる機能や制御対象、タスク制御に 関わる組み込み特有の問題、排他制御の必要性とその具体的な実装方 法などを説明する。 7 I-24-10. リアルタイムシステムの処理方法と設 組み込みシステムの特徴のひとつであるリアルタイム性について説明す る。リアルタイムシステムが備える機能と、リアルタイム処理の特徴につい て説明し、さらに、アプリケーションのリアルタイム設計方法、時間制御と 優先度といったトピックを紹介する。 8 学習ガイダンスの使い方】 1. 「習得ポイント」により、当該科目で習得することが期待される概念・知識の全体像を把握する。 2. 「シラバス」、「IT 知識体系との対応関係」、「OSS モデルカリキュラム固有知識」をもとに、必要に応じて、 従来の IT 教育プログラム等との相違を把握した上で、具体的な講義計画を考案する。 3. 習得ポイント毎の「学習の要点」と「解説」を参考にして、講義で使用する教材等を準備する。

Upload: others

Post on 20-May-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 24. 組み込みシステムに関する知識 I · アーキテクチャに関する基本的な方式とタスク管理方法などに関する話 題にも触れる。 6 i-24-9.組み込みosカーネルの機能

OSS モデルカリキュラムの学習ガイダンス

独立行政法人 情報処理推進機構

24. 組み込みシステムに関する知識 I※

1. 科目の概要

組み込みシステムの基本的な構造と活用方法、組み込みシステムを構成するハードウェ

ア、ソフトウェア、OS など様々な要素の役割や特徴について解説する。

2. 習得ポイント

本科目の学習により習得することが期待されるポイントは以下の通り。

習得ポイント 説 明 シラバスの対応コマ

I-24-1. 組み込みコンピュータシステム組み込みコンピュータシステムとは何か、基本的な概念を説明する。組み込みコンピュータシステムにおけるハードウェア、ソフトウェア、ネットワークの全体的なアーキテクチャを解説する。

1

I-24-2. 組み込みシステムとOSSの関係、活用事例

組み込みシステムにおける数多くのOSS活用事例を紹介し、組み込みシステムの構築にOSSの活用が有効であることを説明する。また組み込みシステムにおけるOSS活用時の留意点についても解説する。

1

I-24-3. 組み込みシステムの制限と設計方法論

組み込みシステムにおいてはハードウェア、ソフトウェア、ネットワークのリソースが限られていることを示し、組み込みシステムにおける各種の制限について説明する。さらに、その条件下でうまくシステムを構築するための設計方法を解説する。

2

I-24-4. 組み込みコンピュータの要件組み込みコンピュータの基本構成と特徴について述べ、組み込みコンピュータに求められる要件として、接続性、信頼性、効率性、移植性などがあることを示し、それらの内容について説明する。

3

I-24-5. 組み込みシステムのCPU、OS、ネットワーク機能

組み込みシステムに利用される代表的なCPU、OS、ネットワーク形態を紹介する。またそれらの特徴を解説し、組み込みシステム特有の課題や対応方法(低消費電力など)についても述べる。

3

I-24-6. 組み込みシステムにおけるハードウェアの基本構成

組み込みコンピュータハードウェアの基本構成と役割、特徴を説明する。中心となるCPUのアーキテクチャ、システムバスのアーキテクチャ、バスを介したデータのやりとりとCPUにおける演算処理の実際等について概説する。

4

I-24-7. 組み込み向けCPUのアーキテクチャ

組み込みコンピュータの中核となるCPU内部のアーキテクチャについて、詳細な説明を行う。また命令セットやメモリとの接続、メモリ管理方式等についても解説を加え、さらに、代表的な組み込み向けプロセッサのいくつかについて、そのアーキテクチャを紹介する。

5

I-24-8. 組み込み向けソフトウェアの基本

組み込み向けソフトウェアの役割と特徴を説明する。組み込み向けソフトウェア処理の基本として、タスクとスケジューリングを説明し、並行処理のアーキテクチャに関する基本的な方式とタスク管理方法などに関する話題にも触れる。

6

I-24-9. 組み込みOSカーネルの機能

組み込み向けOSのカーネルに関して、その機能と役割、特徴を解説する。組み込みOSカーネルに求められる機能や制御対象、タスク制御に関わる組み込み特有の問題、排他制御の必要性とその具体的な実装方法などを説明する。

7

I-24-10. リアルタイムシステムの処理方法と設計

組み込みシステムの特徴のひとつであるリアルタイム性について説明する。リアルタイムシステムが備える機能と、リアルタイム処理の特徴について説明し、さらに、アプリケーションのリアルタイム設計方法、時間制御と優先度といったトピックを紹介する。

8

※ 【学習ガイダンスの使い方】1. 「習得ポイント」により、当該科目で習得することが期待される概念・知識の全体像を把握する。2. 「シラバス」、「IT 知識体系との対応関係」、「OSS モデルカリキュラム固有知識」をもとに、必要に応じて、

従来の IT 教育プログラム等との相違を把握した上で、具体的な講義計画を考案する。3. 習得ポイント毎の「学習の要点」と「解説」を参考にして、講義で使用する教材等を準備する。

Page 2: 24. 組み込みシステムに関する知識 I · アーキテクチャに関する基本的な方式とタスク管理方法などに関する話 題にも触れる。 6 i-24-9.組み込みosカーネルの機能

OSS モデルカリキュラムの学習ガイダンス

独立行政法人 情報処理推進機構

3. IT 知識体系との対応関係

「24. 組み込みシステムに関する知識Ⅰ」と IT 知識体系との対応関係は以下の通り。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

24. 組み込みシステムに関する知識

<組み込みコンピュータシステムとは何か>

<組み込みコンピュータのアーキテクチャ>

<組み込みシステムの基本構成>

<組み込みコンピュータハードウェアの基本>

<CPUアーキテクチャの基本>

<組み込みソフトウェアの概要>

<カーネル処理の概要>

<リアルタイムシステムの構成と仕組み>

<組み込みシステムの開発方法>

<オブジェクト指向分析による組み込みシステムの分析とモデリング>

<組み込みコンピュータシステムの開発管理>

<組み込みシステムのアーキテクチャ>

<組み込みシステムのネットワーク機能>

<組み込みシステムの設計>

<これからの組み込みシステムの動向>

科目名基本レベル(Ⅰ) 応用レベル(Ⅱ)

[シラバス:http://www.ipa.go.jp/software/open/ossc/download/Model_Curriculum_05_24.pdf]

科目名 1 2 3 4 5 6 7 8 9 10 11 12 13

1IT-IAS 情報保証と情報セキュリティ

IT-IAS1.基礎的な問題

IT-IAS2.情報セキュリティの仕組み(対策)

IT-IAS3.運用上の問題

IT-IAS4.ポリシー IT-IAS5.攻撃

IT-IAS6.情報セキュリティ分野

IT-IAS7.フォレンジック(情報証拠)

IT-IAS8.情報の状態

IT-IAS9.情報セキュリティサービス

IT-IAS10.脅威分析モデル IT-IAS11.脆弱性

2

IT-SP 社会的な観点とプロフェッショナルとしての課題

IT-SP1.プロフェッショナルとしてのコミュニケーション

IT-SP2.コンピュータの歴史

IT-SP3.コンピュータを取り巻く社会環境

IT-SP4.チームワーク

IT-SP5.知的財産権

IT-SP6.コンピュータの法的問題

IT-SP7.組織の中のIT

IT-SP8.プロフェッショナルとしての倫理的な問題と責任

IT-SP9.プライバシーと個人の自由

3 IT-IM 情報管理 IT-IM1.情報管理の概念と基礎

IT-IM2.データベース問合わせ言語

IT-IM3.データアーキテクチャ

IT-IM4.データモデリングとデータベース設計

IT-IM5.データと情報の管理

IT-IM6.データベースの応用分野

4 IT-WS Webシステムとその技術

IT-WS1.Web技術 IT-WS2.情報アーキテクチャ

IT-WS3.デジタルメディア

IT-WS4.Web開発 IT-WS5.脆弱性 IT-WS6.ソーシャルソフトウェア

5 IT-PF プログラミング基礎

IT-PF1.基本データ構造

IT-PF2.プログラミングの基本的構成要素

IT-PF3.オブジェクト指向プログラミング

IT-PF4.アルゴリズムと問題解決

IT-PF5.イベント駆動プログラミング

IT-PF6.再帰

6IT-IPT 技術を統合するためのプログラミング

IT-IPT1.システム間通信

IT-IPT2.データ割り当てと交換

IT-IPT3.統合的コーディング

IT-IPT4.スクリプティング手法

IT-IPT5.ソフトウェアセキュリティの実現

IT-IPT6.種々の問題

IT-IPT7.プログラミング言語の概要

7 CE-SWE ソフトウェア工学

CE-SWE0.歴史と概要

CE-SWE1.ソフトウェアプロセス

CE-SWE2.ソフトウェアの要求と仕様

CE-SWE3.ソフトウェアの設計

CE-SWE4.ソフトウェアのテストと検証

CE-SWE5.ソフトウェアの保守

CE-SWE6.ソフトウェア開発・保守ツールと環境

CE-SWE7.ソフトウェアプロジェクト管理

CE-SWE8.言語翻訳

CE-SWE9.ソフトウェアのフォールトトレランス

CE-SWE10.ソフトウェアの構成管理

CE-SWE11.ソフトェアの標準化

8

IT-SIA システムインテグレーションとアーキテクチャ

IT-SIA1.要求仕様

IT-SIA2.調達/手配

IT-SIA3.インテグレーション

IT-SIA4.プロジェクト管理

IT-SIA5.テストと品質保証

IT-SIA6.組織の特性

IT-SIA7.アーキテクチャ

9 IT-NET ネットワーク

IT-NET1.ネットワークの基礎

IT-NET2.ルーティングとスイッチング

IT-NET3.物理層 IT-NET4.セキュリティ

IT-NET5.アプリケーション分野

IT-NET6.ネットワーク管理

CE-NWK0.歴史と概要

CE-NWK1. 通信ネットワークのアーキテクチャ

CE-NWK2.通信ネットワークのプロトコル

CE-NWK3.LANとWAN

CE-NWK4.クライアントサーバコンピューティング

CE-NWK5.データのセキュリティと整合性

CE-NWK6.ワイヤレスコンピューティングとモバイルコンピューティング

CE-NWK7.データ通信

CE-NWK8.組込み機器向けネットワーク

[24-Ⅰ-2]

CE-NWK9.通信技術とネットワーク概要

CE-NWK10.性能評価

CE-NWK11.ネットワーク管理

CE-NWK12.圧縮と伸張

CE-NWK13.クラスタシステム

CE-NWK14.インターネットアプリケーション

CE-NWK15.次世代インターネット CE-NWK16.放送

11 IT-PT プラットフォーム技術

IT-PT1.オペレーティングシステム

[24-Ⅰ-1]

IT-PT2.アーキテクチャと機構

IT-PT3.コンピュータインフラストラクチャ

IT-PT4.デプロイメントソフトウェア

IT-PT5.ファームウェア

IT-PT6.ハードウェア

12CE-OPS オペレーティングシステム

CE-OPS0.歴史と概要 CE-OPS1.並行性

CE-OPS2.スケジューリングとディスパッチ

CE-OPS3.メモリ管理

CE-OPS4.セキュリティと保護

CE-OPS5.ファイル管理

CE-OPS6.リアルタイムOS

[24-Ⅰ-6,7,8]

CE-OPS7.OSの概要

CE-OPS8.設計の原則

CE-OPS9.デバイス管理

CE-OPS10.システム性能評価

コンピュー

タハー

ウェ

アと

アー

キテク

チャ 13

CE-CAO コンピュータのアーキテクチャと構成

CE-CAO0.歴史と概要

CE-CAO1.コンピュータアーキテクチャの基礎

[24-Ⅰ-5]

CE-CAO2.メモリシステムの構成とアーキテクチャ

CE-CAO3.インタフェースと通信

CE-CAO4.デバイスサブシステム

CE-CAO5.CPUアーキテクチャ

CE-CAO6.性能・コスト評価

CE-CAO7.分散・並列処理

CE-CAO8.コンピュータによる計算

CE-CAO9.性能向上

14 IT-ITF IT基礎 IT-ITF1.ITの一般的なテーマ

IT-ITF2.組織の問題

IT-ITF3.ITの歴史

IT-ITF4.IT分野(学科)とそれに関連のある分野(学科)

IT-ITF5.応用領域

IT-ITF6.IT分野における数学と統計学の活用

CE-ESY0.歴史と概要

[24-Ⅰ-1,2]

CE-ESY1.低電力コンピューティング

[24-Ⅰ-3]

CE-ESY2.高信頼性システムの設計

CE-ESY3.組込み用アーキテクチャ

[24-Ⅰ-1,3,4]

CE-ESY4.開発環境

CE-ESY5.ライフサイクル

CE-ESY6.要件分析

CE-ESY7.仕様定義

CE-ESY8.構造設計 CE-ESY9.テスト CE-ESY10.プロ

ジェクト管理

CE-ESY11.並行設計(ハードウェア、ソフトウェア

CE-ESY12.実装

CE-ESY13.リアルタイムシステム設計

[24-Ⅰ-6,7,8]

CE-ESY14.組込みマイクロコントローラ

[24-Ⅰ-3,4,5]

CE-ESY15.組込みプログラム CE-ESY16.設計手

CE-ESY17.ツールによるサポート

[24-Ⅰ-3]

CE-ESY18.ネットワーク型組込みシステム

CE-ESY19.インタフェースシステムと混合信号システム

CE-ESY20.センサ技術

CE-ESY21.デバイスドライバ

CE-ESY22.メンテナンス

CE-ESY23.専門システム

CE-ESY24.信頼性とフォールトトレランス

分野

組織関連事項と情

報システム

応用技術

ソフトウェ

アの方法と技術

システム基盤

10CE-NWK テレコミュニケーション

複数領域にまたがるもの

15 CE-ESY 組込みシステム

4. OSS モデルカリキュラム固有の知識

OSS モデルカリキュラム固有の知識は、OSS を用いた組み込みシステムに関する知識で

ある。OSS を活用したユビキタスセンサシステムなどの事例を扱う。

科目名 第1回 第2回 第3回 第4回 第5回 第6回 第7回 第8回(1)組み込みコンピュータシステムとは

(1)組み込みコンピュータハードウェアの特徴

(1)組み込みシステムのCPU

(1)組み込みハードウェアアーキテクチャの概要

(1)MPU 内部のアーキテクチャ

(1)ソフトウェア処理の基本

(1)組み込みカーネルとは

(1)リアルタイム処理とは

(2)システム (2)組み込みコンピュータアーキテクチャの必要要件

(2)OS の要件 (2)命令セットアーキテクチャ

(2)並行処理のアーキテクチャ

(2)カーネル処理の概要

(2)アプリケーションのリアルタイム設計

(3)組み込みコンピュータシステムとOSS の関係

(3)OSS を活用した組み込みコンピュータアーキテクチャの事例

(3)組み込みシステムのネットワーク形態

(3)メモリとMPUの接続

(4)低消費電力 (4)組み込みプロセッサアーキテクチャ

24.組み込みシステムに関する知識Ⅰ

(網掛け部分は IT 知識体系で学習できる知識を示し、それ以外は OSS モデルカリキュラム固有の知識を示している)

<IT 知識体系上の関連部分>

Page 3: 24. 組み込みシステムに関する知識 I · アーキテクチャに関する基本的な方式とタスク管理方法などに関する話 題にも触れる。 6 i-24-9.組み込みosカーネルの機能

独立行政法人 情報処理推進機構

24 - 1

スキル区分 OSS モデルカリキュラムの科目 レベル

組み込み分野 24 組み込みシステムに関する知識 I 基本

習得ポイント I-24-1. 組み込みコンピュータシステム

対応する

コースウェア

第1回 (組み込みコンピュータシステムとは何か)

I-24-1. 組み込みコンピュータシステム

組み込みコンピュータシステムとは何か、基本的な概念を説明する。組み込みコンピュータシステム

におけるハードウェア、ソフトウェア、ネットワークの全体的なアーキテクチャを解説する。

【学習の要点】

* 組み込みコンピュータシステムは、コンピュータに処理を行わせることで、対象としている機器の

利便性を高めるものである。

* 組み込みコンピュータシステムの例として、飛行機に搭載される各種機器、携帯電話、オーディ

オ機器が挙げられる。今後、組み込みコンピュータシステムの活用される領域はさらに広がるこ

とが予想される。

* 組み込みコンピュータシステムは、ボード(基盤)上に CPU、入出力デバイスなどのコンピュータ

部品を配置しているハードウェア部分と、コンピュータシステムを制御するソフトウェア部分から

なる。

図 I-24-1. 組み込みシステムの例と構造

ソフトウェア

ハードウェア

●ボード●CPU●入出力デバイス●モータ●センサなど

●アプリケーションからハードウェアを操作する機能を提供

組み込みシステムの例:飛行機のシステム、車載システム、携帯電話など

組み込みシステムの構造

Page 4: 24. 組み込みシステムに関する知識 I · アーキテクチャに関する基本的な方式とタスク管理方法などに関する話 題にも触れる。 6 i-24-9.組み込みosカーネルの機能

独立行政法人 情報処理推進機構

24 - 2

【解説】

1) 組み込みコンピュータシステムとは

* 組み込みコンピュータシステムは、コンピュータに処理を行わせることで、対象としている機器の

利便性を高めるものである。

* 組み込みコンピュータシステムの活用例

人工衛星、飛行機、自動車のような航空・運輸機器、携帯電話、テレビ、オーディオ機器のよう

な家電機器に組み込まれるシステムなど、幅広い適用領域がある。

* 組み込みコンピュータシステムのアーキテクチャ

- 組み込みコンピュータシステムは、ハードウェア部分とソフトウェア部分からなる。

- 組み込みコンピュータシステムにおけるハードウェア部分は、組み込みシステムを制御す

る機能を持ち、ボード(基盤)上に、CPU、入出力デバイスなどのコンピュータ部品を配置し

ている。

- 組み込みコンピュータシステムにおけるソフトウェア部分は、主にコンピュータシステムを制

御し、アプリケーションからハードウェアを制御するための仕組みを提供する。

Page 5: 24. 組み込みシステムに関する知識 I · アーキテクチャに関する基本的な方式とタスク管理方法などに関する話 題にも触れる。 6 i-24-9.組み込みosカーネルの機能

独立行政法人 情報処理推進機構

24 - 3

スキル区分 OSS モデルカリキュラムの科目 レベル

組み込み分野 24 組み込みシステムに関する知識 I 基本

習得ポイント I-24-2. 組み込みシステムと OSS の関係、活用事例

対応する

コースウェア

第1回 (組み込みコンピュータシステムとは何か)

I-24-2. 組み込みシステムと OSSの関係、活用事例

組み込みシステムにおける数多くのOSS活用事例を紹介し、組み込みシステムの構築にOSSの活

用が有効であることを説明する。また組み込みシステムにおけるOSS活用時の留意点についても解

説する。

【学習の要点】

* 組み込みシステムにおいて、数多くのOSS が活用されている事例が存在する。

* オープンソース組み込み OS として、Linux、T-Kernel、eCos、TOPPERS/OSEK が著名であり、

携帯電話や薄型テレビなどでの実績を多く持つ。また組み込みDBとしてOracle Berkeley DB、

SQLite などが利用できる。

* OSS を活用した組み込みコンピュータアーキテクチャの事例として、ユビキタスセンサシステム、

ネットワークコントロールシステムなどが挙げられる。

* 組み込みシステムにおける OSS 活用時には、サポートや、再配布・改変の際のライセンス形態

に留意する必要がある。

図 I-24-2. 組み込みシステムの中の OSS

サポートや、再配布・改変の際のライセンス形態に注意する必要がある。

組み込みシステムの中のOSS

OS●Linux●T-Kernel●eCos●TOPPERS/OSEK

DB●Oracle Berkeley DB●SQLite

copyleft

Page 6: 24. 組み込みシステムに関する知識 I · アーキテクチャに関する基本的な方式とタスク管理方法などに関する話 題にも触れる。 6 i-24-9.組み込みosカーネルの機能

独立行政法人 情報処理推進機構

24 - 4

【解説】

1) 組み込みコンピュータシステムと OSS の関係

* OSS の必要性

- 従来、組み込みシステムにはメーカが独自に開発したOS を採用することが多かった。

- 現在は、CPU 性能の向上に伴い、Linux のような汎用 OS を修正して採用するケースが増

えている。

- 開発・保守コスト、互換性、カスタマイズ性などの観点からOSSの組み込みOSの重要性が

増している。

* OSS の OS・DBMS

- オープンソース組み込み OS として、Linux、T-Kernel、eCos、TOPPERS/OSEK が著名で

あり、携帯電話や薄型テレビなどでの実績を多く持つ。

- オープンソース組み込み DB として Oracle Berkeley DB、SQLite などが利用できる。

* OSS の活用事例

- ユビキタスセンサシステム、ネットワークコントロールシステムなどが挙げられる。

* OSS 活用時の留意点

- 組み込みシステムにおける OSS 活用時には、サポートや、再配布・改変の際のライセンス

形態に留意する必要がある。

Page 7: 24. 組み込みシステムに関する知識 I · アーキテクチャに関する基本的な方式とタスク管理方法などに関する話 題にも触れる。 6 i-24-9.組み込みosカーネルの機能

独立行政法人 情報処理推進機構

24 - 5

スキル区分 OSS モデルカリキュラムの科目 レベル

組み込み分野 24 組み込みシステムに関する知識 I 基本

習得ポイント I-24-3. 組み込みシステムの制限と設計方法論

対応する

コースウェア

第 2 回 (組み込みコンピュータのアーキテクチャ)

I-24-3. 組み込みシステムの制限と設計方法論

組み込みシステムにおいてはハードウェア、ソフトウェア、ネットワークのリソースが限られていること

を示し、組み込みシステムにおける各種の制限について説明する。さらに、その条件下でうまくシス

テムを構築するための設計方法を解説する。

【学習の要点】

* 組み込みシステムには厳しい信頼性が要求される。 しかし、ハードウェアは厳しいコスト要求に

合わせて、コンピュータ能力は製品要求を満たす最低限にまで引き下げる必要がある。また、

消費電力などの様々な要求に応じて使われるハードウェア部品は多種多様になる。

* ハードウェアを制御するソフトウェアも同様に多種多様な機能を求められる。必要最低限のコン

ピュータ資源しか与えられない状況下で要求を満たす最善のパフォーマンスを出すことが要求

される。

* システム設計では、要求仕様から機能設計を導き出し、機能設計を実現するための概要設計を

行う。機能設計の各要件をハードウェアとソフトウェアでどのように実現するかといった要求の振

り分けやCPUの選定が行われる。

図 I-24-3. 組み込みシステムの設計手順

市場指向の要求分析と、実現可能性を加味した設計

システムの設計

機能設計

実現性チェック

性能評価

品質の作り込み

性能評価ボードを利用した評価

検証、標準への準拠など

Page 8: 24. 組み込みシステムに関する知識 I · アーキテクチャに関する基本的な方式とタスク管理方法などに関する話 題にも触れる。 6 i-24-9.組み込みosカーネルの機能

独立行政法人 情報処理推進機構

24 - 6

【解説】

1) 組み込みコンピュータシステムの設計の考え方

多種多様のハードウェアを使うことが要求され、ソフトウェアへの要求も多岐にわたる。しかし、コスト

への要求などから必要最低限の資源しか与えられないことが多く、ハードウェア、ソフトウェア、ネッ

トワークの利用には制限がかかる。

* ハードウェアの制限

- コストや電力消費を抑えるために、通常は必要最低限のハードウェア性能しか利用できな

い。

- 特に大量生産を行う場合には、制限が厳しくなる。

* ソフトウェアの制限

- 汎用系のシステムと違い、OS の機能に制限が加わることがしばしばある。

- 例えばウィンドウシステム、アイルシステム、通信システムなどが無いという条件で開発する

場合もある。

- また、データベースなどのミドルウェアも同様に常にあるとは限らない。

2) 組み込みコンピュータシステムの設計方法の概要

システムの設計段階では、設計基準に基づくシステムの概念設計を行う。

* 機能設計

- 市場重視(ニーズ指向)の要求仕様を導き出す。

- 実現可能性を考慮した設計を行う(シーズ指向)。

* 実現性チェック

- 機能設計の各要件をハードウェアとソフトウェアでどのように実現するかといった要求の振

り分けやCPUの選定が行われる。

* 性能評価

- 半導体メーカなどから提供される評価用のコンピュータシステムを用いてCPUや入出力の

性能評価を行う。この評価用コンピュータシステムを特に評価ボード(エバボード、

Evaluation Board)と呼ぶ。

* 品質の作りこみ

- 検証仕様を作成する工程の準備をする。

- 標準規格に準拠する計画の策定をする。

Page 9: 24. 組み込みシステムに関する知識 I · アーキテクチャに関する基本的な方式とタスク管理方法などに関する話 題にも触れる。 6 i-24-9.組み込みosカーネルの機能

独立行政法人 情報処理推進機構

24 - 7

スキル区分 OSS モデルカリキュラムの科目 レベル

組み込み分野 24 組み込みシステムに関する知識 I 基本

習得ポイント I-24-4. 組み込みコンピュータの要件

対応する

コースウェア

第 3 回 (組み込みシステムの基本構成)

I-24-4. 組み込みコンピュータの要件

組み込みコンピュータの基本構成と特徴について述べ、組み込みコンピュータに求められる要件と

して、接続性、信頼性、効率性、移植性などがあることを示し、それらの内容について説明する。

【学習の要点】

* 組み込みコンピュータの基本構成は、CPU、メモリ、操作ボタン・表示器などとの入出力インター

フェイスであり、これらの間ではシステムバスを使って情報のやり取りをする。

* 接続性の要求は、ネットワークを介したメンテナンス、情報更新、機能更新が組み込みシステム

の情報機器化に伴い不可欠となることによる。

* 信頼性の要求は、点検コストや問題による自主回収のコストを避けるために、メンテナンスを極

力排する必要があることによる。

* 効率性の要求は、リアルタイム処理により応答時間を一定範囲内にするというものである。

* 移植性の要求は、短期間で開発や製品化が行われることに対応するため、ハードウェアやソフ

トウェアの再利用が必要ということである。

図 I-24-4. 組み込みコンピュータの要件

組み込みシステム

バス

CPU

入出力

メモリ

外部装置

移植性の要求

効率性の要求

接続性の要求

信頼性の要求

Page 10: 24. 組み込みシステムに関する知識 I · アーキテクチャに関する基本的な方式とタスク管理方法などに関する話 題にも触れる。 6 i-24-9.組み込みosカーネルの機能

独立行政法人 情報処理推進機構

24 - 8

【解説】

1) 組み込みコンピュータハードウェアの特徴

* 組み込みコンピュータの基本構成は、CPU、メモリ、操作ボタン・表示器などとの入出力インター

フェイスであり、これらの間ではシステムバスを使ってやり取りをする。

* ハードウェアの組み合わせは目的に応じて多岐にわたる。たとえば、入出力機器として、ロボッ

トなどを動かすモーターや、温度・照度・音声・磁力などを読み取るためのセンサなどが接続さ

れる。

* 情報家電のネットワーク化などが進み、ネットワーク接続を要求される組み込みシステムが増え

ている。DLNA(Digital Living Network Alliance)や ZigBee(IEEE 802.15.4)などの進展も影響し

ていくと考えられる。。

2) 組み込みコンピュータアーキテクチャの必要要件

組み込みコンピュータアーキテクチャには、接続性、信頼性、効率性、そして移植性という4つの要

件がある。

* 接続性

- ネットワークを介したメンテナンス、情報更新、機能更新が組み込みシステムの情報機器

化に伴い必要となる。

* 信頼性

- 点検コストや問題による自主回収のコストを避けるために、メンテナンスを極力排する必要

がある。

* 効率性

- リアルタイム処理により応答時間を一定範囲内にする必要がある。

* 移植性

- 短期間で開発や製品化が行われることに対応するため、ハードウェアやソフトウェアの再

利用が必要となる。

Page 11: 24. 組み込みシステムに関する知識 I · アーキテクチャに関する基本的な方式とタスク管理方法などに関する話 題にも触れる。 6 i-24-9.組み込みosカーネルの機能

独立行政法人 情報処理推進機構

24 - 9

スキル区分 OSS モデルカリキュラムの科目 レベル

組み込み分野 24 組み込みシステムに関する知識 I 基本

習得ポイント I-24-5. 組み込みシステムの CPU、OS、ネットワーク機能

対応する

コースウェア

第 3 回 (組み込みシステムの基本構成)

I-24-5. 組み込みシステムのCPU、OS、ネットワーク機能

組み込みシステムに利用される代表的な CPU、OS、ネットワーク形態を紹介する。またそれらの特

徴を解説し、組み込みシステム特有の課題や対応方法(低消費電力など)についても述べる。

【学習の要点】

* 組み込みシステムには多種多様なCPU, OS, ネットワーク形態が存在している。

* CPU の代表例としては、ARM9、XScale、MIPS、SH、VR、MP、68000 が挙げられる。

* OS の代表例としては ITRON系、Linux、T-Kernel、VxWorks、Windows CE 系が挙げられる。

* ネットワーク形態としては、有線による LAN、無線(赤外線、微弱無線)などを用い、接続インタ

ーフェイスはバス方式が代表的である。

* 組み込みシステム特有の課題の代表例として、低消費電力への要求がある。CPU やメモリの省

電力制御には PMU(Power Management Unit)が使用される。

図 I-24-5. 代表的な組み込み向けCPU, OS, ネットワーク形態

CPUの代表例

・ARM9・XScale・MIPS・SH・VR・MP・68000

OSの代表例

・ITRON系・Linux・T-Kernel・VxWorks(商用)・Windows CE系(商用)

ネットワーク形態・有線によるLAN・無線(赤外線、微弱無線)・接続インターフェイスはバス方式が代表的

Page 12: 24. 組み込みシステムに関する知識 I · アーキテクチャに関する基本的な方式とタスク管理方法などに関する話 題にも触れる。 6 i-24-9.組み込みosカーネルの機能

独立行政法人 情報処理推進機構

24 - 10

【解説】

1) 代表的な組み込みシステムの CPU

* ARM9(英国 ARM社)

* XScale(米国 Intel 社から米国 Marvell Technology Group に売却;2006 年)

* MIPS(米国 MIPS Technologies 社)

* SH(日立製作所からルネサステクノロジ社に分離、移管;2003 年)

* VR(NEC社)

* 68000(米国 Motorola 社から Freescale Semiconductor 社に分離、移管;2004 年)

2) 組み込みシステム OSの要件

* 組み込みシステムの OS の特徴的な機能

- 複数のプロセスを並列に実行させる機能(マルチプロセス)

- 複数のプロセスをスケジューリングし、必要に応じて優先的に CPU を使った処理を行う機

能(リアルタイム処理)

* 組み込みシステムの OS の役割と制約

- 組み込みシステムでは、ROMや RAMのリソースに制約がある。

- このため、OS の役割として求められるファイルシステム、日本語処理システム、通信制御シ

ステム、GUI、デバイスドライバは必要に応じて組み込まれる。

* 代表的な組み込み OS

- ITRON実装系、Linux 系、BSD 系、Windows 系、T-Kernel、VxWorks、eCos など。

3) 組み込みシステムのネットワーク形態

- 組み込みシステムのネットワークとしては、LAN、 無線(赤外線まなど)が用いられる。

- 接続インターフェイスとしては、はバス方式が代表的である。

4) 低消費電力

- 組み込みシステムはバッテリ駆動する状況をしばしば想定しているため、低消費電力への

要求がある。

- CPUやメモリの省電力制御には PMU(Power Management Unit)が使用される。

Page 13: 24. 組み込みシステムに関する知識 I · アーキテクチャに関する基本的な方式とタスク管理方法などに関する話 題にも触れる。 6 i-24-9.組み込みosカーネルの機能

独立行政法人 情報処理推進機構

24 - 11

スキル区分 OSS モデルカリキュラムの科目 レベル

組み込み分野 24 組み込みシステムに関する知識 I 基本

習得ポイント I-24-6. 組み込みシステムにおけるハードウェアの基本構成

対応する

コースウェア

第 4 回(組み込みコンピュータハードウェアの基本)

I-24-6. 組み込みシステムにおけるハードウェアの基本構成

組み込みコンピュータハードウェアの基本構成と役割、特徴を説明する。中心となる CPU のアーキ

テクチャ、システムバスのアーキテクチャ、バスを介したデータのやりとりとCPUにおける演算処理の

実際等について概説する。

【学習の要点】

* 組み込みハードウェアアーキテクチャを理解する上でCPUアーキテクチャとバスアーキテクチャ

の理解は不可欠である。CPUは処理機能の中心であり、バスは各種のLSI を有機的に接続し、

各機能を果たさせる。

* CPU は、算術論理演算ユニット(ALU: Arithmetic Logic Unit)などから構成される、プログラムを

実行していくための処理機構である。

* システムバスはアドレスバス、データバス、コントロールバスの 3つのバスの総称である。アドレス

バスはやり取りの対象を特定するものであり、データバスは実際のデータのやり取りを行うもので

ある。また、コントロールバスは制御情報のやり取りに使われる。

図 I-24-6. 組み込みシステムにおけるバス

組み込みシステム

バス

CPU

入出力

メモリ

外部装置

バスの種類 伝播する情報 端点 別の端点アドレスバス アドレスの情報 CPU メインメモリ

リード・ライトのデータ CPU メインメモリ入出力のデータ CPU 入出力インターフェイスリード・ライトの指定 CPU メインメモリ入出力の指定 CPU 入出力インターフェイス

データバス

コントロールバス

バスは3種類

Page 14: 24. 組み込みシステムに関する知識 I · アーキテクチャに関する基本的な方式とタスク管理方法などに関する話 題にも触れる。 6 i-24-9.組み込みosカーネルの機能

独立行政法人 情報処理推進機構

24 - 12

【解説】

1) 組み込みハードウェアアーキテクチャの概要

CPU は処理機能の中心であり、バスは各種のコンピュータ部品を有機的に接続し、各機能を果た

させる。CPU はメモリ上の命令の読み込み、解釈、実行、の命令サイクルを繰り返している。

* CPU アーキテクチャの基礎

- シングルチップの組み込みコンピュータ

システム LSI では、ひとつの IC チップ上に CPU、RAM、ROM、および各種入出力装置など

を搭載することで、基盤に載せる部品の数を減らしている。

- アーキテクチャ上の制約

基盤などの物理的なサイズの他、コストと発熱による制約を受ける。ROM および、RAM の容

量が大きいほど価格が上がる。また CPU の動作クロック周波数が高いほど価格と発熱量が

上がる。

* CPU 内部のアーキテクチャ

以下の 5つの構成要素は多くの CPUで共通のものとされる。

- コントローラ

プロセッサの中心的な役割を担い、プログラムを実行していくための調整を行う。

- 算術論理演算ユニット(ALU: Arithmetic Logic Unit)

加算、減算、ビットシフトなどの演算を行う。

- 内部データ記憶装置

ALUの入出力データなどを保持する。

- 内部バス

プロセッサ内部の他のハードウェアユニットとの間で値を転送する。

- 外部インターフェイス

プロセッサ外部のコンピュータシステム部分との通信を処理する。

* バスアーキテクチャ

- 組み込みシステムの基盤上の LSI はシステムバスにより接続されている。

- システムバスはアドレスバス、データバス、コントロールバスの 3つのバスの総称である。

- アドレスバスはやり取りの対象を特定するものであり、データバスは実際のデータのやり取

りを行うものである。また、コントロールバスは制御情報のやり取りに使われる。

Page 15: 24. 組み込みシステムに関する知識 I · アーキテクチャに関する基本的な方式とタスク管理方法などに関する話 題にも触れる。 6 i-24-9.組み込みosカーネルの機能

独立行政法人 情報処理推進機構

24 - 13

スキル区分 OSS モデルカリキュラムの科目 レベル

組み込み分野 24 組み込みシステムに関する知識 I 基本

習得ポイント I-24-7. 組み込み向け CPU のアーキテクチャ

対応する

コースウェア

第 5 回 (CPU アーキテクチャの基本)

I-24-7. 組み込み向け CPUのアーキテクチャ

組み込みコンピュータの中核となる CPU 内部のアーキテクチャについて、詳細な説明を行う。また

命令セットやメモリとの接続、メモリ管理方式等についても解説を加え、さらに、代表的な組み込み

向けプロセッサのいくつかについて、そのアーキテクチャを紹介する。

【学習の要点】

* CPU はメモリ上の命令の読み込み、解釈、実行、の命令サイクルを繰り返している。

* CPU には命令セットの性質によって CISC(Complex Instruction Set Computer)タイプと

RISC(Reduced Instruction Set Computer)タイプとに分けられる。

* CISC は比較的複雑な処理を行う命令セットも用意し、CPU で行う処理を増やすことによって、

処理効率を上げるように設計されている。

* RISC は複雑な処理をソフトウェアに任せ、シンプルな命令セットを用意することで命令サイクル

の速度を高めるよう設計されている。組み込みシステムでは RISC を選択する場合が多い。

図 I-24-7. CICS と RISC

プロセッサの分類 説明

CISC 単独で複雑な計算を行う命令を複数用意している

RISC 全ての命令が1クロックで実行できるように設計されている

RISCが組み込み系では多い例:ARM、MIPS、SH、IBMPower PC

Page 16: 24. 組み込みシステムに関する知識 I · アーキテクチャに関する基本的な方式とタスク管理方法などに関する話 題にも触れる。 6 i-24-9.組み込みosカーネルの機能

独立行政法人 情報処理推進機構

24 - 14

【解説】

1) CPU 内部のアーキテクチャと動作

* CPU内部のコントローラは以下の実行サイクルを繰り返す。

- メモリから読み込んだ命令を命令レジスタに読み込む(Fetch)。

- 命令を解釈する(Decode)。

- 解釈した命令の処理に必要な信号を生成して、命令を実行する(Execute)。

* 割り込み制御、I/O 制御方式

- CPU には、演算エラーや周辺機器から入出力の処理要求が送られるなどした際に、実行

中のプログラムを中断して事前に登録されたプログラムを呼び出す割り込み機構がある。

- 割り込みが発生する際に、CPU は実行中のプログラムが扱っているデータなどをメモリ上

に退避した後、割り込み処理を行う。

- 割り込み処理を終了した後、退避していたデータを復帰させ、プログラムの実行を再開す

る。

2) 命令セットアーキテクチャ

* 命令セット

- ハードウェアの認識する演算群を命令セットと呼び、それぞれの演算を命令と呼ぶ。

* CPU の選択基準

- CPU には命令セットの性質によって CISC(Complex Instruction Set Computer)タイプと

RISC(Reduced Instruction Set Computer)タイプとに分けられる。

- CISC は比較的複雑な処理を行う命令セットも用意し、CPU で行う処理を増やすことによっ

て、処理効率を上げるように設計されている。Intel 社の Pentiumプロセッサなどで採用され

ている。

- RISC は複雑な処理をソフトウェアに任せ、シンプルな命令セットを用意することで命令サイ

クルの速度を高めるよう設計されている。ARM、MIPS、SH などの CPUに採用されている。

3) メモリと CPU

* メモリと CPU の接続

- メモリと CPU はシステムバスで接続されている。

- プロセッサの動作周波数クロックとメモリのクロックの速さが異なる場合、遅延が生じる。同

期したクロックシステムを用いるメモリでは、その遅延を取り除いている。この方式は、

SDRAM(Synchronized DRAM)、SSRAM(Synchronized SRAM)で用いられている。

* メモリのデ-タ保護

- SRAM(Static RAM)は不揮発性メモリであり、電源をオフにしても記憶を保持し続ける。

- プログラムを動的にロードする場合、プログラムの暴走により SRAM などのデータ領域を破

壊しないように保護する必要がある。

Page 17: 24. 組み込みシステムに関する知識 I · アーキテクチャに関する基本的な方式とタスク管理方法などに関する話 題にも触れる。 6 i-24-9.組み込みosカーネルの機能

独立行政法人 情報処理推進機構

24 - 15

スキル区分 OSS モデルカリキュラムの科目 レベル

組み込み分野 24 組み込みシステムに関する知識 I 基本

習得ポイント I-24-8. 組み込み向けソフトウェアの基本

対応する

コースウェア

第 6 回 (組み込みソフトウェアの概要)

I-24-8. 組み込み向けソフトウェアの基本

組み込み向けソフトウェアの役割と特徴を説明する。組み込み向けソフトウェア処理の基本として、

タスクとスケジューリングを説明し、並行処理のアーキテクチャに関する基本的な方式とタスク管理

方法などに関する話題にも触れる。

【学習の要点】

* 処理内容を実現するプログラムに対して、その実行の単位をタスクと呼ぶ。

* どのタスクを実行するか決定することをタスクスケジューリングと呼ぶ。タスクスケジューリングはリ

アルタイム OSでは特に重要な機能である。

* 優先度に従ったタスクのスケジューリングでは、システムコールをトリガとしてタスクの実行状態を

実行待ちに変化させ、順に処理されるようにする。

* スケジューラが必要な際に実行中のタスクを強制的に中断し、別のタスクを実行に移すことをプ

リエンプションと呼ぶ。

図 I-24-8. カーネルによるタスク管理

タスク生成情報● タスク番号●優先度●プログラム名

カーネル

プログラム

タスク生成

タスクA(優先度高)

タスクB(優先度普通)

待機命令

カーネルによるスケジューリングが行われる

実行

Page 18: 24. 組み込みシステムに関する知識 I · アーキテクチャに関する基本的な方式とタスク管理方法などに関する話 題にも触れる。 6 i-24-9.組み込みosカーネルの機能

独立行政法人 情報処理推進機構

24 - 16

【解説】

1) ソフトウェア処理の基本

* タスク

- 処理内容を実現するプログラムに対して、そのスケジュール可能な実行の単位をタスクと

呼ぶ。リアルタイム OSにおいてはスレッドと同等の意味合いで用いられる。

- カーネルによっては、プロセスと呼ばれる別のスケジュール可能な実行の単位を提供して

いる。プロセスには固有のアドレス空間やメモリなどの実行環境が与えられる。

* タスクスケジューリング

- どのタスクを実行するか決定することをタスクスケジューリングと呼ぶ。

- 優先度に従ったタスクのスケジューリングでは、システムコールをトリガとしてタスクの実行

状態を実行待ちに変化させ、順に処理されるようにする。

- スケジューラが必要な際に実行中のタスクを強制的に中断し、別のタスクを実行に移すこと

をプリエンプションと呼ぶ。

2) 並行処理のアーキテクチャ

* 並行処理の処理概要

- 並行処理は複数の相互に影響を及ぼしあう処理を同時並行に実行することを指す。

- タイムクォンタム方式では、各タスクにタイムクォンタムという一定の CPU 時間を順番に割り

当てて処理を進めていく。

- タスクコントロールブロック(TCB:Task Control Block)は、カーネルがタスク固有の情報を

保持するデータ構造であり、タスクの実行中に動的に切り替わるコンテキスト情報を保持す

る。

* タスクの管理方法

- 生成されたタスクの情報をリングバッファなどでバッファリングすることで、タスクのスケジュ

ーリングを行う。

Page 19: 24. 組み込みシステムに関する知識 I · アーキテクチャに関する基本的な方式とタスク管理方法などに関する話 題にも触れる。 6 i-24-9.組み込みosカーネルの機能

独立行政法人 情報処理推進機構

24 - 17

スキル区分 OSS モデルカリキュラムの科目 レベル

組み込み分野 24 組み込みシステムに関する知識 I 基本

習得ポイント I-24-9. 組み込み OS カーネルの機能

対応する

コースウェア

第 7 回 (カーネル処理の概要)

I-24-9. 組み込みOS カーネルの機能

組み込み向けOSのカーネルに関して、その機能と役割、特徴を解説する。組み込み OS カーネル

に求められる機能や制御対象、タスク制御に関わる組み込み特有の問題、排他制御の必要性とそ

の具体的な実装方法などを説明する。

【学習の要点】

* 組み込み OS のモジュールであるカーネルは利用形態に応じたプログラムの実行制御を行う機

能を持つ。機能としては、プログラム実行を制御する実行制御機能と、システムコール機能があ

る。

* タスクには優先度をつけ、余裕時間(制限時間-コンピュータ処理時間)が短いものを優先する。

カーネルは優先度を使って、タスクの優先度順実行を制御する。

図 I-24-9. タスクの実行状態とシステムコール

実行可能状態

実行状態

シス テムコ ール

待機状態

システムコ ール

実行状態実行可能

状態

タスクの基本ステータス 説明実行可能状態 登録のみ、起動されていない状態実行状態 起動され、実行中の状態

待機状態 実行中だが、他の優先度の高いタスクにより待機させられている状態

Page 20: 24. 組み込みシステムに関する知識 I · アーキテクチャに関する基本的な方式とタスク管理方法などに関する話 題にも触れる。 6 i-24-9.組み込みosカーネルの機能

独立行政法人 情報処理推進機構

24 - 18

【解説】

1) リアルタイムカーネル

* リアルタイムカーネルとは処理を優先度順に実行させる汎用的な機構を、割り込みから独立した

形で提供するソフトウェアモジュールである。

* カーネルが管理する処理のことをタスクと呼ぶ。

2) カーネル処理の概要

* タスクの制御

- タスクは実行可能状態、待機状態、実行状態のいずれかの状態で存在する。

- 待機状態では、他のより優先度の高いタスクの実行終了を待機している。

- 実行可能状態では、現在利用できないリソースにアクセスしようとして、イベント待ちか一定

時間待機するように求められている。

- 実行状態では、最も高い優先度を持って実行している。

* 排他制御

- クリティカルセクションとは割り込みが発生することによって共有資源に問題を発生させる

可能性のある状態である。

- 排他処理はクリティカルセクション実行中に、同じ資源に対するクリティカルセクションを実

行させないための仕組みである。このことをアトミックな処理の実行と呼ぶ。

- 排他制御の必要な例としては、センサタスクが共有メモリ領域にデータを書き込み中の状

態で、表示タスクがデータを表示するという場合が考えられる。表示タスクは意図しないデ

ータを表示してしまう可能性がある

* 排他制御の必要性

- 共有リソースへの同時アクセスによる問題を回避するために、クリティカルセクションの実行

は排他的に行う必要がある。

- スピンロック方式では、ある処理がクリティカルセクションに入る直前にフラグをチェックして、

他の処理がクリティカルセクションに入る前にフラグをチェックし続けるが、単一 CPU 間で

は無限にループすることになってしまうため利用できない。

- デッカーのアルゴリズムではクリティカルセクションに入る権利を譲り合う排他制御のための

ソフトウェアアルゴリズムである。しかし、三つ以上の処理間の排他制御を実装するのは困

難である。

- 単一 CPU では割り込み禁止による排他制御がとられる場合が多いが、他のタスクのリアル

タイム性を損ねる恐れがあるなど、システムへの影響が大きい。

* 排他制御の方法

- Test and Set命令は、スピンロック方式のフラグのチェックとセットをアトミックに行うためのハ

ードウェアサポートである。

- セマフォは、共有資源ごとに排他制御を行うために用意されたカーネルの機構である。クリ

ティカルセクションに入る前にセマフォの P 操作のシステムコールを行い、クリティカルセク

ションから出る際に V 操作のシステムコールを行う。あるタスクが P 操作をして V 操作をし

ていない時に他のタスクが P 操作をした場合は、後のタスクが待機させられる。

Page 21: 24. 組み込みシステムに関する知識 I · アーキテクチャに関する基本的な方式とタスク管理方法などに関する話 題にも触れる。 6 i-24-9.組み込みosカーネルの機能

独立行政法人 情報処理推進機構

24 - 19

スキル区分 OSS モデルカリキュラムの科目 レベル

組み込み分野 24 組み込みシステムに関する知識 I 基本

習得ポイント I-24-10. リアルタイムシステムの処理方法と設計

対応する

コースウェア

第 8 回 (リアルタイムシステムの構成と仕組み)

I-24-10. リアルタイムシステムの処理方法と設計

組み込みシステムの特徴のひとつであるリアルタイム性について説明する。リアルタイムシステムが

備える機能と、リアルタイム処理の特徴について説明し、さらに、アプリケーションのリアルタイム設

計方法、時間制御と優先度といったトピックを紹介する。

【学習の要点】

* リアルタイム処理とは、制限時間を守ることを義務付けられた処理であり、組み込みシステムで

は必須の処理となる。割り込みと優先度制御を使うことによりリアルタイム処理は実現される。

* リアルタイム処理の設計として、入出力の待ち時間を利用することも行われる。

図 I-24-10. リアルタイムシステムの設計の特徴

● タスク分割の決定が非常に重要● タイムクリティカルな処理に注目する● 割り込みハンドラを有効に使う● タスク生成のオーバヘッドなど、効率を重視する● 入出力を非同期に行い効率を上げる● デバイスドライバによるイベントドリブンな処理を利用する

アプリケーション入出力で起動されるタスクの集合

デバイスドライバによるイベントドリブンな実行

をするタスクの集合

タイムクリティカルなタスクの集合

・・・

Page 22: 24. 組み込みシステムに関する知識 I · アーキテクチャに関する基本的な方式とタスク管理方法などに関する話 題にも触れる。 6 i-24-9.組み込みosカーネルの機能

独立行政法人 情報処理推進機構

24 - 20

【解説】

1) リアルタイム処理とは

リアルタイム処理とは、制限時間を守ることを義務付けられた処理であり、組み込みシステムでは必

須の処理となる。

* リアルタイム処理の実行アーキテクチャ

- リアルタイム処理は、各タスクの時間制約を守るように適宜タスクを切り替えながら実行して

いくことにより実現される。

- リアルタイム処理は、割り込みの機構を利用してタスクの優先度に応じた切り替えを行うこと

によりある程度実現できる。しかし、割り込み要因が増えるなど、制御が複雑になった際に

割り込みだけでリアルタイム処理を実現することは困難になる。

- リアルタイムカーネルを利用してプログラムを管理することにより、割り込みによるリアルタイ

ム処理の困難さを解決することができる。

* リアルタイム処理の設計パターン

- 割り込みによって、入出力の待ち時間を有効に利用する設計ができる。

- デバイスドライバは、入出力装置を扱うプログラムをタスクから独立して切り出したモジュー

ルである。デバイスドライバには割り込みハンドラが実装され、イベントドリブン機能が提供

される。

2) アプリケーションのリアルタイム設計

* アプリケーションのリアルタイム設計においてはタスク分割の決定が非常に重要となる。

* 割り込みハンドラを有効に使うなど、タイムクリティカルな処理に注目した設計が要求される。

* デバイスからの入力イベントや入力データを待つタスクをあらかじめ生成して、入力イベントを待

たせる処理を行う方が、入力イベントの発生ごとにタスクを生成するよりも効率的である。

* 入出力の完了を待たずに次の処理に進めるように設計した方が、リアルタイム処理の制約を満

たしやすい。完了を待つ間の入出力データやイベントはキューの中で処理を待たされる。

* タイムクリティカル処理を設計する上で、デバイスドライバにより実現されるイベントドリブン機能

は非常に重要となる。