Entry

プログラミングメモ - プロセス空間は2GBの話

2008年12月05日

こちらの話から。

プロセス空間が2Gを超えると落ちるって問題があって、おそらくはポインタの型が32bitであることに起因するんだろうけど、このことについて理解している人が結構少ない。しかも、結構プログラム書いている人であっても。

最初に触ったOSが32bitOSで、32bitOSの支配が10年以上も続いてきたから、NEARポインタとFARポインタの違いとかわからないんだろうな。。。といってもオイラも最初にプログラムしたのはWindows98だけど。

プロセス空間2GB問題 with C - 技術系のシバチョ2.0がコラムを書く

2^32 = 4,294,967,296 だから,32 bit のポインタは4GBまでアドレッシングできるんだけどなぁ……。

おそらく,Windows/Pocket PC の話だと思うので,それを前提にすると,プロセス空間が2GBに制限されるってのは,ポインタの幅の話ではなくて OS の制限だったりします。4GBのうち2GBはユーザ領域で,残りの2GBはカーネル空間。いくらポインタが2GBより大きな場所を指せるといっても,庶民であるユーザアプリがカーネル様のプロセス空間をいぢることはできません。

で,このユーザプロセス空間は,ある程度いぢれる。

3 GB のユーザー モード プロセス空間のサポートを有効にするには、/3gb パラメータを boot.ini ファイルに追加してコンピュータを再起動する必要があります。これにより、/3gb パラメータが有効になります。このパラメータを設定すると、ユーザー アプリケーションのスレッドから 3 GB のプロセス アドレス空間に対処できるようになります。残りの 1 GB のプロセス アドレス空間はオペレーティング システム用に予約されます。

プロセス アドレス空間

あまりやらん方がいいらしいけれど。それだけ。

Trackback
Trackback URL:
Ads
About
Search This Site
Ads
Categories
Recent Entries
Log Archive
Syndicate This Site
Info.
クリエイティブ・コモンズ・ライセンス
Movable Type 3.36
Valid XHTML 1.1!
Valid CSS!
ブログタイムズ

© 2003-2012 AIAN