Download presentation
Presentation is loading. Please wait.
1
YRP Ubiquitous Networking Lab. TRON Forum
組込みリアルタイムOS入門 2016年度 YRP Ubiquitous Networking Lab. TRON Forum
2
(C) 2015 YRP UNL and TRON Forum, All Rights Reserved.
今日の講義の想定受講者 T-KernelまたはITRONについて、最初から勉強したい。 C言語のようなシステム記述のためのプログラミング言語、オペレーテ ィングシステムの基本的な知識はある 組込みシステムやリアルタイムシステムについては、本格的には扱っ たことがない (C) 2015 YRP UNL and TRON Forum, All Rights Reserved.
3
(C) 2015 YRP UNL and TRON Forum, All Rights Reserved.
今日の講義の概要 リアルタイムOSとは何か?特長はどこにあるのか? ITRONやT-Kernelは、Windows、Mac OS、Linuxとどこが違うのか? (1)タスクスケジューリング 時間制約を満たすためのスケジュール機構 (2)タスク同士の協調動作の支援 主に、タスク間の同期、通信、共有資源(記憶)管理 (C) 2015 YRP UNL and TRON Forum, All Rights Reserved.
4
第1章 情報処理型コンピュータと 組込みコンピュータ
5
(C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
情報処理型のコンピュータ(1) パーソナルコンピュータ サーバ スーパーコンピュータ コンピュータらしいコンピュータ (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
6
(C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
情報処理型のコンピュータ(2) ENIAC Atanasoff-Berry Computer “K”(京)スーパーコンピュータ IBM 360 Cray 1 Apple II (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
7
組込み型のコンピュータ(1) 携帯電話 ビデオカメラ デジカメ コピー機 ファックス 自動車 カーナビ MDプレイヤ DVDデッキ
自動販売機 これらにも全部、コンピュータが入っている 「組込みコンピュータ」(Embedded Computer) (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
8
(C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
組込み型のコンピュータ(2) (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
9
The Autonetics D-17 guidance computer (1961)
初期の組込みシステムの中で 、大量生産されたもの 大陸間弾道ミサイル(ICBM )ミニットマン・ミサイルを 制御 重量は約28kg 約1,500個のトランジスター と6,000個のダイオードによ り実装
10
AGC (Apollo Guidance Computer, 1966)
アポロ誘導コンピュータ (Apollo Guidance Computer: AGC) NASAのアポロ計画のための 開発されたコンピュータ MIT Instrumentation Laboratoryのチャールズ・ス ターク・ドレイバー (Charles Stark Draper) らが 中心となり開発 1966年に導入 初期のICを使ったコンピュー タ 最初のバージョンは4100個 のICチップで実装 DSKY(DiSplay and KeYboard)ユニット
11
(C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
二つの種類のコンピュータ 情報処理型コンピュータ いわゆる、「コンピュータ」らしいコンピュータ 主な目的は、「情報」を扱うこと。 情報=数値、文字、絵、音声、動画、… 人間に例えると、「頭脳」型コンピュータとも言われる。 組込み型コンピュータ 最終形が、「コンピュータ」と呼ばれないものに組込まれているコンピュ ータ 主な目的は、実世界の中で、「機器」を制御すること。 人間に例えると、「反射神経」型コンピュータとも言われる。 (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
12
第2章 「組込み」システムとは?
13
(C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
組込みシステムの定義 センサやアクチュエータ、他の機械システム等と協調して動作するコ ンピュータシステム 例 家電製品の制御システム ファックスやコピー機の制御 自動車の制御システム 携帯電話 など… (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
14
(C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
組込みシステムの要件(従来からの要件) リアルタイムシステム 計算処理よりも、入出力処理、通信処理が中心 モノを制御するため、高い応答性能が要求される 性能、サイズのチューニング 製品ロット数が大きくなると、ハードウェアコストの割合が増大 価格競争に勝つには、(特にハードウェア)コストを極限まで下げる 結果として厳しいリソース制約上でソフトウェア開発 コンパクトな実装 専用化されたシステム 必要のない機能を削除することでチューニング可能 高い信頼性 組込みシステムは、クリティカルな応用の場面も多い ネットワークアップデートなどの仕組みがないものは、システムの改修に多大なコスト (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
15
(C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
組込みシステムの要件(新しい要件①) IoT(Internet of Things)時代を迎え、組込み機器もインターネッ トに接続され、単体では動作しない。 ネットワーク通信機能 クラウドと連携して機能を実現 他の製品やサービスとの連携 セキュリティ 暗号通信 認証通信 (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
16
(C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
組込みシステムの要件(新しい要件②) 省資源・省電力 増えるモバイル型の組込み機器 バッテリーの持続時間は、製品競争力上重要 世界的な省エネルギー意識の高まりから、省電力であることは重要 使いやすく、やさしい利用者インターフェース 幼児からお年寄りまで。 (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
17
第3章 「リアルタイム」システム Real-time System
18
組込み型コンピュータで特に重要な実時間性
身の回りの「組込みコンピュータ」の仕事は? 給料計算や数値計算をするわけではない。 実世界の動きにあわせ、人間にサービス 実世界の時間に合わせて動作する 「リアルタイム(実時間)システム」(Real-time System) (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
19
(C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
リアルタイムシステムとは?(1) 一般的には、次々に起こる実世界の事象(イベント)に合わせて 「素早い」処理することが求められるようなシステム 入出力処理 機器類の制御 実時間の進行に追従 どこまで早ければ、「素早い」のか? (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
20
(C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
リアルタイムシステムとは?(2) システムに与えられた時間制約条件を満たすために十分な素早さをも っていればよい。 重要なポイントは「時間制約条件を満たす」こと 高速なCPUだけでは、時間制約条件を満たすことは困難。 ソフトウェアやプログラム上で、時間制約を扱うことができる必要がある 。 それがリアルタイムシステム (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
21
リアルタイムシステムの理論モデル(1) n入力/m出力
Computer System input 1 input 2 input 3 input 4 input n Output 1 Output 2 Output 3 Output 4 Output m … … 一つの処理の一つの時間制約をだけを満たすのは、簡単(自明)。 リアルタイムシステムは、複数の入力を処理して、複数の出力をする。 複数の時間制約を抱えて、それらをすべて満たすことが要求される。 (C) 2015 YRP UNL and TRON Forum, All Rights Reserved.
22
リアルタイムシステムの理論モデル(2) リアルタイム制御システム
camera input Display Data Computer System Sensor 1 Sensor 2 Control Signal 1 Sensor3 … Control Signal 2 … Sensorn Control Signal m 複数の制御を、それぞれの時間制約を満たして制御することで、 機械のきちんとした動きを実現できる。 (C) 2015 YRP UNL and TRON Forum, All Rights Reserved.
23
(C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
リアルタイムシステムの定義 リアルタイムシステムは、利用できる計算機資源 (resource) に限り がある中で、故障のような厳しい結果をもたらす応答時間制約を満た すことができるシステム 「故障」=システム仕様での要求を満たせないこと リアルタイムシステムとは、その論理的正当性が、アウトプットの正 確性とその時刻の両方に依存するシステム (例)システムへの要求=「127+382の答えを求めなさい。答えは3分 後までに出しなさい(現在:12時23分)」 (答) 509(12時30分) リアルタイムシステムでは計算失敗の例となる (答) 509(12時24分) リアルタイムシステムでも計算成功の例 (C) 2016 YRP UNL and TRON Forum, All Rights Reserved. (C) 2011 T-Engine Forum, All Rights Reserved.
24
(C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
時間制約を守るための方法 方針1 デッドライン(deadline)が近い処理を先に実行する 直感的にも自然な方法 一定の条件のもとでは最適な方法であることが理論的にも証明されている( RMS: Rate Monotonic Scheduling) 方針2 ①各処理それぞれの実行時間の予測 ②処理時間が予測できれば、すべての時間制約を守るように処理の順番を 調整(スケジューリング) ③処理時間が予測できない部分は、最悪処理時間を保証できる仕組みを入 れる(タイムアウト) (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
25
方針1 デッドラインが近い処理を先に実行
26
スケジューリング(scheduling)
複数の処理があるとき、どういう順番で処理を進めれば、都合が良い ・最適な仕事をやれるか、を求める問題のこと。 リアルタイムシステムでは、時間制約を満たす(=デッドラインを守 る)ことができるような順番で処理をしたい (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
27
(C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
一般的なスケジューリング Round Robin Scheduling(ラウンドロビン) 一定時間毎に処理を順番に実行していくやりかた もともとは大型計算機で、処理のCPU使用時間に比例した従量課 金を処理しやすいためのスケジューリング方式 デッドラインと処理の順番に関係がなく、リアルタイムシステム 向けでない。 (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
28
デッドラインが早いの処理を先に行なう スケジューリング
処理に優先度が付けられる 優先度の高い処理は他から(より優先度の低い処理には)邪魔されな い。 優先度の高い処理は、低い優先度の処理を横取りする(Preemption ) 優先度の高い処理は、優先度の低い処理より優先して実行されるため 、先に終えることができる (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
29
より現実に近い例:組込み型と情報処理型の違い
Round Robin Scheduling Task A Task B Task C Event X Event Y wait Response for Y Response for X Handling X Handling Y Deadline for X Deadline for Y Prioritized Preemptive Scheduling Task A Task B Task C Event X Event Y Response for Y Response for X Handling X Handling Y Deadline for X Deadline for Y Priority (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
30
【参考】 Rate Monotonic Scheduling理論
システムに、処理(タスク)の優先度をつけて、優先度の高い処理は 低い処理を横取りできるメカニズムがある前提で、締切が近いタスク から高い優先度をつけて処理するのが、最適スケジューリングである ことを証明した理論 リアルタイムOSが優先度+横取りスケジューリングを備えている、理 論的根拠となっている。 (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
31
方針2 処理の予測可能化 +スケジューリング
32
「デッドラインが早いの処理を先に」は最適だが...
それは、「時間制約を守る」という視点「のみ」から もしも、「時間制約を守る」スケジューリングが複数通りあるなら... 別の観点から、こちらを先にやりたいとか、この順番で処理したいとかが ある。 リアルタイムシステムは、「リアルタイム性」だけが目的ではない もしも、それぞれの処理にかかる時間があらかじめ予測できるなら、 他の都合も加味してスケジュールしたい
33
(C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
処理時間を予測できるためには? 基本的には、コードを見て、計算機の処理性能がわかれば、処理時間は予測 できるはず(理論的には)。 予測できないケースI/Oやネットワーク通信など、自分が管理できない外部の処 理に依存する場合 (例)インターネットのパケットの返事がいつ戻ってくるか? パケットロスしていたら、永遠に戻らない (例)ハードディスクの読み取りがいつ終わるか? 故障していたら、永遠に終わらない (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
34
(C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
自分が管理できない外部の処理に依存 I/Oやネットワーク通信など (例)インターネットのパケットの返事がいつ戻ってくるか? パケットロスしていたら、永遠に戻らない (例)ハードディスクの読み取りがいつ終わるか? 故障していたら、永遠に終わらない 解決方法 処理に “Time Out” を設定し、どうしてもダメな時の最悪時間を設定できる ようにする When? When? (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
35
(C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
まとめ リアルタイムシステム 故障のような厳しい結果をもたらす応答時間制約を満たすことができるシ ステム 締切が近い処理を優先的に実行 優先度ベース、Preemptive(横取り)スケジューリング 処理の予測可能性に基づいたスケジューリング タイムアウト機能による最悪時間保証 (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
36
第4章 組込みリアルタイム システムの機能
37
組込みリアルタイムシステムの例 [EVENT] コピー文書 セット [EVENT] Copy Processing Task
コピーボタン押下 Copy Processing Task [EVENT] 紙づまり Copy Processing Task Exception Handing Task [EVENT] 印刷データ受信 [EVENT] FAX受信 Print Processing Task Fax Processing Task all-in-one (copier, fax, and printer) machine (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
38
組込みリアルタイムシステムの内部 組込み リアルタイムOS Fax Processing Task Copy Processing Task
相互協調 組込み リアルタイムOS Print Processing Task Exception Handing Task 相互協調 (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
39
(C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
組込みリアルタイムOSの機能 複数のタスクやハンドラの間の協調動作を管理する タスク(スレッド、プロセス)管理 スケジューリング、ディスパッチング タスク間同期 タスク間通信 資源(記憶)管理 時刻/時間管理 ここでは、リアルタイムシステムで重要な5つの機能をより詳しく学習します。 並行処理 同期 通信 実時間処理 記憶管理 (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
40
1 タスク管理 (Task Management)
41
タスクの状態遷移(Task State Transition)
(C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
42
組込みリアルタイムシステムの例(再度) [EVENT] コピー文書 セット [EVENT] Copy Processing Task
コピーボタン押下 Copy Processing Task [EVENT] 紙づまり Copy Processing Task Exception Handing Task [EVENT] 印刷データ受信 [EVENT] FAX受信 Print Processing Task Fax Processing Task all-in-one (copier, fax, and printer) machine (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
43
(C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
マルチタスク処理 並列に動作する独立な処理=タスク(task) ...各「タスク」が独立に発生した事象を扱う ファックス受信 Fax Processing Task 印刷データ受信 Print Processing Task コピーボタン押下 Copy Processing Task 紙づまり検知 Exception Handling Task 1つのコンピュータの上で、複数の独立した処理を同時に動かす機能 マルチタスク処理(multitask) (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
44
コンテキストスイッチ(Context Switch)
定義 あるタスクを止めて、他のタスクを開始すること 動作 OSがタスクを止める時、OSはハードウェアレジスタ(PC、SP、等)と そのタスクのTCB(Task Control Block)にある他の情報体情報を保存する OSが、待ち状態のタスクを実行できる時なったら、ハードウエアレジス タ(PC、SP、等)と新しいタスクのTCBの値をロードし、他の全ての状 態を復旧する コンテキストスイッしは、比較的高価な操作 しかし、TTSでは一秒間に100〜1000回のコンテキストスイッチを行う。 なぜそこまで頻繁か?また、なぜそれ以上に頻繁にしないのか? (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
45
タスクスケジューリング(task scheduling)
一つのコンピュータ上で、複数のタスクに動作させる処理=マルチタ スク処理 同時とはいっても、CPUを使う時間帯を複数のタスクに別々に振り分 けて、順番に使う =タスクスケジューリング ※時間分割の長さ、分割方法によって様々な方式 (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
46
リアルタイム・スケジューリング方式 (Real-time Scheduling)
以下の方式を融合したものが一般的 優先度ベース(Priority-Based Scheduling) A task can have a priority. Tasks with higher priorities can be allocated a CPU in prior to tasks with lower priorities. 横取り型(Preemptive Scheduling) A scheduling is called preemptive if it is capable of forcibly removing processes from a CPU when it decides to allocate that CPU to another process. イベント駆動型(Event-Driven Scheduling) Event-driven scheduling switches tasks only when an event of higher priority needs service. This is also called preemptive priority, or priority scheduling. (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
47
(C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
リアルタイム方式とラウンドロビン方式 ラウンドロビン スケジューリング Task A Task B Task C Event X Event Y wait Yへの応答 Xへの応答 Handling X Handling Y Deadline for X Deadline for Y 優先度ベース スケジューリング Task A Task B Task C Event X Event Y Yへの 応答 Xへの 応答 Handling X Handling Y Deadline for X Deadline for Y 優先度 (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
48
2 同期 Synchronization
49
同期(Synchronization)の必要性
タスクの相互関係 タスクが全く独立なわけではない。 互いに関係がある...どんな関係? 【相互関係1】仕事の依存関係 Aの仕事がおわらないと、Bの仕事が始まらない。 (例)学生のレポートが提出されて、初めて教師は採点する。 【相互関係2】道具を共有している関係 AとBが同じ道具を使って仕事をする。 (例)2人の大工に1つののこぎり タスクの間の相互関係に合わせて、処理の実行を調節すること 同期 (Synchronization) (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
50
(C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
【相互関係1】仕事の依存関係による同期 依存関係 Aの仕事がおわらないと、Bの仕事が始まらない。 (例)学生のレポートが提出されて、初めて教師は採点する。 必要な同期機構 生徒Aの宿題が終わる→(同期)→教師Bが採点を開始する 宿題 生徒A 教師B (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
51
【相互関係1】仕事の依存関係がある時の同期 イベントフラグ(event flag)
仕事に依存関係がある状況で… 先に仕事をしていたタスクが、ある処理が終わったという「事象(イベント)」を、次 のタスクに伝える イベントフラグ イベントフラグの機能 事象の通知をタスク間で通信する ビットパターンを事象に割り当てることで利用 OR待ちやAND待ちなどの事象待ちが可能 パターンが一致すれば同時に複数のタスクを待ち状態から復帰可能 (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
52
(C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
イベントフラグの基本機能 イベントフラグは、2種類の状態を持つ Set状態 Clear状態 イベントフラグへの基本操作 セット (Set)命令 イベントフラグは”Set”状態になる クリア (Clear)命令 イベントフラグは “Clear”状態になる ウェイト (Wait)命令 イベントフラグが”Clear”状態 そのタスクをイベントフラグが”Set”状態になるまで待たせる。 イベントフラグが”Set”状態 そのタスクは動作をそのまま継続する 1つのイベントフラグは1ビットで実現可能 上記の基本操作では8個、16個等のイベントフラグをまとめて操作 複数イベントフラグのAND待ちやOR待ちができる (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
53
イベントフラグの例:Task B終了Task A起動
①イベントフラグを作る tk_cre_flg() ⑤イベントフラグ待ち解除 ②イベントフラグを待つ tk_wai_flg() ⑥処理実行 Tasks A 優先度:高 (Priority = High) 実行可能状態(READY) 実行状態 (RUN) 待ち状態 (WAIT) 実行状態 (RUN) ④イベントフラグをセット tk_set_flg() ③処理実行 Task B 優先度:低 (Priority = Low) 待ち状態 (WAIT) 実行状態 (RUN) 実行可能状態(READY) Event Flag F Event Flag Fを 作る Event flagにより タスク起動 F ≠ 1 F = 1 1 1 (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
54
(C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
【相互関係2】道具の共有関係による同期 依存関係 AとBが同じ道具を使って仕事をする。 (例)2人の大工に1つののこぎり 必要な同期機構 Aがのこぎりを使い終わる→(同期)→Bがのこぎりを使い始める (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
55
【相互関係2】道具を共有している時の同期 排他制御(mutual exclusion)
同期方式の一つ 複数のタスクで、道具を共有している関係で、同じ道具を複数のタスクが 同時に使うと、おかしなことがおこる。そこで、ある道具を使えるタスク を一つに限定し、その処理が終わるまで、他を排除する制御が必要 実例 データを更新している最中にそのデータを読み出すと、中途半端な値が得 られてしまう。 データの更新処理が始まってから終わるまでは、同じタスクがずっとアク セスし続けるようにする。 (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
56
(C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
セマフォ(Semaphore) (1) (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
57
(C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
セマフォ(Semaphore) (2) 並行プログラミング環境にお いて、複数のタスク(プロセ ス)から共通資源へのアクセ ス を制御するために用いられ る、防御変数 or 抽象データ型 セマフォは競合状態を防ぐ為 に用いる。 問題点 セマフォを用いると、デッド ロックが起こる可能性がある 。 例:dining philosophers problem (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
58
(C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
セマフォの基本動作(バイナリセマフォ) S==0の状態でP命令が呼ばれた場合は、他のタスクがV命令を発行し、 S==1にするまでWAITする P命令 P(S) V命令 V(S) S == 0 「きわどい領域」に入る事が禁止されている状態 S==1 「きわどい領域」に入ることが出来る状態 T-KernelでのP命令、V命令 一般機能名 T-Kernel システムコール P (S) wait semaphore tk_wai_sem() V (S) signal semaphore tk_sig_sem() (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
59
(C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
2種類のセマフォ バイナリセマフォ 共有資源にアクセスするタスク(プロセス)を一つに限定するためのメカニズムで。 変数の値として“true/false” ( = locked/unlocked) を持つ。 計数セマフォ 共有資源にアクセスするタスク(プロセス)の数を、決まった複数個に限定するメ カニズム。 アクセスする上限数〜0の間の値をとる。 (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
60
(C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
競合状態の回避するプログラミング例 Task 1 Task 2 : P(S); …際どい領域 (競合しうる状態)… V(S) : P(S); …際どい領域 (競合しうる状態)… V(S) (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
61
セマフォの例:Task B獲得Task A獲得
⑦セマフォを獲得成功 ③イベント ④セマフォを獲得 tk_wai_sem() 失敗 ⑧処理実行 Tasks A 優先度:高 (Priority = High) 待ち状態 (WAIT) 実行状態 (RUN) 待ち状態 (WAIT) 実行状態 (RUN) ①セマフォを作る tk_cre_sem() ②セマフォを獲得 tk_wai_sem() 成功 ⑥セマフォを解放 tk_sig_sem() ⑤処理実行 Task B 優先度:低 (Priority = Low) 実行状態 (RUN) 実行状態 (RUN) 実行可能状態(READY) 実行可能状態(READY) Semaphore S Sを作る (S = 1) S = 0 S = 0 S = 1 S = 0 (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
62
3 通信 Communication
63
(C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
通信 (Communication) 仕事・処理の結果や情報を、あるタスクから別のタスクに伝えてやる こと=通信(Communication) 例:学生がレポートを書く 教師はレポート採点 学生・教師間の通信 = レポートの内容 (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
64
(C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
通信の方式(1) 共有記憶とメッセージ 複数のタスクが通信する方式の分類... 共有記憶方式とメッセージ方式 共有記憶方式(Shared Memory) AとBが同じ記憶領域を読み書きして情報交換 メッセージ方式(Message Passing) AからBへ情報を渡して情報交換 メッセージ 共有記憶 A B A B 共有記憶方式 メッセージ方式 (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
65
通信の方式(2) 同期型メッセージ・非同期型メッセージ
同期している send to “B” Task A 処理結果通知 メッセージを処理 Task B receive from” A” 非同期型メッセージ send to “X” Task A 同期していない Mailbox X メッセージを処理 Task B receive from” X” (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
66
(C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
通信の方式(3) 直接通信・間接通信 直接通信 送信先を直接指定する send to “B” Task A メッセージを作成 メッセージを処理 Task B receive from” A” 間接通信 通信の媒介となる資源を指定する send to “X” Task A メッセージを作成 Mailbox X メッセージを処理 Task B receive from” X” (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
67
(C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
(補足)直接通信、間接通信の例 直接通信 タスクイベントの送信 tk_sig_tev (ID tskid, INT tskevt); 間接通信 メッセージバッファへ送信 tk_snd_mbf (ID mbfid, VP msg, INT msgsz, TMO tmout); (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
68
4 記憶管理
69
(C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
メモリプール管理(1) 処理の途中で多くのメモリが必要になること 必要最大のメモリを常に独占するのは無駄 必要な時だけにメモリを確保する 必要がなくなったら解放する そのためには..... どのメモリをどのタスクが使っているか管理 メモリプール管理機能 (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
70
(C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
メモリプール管理(2) あらかじめ確保した大きなメモリ領域を管理 タスクからの要求に応じて、空いている部分から必要量だけ割り付ける( memory allocation) 不要になったメモリは返却(memory free) メモリプール タスクA 割付 返却 タスクB (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
71
5 実時間処理
72
(C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
時間を扱う機能 リアルタイムシステム/実時間システム 時間を扱ったプログラムを書くことが必須 例えば、..... 5分たったら休みたい。 7時になったら起こしてね。 5分おきに○×したい。 ところで、今何時? (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
73
(C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
時間を明示的に扱う機能 時刻の取得、設定 相対時間 絶対時間 時間割込み処理 ある時間になったら、あらかじめ決めておいたモジュールのルーチンを起動する アラーム 周期割込み タイムアウト処理 ある一定時間以内に処理が終わらない⇒その処理をやめる。 タイムアウト指定つきサービスコール (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
74
(C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
1.時刻の取得、設定 相対時刻 OS立ち上げ時からの相対的な時刻。 ハードクロックのカウンタを持つハードウェアタイマを使用する。 絶対時刻 年、月、日、時、分、秒で表される一意の時刻。 不揮発の時刻情報を保持可能なRTC(Real Time Clock)のハードウェアを 使用する。 (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
75
(C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
2.タイマ割込み処理 アラーム 特定の時刻または一定時間後にタイマ割込みを発生させ、特定の処理を実 行させる。 例:ビデオ録画予約では、予約した日時にタイマ割込みが発生し、録画処 理が実行される。 周期割込み 一定時間間隔でタイマ割込みを発生させ、処理を実行させる。 例:ビデオ表示では、33m秒に1回割込みを発生させ、割込み毎に1フレ ームの表示を行う。 (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
76
(C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
76 アラームの例 アラームハンドラ (割込ルーチン) アラーム ハンドラ の作成 タイマー 開始 起動 割込み ・・・ 時間 割込時間 システム時刻 ・・・ (C) 2016 YRP UNL and TRON Forum, All Rights Reserved. 76
77
(C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
77 周期割込み アラームハンドラ (割込ルーチン) アラームハンドラ (割込ルーチン) アラームハンドラ (割込ルーチン) 起動 アラームハンドラ (割込ルーチン) 起動 起動 起動 割込み 割込み 割込み 割込み ・・・ 時間 割込み周期 割込み周期 割込み周期 システム時刻 ・・・ (C) 2016 YRP UNL and TRON Forum, All Rights Reserved. 77
78
(C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
3.タイムアウト処理 待ち時間が永久に継続される可能性がある場合 予め待ち時間を設定し、待ち時間が経過した場合、別の処理を実行させた い。 例:ハードディスクのI/O完了待ち ディスクの故障時にI/Oが完了しない場合がある。このため、I/O完了待ち 時間を設定し、その時間が経過した場合、ディスク故障のメッセージを表 示する等のエラー処理を行う。 (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
79
第5章 まとめ(RTOS)
80
(C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
リアルタイムシステムは複雑 実世界とのかかわり ランダムに起きる事象への対応 実時間を扱う必要性 複雑な処理が要求される。 そのための技術 並行処理(タスク、スケジューリング) 同期・通信 実時間処理 記憶管理 (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
81
(C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
RTOSとは何か? リアルタイム・組込みシステム開発において、 共通に使用される管理プログラム リアルタイムシステム向きの機能を持つ (各イベントに対して高速に応答できる) タスク切換時間、各サービスコール時間があらかじめ予測できる コンピュータの持つ資源を仮想化し、効率利用できる(再利用性) (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
82
リアルタイムシステムの必要な機能とRTOS
タスク管理機能 タスク同期管理機能 同期通信機能 メモリ管理機能 時間管理機能 割込み管理機能 入出力管理機能 通信・ネットワーク機能 ファイル管理機能 ユーザインターフェース機能 (GUI) 音声認識、音声合成 画像圧縮伸張 など 上位のミドルウェアでサポー ト (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
83
第6章 IoT Engine
84
マイクロコントローラーとコンピュータの出荷数
(C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
85
(C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
マーケット比較(出荷数、2012) 2012 (Units) MCU Market 4〜8bit 6,343 M 16bit 7,227 M 32bit 3,700 M Sub Total 17,271 M Computing Market PC 355 M Smartphone 712 M 1,067 M 組込系 非組込系 IC Insights: “Research Bulletin: MCU Market on Migration Path to 32-bit and ARM-based Devices”, April 25, 2013 IDC: “Soft PC Shipment in Fourth Quarter Lead to Annual Decline as HP Holds Top Spot, According to IDC” IDC: “Strong Demand for Smartphones and Heated Vendor Competition Characterize the Worldwide Mobile Phone Market at the End of 2012, IDC says” (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
86
“Trillions of Connected Devices” 一兆個のデバイスがネット接続される
9 billion of connected devices in 2013 Gartner: 26 billion of units by 2020 Cisco: 50 billion of connected things by 20202 IDC (2013): 212 billion of connected things by 2020
87
分解されて、ネットワークに 溶け込む組込み機器
IoT, M2M時代の組込み
88
背景:通信機能を持った超小型デバイスとクラウド
クラウドコンピューティング用 サーバーシステム 通信機能を備えた 超小型デバイス (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
89
(C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
M2M, IoT型組込みアーキテクチャ クラウドサーバー 一体化 センサー ユーザ インタフェース クラウド(インターネット) データ閲覧 データ送信 センサーとUIの分離 従来型の組込機器 (血圧計) 超小型組込み機器 ネットワーク機能つき 超小型血圧センサー スーマートフォン (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
90
(C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
クラウドやスマホと一体化する家電 (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
91
(C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
コストベネフィット ▲5%/年 ハードウェア ソリューション ▲37%/年 ムーアの法則 (半導体ソリューション) ▲50%/年 コンピュータ ソリューション ▲60%/年 ネットワーク ソリューション (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
92
世界6カ国7社の半導体ベンダーが IoT-Engine製品化、販売へ
参加半導体ベンダー 東芝マイクロエレクトロニクス ルネサス エレクトロニクス Cypress Imagination Technologies Nuvoton Technology NXP Semionductors STMicroelectronics IoT-Engine開発キット発売 パーソナルメディア ユーシーテクノロジ (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
93
IoT-Engine IoT機器、センサー等に 組み込む、コンピュータ標準プラットフォーム
(C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
94
(C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
IoT-Engineの特長(1) 小型・低価格・低消費電力を目指したWPAN(IEEE )無線 搭載 周波数は、国により異なるが780MHz、915MHz、920MHz、950MHz、 2.4GHzなど WPAN : Wireless Personal Area Network 近距離無線通信 電池やエネルギーハーベストで動作させるような機器にも対応できる低消 費電力向け CoAP、6LoWPANプロトコルを搭載 6LoWPANボーダールータ経由でクラウドに接続する クラウドのWeb APIに親和性の高いCoAPを搭載する Open IoT Platform接続 (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
95
(C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
IoT-Engineの特長(2) 低消費電力対応μT-Kernel2.0 リアルタイムOS搭載 マルチタスクプログラミングによる高度な制御ロジックが容易に実装でき る IEEE ビーコンモードで、マイコンをDeep Sleepモードに落とせ る超低消費電力対応 IoT-Engineのコネクタの標準化 0.4mmピッチ100ピンコネクタと、コネクタ横の固定ネジ位置 マイコンの違いを吸収できる自由度を持たせた信号ピン割り当て 低コスト・短期開発に有効なArduino互換I/O信号ピン割り当てを持つ (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
96
(C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
IoT-Engine規格の標準化 コネクタ、寸法規格 コネクタ信号割当ガイドライン 典型的なデバイスのドライバインタフェース ミドルウェアインタフェース 標準に基づいた各種MPUのよる製品化、ミドルウェア製品化を行える 仕組みを用意する。 (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
97
(C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
IoT-Engineのコネクタ信号規格 (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
98
(C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
機械的寸法規格 機械的寸法の規格化は右図青色部分 コネクタ 固定穴 コネクタと固定穴の位置関係 それ以外の寸法は参考寸法 (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
99
T-Car : IoT-Engine搭載 IoT教育教材
(C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
100
T-Car : IoT-Engine搭載 IoT教育教材
1/10サイズ模型自動車に、さま ざまなセンサーを搭載 スピードセンサー、ライント ラッキングセンサー、9軸モー ションセンサー、距離センサ ー、温度、照度・・・ Arduino誤解I/Oコネクタを搭 載し、市販パーツ(シールド )や自作基盤で拡張可能 UCT 6LoWPANボーダールータ (別売品)経由でクラウドに接 続 クラウドに接続された外部セ ンサーからの情報を連携させ てコントロール プログラム開発、デバッグに便 利なワークベンチ (C) 2016 YRP UNL and TRON Forum, All Rights Reserved.
101
© 2016 YRP UNL and TRON Forum, All Rights Reserved
102
【実習】μT-Kernel入門(協力:富士通コンピュータテクノロジーズ)テキスト「リアルタイムOS概要とμT-Kernelの基本機能解説」
著者 TRON Forum 本テキストは、クリエイティブ・コモンズ 表示 - 継承 4.0 国際 ライセンスの下に提供されています。 Copyright ©2017 TRON Forum 【ご注意およびお願い】 1.本テキストの中で第三者が著作権等の権利を有している箇所については、利用者の方が当該第三者から利用許諾を得てください。 2.本テキストの内容については、その正確性、網羅性、特定目的への適合性等、一切の保証をしないほか、本テキストを利用したことにより損害が生じても著者は責任を負いません。 3.本テキストをご利用いただく際、可能であれば までご利用者のお名前、ご所属、ご連絡先メールアドレスをご連絡いただければ幸いです。
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.