私は現在、オペレーティングシステムでメモリ管理作業をしています。
割り当て単位は、オペレーティングシステムがプロセスに割り当てる最小のメモリ単位です。
私が読んでこのページ「カーネル内のメモリ割り当て」セクションでは、ページはオペレーティングシステムがプロセスに割り当てる最小単位です。
しかし、このページ「割り当てられたメモリ」セクションは、オペレーティングシステムがそれをより小さなチャンク(6バイトなど)に分割し、要求に応じてアプリケーションに提供できることを示しています。
両方のリンクが同じ内容を話しているかどうかはわかりませんが、私の質問は次のとおりです。仮想メモリとページングを持つオペレーティングシステムの共通割り当て単位は何ですか?
答え1
2番目の参照では、次のように言います。
メモリアロケータは大きなメモリチャンク(4ページまたは4 * 4 KiBなど)を取り、より小さなチャンクに分割します。
「メモリアロケータ」はカーネルではなく、mallocのようなlibcルーチンです。
カーネルはメモリを割り当てますプロセスへページサイズのチャンクで構成されます。アプリケーションがこれらのページを要求して解放すると、mallocはこれらのページの使用済み部分と未使用部分を追跡します。