えちょ記

語らないブログ

アクターモデルは正しく使おう

組み込み系のOSでQNXというのを少し仕事で使ったことがあります。このOSは典型的なマイクロカーネルで、アクターモデルを軸にしたプロセス間通信の仕組みが秀逸です。アクターモデルを素直に実現しているプロセス間通信をとにかく軽量高速に実装することで、モノシリックカーネルに比べて不利とされる実行速度の低下を感じさせずに、システム全体を安全に動かすことを実現しています。

‥‥が!私がメンテナンスしたプログラムは、残念ながらアクターモデルの良いところを正しく理解していないシステム設計で、なんかデッドロックとかしていたのです(涙)。だから、アクターモデルなら、1プログラムは1つの役割だけを愚直に担当していれば良いんです!読んで、解釈して、投げることがあったら他人に投げて終わってればいいのです!1プログラムに沢山の役割を持たせてるモノだから、プログラムややこしくなってるし、プログラム単位で再起動できないし、落ちたらシステム全体が沈黙するしorz。

OSの持っている機能は正しく活用しましょうという教訓を得ました。はい。