computer.program - プログラミングのお話
FotranとかcobolとかBasicとかCとかC++とかjavaとか…(以下略)
#99: Windowsのメモリ確保
Date: 2002/07/09 12:27:27 Tue Author: 沢渡 みかげ (subop)
Parent Article: #98: Windowsのメモリ確保
Child Article: #100: Windowsのメモリ確保
> 1つしか実行しなくても、1GB くらいしかメモリが確保できないのです。
> だから、1つのプロセスの上限も設定されているのかなと思っています。
> 上限というより、OSの仕様なんでしょうけど。
いやだから,1つのプロセス+カーネルで4GBしか領域が無いのかと...
プロセスを切り替えると,同じ仮想アドレスを別のプロセス用に
使用できるので,別のプロセスは他のプロセスの使用している
アドレス領域を気にせずに使えると‥‥‥
例えば,0x00000000-0x7fffffff がカーネル領域で,
0x80000000-0xffffffff がユーザー領域という構造であれば,
プロセスAは 0x80000000-0xffffffff のアドレス空間しか
使えないので,頑張っても2GBまでになります.
もう1つ別のプロセスを使えば,そのプロセスはプロセスAと
無関係に,0x80000000-0xffffffff のアドレス空間を
使用できるので,また2GB使用できることになります.
(実際の物理メモリ・仮想メモリへの割り当ては
当然AとBで異なるので,それぞれ自分用のメモリとして使えます)
>> 386以降なら64TBまでのアドレス空間は使えるはずですが...
>> 未対応なのかも.
> スワップをもっと大きく取れば、OSとして使えるアドレス空間はもっと
> 大きくなるかもしれません。ウチのディスクのサイズの関係で、4GB以上には
> できないので。 ^^;
上のアドレス空間をセグメント方式で指定するときに,
何らかのビットを立てるとアドレス空間の上位が何ビットか
ずれて,より大きな範囲を指定できるような感じだったきが...
詳しくは「初めて読む486」とかを買うと良いかも.
アセンブラの本ですが結構良い知識がゲットできます
■ この記事のコメントを書く
■ この書き込みを削除/復活します(投稿者のみ可)
■ この書き込み近辺の一覧表示へ
【最新20記事
[一覧]
[ツリー]
[一括]
】
【最新の記事は 107 番です.】
【次の20記事
[一覧]
[ツリー]
[一括]
】
■ メインページ