• 検索結果がありません。

OSS モデルカリキュラムの学習ガイダンス 27. 組み込みシステム最適化に関する知識 Ⅱ 1. 科目の概要組み込みシステムの最適化に必要な技術である性能評価の詳細や 限られた資源でシステムを実現するなかで求められる各種のトレードオフ システムの全体最適化を考慮したハードウェア / ソフトウェアの組

N/A
N/A
Protected

Academic year: 2021

シェア "OSS モデルカリキュラムの学習ガイダンス 27. 組み込みシステム最適化に関する知識 Ⅱ 1. 科目の概要組み込みシステムの最適化に必要な技術である性能評価の詳細や 限られた資源でシステムを実現するなかで求められる各種のトレードオフ システムの全体最適化を考慮したハードウェア / ソフトウェアの組"

Copied!
23
0
0

読み込み中.... (全文を見る)

全文

(1)

27. 組み込みシステム最適化に関する知識Ⅱ

1. 科目の概要

組み込みシステムの最適化に必要な技術である性能評価の詳細や、限られた資源でシス テムを実現するなかで求められる各種のトレードオフ、システムの全体最適化を考慮した ハードウェア/ソフトウェアの組み合わせ方など、組み込みシステム最適化の具体的な手法 について解説する。

2. 習得ポイント

本科目の学習により習得することが期待されるポイントは以下の通り。 習得ポイント 説 明 シラバスの対応コマ II-27-1. システム全体としての最適化 MPUの選択基準やハードウェアの選定、ソフトウェアからの制御方法 などハードウェアで最適化できる部分は何かを解説し、さらに、資源 の配分やメモリの効率的な利用方法などソフトウェアによる最適化を 考える。このようなシステム全体としての最適化検討の手順について 説明する。 15 II-27-2. MPUの性能最適化 MPUの性能を最適化する上で留意すべき項目は何かを説明する。 また、MPUの性能評価に用いるEmbedded Microprocessor Benchmark Consortium(EEMBC)やオープンソースのベンチマーク について解説する。 7 II-27-3. システムの性能評価 システム性能の要件や性能評価の考え方、システムトータルでの性 能評価方法について概説する。処理時間を計測するツールとして利 用できるgprofや、OSのシステム性能を計測するツールでOSSとして 提供されているHBench-OSなど、各種のツールを利用したシステム 性能計測方法を説明する。 8 II-27-4. 性能に対する制約とトレードオフの 考慮 コスト面からの制約や拡張性の問題など、求められる性能に対して 課される組み込みシステムの制約について説明する。さらに性能と 制約のトレードオフを勘案してシステムを設計した具体的な例とし て、MMUを持たないMPUに対応したLinuxの実装例を紹介する。 9 II-27-5. 性能評価の解析、シミュレーション とモニタリング 性能評価の解析的手法、シミュレーションによりシステム性能を評価 するシミュレータ、および実機の性能をモニタリングする様々な手法 を説明する。また具体的な例として、PIC (Programmable Intelligent Computer)を対象としたOSSのシミュレータであるgpsim, miSim, SxSim, PICEMUなどを紹介する。 10 II-27-6. システム資源のトレードオフを考慮 した性能向上 組み込みシステムにおける限られたシステム資源によるトレードオフ を考慮して、性能や信頼性の向上という課題を解決するためのポイ ントを説明する。具体的な事例として、組み込みLinuxのCPUリソース 管理を行うことで全体の性能向上を図ることを目的としたアカウンティ ングシステム(CABI)について説明する。 12 II-27-7. システム資源のトレードオフを考慮 したコスト低減 組み込みシステムにおける限られたシステム資源によるトレードオフ を考慮した上でのコスト低減策について、そのポイントを示す。ライセ ンシングコストを削減するOSSの利用やその限界、組み込みシステム の特殊なハードウェアとそれに対応するOSSのデバイスドライバ不足 など、各種の課題を示す。 12 II-27-8. システム資源のトレードオフを考慮 した最適化 組み込みシステムにおける限られたシステム資源を考慮した最適化 について、具体的な手法や対策を説明する。具体的には、フレーム ワークに頼らずスクラッチからの開発、C++を止めてC言語で記述、 BusyBoxを利用してLinuxを最小化する、といった方法を解説する。 12 II-27-9. OSと応用ソフトウェアの組み合わせ 方 組み込みシステムを最適化する際に、要求される機能を満たし、拡 張性や信頼性を確保し、開発コストを削減するために、OSと応用ソフ トウェアをどのように組み合わせればよいかについて説明する。技術 的な観点からの説明に加え、いずれかもしくは両者にOSSを利用す る際の留意点も示す。 13 II-27-10.システム最適化の方式 組み込みシステムの性能向上を狙いとした設計を行う際に留意すべ きポイントを示す。リアルタイム性、クリティカル性、ハードウェア容積 による制約といった各種の制約のもとでシステムを最適化するため の、C言語プログラムや組み込みJavaによる設計方針を解説する。 14 ※ 【学習ガイダンスの使い方】 1. 「習得ポイント」により、当該科目で習得することが期待される概念・知識の全体像を把握する。 2. 「シラバス」、「IT 知識体系との対応関係」、「OSS モデルカリキュラム固有知識」をもとに、必要に応じて、 従来のIT 教育プログラム等との相違を把握した上で、具体的な講義計画を考案する。 3. 習得ポイント毎の「学習の要点」と「解説」を参考にして、講義で使用する教材等を準備する。

(2)

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

