最近我一直在阅读关于内存分配器的内容,比如Hoard和SLAB。但是我没有得到一些东西:
一个。这些分配器是管理物理内存还是虚拟内存。 {如果(你的答案是物理记忆)请阅读b点,否则,阅读点c}
湾如果他们管理物理内存,由于这两个alloctor都使用了每个CPU的数据结构,他们最终不会从同一个物理页面向不同的进程提供空间。对于例如考虑T1在CPU C上启动并请求int。在此之后让T1被抢占并且T2开始执行并且它还要求int。由于我们的结构是按CPU进行的,因此我们最终不会满足来自同一物理页面的请求。
℃。如果他们管理虚拟内存,那么为什么我们说所有数据结构都是每个CPU,而我们应该说它们是每个进程,因为在每个上下文切换时我们都必须重新填充这些数据结构。