APP下载

基于Linux系统对mlock原理及其性能的研究

2021-05-20苗杰

江苏通信 2021年2期
关键词:进程物理功能

苗 杰

国家计算机网络与信息安全管理中心江苏分中心

0 引言

在一些业务的使用过程中,严格时间相关的程序,锁住物理内存,可以避免内存页频繁调出调入带来的性能损耗。对于安全性要求较高的应用程序,需要敏感数据被禁止输出到交换文件中,否则程序结束后,攻击者就可能从交换文件中恢复出这些敏感数据。Linux内核通过mlock的四个函数来实现物理内存页的锁定和解锁,虚拟化环境中也可修改虚拟机的配置文件来启用内存锁定功能,从而满足一些应用场景的需求。

1 mlock简介及其原理

mlock(memory locking)是Linux内核实现内存锁定的一种方式,用来将进程使用的部分或者全部的虚拟内存锁定到物理内存中。mlock机制主要有以下功能:(1)被锁定的物理内存在被解锁或进程退出前,不会被页回收流程处理;(2)被锁定的物理内存,不会被交换到swap设备;(3)进程执行mlock操作,立刻分配物理内存。

mlock机制提供以下四个函数供使用,如表1所示。

表1 mlock相关函数

每个进程都拥有一段连续的虚拟内存,内核实际的使用情况并不是以整个虚拟内存为管理单位,而是将整个虚拟内存划分为若干个虚拟内存区域,内核中使用vm_area_struct数据结构来管理虚拟内存区域,简称vma。vma管理虚拟内存的方式如图1所示。

图1 vma管理虚拟内存

每一个vma代表一个已映射的、连续的且属性相同(如可读/写)的虚拟内存区域。内核采用链表和AVL树形式管理vma,链表用于遍历,AVL树用来查找。mlock操作会给相应的vma的vm_flags置一个VM_LOCKED标记,而这个标记则会影响到物理内存回收和交换。……

登录APP查看全文

猜你喜欢

进程物理功能
也谈诗的“功能”
只因是物理
债券市场对外开放的进程与展望
关于非首都功能疏解的几点思考
我不是教物理的
中西医结合治疗甲状腺功能亢进症31例
辨证施护在轻度认知功能损害中的应用
社会进程中的新闻学探寻
我国高等教育改革进程与反思
Linux僵死进程的产生与避免