ysa*_*sap 3 linux ubuntu memory-management
根据mlock()手册页:
当调用成功返回时,保证所有包含指定地址范围一部分的页面都驻留在RAM中;这些页面保证保留在RAM中,直到以后被解锁为止。
这是否还可以确保这些页面的物理地址在其整个生命周期中或直到被解锁之前都是恒定的?
如果没有(也就是说,如果可以由内存管理器移动它,但仍保留在RAM中),那么关于新位置或发生这种更改的事件是否可以说些什么?
更新:
关于RAM中锁定页面的一致性,可以说什么吗?如果CPU有高速缓存,则锁存是否能保证RAM与高速缓存的一致性(假设写回高速缓存)?
否。已mlocked使用内核的不可取消的LRU list管理页面。顾名思义(并mlock()保证),这些页面无法从RAM中逐出。但是,页面可以从一个物理页面框架迁移到另一个。这是Unevictable LRU Infrastructure的摘录(为清楚起见添加了格式):
迁移锁定页面
正在迁移的页面已从LRU列表中隔离出来,并在取消页面映射,更新页面的地址空间条目以及复制内容和状态之前保持锁定状态,直到页面表条目已替换为引用该条目的条目为止。新页面。 Linux支持
mlocked页面和其他不可撤消页面的迁移。 这涉及简单地将PG_mlockedandPG_unevictable状态从旧页面移动到新页面。
| 归档时间: |
|
| 查看次数: |
658 次 |
| 最近记录: |