タグ付けされた質問 「virtual-memory」

仮想メモリは、各プロセスに独自のアドレス空間(仮想メモリ)が与えられ、ハードウェアがすべてのVM参照を物理メモリアドレスに変換する方法です。もともとVMは、使用可能な物理メモリよりも多くのアドレス空間を提供するために使用されていました。物理メモリよりも多くの仮想メモリが使用されている状況に対応するために、HDDなどのストレージデバイスを使用して、必要に応じてデータを「スワップアウト」し、後で「スワップ(バック)イン」することができます。

1
Linuxのオーバーコミットメモリ
私はLinuxでを使用してメモリのオーバーコミットを検討してきましたが/proc/sys/vm/overcommit_memory、同じことを言っていない記事をいくつか読みました。 このドキュメントは、「間違った方向に進む」という見出しの下で、「値1:オーバーコミットを行い、0(デフォルト):しない」と言い続けていますが、次の数行では、これは実際には真実ではなく、0は「どれだけのオーバーコミットメントが合理的であるかを推測する」という意味です。つまり、値0を使用してもメモリのオーバーコミットは無効になりませんか? また、1は「malloc()を拒否しない」ことを示し、2は「オーバーコミットについて正確であること-物理メモリのオーバーコミット率とスワップ空間を超える仮想アドレス空間をコミットしないこと」を意味します。 一方、Red Hatマガジンでは、「値が0の場合、カーネルは、アプリケーションからのmalloc呼び出しにメモリリクエストを許可するのに十分なメモリがあるかどうかを確認します。メモリが十分であれば、リクエストは許可されます。それ以外の場合は拒否され、エラーコードがアプリケーションに返されます。」これは、オーバーコミットを無効にするように聞こえます。 「値が1に設定されている場合、カーネルはovercommit_ratio値で定義されたシステムの物理RAMとスワップの量を超える割り当てを許可します。このファイルの設定が2の場合、カーネルはすべてのメモリ割り当てを許可します。 、現在のメモリ割り当て状態に関係なく。」値1と2に関して、それは前のドキュメントが言ったことの反対ですよね? 誰が実際に正しいかを知っていますか?また、オーバーコミットを「無効にする」ことができる場合は?

7
仮想メモリとSSD
A +試験の勉強中、私はSSDについて読んでいましたが、RAMの制限が低いモボがあれば、仮想RAM専用のSSDを使用できると思いました。私はオンラインでいくつかの情報を調べました、そして見つけた情報はこれは悪い習慣であると言いましたが理由を説明しませんでした。SSDを仮想メモリに使用してはいけないのはなぜですか?専用の仮想メモリドライブについてどう思いますか?ありがとうございました!


3
/ proc / vmstatのパラメーター(pgpgin、pswpin)と(pswpout、pgpgout)の正確な違いは何ですか?
この質問は特定のユーザーにlinuxのみ当てはまることに注意してください。とswap spaceは、専用という意味ですswap partition。 私はgoogleこれについて少し行い、これらを見つけましたdefinitions: Paging refers to writing portions, termed pages, of a process’ memory to disk. Swapping, strictly speaking, refers to writing the entire process, not just part, to disk. In Linux, true swapping is exceedingly rare, but the terms paging and swapping often are used interchangeably. そして page-out: …


3
GrowthUserVAを手動で設定することの危険性は何ですか?
私は32ビットシステムでVisual Studio 2010を実行しており、仮想メモリが不足するという問題に定期的に遭遇しているため、VSでのコピー/貼り付けなどはできなくなりました。 私はいくつかのオプションをチェックアウトしましたが、これに関するMicrosoftの行は、開いている拡張機能が少ない状態で実行されていることを示しています。それが機能しない場合は、bcedit / set これで問題は軽減されたようですが、約1日使用した後、突然、Windowsからディスク容量が足りなくなったというメッセージが表示されます。たとえば、ファイルをコピーするスペースがないと言って、ファイルのコピーを停止します。ただし、「再試行」をクリックすると成功します。ディスクに書き込みを行っていた他の多くのプログラムは、定期的にフォールオーバーします。(Skypeを含む... Skypeをいつもディスクに書き込んでいたのはなぜですか?!) 私はchkdskを実行し、他の基本的なチェックを行ってから、構成の変更が原因であると結論付けました。幸いなことに、デフォルト設定の復元が機能し、私は現在、行動に戻っています。 GrowthUserVAに関するほとんどの記事(特にMicrosoftを除く)は、「自分の責任で使用してください」と言っています。しかし、この動作がなぜ表示されたのか、Windows 7構成に対する正当な変更と思われるもので何が問題になるのかを誰かが説明できますか? 記録のために-マシンは、260Gb / 5400rpmディスクドライブ、3.2Gb(有効)RAMを搭載したデルのVostroラップトップで、SP1より前のすべてのアップデートでWindows 7を実行していました。

