私の境界なんて,狭いに決まっているわけですが.それはさておき.

触発されて,2007年版のETエンジニアが得るべき洞察力ってなんだろう…30秒考えたら俺様的アンサーが出ました.


扱わざるを得なくなったシステムを前にして,任意の物理時間に存在するプログラムカウンタが合計何個あるのかということに想いを馳せられるかどうか


これです.これしかありません.

  • RTOSを目の前にして,二つ以上のタスクが同一物理時間で同時に走ると思い込む.
  • RTOSを使っていて,二つ以上のタスクは同一物理時間に同時には走らないと思い込む.

経験上,前者は新入社員,後者は中堅社員…でしょうかねぇ.
前者は,まるっきり上手く動かないので,早期に判明して,先輩からほっぺたグリグリされて終わり.
後者は,見た目普通なコードなのでレビューをくぐり抜け,しかも競合はたまにしか起きないので出荷後判明.


いずれにしても,突き詰めると,原因はプログラムカウンタの数え間違いです.


いやー,ETエンジニアってのは,ITエンジニアより難しいこと多いよね.


なんて結論を出すワタクシではありません.
実は,この問題,真っ当なITエンジニアなら,10年前に乗り越えています.
PentiumIII辺りから本格化したPC/WSのSMP化によって,マシンリプレース前まで動いていたJavaのマルチスレッドアプリケーションが,唐突に動かなくなるという事態が続発しました.Microsoftでも,MSJなどでは,毎号ActiveX/COMのスレッドモデルに関する何らの言及がなされました.
COMコンポーネントの場合は,MS謹製でも,なんか混乱しているなーという感じでしたし.
まあ,いまだに乗り越えられていないベテランもいるとは聞きますが…*1


ET業界はIT業界の10年後のトレンドを踏むと聞きます.
まさに,組み込みはマルチコアのつぼみが綻びまくり.来年には咲くよねというのが情報通の見方のようです.
さて,今回はIT業界の徹を踏まずに行けるでしょうか.

*1:私もCOMのスレッドモデルは,途中で挫けた.いまや全く覚えていない.