問題タブ [vmalloc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
memory-management - 物理的に連続したメモリ領域が、仮想的に連続したメモリよりも効率的である理由.
物理的に連続したメモリ領域は、仮想的に連続したメモリよりも効率的であると言われています。Robert Love の本によると、カーネルは、物理的に連続したメモリのページ テーブル エントリを設定する必要はありません。
しかし、カーネルはすべてのシナリオでページテーブルを必要としませんか? したがって、実質的に連続したメモリの場合にどのページ テーブル エントリを作成する必要があるか。
memory-management - Linux カーネル vfree() マスター カーネル ページ テーブルとプロセスのページ テーブルを同期する方法は?
vmalloc() がどのように動作するかは知っています。(カーネル空間の) プロセスが vmalloc() に属するメモリにアクセスしようとすると、ページ フォールトが発生し、同期が行われます。</p>
しかし、vfree() を呼び出すと、どのようにプロセスがページ テーブルを更新して、マスター カーネルのページ テーブルと同期するのでしょうか。
ありがとう。
linux - vmalloc - ページ フォールト時に別のプロセスのページ テーブルを更新する
Mel Gorman の本 Understanding the Linux Virtual Memory Manager を読んでいて、vmalloc() 領域へのアクセスが原因でプロセスのページ テーブルが更新される理由についての質問に出くわしました。このプロセスを説明するために彼が使用する図へのリンクを次に示します。
プロセスによって実行された vmalloc と、vmalloc() 領域にアクセスする別のプロセス
この場合に更新されるページ テーブルは、マスター リファレンス カーネル ページ テーブルであり、プロセス A のページ テーブルではありません。私の質問は、なぜプロセス B がプロセス A によって vmalloc() された領域にアクセスするのかということです。現実世界とは別のプロセスが割り当てたメモリ領域にプロセスがアクセスするシナリオは? 質問は基本的にこれに要約されます: プロセス A が仮想メモリを割り当てた場合、ある時点で、その仮想メモリによってバックアップされる物理メモリへの書き込みが開始されます。なぜ別のプロセスがそのメモリにアクセスしたいのでしょうか?
kmalloc - vmalloc と kmalloc はいつ使用しますか?
kmalloc は物理メモリと仮想メモリに連続したメモリを割り当て、vmalloc は仮想メモリに連続したメモリを割り当てますが、物理メモリに割り当てられたメモリが連続することを保証しません。
したがって、kmalloc は vmalloc よりもはるかに優れているようです。vmalloc、kmalloc をいつ使用するかわかりませんか? 実際に vmalloc を使用した例を誰か教えてもらえますか?