PowerPoint プレゼンテーション

システム工学概論
第10回
状態遷移の実現
2004. 12. 2
第10回概要
1.専用OS Midas
2.状態遷移の実現
3.実現の為のプログラム
4.メッセージシーケンスチャート
通常のOSの機能
プログラムの実行管理
入力と出力動作の制御
アプリケーション
休止中
実行
OSの状態遷移
実行待
実行中
実行
中
断
実行
中
断
アプリケーション
実行
実行
中
断
実行
入力動作
出力動作
中
断
OSは状態遷移を持つが,自分専用で
アプリケーションは中断/動作のみ
状態遷移をそのまま実行するには,通常のOSの下に専用のOSが必要
状態遷移の実現
通常のOS
状態構造を持つ系
A1
待機中
A7 A8
A2
状態Si
Midas OS/状態遷移の実行
A5
A6
状態Sj
A1 A2 A3 A4
A5 A6 A7 A8 A9
A3
A4
main
アプリケーションX
状態Sk
A9
A10
アプリケーション の
状態遷移を実現する
仕掛け
Midas OS
全ての状態遷移を
Midas OSにぶら下げる
状態毎かつ遷移原因毎の分岐
状態遷移を
実現する仕掛
状態構造を持つ系
A1
待機中
A7 A8
A2
状態Si
前状態
A5
A6
状態Sj
原因t
機能
A3
A4
状態Sk
A9
j
原因s
分岐
A
B
出力 O
A10
次状態=k
状態k
アプリケーション の
状態遷移を実現する
仕掛け
Midas OS
次状態=m
状態m
ある状態で,到来する各遷
移原因に対応する状態遷
移を実行させる
原理
次状態
S2
遷
移 E
原 2
因
状態
遷 移
原因
停止
E1
順演奏
E2
停止中
S0
順方向 演 逆方向演
奏中 S1 奏中 S2
遷移ルート
Tr(S2E2)
逆演 奏
E3
状態遷移原因表
状態遷移ルート に
対応する 関数群
.............
.............
int trs2e1(......)
{.......
.........}
int trs2e2(......)
{.......
状態遷移の実行
C
待機中
S0
購入指定
T01
次状態S 0
到着した
遷移原因
e1
釣銭出力
投入金
T00
S R /M/関
合計金額を計
算し 表示する
S R /M/関
販売可能商品
を求め表示す
る
T02
次状態S 0
記憶
した
状態
S0
待機中S0
投入金あり販
売不可S1
販売可能S2
投入金e0
購入指定e1
T00
T01
T02
T10
T11
T12
T20
T21
・遷移原因(イベント)が到着すると,
記憶している過去からの状態 対 遷移原因
の交点の状態遷移ルート(関数)を実行させる
・各状態遷移ルートの最末尾で次状態を規定する
釣銭出力e2
T22
実行の為の準備
状態St
遷移原因i
遷移原因i
遷移原因i
機能F1
機能F2
機能F3
次状態St
次状態Su
次状態Sv
次状態Sx
状態St
状態Su
状態Sv
状態Sx
必ず次状態に入る前に定義する
図面上の接続を関数の中で伝える
分岐の為の状態遷移原因表
設計に使う状態遷移原因表
投入金e0
待機中S0
投入金あり販
売不可S1
販売可能S2
購入指定e1
釣銭出力e2
T00
T01
T02
T10
T11
T12
T20
T21
プログラム中の状態遷移原因表
T22
状態遷移T状態原因
対応する関数F状態原因
{F00, F01, F02},
{F10, F11, F12},
{F20, F21, F22}
分岐の為の状態遷移原因表
設計に使う状態遷移原因表
投入金e0
待機中S0
投入金あり販
売不可S1
販売可能S2
購入指定e1
釣銭出力e2
T00
T01
T02
T10
T11
T12
T20
T21
プログラム中の状態遷移原因表
T22
状態遷移T状態原因
対応する関数F状態原因
{F00, F01, F02},
{F10, F11, F12},
{F20, F21, F22}
外部入力からの状態遷移
外部
入力
対応処理
(待合せなし)
釦a押下
釦b押下
釦c押下
× 不可
釦a対応処理
釦c対応処理
待合せ
対応処理
(待合あり)
釦a対応処理
釦b対応処理
釦c対応処理
Queue
待合せの記号
c.f. 窓口での待ち行列
キュー
つなぎ込む
取り外す
外部入力を考えた実行管理
Q?
無し
遷移原因
伴う情報
キューQ
投入金
100円
有り
待機中
キューか
ら取外す
投入金
投入金を合計
金額に加える
遷移原因を
使い分岐
合計金額を表示する
過去の
合計金額
投入金を合計
金額に加える
合計金額を表示する
更新した
合計金額
外部入力の処理
押す
釦
時間
押
釦
センサー
出力
E
センサー
サンプ
リングS
1
1周期
遅れL
反転
L
S・L
1
1
1
1
1
1
1
1
押下の検出
周期T
1
1
1
1
入力プログラムの原理
定周期(10mS毎)
i=0
センサー
センサー
センサー
センサー
センサー
センサーiを読む
i
前周期のiの反転
とiのAndを取る
Y
N
10mS
結果=1?
商品指定|釦i
をキューに繋ぐ
i=i+1
定周期(10mS毎)に走査する
終?
N
Y
待合せ/キューの原理 1
キューに繋ぐ
Attach, En-queu
待合せ/キューの原理 2
(キュ ー, Queu)
待ち合わせ情報の連鎖
先頭情報
末尾情報
取出し た待合せ情報
処理すべき 情報
待合せ情報
処理すべき 情報
後続情報への繋がり
待合せ情報
処理すべき 情報
後続情報への繋がり
待合せ情報
処理すべき 情報
後続情報への繋がり
待合せ情報
処理すべき 情報
後続情報への繋がり
キューから外す
Dettach, De-queu
メッセージシーケンスチャート (MSC)
お客様
メッセージ
自販機
投入金
合計金額表示
自販機の状態遷移図
投入金
合計金額表示
投入金
合計金額表示
MSCは,状態
遷移ルートの,
ある軌跡である
販売可能商品表示
投入金
合計金額表示
販売可能商品表示
商品指定
商品指定
商品
商品出力
釣銭
釣銭
メッセージシーケンスチャート (MSC)
お客様
メッセージ
自販機
自販機の状態遷移図
開始
投入金
投入金
合計金額表示
投入金
合計金額表示
合計金額
投入金
合計金額表示
販売可能
販売可能商品表示
投入金
合計金額表示
販売可能商品表示
商品指定
商品
商品指定
商品指定
商品
商品出力
釣銭
釣銭
お客様の状態遷移図
釣銭
プロトコル仕様
お客様
メッセージ
自販機
自販機の状態遷移図
開始
投入金
投入金
プ
合計金額表示
ロ
合計金額
投入金
合計金額表示
ト
投入金
コ
合計金額表示
販売可能
商品指定
商品
ル
販売可能商品表示
の
規
商品指定
定
商品
投入金
合計金額表示
販売可能商品表示
商品指定
商品出力
釣銭
釣銭
お客様の状態遷移図
釣銭
プロトコル仕様
A プロセス
A
s
投入金
y
s
合計金額
T
e
m
販売可能
の
状
商品指定
態
商品
遷
移
図
開始
釣銭
B プロセス
B
s
投入金
y
合計金額表示
s
T
e
m
投入金
の
合計金額表示
販売可能商品表示
状
態
遷
商品指定
移
商品出力
釣銭
図
MSC, SDLは,各種の通信プロトコルの仕様記述に用いられている
複数のプロセスの系
A プロセス
B プロセス
A
s
投入金
y
s
合計金額
T
e
m
B
s
投入金
y
合計金額表示
s
T
e
m
投入金
開始
プロセス間通信
販売可能
合計金額表示
販売可能商品表示
商品指定
商品
商品指定
商品出力
釣銭
釣銭
多数のFSMから成る複雑なシステム
纏め
1.状態遷移を持つ系と専用のOS
(Midas OS)を組合せると,合理的
にシステムを作ることができる
2.OSを構成するプログラム技術を説明した
3.メッセージシーケンスチャートを説明した
メッセージシーケンスチャートとSDLの状態遷移図
相互に変換可能な関係にある