バックナンバーはこちら。
https://www.simulationroom999.com/blog/model-based-of-minimum-2-backnumber/
はじめに
前回、CANoeが32bitFMUを要求する調査結果を確認。
どうらやCANoe内で2つのプロセスが動作しており、
FMUを処理する側のプロセスが32bitプロセスになっているようである。
今回はこれらの推測を裏付ける話をする。
登場人物
博識フクロウのフクさん

イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1
エンジニア歴8年の太郎くん

イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1
プロセスの確認

今回はCANoe内で2つのプロセスが動作してて、
それらが64bitプロセスと32bitプロセスがあるって根拠を教えてくれるだっけ?

そうだね。
というわけでCANoeを起動した状態で、タスクマネージャを起動。

起動した。

Vector CANoeのプロセスをツリー上にプロセスの依存関係が見れる。

確かにツリー上に開いた。


お!
「Vector CANoe/CANalyzer Runtime Kernel」
ってのが32bitプロセスっぽいぞ!
これがフクさんの言ってたランタイムカーネルってやつか?!

そうそう。
ここから描画用プロセスと計測/演算用のプロセスが分かれてて、
それぞれが64bitプロセスと32bitプロセスになっているだろう。
と予測したわけだ。
プロセス間通信の方法

プロセスが分れているってことは、プロセス間通信をしてるってことだよね?
これは流石にどうやってるかはわからないよねー。

プロセス間通信はPIPE、共有メモリといろいろあるが、
基本的には特定は難しい。
が、CANoeの設計思想から考えてTCP/IPでプロセス間通信をしていると仮説を立てた。

CANoeの設計思想?

設計思想の方は後で説明するとして、
ランタイムカーネルにTCP/IP用のListenポートがあるか確認してみよう。

どうすればわかるの?

タスクマネージャ上のランタイムカーネルのプロセスを右クリックして詳細を選ぶと、タスクマネージャの詳細タブに飛ぶんだけど、そこでプロセスIDというものがわかる。
そのプロセスIDをメモっとく。

メモった。
18552だったよ。

コマンドプロンプトを起動して以下のコマンドを実行。
> netstat -ao | find "18552"

お!
なんか該当する行があるみたいだよ!


これで、CANoeの2つのプロセスがTCP/IPで通信している可能性が高くなったというわけだ。
次はこれらの通信状況とか、さっき言ったCANoeの思想の部分の話だな。
まとめ

まとめだよ。
- CANoe内の描画プロセスと計測/演算プロセスの存在をタスクマネージャで確認。
- 計測/演算プロセスことランタイムカーネルが32bitプロセス。
- ランタイムカーネル側のプロセスIDを元にTCP/IPのListenポートを確認。
- netstatで該当プロセスにListenポートがあることを確認。
バックナンバーはこちら。
コメント