「27. 組み込みシステム最適化に関する知識Ⅱ」と IT 知識体系との対応関係は以下の通り。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 27. 組み込みシス テム最適化に関 するスキル <マルチプロ セッサシステ ム> <ハードウェア による最適化 > <リアルタイム システムの設 計> <リアルタイム ソフトウェアの 条件と最適化 > <性能最適化 の評価項目> <ソフトウェア の最適化> <MPUの性能 最適化設計> <システムの 性能要件と評 価項目> <システム性 能の評価方法 > <性能評価手 法の分類> <拡張性の評 価> <システム資 源のトレードオ フ> <基本ソフト ウェアと応用ソ フトウェアのト レードオフ> <組み込みシ ステム最適化 のための方式 設計> <最適化のた めの検討項目 > 基本レベル(Ⅰ) 応用レベル(Ⅱ) 科目名 [シラバス:http://www.ipa.go.jp/software/open/ossc/download/Model_Curriculum_05_27.pdf] 科目名 1 2 3 4 5 6 7 8 9 10 11 12 13 IT-IAS1.基礎的 な問題 IT-IAS2.情報セキュリティの仕 組み(対策) IT-IAS3.運用上

の問題 IT-IAS4.ポリシー IT-IAS5.攻撃 IT-IAS6.情報セキュリティ分野IT-IAS7.フォレンジック(情報証 拠) IT-IAS8.情報の 状態 IT-IAS9.情報セキュリティサー ビス IT-IAS10.脅威分 析モデル IT-IAS11.脆弱性 IT-SP1.プロ フェッショナル としてのコミュ ニケーション IT-SP2.コン ピュータの歴史 IT-SP3.コン ピュータを取り 巻く社会環境 IT-SP4.チーム ワーク IT-SP5.知的財産 権 IT-SP6.コン ピュータの法的 問題 IT-SP7.組織の中 のIT IT-SP8.プロ フェッショナル としての倫理的 な問題と責任 IT-SP9.プライバ シーと個人の自 由 IT-IM1.情報管理 の概念と基礎 IT-IM2.データ ベース問合わせ 言語 IT-IM3.データ アーキテクチャ IT-IM4.データモ デリングとデー タベース設計 IT-IM5.データと 情報の管理 IT-IM6.データ ベースの応用分 野 IT-WS1.Web技術 IT-WS2.情報アー

キテクチャ IT-WS3.デジタルメディア IT-WS4.Web開発 IT-WS5.脆弱性 IT-WS6.ソーシャルソフトウェア

IT-PF1.基本デー タ構造 IT-PF2.プログラ ミングの基本的 構成要素 IT-PF3.オブジェ クト指向プログ ラミング IT-PF4.アルゴリ ズムと問題解決 IT-PF5.イベント 駆動プログラミ ング IT-PF6.再帰 IT-IPT1.システ ム間通信 IT-IPT2.データ 割り当てと交換 IT-IPT3.統合的 コーディング IT-IPT4.スクリ プティング手法 IT-IPT5.ソフト ウェアセキュリ ティの実現 IT-IPT6.種々の 問題 IT-IPT7.プログ ラミング言語の 概要 CE-SWE0.歴史と 概要 CE-SWE1.ソフトウェアプロセスCE-SWE2.ソフトウェアの要求と 仕様 CE-SWE3.ソフト ウェアの設計 CE-SWE4.ソフトウェアのテスト と検証 CE-SWE5.ソフト ウェアの保守 CE-SWE6.ソフトウェア開発・保 守ツールと環境 CE-SWE7.ソフト ウェアプロジェ クト管理 CE-SWE8.言語翻 訳 CE-SWE9.ソフトウェアのフォー ルトトレランス CE-SWE10.ソフト ウェアの構成管 理 CE-SWE11.ソフ トェアの標準化 IT-SIA1.要求仕

様 IT-SIA2.調達/手配 IT-SIA3.インテグレーション IT-SIA4.プロジェクト管理 IT-SIA5.テストと品質保証 IT-SIA6.組織の特性 IT-SIA7.アーキテクチャ

[27-10] IT-NET1.ネット ワークの基礎 IT-NET2.ルーティングとス イッチング IT-NET3.物理層 IT-NET4.セキュ リティ IT-NET5.アプリケーション分野IT-NET6.ネットワーク管理 [27-8] CE-NWK0.歴史と 概要 CE-NWK1. 通信ネットワークの アーキテクチャ CE-NWK2.通信 ネットワークの プロトコル CE-NWK3.LANと WAN CE-NWK4.クライアントサーバコ ンピューティン グ CE-NWK5.データ のセキュリティ と整合性 CE-NWK6.ワイヤ レスコンピュー ティングとモバ イルコンピュー ティング CE-NWK7.データ 通信 CE-NWK8.組込み機器向けネット ワーク CE-NWK9.通信技 術とネットワー ク概要 CE-NWK10.性能評 価 CE-NWK11.ネットワーク管理 CE-NWK12.圧縮と伸張 CE-NWK13.クラス タシステム CE-NWK14.インターネットアプ リケーション CE-NWK15.次世代 インターネットCE-NWK16.放送 IT-PT1.オペレー ティングシステ ム IT-PT2.アーキテ クチャと機構 IT-PT3.コンピュータインフ ラストラクチャ IT-PT4.デプロイ メントソフト ウェア IT-PT5.ファーム ウェア IT-PT6.ハードウェア CE-OPS0.歴史と 概要 CE-OPS1.並行性 CE-OPS2.スケ ジューリングと ディスパッチ CE-OPS3.メモリ 管理 CE-OPS4.セキュ リティと保護 CE-OPS5.ファイ ル管理 CE-OPS6.リアル タイムOS CE-OPS7.OSの概 要 CE-OPS8.設計の 原則 CE-OPS9.デバイ ス管理 CE-OPS10.システ ム性能評価 CE-CAO0.歴史と 概要 CE-CAO1.コンピュータアーキ テクチャの基礎 CE-CAO2.メモリ システムの構成 とアーキテク チャ CE-CAO3.インタ

フェースと通信CE-CAO4.デバイスサブシステムCE-CAO5.CPUアーキテクチャ CE-CAO6.性能・コスト評価 CE-CAO7.分散・並列処理 CE-CAO8.コンピュータによる 計算 CE-CAO9.性能向 上 [27-2] [27-1,2] [27-7] [27-7,8] [27-10] [27-7,8,10,12] IT-ITF1.ITの一 般的なテーマ IT-ITF2.組織の 問題 IT-ITF3.ITの歴 史 IT-ITF4.IT分野 (学科)とそれに 関連のある分野 (学科) IT-ITF5.応用領 域 IT-ITF6.IT分野 における数学と 統計学の活用 [27-7] [27-7] CE-ESY0.歴史と 概要 CE-ESY1.低電力コンピューティ ング CE-ESY2.高信頼 性システムの設 計 CE-ESY3.組込み 用アーキテク チャ CE-ESY4.開発環

境 CE-ESY5.ライフサイクル CE-ESY6.要件分析 CE-ESY7.仕様定義 CE-ESY8.構造設計 CE-ESY9.テスト CE-ESY10.プロジェクト管理 CE-ESY11.並行設計(ハードウェ ア、ソフトウェ ア CE-ESY12.実装 [27-2] [27-1] [27-3] [27-3] [27-3] [27-3,5] [27-5] [27-13] CE-ESY13.リアル タイムシステム 設計 CE-ESY14.組込み マイクロコント ローラ CE-ESY15.組込み プログラム CE-ESY16.設計手 法 CE-ESY17.ツール によるサポート CE-ESY18.ネット ワーク型組込み システム CE-ESY19.インタ フェースシステ ムと混合信号シ CE-ESY20.センサ 技術 CE-ESY21.デバイ スドライバ CE-ESY22.メンテ ナンス CE-ESY23.専門シ ステム CE-ESY24.信頼性 とフォールトト レランス 分野 組 織 関 連 事 項 と 情 報 シ ス テ ム IT-IAS 情報保証 と情報セキュリ ティ IT-SP 社会的な 観点とプロ フェッショナル としての課題 1 2 ソ フ ト ウェ ア の 方 法 と 技 術 シ ス テ ム 基 盤 8 7 6 5 IT-PF プログラ ミング基礎 応 用 技 術 14 15CE-ESY 組込みシステム 1 0 9 4 3 IT-IM 情報管理 IT-WS Webシステ ムとその技術 IT-IPT 技術を統 合するためのプ ログラミング CE-SWE ソフト ウェア工学 IT-SIA システム インテグレー ションとアーキ テクチャ IT-NET ネット ワーク CE-NWK テレコ ミュニケーショ ン 複 数 領 域 に ま た が る も の IT-PT プラット フォーム技術 CE-OPS オペレー ティングシステ ム CE-CAO コン ピュータのアー キテクチャと構 成 IT-ITF IT基礎 コ ン ピュ ー タ ハー ド ウェ ア と アー キ テ ク チャ 13 1 2 1 1 <IT 知識体系上の関連部分>

(3)

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

OSS モデルカリキュラム固有の知識としては組み込みシステムの開発における性能の 最適化の際に利用するツールの知識がある。これにはOSS のプロファイラ、ベンチマーク ソフトなどが含まれる。 科目名 第7回 第8回 第9回 第10回 第11回 第12回 第13回 第14回 第15回 (1)MPU の アーキテクチャ とリスク (1)システムの 性能要件定義 (1)システムの 性能要件定義 (1)性能評価の 解析的手法 (1)拡張性の要 求事項 (1)ソフトウェア とハードウェア のトレードオフ のパターン (1)基本ソフト ウェアを活用し て、目的の機 能を実現 (1)システムの 要件定義 (1)ハードウェ アによる最適 化とトレードオ フ (2)MPU の アーキテクチャ (2)アクセス速 度の主な評価 項目 (2)システムと しての制約条 件の確認 (2)シミュレー ション (2)拡張性ト レードオフの 評価 (2)性能向上 (2)基本ソフト ウェアの活用 で要求された 機能が得られ るように (2)マイコン構 成からの方式 選択 (2)ソフトウェア 設計方法論の 考え方 (3)データ転送 時間の高速化 (3)トレードオフ のポイント (3)モニタリング (3)評価の視点 (3)信頼性向上 (3)信頼性を向 上するために (3)ネットワーク 機能からの方 式設計 (3)設計ワーク ショップ (4)CPU の性 能評価 (4)設計ワーク ショップ (4)コスト低減 (4)開発コスト を削減するた (4)設計ワーク ショップ (5)設計ワーク ショップ (5)設計ワーク ショップ 27.組み込みシ ステム最適化 に関する知識 Ⅱ (網掛け部分はIT 知識体系で学習できる知識を示し、それ以外は OSS モデルカリキュラム固有の知識を示している)

(4)

習得ポイント Ⅱ-27-1. システム全体としての最適化 対応する コースウェア 第 15 回 (最適化のための検討項目)

Ⅱ-27-1. システム全体としての最適化

MPU の選択基準やハードウェアの選定、ソフトウェアからの制御方法などハードウェアで最適化で きる部分は何かを解説し、さらに、資源の配分やメモリの効率的な利用方法などソフトウェアによる 最適化を考える。このようなシステム全体としての最適化検討の手順について説明する。 【学習の要点】 * 組み込みアプリケーションの開発ツールや OS は MPU に依存しているため、MPU の選択は、 MPU の性能、価格以外に開発ツールの提供状況なども加味する必要がある。 * 言語仕様・MPU・コンパイラの拡張・最適化機構を用いることで、実行速度・効率は高まるが、メ モリの使用量とのトレードオフの関係にあることが多い。 図Ⅱ-27-1. ハードウェアの観点による検討項目

(5)

独立行政法人 情報処理推進機構 1) MPU の選択基準にかかわる諸要因 * 性能 - 高速な MPU によるソフトウェア処理を増やすことで、基板上の部品点数を減らすことができ るが、高速な MPU は一般に消費電力と発熱が大きい。 - 廉価な MPU でも FPGA に多くの処理をさせることにより、十分な性能を出すことができる。 また消費電力も抑えることができる。 * 価格 - 処理を専用ハードウェアに任せるとハードウェア原価が上がり、ソフトウェアの分担範囲を 広めるとソフトウェア開発費が上がる。ハードウェア原価とソフトウェア開発費のトレードオフ を考慮しなくてはならない。 * 開発ツール - MPU に自社の技術戦略と合致した開発ツールがあることも重要な要因である。 2) ハードウェアの観点による検討項目 * 省電力・発熱対策 - 筐体には十分な強度と電磁波への対策が必要だが、製品の高密度化、MPU の高性能化 による発熱への対策が特に重要になる。 - 回路基板の配置や、空気の流路などを考慮する必要がある。また、周辺機器とのやりとり に用いるバス数を増やしてデータ転送回数を減らすなどの対策が考えられる。 * 耐震性・耐湿性・塵埃対策 - 設置する環境の特性を考慮し、振動・湿度・塵埃への耐性を持たせる必要がある。 * EMC(Electro-Magnetic Compatibility)対策 - 組み込み機器の発する電磁波ノイズには国際規格による制限が加えられている。

