Windows CE (.NET) とか IoTとか

組込みWindows と IoTの話を扱います

Automotive 5.0発表

先ごろWindows CE 5.0ベースの「Windows Automotive 5.0」が発表されました。

この製品はWindows CE 5.0 コアを利用しながらも、独自のモジュールを追加し、Automotive用途で必要とされる機能を追加したものです。一方、ここで採用された機能のいくつか一般的な内容のものは、次バージョンのコアOS (Windows CE 6.0?)に追加されて出てくることもあります。

PC Watchの記事

http://pc.watch.impress.co.jp/docs/2005/0712/ms.htm

には、改良された項目のひとつとして

仮想メモリ空間の拡大(32MB→96MB)

が挙げられています。以下は想像ですが、現在XIP DLL用に拡張されたSLOT1がSLOT2にも侵食したものなんでしょうね。図で説明すると下のようになります。

CE 3.0以前の場合

SLOT2 <プロセス空間2 >

SLOT1 <プロセス空間1 >

SLOT0 <現在実行中のプロセス> = 32MB

※実行中プロセス空間は最大計32MB

CE.NET 4.xの場合

SLOT2 <プロセス空間1 >

SLOT1 = 32MB

SLOT0 <現在実行中のプロセス> = 32MB

※実行中プロセス空間は最大計64MB

Automotive 5.0の場合

SLOT2 = 32MB

SLOT1 = 32MB

SLOT0 <現在実行中のプロセス> = 32MB

※実行中プロセス空間は最大計96MB

たぶんAutomotive 4.0はCE.NET 4.xと同じと思うので(合っている?)、本当は

仮想メモリ空間の拡大(64MB→96MB)

というのが正しいのかもしれません。

現状のCEでこれ以上のRAMを使おうとすると、約1GBより上の共有メモリ空間にマップして使用するしかありません。ただそうすると、LocalAlloc/HeapAllocなど、細かなメモリ管理が望めなくなってきます。

CE機器に実装されるRAM容量が128MBから256MB程度まで増えてきたので、1プロセスの最大メモリ空間の制限がいよいよ窮屈なものになってきました。これを緩和するための(とりあえずの)ソリューションがこの措置ではないかと思います。