31、Linux内存管理与信号机制详解

Linux内存管理与信号机制详解

1. 内存锁定与解锁

在Linux系统中,内存锁定和解锁操作对于控制内存的使用和交换有着重要意义。大多数应用程序会指定两个值的按位或操作。当调用成功时返回0,失败则返回 -1,并将 errno 设置为以下错误代码之一:
- EINVAL :参数 flags 为负数。
- ENOMEM :调用者试图锁定的页面数量超过了 RLIMIT_MEMLOCK 资源限制所允许的数量。
- EPERM RLIMIT_MEMLOCK 资源限制为0,且进程不具备 CAP_IPC_LOCK 能力。

若要从物理内存中解锁页面,允许内核根据需要将页面交换到磁盘,POSIX标准化了两个接口:

#include <sys/mman.h> 

int munlock (const void *addr, size_t len); 
int munlockall (void);

munlock() 系统调用用于解锁从 addr 开始、长度为 len 字节的页面,它会撤销 mlock() 的效果。 munlockall() 系统调用则会撤销 mlock

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值