- CISPR Pub.11.22(国際無線障害特別委員会), VCCI(日本情報処理装置等電波障害自

主規制)などが電波障害に関する規格の例である。 * 保守性 - 在庫管理の観点から、部品の安定供給を考慮する必要がある。 - 組み込み機器の寿命を長くするために、偶発故障期間(初期故障期間以降、摩耗故障期 間以前)の長い部品を利用することが望ましい。 3) ソフトウェアの観点による最適化検討項目 * 計算量を抑えるためにソフトウェアのプログラムに用いられるアルゴリズムを改善することが挙げ られ、ループ内不変値のループ外への移動などのループ処理の改善や局所変数で高速に処 理できる型の利用などが考えられる。 * コンパイラの拡張・最適化機構を用いて、メモリ配置の最適化、関数のレジスタ割り当て操作、 アセンブラ埋め込み機能などを用いる。 * 上記の最適化により、実行速度・効率は高まるが、メモリの使用量とのトレードオフの関係にある ことが多い。

(6)

習得ポイント Ⅱ-27-2. MPU の性能最適化 対応する コースウェア 第 7 回 (MPU の性能最適化設計)

Ⅱ-27-2. MPU の性能最適化

MPU の性能を最適化する上で留意すべき項目は何かを説明する。また、MPU の性能評価に用い る Embedded Microprocessor Benchmark Consortium(EEMBC)やオープンソースのベンチマークに ついて解説する。

