0

オペレーティング システムによって提供される以外の余分なスペースをプロセスに提供できますか。そのような目的で追加の取り外し可能なメモリを使用できますか。

4

3 に答える 3

2

オペレーティング システムによって提供される以外の余分なスペースをプロセスに提供できますか。

いいえ、OS を要求する必要があるすべてのメモリについて、できません。
malloc()、new およびその他のメモリ割り当て関数、および演算子は、プログラムに提供されるメモリを OS に要求するシステム コールとして解決されます。

于 2012-08-21T04:16:30.700 に答える
0

すべてのプロセスには、マシンのアーキテクチャに応じて、明確な最大メモリ空間が割り当てられています。32 ビット マシンでは、アドレス指定可能な最大スペースは 2^32 バイト ~= 4GB です。したがって、プロセスは通常 4 GB のメモリをアドレス指定できる必要があります。しかし、この空間は 1. カーネル空間と 2. プロセス空間の 2 つの部分に分かれています。カーネル空間はOSドライバーなどに使用され、プロセス空間はデータを割り当てることができる空間です。したがって、利用可能なメモリは単なるプロセス空間です。

一般的な Windows XP マシンでは、均等に分割されます。つまり、プロセス スペース用に 2 GB (ただし、これを変更する方法があります。たとえば、/3G オプションを使用します)。2 GB を超える割り当てを行うと、メモリ不足エラーが発生します。このプロセス スペースは、32 ビット アプリケーションから 64 ビット アプリケーションに移行するとさらに多くなります。これは、64 ビット アプリケーションに移行する主な動機の 1 つです。

あなたの質問に答えるために、OSがプロセスへのメモリ割り当てを拒否するプロセスで利用可能な最大メモリがあります。

于 2012-08-21T04:27:20.013 に答える