最近、Hoard や SLAB などのメモリ アロケータについて読んでいます。しかし、私はいくつかのものを手に入れませんでした:
a. これらのアロケータは、物理メモリまたは仮想メモリを管理していますか。{If (あなたの答えが物理メモリである場合) ポイント b を読んでください。それ以外の場合はポイント c を読んでください}
b. 物理メモリを管理する場合、これらのアロクターは両方とも CPU ごとのデータ構造を使用するため、同じ物理ページから別のプロセスにスペースを与えることになりませんか。たとえば、T1 が CPU C で開始し、int を要求するとします。この後、T1 がプリエンプトされ、T2 が実行を開始し、int も要求します。私たちの構造は CPU ごとであるため、同じ物理ページからの両方の要求を満たすことになるわけではありません。
c. また、仮想メモリを管理する場合、すべてのデータ構造が CPU ごとであると言うのではなく、プロセスごとであると言うべきです。コンテキスト スイッチごとに、これらのデータ構造を再設定する必要があるからです。