【学習の要点】

* ノイマン・ボトルネックに対して、データ転送時間の短縮のために、高速のメモリデバイスを使う、 キャッシュメモリを使う、システムバス幅を拡大するなどの措置をとる。

* Embedded Microprocessor Benchmark Consortium(EEMBC)は組み込みベンチマークソフトウ ェアの標準として扱われるようになっている。

* MediaBench など、オープンソースのベンチマークソフトウェアも存在する。オープンソースである がゆえ、ベンチマークの設計に特定の団体個人の意図が入りづらいという特徴を持つ。

(7)

独立行政法人 情報処理推進機構 1) MPU の高速化とノイマン・ボトルネック * ノイマン型コンピュータでは、メインメモリにデータを置いて MPU で必要に応じて読み出して計 算するため、MPU の高速化にメモリ周辺のシステムの速度が対応出来ない場合、性能的なボト ルネックとなる。これを特にノイマン・ボトルネックと呼ぶ。 * ノイマン・ボトルネックの解消は、半導体の中と外の通信速度を揃えることであり、現実的に難し い。ノイマン・ボトルネックの緩和に以下の措置がとられる。 - 高速なメモリデバイスの利用 - MPU とメインメモリの間にキャッシュメモリを置く - システムバス(MPU とチップセットの間のバス)、メモリバスの高速化

2) Embedded Microprocessor Benchmark Consortium(EEMBC)

EEMBC は、1997 年の発足以来、参加企業数を 50 社以上に増やし、組み込みシステムにおけるベン チマークソフトウェアとして標準として扱われるようになっている。(Ⅰ-27-8 参照)

* EEMBC は、自動車・産業機器、コンシューマ向け機器、Java ME、ネットワーク機器、OA 機器、 通信機器という 6 つの具体的な分野に照準を定めた実践的な指標である。

* Java ME 用のプログラムは特に Java GrinderBench として公開されている。GrinderBench は 6 種 類の組み込み Java で頻繁に使われる種類のプログラムをベンチマークとして採用している。具 体的な内容は以下の通りである。 - コンピュータ同士によるチェスの対戦 - DES, Blowfish などの暗号化、復号化 - XML の構文解析 - 配列データに対するソートなどの並列処理 - PNG 画像のデコード - 正規表現によるパターンマッチング 3) MediaBenchⅡ

* MediaBench Ⅱ (http://euler.slu.edu/~fritts/mediabench/) は University of California Los Angels 校(UCLA)で開発されたオープンソースのベンチマークソフトウェアであり、メディア処理 を中心に構成されている。 * オープンソースのベンチマークソフトウェアであるため、特定の個人や団体に有利な操作がされ にくいという特徴を持つ。 * MediaBenchⅡは定期的な更新を通して、メディア産業の状況をベンチマークに反映させるよう にするポリシーで運営されている。

(8)

習得ポイント Ⅱ-27-3. システムの性能評価 対応する コースウェア 第 8 回 (システムの性能要件と評価項目)

Ⅱ-27-3. システムの性能評価

システム性能の要件や性能評価の考え方、システムトータルでの性能評価方法について概説す る。処理時間を計測するツールとして利用できる gprof や、OS のシステム性能を計測するツールで OSS として提供されている HBench-OS など、各種のツールを利用したシステム性能計測方法を説 明する。 【学習の要点】 * システムの性能評価を行うためにプロファイリングツールや負荷ツールが用いられる。 * 処理計測時間の計測には gprof などのプロファイラが用いられる。 * OS やハードウェアのシステム性能を計測には HBench-OS などが用いられる。 図Ⅱ-27-3. HBench-OS によるアプリケーションからハードウェアを呼び出す過程の性能測定

(9)

独立行政法人 情報処理推進機構 1) システムの性能評価 * システムの性能評価には、システムやプログラムを動作させずに行う静的な解析と、実際に動作 させて行う動的な解析とがある。 - 静的な解析では、待ち時間、MPU のクロック数、メモリ、I/O のアクセス時間、システムバス のバンド幅などから性能を積算する場合や、プログラム中の関数呼び出しやループなどを 解析する場合がある。 - 動的な解析では、以下 2)、3)で示すようにプロファイラやベンチマークツールが用いられ る。 2) gprof を用いた動的性能評価

* gprof ( http://sourceware.org/binutils/docs-2.16/gprof/index.html )は binutils (GNU Binary Utilities) に含まれるプロファイラである。 * 実際にコンパイル済みのプログラムを動作させることにより、リソースを消費する箇所を特定する。 リソースとしては、メモリ、電力、入出力が挙げられる。 * リソース消費の静的な見積もりは難しい場合が多く、プロファイラはリソース消費の確認のために よく用いられる。 * プロファイラを用いて行う最適化の例 - 算術計算の単純化 - コード再配置 (頻繁に実行される分岐のないコードを近くにまとめる) - メソッドのインライン展開 * 実行コマンドの例 - プログラムをオプション付きでコンパイルする(gcc–pg) - 実行後に.out ファイルを出力する(gmon.out)

- gprof ツールを実行する (gprof–p a.out gmon.out)

3) HBench-OS を用いた動的性能評価

