无忧资源站

 找回密码
 加入我们
查看: 1460|回复: 0

[C/C++] 数据结构之PTE原型介绍-x64

[复制链接]

56

主题

58

帖子

1058

积分

无忧资源站

Rank: 9Rank: 9Rank: 9

积分
1058

钻石用户勤劳达人超级萌主武林秘籍实例会员悬赏达人滴水穿石皇冠会员退伍军人铂金会员暗号达人打卡达人活跃会员热心会员推广达人宣传达人灌水之王突出贡献优秀版主荣誉管理站点元老

QQ
发表于 2023-5-28 15:06:55 | 显示全部楼层 |阅读模式
typedef struct {
    unsigned long long present:1;
    unsigned long long writable:1;
    unsigned long long user:1;
    unsigned long long write_through:1;
    unsigned long long cache_disable:1;
    unsigned long long accessed:1;
    unsigned long long dirty:1;
    unsigned long long huge_page:1;
    unsigned long long global:1;
    unsigned long long unused1:3;
    unsigned long long phys_addr:52;
    unsigned long long unused2:11;
    unsigned long long no_execute:1;
} pte_t;
下面是对PTE结构原型的详细解释:

  • present: 该页面是否被映射,1表示该页面被映射,0表示该页面未被映射。
  • writable: 该页面是否可写,1表示可写,0表示只读。
  • user: 用户态是否可访问该页面,1表示可访问,0表示只可以在内核态中访问。
  • write_through: 写入是否通过写直达缓存(write-through cache),1表示通过,0表示不通过。
  • cache_disable: 该页面是否可以被缓存,1表示不能被缓存,0表示可以被缓存。
  • accessed: 该页面是否被访问过,1表示访问过,0表示未访问。
  • dirty: 该页面是否被修改过,1表示修改过,0表示未修改。
  • huge_page: 是否是大页面(1 GB或2 MB),如果是1 GB页面,则此字段被设置为1;如果是2 MB页面,则此字段被设置为0。
  • global: 该页面是否被全局映射,1表示是,0表示否。全局映射允许其他进程使用该页的映射,从而减少页表更新的开销。
  • unused1: 保留字段,当前未用。
  • phys_addr: 映射到物理地址的页帧号,占用52位。在64位系统中,物理地址空间的大小一般为2^52字节。
  • unused2: 保留字段,当前未用。
  • no_execute: 是否禁止执行该页面的代码,1表示禁止执行,0表示可执行。

  • 总体来说,PTE结构原型用于描述虚拟地址空间中的每一页,其中包含了很多关于该页的属性,比如是否可读写、是否可缓存、是否被访问过等等。这些属性信息可以帮助操作系统在访问虚拟内存时做出正确的决策,保证系统的稳定性和正确性。




无忧资源专区所有资源均由管理员核实测试后发布,均可放心下载!

QQ|SiteMap|Map|小黑屋|无忧资源站

GMT+8, 2024-5-19 13:54 , Processed in 0.084923 second(s), 21 queries .

无忧资源站

Copyright © 2022-2032 www.wyzyz.net

快速回复 返回顶部 返回列表