编程接口指南

锁定页面

调用 mlock(3C) 会要求将一个内存段锁定到系统的物理内存中。构成指定段的页面为错误页面。每个页面的锁定计数将递增。锁定计数值大于零的任何页面均可免于进行换页活动。

特定页面可以由多个进程通过不同映射多次锁定。如果两个不同的进程锁定同一页面,则此页面会保持锁定状态,直到这两个进程都解除其锁定为止。但是,在给定的映射中,页面锁定不会进行嵌套。同一进程对地址相同的锁定接口进行的多次调用可以通过单个解除锁定请求删除。

如果删除了用于执行锁定的映射,则会隐式解除锁定内存段。通过关闭或截断文件来删除页面时,也会隐式解除锁定此页面。

调用 fork(2) 之后,子进程无法继承锁定。如果具有某些锁定内存的进程派生了子进程,则此子进程必须代表自己执行内存锁定操作才能锁定自己的页面。否则,此子进程会导致写复制页面错误,这些错误通常是与派生进程关联的不利结果。