* HBench-OS ( http://www.eecs.harvard.edu/vino/perf/hbench/ )は OS やハードウェアプラット フォームにより提供されるプリミティブな機能の実行性能を測定するベンチマークツールであ る。

* OS 依存のアプリケーションは、プロセス生成など OS の高水準プリミティブ、bcopy, mmap, fork などの OS の低水準プリミティブを利用して CPU、メモリなどのハードウェアにアクセスする。この アクセスの階層をパフォーマンス階層と呼ぶ。 * HBench-OS はパフォーマンス階層分析や OS に対する変化の実行性能への影響を評価する 際に利用できる。 * HBench-OS はプラットフォームに制御を加えた際に、ある特有のプリミティブの実行性能がどの ような影響をうけるかを理解する場合や、アプリケーションレベルを含む、完全なシステムパフォ ーマンス階層を把握する場合に役立つ。

(10)

習得ポイント Ⅱ-27-4. 性能に対する制約とトレードオフの考慮 対応する コースウェア 第 9 回 (システム性能の評価方法)

Ⅱ-27-4. 性能に対する制約とトレードオフの考慮

コスト面からの制約や拡張性の問題など、求められる性能に対して課される組み込みシステムの制 約について説明する。さらに性能と制約のトレードオフを勘案してシステムを設計した具体的な例と して、MMU を持たない MPU に対応した Linux の実装例を紹介する。

【学習の要点】

* 性能要件を定義する際には、ソフトウェアとハードウェアの制約や拡張性を考慮しなくてはなら ない。

* 制約としては、開発費、材料費、開発期間といったコストが、拡張性としては、ハードウェアの耐 用年数、CPU・メモリ、筐体サイズなどが挙げられる。

* トレードオフを勘案する例として、uCLinux があり、uCLinux では MMU を持たない MPU に対応 する仕組みが与えられている。 図Ⅱ-27-4. 性能要件定義におけるトレードオフの検討

コスト

•量産価格 •材料費 •開発期間

性能

•処理速度 •レスポンス

拡張性

•ハードウェアの耐用年数 •CPU、メモリの拡張性 •筐体サイズ

(11)

独立行政法人 情報処理推進機構 1) システムとしての制約条件 * コスト面からの検討として、以下の項目が挙げられる。 - 量産価格 - 部品の流用とのトレードオフ - 材料費用 * 拡張性からの検討として、以下の項目が挙げられる。 - ハードウェア耐用年数とのトレードオフ - MPU、メモリ等の拡張性 - 筐体サイズとのトレードオフ 2) トレードオフを考慮した例(uClinux) * uClinux (http://uclinux.org/)はローエンドの組み込み機器など、メモリ管理ユニット(MMU)の 無い組み込み環境で Linux の利点を生かす目的で開発された。

- 1998 年に Palm Pilot 向けに開発されて以降、OSS として ARM, MIPS, SPARC, Hitachi SH,

Motorolla coldfire などの環境に移植されている。 - 多数のデバイス、ファイルシステム、ネットワークプロトコルをサポートしている。 - 組み込み Linux で最初に商業的に成功したディストリビューションと言われており、オープ ンソースコミュニティによる開発が継続されている。 * 通常の Linux と uClinux との違いは、メモリ保護機構と仮想メモリ機構の有無である。ハードの制 約を満たすために、ソフトウェア開発の負担が生じる。 - メモリ保護機構が無いため、特権プロセスでないプロセスでも意図しないメモリ領域の書き 換えを起こす危険性がある。そのため、ポインタなどの扱いに注意したセキュアなプログラ ミングを心がけ、十分にテストをする必要がある。 - 仮想メモリ機構が無いため、カーネル部分を含めたすべてのプロセスが同じメモリ空間を 使う。そのため一つのプロセスの暴走がシステム暴走につながる。また、動的なメモリ割り 当ての結果、フラグメンテーションが生じやすくなってしまう。 * 通常の Linux のコードを uClinux に移植する際には、メモリ処理コードの更新が必要となる。 - Linux のシステムコールの fork は、呼び出し元プロセスを複製して新しいプロセスを生成す る。ネットワークサービスのデーモンプログラムなどでは fork を多用している。 - uClinux では MMU をサポートしていないため、プロセスの複製を確実に行えず、そのため fork 命令も用意されていない。代わりに vfork 命令が用意され、呼び出し元プロセスと新し いプロセスと双方で同じメモリ空間を利用する。

(12)

習得ポイント Ⅱ-27-5. 性能評価の解析、シミュレーションとモニタリング 対応する コースウェア 第 10 回 (性能評価手法の分類)

Ⅱ-27-5. 性能評価の解析、シミュレーションとモニタリング

性能評価の解析的手法、シミュレーションによりシステム性能を評価するシミュレータ、および実機 の性能をモニタリングする様々な手法を説明する。また具体的な例として、PIC (Programmable Intelligent Computer)を対象とした OSS のシミュレータである gpsim, SxSim, PICEMU などを紹介す る。

【学習の要点】

* 性能評価の解析的手法として、確率ペトリネットや待ち行列理論が用いられる。

* ターゲットデバイスや入出力デバイスのシミュレーションを行う、シミュレータを用いた性能評価も 行われる。シミュレータは実機でデバッグする際に生じるオーバーヘッドを削減する。

* PIC を対象とした OSS のシミュレータには gpsim、SxSim などが存在する。

図Ⅱ-27-5. 待ち行列理論(M/M/n モデル)

(13)

独立行政法人 情報処理推進機構 1) 性能評価の解析的手法 * 性能評価の解析的手法として、確率ペトリネットや待ち行列理論が用いられる。 * 確率ペトリネット(Stochastic Petri-net) - ペトリネットは並行動作や分散状態、および資源の概念を表現できる。 - ペトリネットの状態遷移に対して遅延時間を設定できるものを時間ペトリネットと呼ぶ。 - 時間ペトリネットでは、発火遅延時間モデル(発火可能になってからの遅延時間を設定)、 発火継続時間モデル(発火してからの継続時間を設定)、プレース遅延時間モデル(プレ ースにトークンが来てから発火するまでの遅延時間を設定)という時間モデルが用意され ている。 - 確率ペトリネットは、時間ペトリネットで導入された時間に確率を導入するモデルであり、遅 延時間に指数分布する確率分布を与えたものである。 * 待ち行列理論 (Queuing Theory) - 待ち行列理論は、オペレーションズリサーチの分野で発展した理論であり、様々な待ち行 列の形態に対して、平均長、到着して行列を抜けるまでの時間などを数学的に計算する。 - 待ち行列は、ケンドールの記法(1953)を用いて「M/M/1」のように表現される。これは、 「窓口に到着する人の到着する間隔(到着率)/窓口でサービスを受ける時間/窓口の数」 であり、「ポアソン分布に従ったランダムな到着間隔/ポアソン分布に従ったランダムな処理 時間/処理するサービスの窓口は1つ」を意味する。 - PDQ(http://www.perfdynamics.com/Tools/PDQ.html)は待ち行列理論を利用したオープ ンソースの性能解析ツールである。 2) シミュレーション * ターゲットデバイスや入出力デバイスのシミュレーションを行う、シミュレータを用いた性能評価も 行われる。シミュレータは実機でデバッグする際に生じるオーバーヘッドを削減する。

* PIC(Programmable Intelligent Computer)を対象としたオープンソースのシミュレータには以下の 事例がある。

- Gnucap (http://www.gnu.org/software/gnucap/ ): Gnu の回路解析用パッケージ。

- NG-spice (http://sourceforge.net/projects/ngspice/): Spice3f5(UC バークレー校が開発 した OSS の回路シミュレータ)の後継版ツール(Next Generation Simulation Program with Integrated Circuit Emphasis)。

- gpsim (http://www.gnupic.org/): Gnu の PIC マイコン用のシミュレータ。

(14)

習得ポイント Ⅱ-27-6. システム資源のトレードオフを考慮した性能向上 対応する コースウェア 第 12 回 (システム資源のトレードオフ)

Ⅱ-27-6. システム資源のトレードオフを考慮した性能向上

組み込みシステムにおける限られたシステム資源によるトレードオフを考慮して、性能や信頼性の 向上という課題を解決するためのポイントを説明する。具体的な事例として、組み込み Linux の CPU リソース管理を行うことで全体の性能向上を図ることを目的としたアカウンティングシステム(CABI)に ついて説明する。 【学習の要点】 * 性能向上や信頼性向上のために、組み込みシステム特有の制限である限られたリソースを効率 的に管理する枠組みが必要になる。 * 組み込み Linux において、CPU のリソースを管理することで全体の性能向上を図るアカウンティ ングシステム CABI (CPU Accounting & Blocking Interface)が提案されている。

アプリケーションA アプリケーションB アプリケーションA アプリケーションB 汎用コンピュータの場合 組込みシステムの場合

Idle time Idle time Idle time

Idle timeを少なくする 工夫が必要

(15)

独立行政法人 情報処理推進機構 1) 限られたリソースにおける性能向上・信頼性向上のポイント 組み込みシステムの限られたリソースのなかでシステムの性能向上や信頼性向上を狙うには、いく つかのパターンがある。 * 組み込みシステムにおける性能向上・信頼性向上策 システム全体の性能向上や信頼性向上を目的としたシステム設計の例を示す。 - リアルタイム OS の利用 - 部分的なハードウェア化(FPGA や ASIC を利用した特定処理のハードウェア化) - 必要最低限の機能に絞ったシステム環境の利用 * BusyBox の利用 組み込みシステムに特化した Linux 環境として広く利用されているものに BusyBox がある。 BusyBox には、以下のような特長がある。 - フットプリントが小さい(ファイルサイズを小さくできる) - システム構築が比較的容易 2) リソース管理の必要性 潤沢なリソースの存在を前提として、アドホックな利用が許されている一般のコンピュータシステムと 異なり、限られたリソースを有効に使うことが求められている組み込みシステムでは、リソースを効率 的に管理するフレームワークが必要になる。 * メモリリソースの管理 一般的に組み込みシステムは一次記憶、二次記憶とも容量が限られていることが多い。そのた め使わないソフトウェアコンポーネントはあらかじめ削除しておいたり、メモリを効率的に利用し たりするための管理が必要である。 * CPU リソース(計算リソース)の管理 CPU 性能も一般的なコンピュータに比べると高くはない。そのため限られた CPU を効率的に使 用するには、できるだけアイドル時間を減らして計算リソースを必要な処理に振り分けなければ ならない。 * 入出力デバイスの管理 入出力デバイスに対するデータのやりとりは無用な割り込みや待ち時間発生の原因となる。し たがってシステム全体の最適化に向けては、入出力管理もリソース管理として欠かせない項目 のひとつである。

3) アカウンティングシステム CABI (CPU Accounting & Blocking Interface)

組み込みシステムにおいて特定のアプリケーションが CPU を独占使用してしまうことがないように、 CPU の利用時間を管理してシステムの全体最適化を目指すためのリソース管理システムである。 IPA による 2004 年度 OSS 活用基盤整備事業の一環として開発された。 * CABI によって実現される効果 適切な CPU 利用時間管理を行うことで、以下の効果が期待される。 - 応答性の向上 - セキュリティ向上 - リアルタイム性の保証

(16)

習得ポイント Ⅱ-27-7. システム資源のトレードオフを考慮したコスト低減 対応する コースウェア 第 12 回 (システム資源のトレードオフ)

Ⅱ-27-7. システム資源のトレードオフを考慮したコスト低減

組み込みシステムにおける限られたシステム資源によるトレードオフを考慮した上でのコスト低減策 について、そのポイントを示す。ライセンシングコストを削減する OSS の利用やその限界、組み込み システムの特殊なハードウェアとそれに対応する OSS のデバイスドライバ不足など、各種の課題を 示す。 【学習の要点】 * 組み込みシステムにおいても、限られた資源や数々の制約のなかで、OSS を利用することで開 発コストを低減することができる。 * 低価格かつ大量に販売するような組み込み製品の場合、ライセンスコスト削減の効果は大き い。 * コスト削減のために OSS を利用しようとしてもうまくいかない場合もある。とくに特殊なハードウェ アに対する OSS の対応状況は課題のひとつである。 製造 原価 汎用 システム 小規模 組込み システム OSSを利用した 小規模組込み システム OSSの利用により ライセンスコストを 削減できる ハードウェア その他のコスト ライセンス コスト

(17)

独立行政法人 情報処理推進機構 1) OSS の利用によるコスト低減 コスト削減は OSS の利用に対する大きな理由のひとつである。 * ライセンスコスト削減以外の OSS 利用によるコスト削減効果 OSS により、既存のソフトウェアを流用することで開発コストそのものを抑えることができる。また 当該組み込みシステムのハードウェアに特化したチューニングを行うことで最適化が可能になり、 結果としてハードウェアのコストも下げることが可能となる場合がある。 2) ライセンスコスト圧縮の必要性 消費者向けの組み込み機器製品は常に価格競争にさらされている。したがって組み込みシステム であることの制約に加えて開発コストや製造コストにも多くの資金を注ぎ込むことができないという 制約を抱えている。 * ライセンスコストの控除 販売価格に制約が課されている組み込み製品の場合は、ソフトウェアのライセンスコストを無視 することができない。全体構成のうちソフトウェアの位置付けが大きいシステムの場合、ソフトウェ アのライセンスコストが製造原価の大きな比率を占めるようになるケースもある。この現象はとく に低価格で大量の製品を販売することで利益を稼ぐ小型の組み込み機器で顕著である。 * 基本ソフトウェアのライセンスコスト 商用の基本ソフトウェアに関するライセンスコストは製造原価をかさ上げする要因のひとつとして 取り上げられることも多い。そのような場合、組み込み Linux や TOPPERS 等の OSS による基本 ソフトウェアを採用することでライセンスコストを排除することが可能である。 3) OSS 利用時の問題点と対策 組み込みシステムでは、特殊なハードウェアや、あまり一般的ではない入出力デバイスを利用する こともある。OSS の開発モデルを考えると、そのような機器への対応やマイナーなデバイスドライバ の実装はされにくい。したがって、コスト削減のために OSS を利用できない場合もある。 * 標準化対応のハードウェアを利用 ハードウェア設計の際に、できるだけ標準的なハードウェアコンポーネントを利用したり、標準的 なプロトコルに対応した設計を行ったりという工夫を加える。標準的なプロトコルに対応していれ ば、標準化された OSS のデバイスドライバがそのまま動作する可能性がある。 * ハードウェア情報のオープン化 特許で知財を守るなどの対策をとった後に、ハードウェア情報を公開することで対応する OSS の開発を期待する戦略もある。また IBM が PC 互換機の普及戦略でとったように、ビジネス上の 観点からハードウェア情報を公開する戦略もある。