5
SSDがHDDと比較して実行中のアプリケーションの速度を改善しないのはなぜですか?
PCゲームに関する記事/フォーラムでは、ソリッドステートドライブが、(アプリケーションの)起動時にゲームをハードディスクドライブよりも高速にしかロードしない方法、およびSSDがゲームの速度/パフォーマンスを向上させないという人々をいつも見ています。 HDDと比較して(起動後に)実行されているアプリケーション。今、この最初の部分は、アプリケーションの起動時に、オペレーティングシステムがディスクからアプリケーションのすべての命令をフェッチし、RAMにロードする必要があるためだと思います。また、SSDアクセスはHDDアクセスよりもはるかに高速であるため、SSDを使用したプログラムの起動はHDDよりもはるかに高速になります。 私が理解していないのは、OSが実行中のアプリケーションのメモリページをRAMからディスク上のページファイル/スワップスペースに移動できるため、これが現在実行中のプログラムにも影響しないことです。実行中のプログラムがページファイル/スワップスペースに移動されたページにアクセスする必要がある場合、アプリケーションが使用するRAMにページを戻すためにディスク読み取りが発生する必要があります。SSDは、アプリケーションの起動時だけでなく、ここでもパフォーマンスを向上させませんか?

1
ページがディスクにスワップアウトされた後、ページテーブルの内容はどのように見えますか?
私が理解していることから、ページテーブルは仮想アドレスを物理アドレスにマッピングします。しかし、ページがディスクにスワップアウトされた場合はどうなりますか?データの場所は、物理アドレスよりも多くのビットを書き込む必要はありませんか?スワップファイルが変更されると、データの場所は変わりませんか?この問題は、異なるオペレーティングシステムで異なる方法で解決されますか?

0
OS - ヒープ/スタックとページ間のパラレル
私はオペレーティングシステムの試験を勉強しています。私はに関する章に取り組んでいます 仮想メモリ 。 私は本当に混乱しています この非常に一般的なスキーマ プロセスを説明する 仮想メモリに割り当てられているページ 。 これらのページはプロセス全体を格納するために割り当てられていますか?ページは実際にヒープ用の空きスペースですか?それともスタック? 私は本当にこれら二つの概念を結びつけることはできません

1
フラッシュメモリを使って仮想メモリを増やすにはどうすればよいですか。
私のコンピュータは8GBの物理メモリを持っています。私はすぐにその8GBを使い果たすいくつかのメモリ集約的なプロセスを実行しています。物理メモリが不足すると、仮想メモリの使用が開始され、pagefile.sysがすぐにサイズが数GBまで増加するのがわかります。メインハードドライブの空き容量が少なく、現時点で新しいものを購入する余裕がありません。このため、Cドライブの仮想メモリを約1 GBに設定する必要があります。私の解決策は別のpagefile.sysを保持するために私の32GBのサンドディスクフラッシュドライブを使うことでした。仮想RAMの設定を変更して、初期サイズが16 GB、最大サイズが約29 GBのフラッシュドライブを含めて、その後、コンピュータを再起動しました。 私はすべての利用可能なメモリを使い果たすために小さなPythonスクリプトを書きました。それは8GBの物理メモリの残りを使い果たし、メインドライブの1GBの仮想メモリを利用し、そしてクラッシュします。フラッシュドライブはそのままです。私が使った dir /a g:\pagefile.sys ドライブにページングファイルが作成されているかどうかを確認します。迷っていてグーグル検索は役に立ちませんでした。 私が見逃している隠されたステップはありますか?私の目標は私のプロセスを実行できるようにすることです。スピードはここでの主な関心事ではなく、安定性だけです。 私はwindows 7 home premium 64 bitを使っています。フラッシュドライブは、NTFSにフォーマットされた32GBサンディスククルーザーです。

3
32ビットWindowsでのメモリ管理
32ビットシステムでは、OS全体の4GBの仮想アドレス空間ですか、それとも個々のプロセスのためのものですか? それがOS全体のためであるならば、OSはそれ自身の4GBのアドレス空間を持っていることをすべてのプロセスを欺くのでしょうか? プロセスが開始されるとき、それはすべての仮想アドレス空間を利用しますか?仮想アドレスをコミットまたは予約すると言っているのでしょうか。 プロセスに必要な仮想アドレススペースの量をどのように確認できますか? プロセスが3 GBを超える仮想アドレス(拡張ユーザーモードシステム)を必要とする場合はどうなりますか。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.