Intel MPK (Memory Protection Keys)

MPK是一种用户空间基于页的内存权限管理机制。

标记

将页表条目中预留的4个位用于"protection key",最多可以提供16个key来标记内存页 (0000~1111)。

权限控制

PKRU (protection key rights for user pages) 是一个32位的寄存器,用于存储每个key的访问权限。每个key具有两个对应的位(访问禁止写禁止)。这些权限仅在数据访问时强制执行,而对指令提取无效。


指令RDPKRUWRPKRU分别用于读和写PKRU,这两条指令都不是特权指令,在用户空间运行,不需要上下文切换,开销小(20cycles左右)。

硬件支持情况

与系统调用mprotect区别:

  1. 更新PKRU不需要系统调用,比mprotect快很多(MPK在标记页的时候需要进行系统调用)。
  2. MPK的保护时线程本地的,不同线程的访问权限可能不一致,与对应的PKRU有关,而mprotect会影响整个进程。

https://community.intel.com/legacyfs/online/drupal_files/managed/a4/60/325384-sdm-vol-3abcd.pdf
https://www.kernel.org/doc/html/latest/core-api/protection-keys.html
https://charlycst.github.io/posts/mpk/
https://mstmoonshine.github.io/p/intra-unikernel-mpk/

Intel MPK介绍相关推荐

  1. Intel HEX介绍

    来源: http://baike.baidu.com/view/1229888.htm Intel HEX介绍 记录格式 Intel HEX由任意数量的十六进制记录组成.每个记录包含5个域,它们按以下 ...

  2. Intel TBB 介绍

    在多核的平台上开发并行化的程序,必须合理地利用系统的资源 - 如与内核数目相匹配的线程,内存的合理访问次序,最大化重用缓存.有时候用户使用(系统)低级的应用接口创建.管理线程,很难保证是否程序处于最佳 ...

  3. Intel IPP 介绍与Demo程序

    英特尔 ®  集成性能基元 6.0 http://www.intel.com/cd/software/products/apac/zho/358639.htm#stp

  4. Intel oneAPI介绍

    Intel oneAPI 初见 软件工业.互联网.物联网.AI.大数据等技术的持续发展,让越来越多的传统业务向着信息化.自动化.智能化的方向上快速演进.这种演化的过程中不可避免的造成了软.硬件体系的蓬 ...

  5. vtune下载 windows_intel vtune 介绍、安装和使用

    intel vtune 介绍 intel vtune 安装包下载地址 intel® VTune™ Amplifier 2019 安装手册 - Linux* OS: intel® VTune™ Ampl ...

  6. vtune mysql user_intel vtune 介绍、安装和使用

    intel vtune 介绍 intel vtune 安装包下载地址 intel® VTune™ Amplifier 2019 安装手册 - Linux* OS: intel® VTune™ Ampl ...

  7. 在Ubuntu 14.04平台上利用Intel的GPU实现硬件加速--基于VAAPI

    先前利用了一些时间去网上搜索资料,了解Intel的集显,特别是E3800系列的SOC,主要是因为老大安排一个任务,叫我协助另一个公司的同事调查这个SOC上的硬件加速功能,即硬件解码.这个事我很早就开始 ...

  8. 关于BLAS的简单介绍

    BLAS(Basic Linear Algebra Subprograms基础线性代数程序集)是进行向量和矩阵等基本线性代数操作的事实上的数值库.这些程序最早在1979年发布,是LAPACK(Line ...

  9. Harmonzing Performance and Isolation in Microkernels论文阅读

    Harmonizing Performance and Isolation in Microkernels with Efficient Intra-kernel Isolation and Comm ...

最新文章

  1. SQLServer2008/2005 生成数据字典语句
  2. CTFshow 命令执行 web38
  3. 重复类发展手法_正确的护肤手法(动态演示),喜欢就拿去收藏吧!
  4. Linux学习总结(11)——Linux文件查找
  5. instanceof、isinstance、isAssignableFrom的区别
  6. win10恢复经典开始菜单_打造个性化开始菜单,Win10 开始菜单任务栏美化增强软件...
  7. 00004 死亡阴影.0001:配置文件的Unity包与修改
  8. 五线谱音名和组别对照表_五线谱简谱对照表
  9. SIP账号注册的SIP软电话的使用和常见问题
  10. 设计模式大作业绘图系统【六种设计模式+文档】
  11. APP - 腾讯微信上线“一证通查”功能,还没查的速度看看
  12. 黑苹果双系统时间不一致_解决 Windows/macOS 双系统时间不同步问题
  13. 微信小程序——云函数三方库request-promise的使用详解
  14. 【思考】开学第一课--大学的终结,终生学习
  15. Vue+element 实现英雄榜功能
  16. Java的本地内存 直接内存 元空间
  17. Java8新特性之新时间API
  18. onenote使用记录(1):新建与删除笔记本
  19. EBS FOLDER文件夹报:FRM-41045和FRM-40105
  20. java解应用题思路是什么_小学数学应用题解题策略归纳

热门文章

  1. 火牛视频突然“变脸”将镰刀挥向用户,请你莫再充钱
  2. 看不到的传感器--高精度地图HD Map
  3. 基于AntBlazor的学生在线练习系统实现过程的简单总结
  4. sqli-labs/Less-2
  5. 微信小程序 - 商城项目 - 购物车
  6. 乖离率BIAS指标使用详解
  7. 达人评测锐龙r7 6850u和 R7 6850HS选哪个好
  8. ios android gpu,流畅秒杀iOS Android 4.0 GPU加速测试
  9. 什么软件测试手机亮度,手机屏幕坏点检测方法有哪些【详细介绍】
  10. Vue.js框架入门经典项目TodoMVC