* 組み込み機器用 SDK(Software Development Kit)

とくにプログラマブルな情報機器といった組み込み機器においては、その機器で動作するソフト ウェアを開発するための SDK を用意して OSS として提供することも効果的である。Google が提 供している Android のように、組み込み Linux をベースとすることで開発者が参入しやすいコミュ ニティを形成することもできる。

(18)

習得ポイント Ⅱ-27-8. システム資源のトレードオフを考慮した最適化 対応する コースウェア 第 12 回 (システム資源のトレードオフ)

Ⅱ-27-8. システム資源のトレードオフを考慮した最適化

組み込みシステムにおける限られたシステム資源を考慮した最適化について、具体的な手法や対 策を説明する。具体的には、フレームワークに頼らずスクラッチからの開発、C++を止めて C 言語で 記述、BusyBox を利用して Linux を最小化する、といった方法を解説する。 【学習の要点】 * 組込システムの開発では容量の制約から高機能なライブラリやフレームワークを使えないことが しばしばある。 * 同様の理由で C++言語ではなく C 言語を用いることがある。

* BusyBox や uClibc を利用することで、OS や実行コードの容量を小さくすることが組み込み開発 ではしばしば行われる。

(19)

独立行政法人 情報処理推進機構 1) C 言語の利用事例の多さ: 組込みソフトウェア産業実態調査 * 組込みソフトウェア産業実態調査のプロジェクト責任者向け調査 (情報処理推進機構、2007 年、 http://sec.ipa.go.jp/download/200706es.php)によると、C 言語を利用するプロジェクトが 56.4%、 C++言語を利用するプロジェクトが 36.6%となっている。 * これは、リソース制限の厳しい組み込み機器における開発の主流は、高機能なライブラリやフレ ームワークの提供されている C++言語ではなく、C 言語であることを示している。 2) BusyBox (Ⅱ-27-6 参照)

* BusyBox (http://www.busybox.net/)は GNU coreutils、util-linux などに入っている、Unix 系 OS で共通に使われるユーティリティツールを単独の小さなツールに実装したものであり、カーネル のサイズを減らすことを目的に開発されている。”The Swiss Army Knife of Embedded Linux”と称 される。

* コマンドには、chmod、dd、find、kill、cp、nslookup、init など使用頻度の高いツールの多くが含ま れる。(http://www.busybox.net/screenshot.html)

* $ /bin/busybox ls と実行することで、ls コマンドと同様の結果を返す。

* 実際には、”/bin/ls -> /bin/busybox” というシンボリックリンクが張られている。

* # make menuconfig から、BusyBox に含めるツールをグラフィカルに選択することができる。 3) uClibc

* uClibc(http://www.uclibc.org/)は組み込み Linux 向けに開発されたサイズの小さな C ライブラリ である。

* C ライブラリの代表例である GNU C Library (glibc)は非常に良く用いられるが、組込システムに 導入するにはサイズが大きすぎるという問題があった。そのため、サイズを削減した uClibc が開 発された。

* uClibc により、glibc を使うほぼ全てのアプリケーションを実行することができる。

* # make menuconfig から uClibc に含めるライブラリをグラフィカルに選択することができる。 * glibc を使うアプリケーションから uClibc を使うように変更するためには、ソースコードを再コンパ

イルすればよい。

* uClibc は通常の Linux と MMU の無い Linux (uClinux、Ⅱ-27-4 参照)の双方をサポートしてい る。

4) buildroot ツール(http://buildroot.uclibc.org/)を利用することで BusyBox と uClibc を組み合わせた システムを容易に構築する事ができる。

(20)

習得ポイント Ⅱ-27-9. OS と応用ソフトウェアの組み合わせ方 対応する コースウェア 第 13 回 (基本ソフトウェアと応用ソフトウェアのトレードオフ)

Ⅱ-27-9. OS と応用ソフトウェアの組み合わせ方

組み込みシステムを最適化する際に、要求される機能を満たし、拡張性や信頼性を確保し、開発コ ストを削減するために、OS と応用ソフトウェアをどのように組み合わせればよいかについて説明す る。技術的な観点からの説明に加え、いずれかもしくは両者に OSS を利用する際の留意点も示す。 【学習の要点】 * 組み込みシステムの制限を満たしつつ様々な要求を実現するためには、OS の機能を利用する か、自前で実装するかといった検討も必要となる。 * アプリケーションとして処理を実装するか、デバイスドライバとして処理を実装するかといった観 点でも異なる。 * OSS として提供されるソフトウェアを部分的に利用して実現する際には、ライセンスにも配慮する 必要がある。 図Ⅱ-27-9. 実装方法の違いによるトレードオフ  ユーザプロセスとして動作  開発・デバッグは比較的容易  OSの管理下にあり安全  効率は劣る アプリケーションとして実装 デバイスドライバとして実装  カーネルモードで動作  開発・デバッグは難易度高い  OSごと暴走する危険性がある  効率は優れている

(21)

独立行政法人 情報処理推進機構 1) OS が提供するサービスの利用と自分で実装するケースの使い分け 組み込みシステムにおいて必要な処理を行う際に、OS が提供するサービスを利用できる場合とそ うでない場合がある。OS が提供するサービスを利用できる場合でも、自前で実装したほうがよい場 合もある。 * メモリ確保の例 通常、C 言語で動的にメモリを確保する方法は malloc() 関数の利用が一般的である。しかしこ の場合、malloc() の内部動作はブラックボックス化1されており、確実な最適化を行うことは難し い。メモリの利用方法が限定的であれば、sbrk() や mmap() 等のシステムコールを利用して一 定のメモリ領域を確保しておき、その中でアプリケーションがメモリブロックの管理を行うことで、 より最適なメモリ確保を実現することが可能である。 2) 実装方法の違いによるメリット・デメリット また入出力や機器制御に近いところの処理においては、アプリケーションとして処理を実装するか、 あるいはデバイスドライバとして実装するかといった、実装方法の違いによる得失も十分に検討す る価値がある。 * アプリケーションとして実装する場合のメリット・デメリット アプリケーションとして実装した処理は、ユーザプロセスとして動作する。そのためプログラムに 不具合が存在したとしても、アプリケーションが強制終了するだけに留まりシステム全体の動作 は保護される。またアプリケーションレベルの開発は比較的容易である。 * デバイスドライバとして実装する場合のメリット・デメリット デバイスドライバとして処理を実装した場合、その部分はカーネルモードで動作するため速度 的に有利な場合がある。パケットフィルタリングなど低レベル処理を実装しやすいという利点もあ る。また割り込みを優先させるモードもあり、準リアルタイム性を確保しやすいという利点もある。 ただしその開発はアプリケーション開発と比較すると難しく、また実装に不具合があった場合に はシステム全体を暴走させる危険がある。 3) ライセンスの配慮 OSS として提供されているオペレーティングシステムに、デバイスドライバとして実装した自前のソフ トウェアを組み込む場合は、ライセンスの取り扱いに注意しなければならない場合があることに気を つける。 * Linux へ組み込む場合 Linux カーネルは GPL でライセンスされている。FSF の見解によれば、カーネルと一体となり動 作するカーネルモジュールやデバイスドライバは GPL でなければならない。現状では、デバイ スの情報を秘匿したいベンダがソースコードを公開せずにバイナリ配布しているデバイスドライ バも流通している。このようなデバイスドライバを Linux へ組み込むことについては議論があり、 十分に留意する必要がある。 1 OSS によるオペレーティングシステムであれば、関係するライブラリやカーネルのソースコードを読むこと で内部動作を確認することは可能である。

(22)

習得ポイント Ⅱ-27-10. システム最適化の方式 対応する コースウェア 第 14 回 (組み込みシステム最適化のための方式設計)

Ⅱ-27-10. システム最適化の方式

組み込みシステムの性能向上を狙いとした設計を行う際に留意すべきポイントを示す。リアルタイム 性、クリティカル性、ハードウェア容積による制約といった各種の制約のもとでシステムを最適化する ための、C 言語プログラムや組み込み Java による設計方針を解説する。 【学習の要点】 * C 言語プログラムでは、言語仕様の活用、プロセッサ特性の活用、コンパイラの拡張機能・最適 化機構の活用によりシステムの最適化を行う。 * 特に、コンパイラの最適化機構では、使用メモリ量の最適化を扱うことが多い。

* Java のリアルタイム仕様である RTSJ (Real-Time Specification for Java)ではガベージコレクショ ンにポリシーを適用し、リアルタイム制約に対応する。

(23)

独立行政法人 情報処理推進機構 1) 組み込み開発における最適化 – C 言語のコンパイラによる最適化 * 実行効率を最適化する手法として、言語仕様の活用、プロセッサ特性の活用、コンパイラの拡 張機能・最適化機構の利用、などが挙げられる。他にもリンケージエディタによる最適化などが 考えられる。(Ⅰ-27-9 参照) * コンパイラの最適化においては使用するメモリ量と速度のトレードオフが発生する。以下にコン パイラによる最適化オプションの例を示す。 - インライン展開を行うと、速度は向上するが、メモリの使用量が急激に増えるため注意が必 要である。 - 汎用レジスタの退避・復旧のオプションを利用する際にはメモリの使用量を抑える場合に、 RAM の使用量が増大する場合があり、注意が必要である。 - 四則演算、比較、代入式の高速化を利用する場合、複数の命令による処理を避けるため に、ランタイムライブラリを利用するオプションが用意されている。ランタイムライブラリを使う ことで、実行速度は多少落ちるものの、メモリ使用量を抑えることができる。 2) 組み込み開発における最適化 – Java 言語のリアルタイム仕様

