2017-09-22 4 views
0

メモ帳を開いて(必ずしもそうではない)、6 GBのテキストファイルを書き込むとします。私はメモ帳そのもの以外のプロセスは実行されておらず、ユーザープロセスに割り当てられたメモリには6 GB未満の制限があります。私のディスクメモリで十分です。 ファイルはどうなりますか?私は書くことが間違いなく可能であり、仮想メモリが関与するかもしれないことを知っていますが、私はどのようにわからないのですか?仮想メモリは実際に関与していますか?いずれにしても、OSの観点から何が起こるか説明してください。 ありがとうRAMよりもメモリを消費するファイル(テキストなど)を書き込もうとしたらどうなりますか?

答えて

0

メモリの観点から見ると、ノートパッドはメモリに6Gbバッファを割り当てて、表示しているテキストを保存します。プロセスは、データセグメント(上のバッファを含むだけでなく)とコードセグメント(メモ帳のネイティブコード)から構成されているため、プロセス全体の容量は6Gbより大きくなります。

これまでのところ、すべての仮想メモリがプロセスに関するものです(はい、関係しています)。私があなたの事件を正しく理解していれば、プロセスは物理的な記憶に収まらないので、メモリ不足のためにクラッシュする可能性があります。

+0

したがって、RAMよりサイズが大きいファイルを書き込むことはできませんが、ファイルを読み込むこと(メモリマップファイルなど)は可能ですか? – noobcoder

+0

ディスクからの読み込みを意味しますか?はい、映画を見ているように可能です。データはストリーミングされるので、効果的に小さなバッファのみがメモリに格納され、残りはディスクに格納されます。同じようにファイルに書き込むことも可能です。 – Maxim

0

ユーザープロセスに割り当てられたメモリの上限は6 GB未満です。

これはオペレーティングシステムによって強制されるハードリミットである場合、独自の裁量でプロセスを何らかのエラーメッセージで強制終了することがあります。実装によっては、他にも何かを行うことができます。答えのこの部分は、仮想メモリまたはRAMをディスクにスワップする他の方法を無視します。

私のディスクメモリで十分です。ファイルはどうなりますか?私は書くことが間違いなく可能であり、仮想メモリが関与するかもしれないことを知っていますが、私はどのようにわからないのですか?

この時点で、ディスクに関する質問が始まると、仮想メモリとスワップについて話し始めることができます。仮想メモリが関与していて、6GBの制限がRAMの使用であり、仮想メモリの合計使用量ではない場合、ファイルの一部をディスクに移動できます。これは、現在画面に表示されていないファイルの一部または同様のものである可能性があります。 OSは、(6GB以上の)データのどの部分がRAM上で利用可能であるかを管理し、プログラムが必要とする場所(つまり、ファイル内のどこにいるか)に応じてデータの入れ替えを行います。

実際に仮想メモリが関与していますか?

気象によっては、問題のOSで有効になっているかどうか、どのように構成されているかによって異なります。


はいこれは多くの場合、問題のOSとその実装方法、およびこのようなケースの処理方法によって異なります。 OSの記述が悪いと、クラッシュする可能性があります。

+0

ありがとうございます。これは事を私にもっとはっきりさせます – noobcoder

関連する問題