* RTSJ (Real-Time Specification for Java)は Java 言語でリアルタイムの振る舞いをどのように扱う かを規定した仕様である。

* RTSJ にはリファレンス実装が提供されている。

- RTSJ Reference Implementation (RI) and Technology Compatibility Kit (TCK) - http://www.timesys.com/java/ * スレッドのスケジューリング、メモリ管理、同期とリソース共有、非同期イベント処理などに特徴が ある。 * スケジューリングフレームワークは”Schedulable”と明示されたエンティティのみをスケジューリン グの対象とし、実行可能性の分析を行う。また、エラーの時のために、適切なハンドラーのスケ ジューリングを行う。従来の JVM に無かった優先度順位をつけることができる。 * メモリ管理に関して、以下の 3 種類のメモリモデルを定義している。GC による時間の遅延がクリ ティカルな場合にのみ、従来のヒープメモリ以外のモデルを適用する。 - Heap : GC(ガーベッジコレクション)の対象となる。従来のモデル。 - Immortal : GC の対象とならず、回収もされない。 - Scoped : GC の対象外だが、使われなくなると回収される。 * ソフトリアルタイムのスレッドは以下のようにして生成する。 - (従来)Thread thread = new java.lang.Thread();

参照

関連したドキュメント

耐震性及び津波対策 作業性を確保するうえで必要な耐震機能を有するとともに,津波の遡上高さを

AMS (代替管理システム): AMS を搭載した船舶は規則に適合しているため延長は 認められない。 AMS は船舶の適合期日から 5 年間使用することができる。

システムであって、当該管理監督のための資源配分がなされ、適切に運用されるものをいう。ただ し、第 82 条において読み替えて準用する第 2 章から第

しかし , 特性関数 を使った証明には複素解析や Fourier 解析の知識が多少必要となってくるため , ここではより初等的な道 具のみで証明を実行できる Stein の方法

環境への影響を最小にし、持続可能な発展に貢

・ 教育、文化、コミュニケーション、など、具体的に形のない、容易に形骸化する対 策ではなく、⑤のように、システム的に機械的に防止できる設備が必要。.. 質問 質問内容

解析実行からの流れで遷移した場合、直前の解析を元に全ての必要なパスがセットされた状態になりま

   また、不法投棄等の広域化に対応した自治体間の適正処理促進の ための体制を強化していく必要がある。 「産廃スクラム21」 ※