• 10-10-12分页


     

    属性含义

    • P:有效位。0 表示当前表项无效。
    • R/W: 0 表示只读。1表示可读可写。
    • U/S::0 表示3特权级程序可访问,1表示只能0、1、2特权级可访问。
    • PWT、PCD、请看后面的填坑篇
    • A::0 表示该页未被访问,1表示已被访问。
    • D::脏位。0表示该页未写过,1表示该页被写过。
    • PS::只存在于页目录。0表示这是4KB页,指向一个页表。1表示这是4MB大页,直接指向物理页。
    • PAT:这个不管
    • G:如果G位为1刷新TLB时将不会刷新PDE/PTE的G位为1的页,G=1切换进程该PTE扔然有效(这里学完TLB才能明白)
    • 有效:由软件控制的位,此位仅使用于多处理器系统,指明了可读写或只读

     1:)0为什么不能读写?

    打开windbg,随便查看一个进程的cr4

     该地址指向的是PDT表,且由于是0地址所以偏移是0,查看

     可以看到是168bd000存的是PTT表

     到这里可以发现PTE表是不存在物理页的

    2:)将0地址设为可读

    首先咱们要给0地址挂个物理页,否则你怎么都无法访问到,因为他是无效的

     查看这个程序的PDT

     再查看PTE

     发现没挂物理页,我这里随便挂了一个物理页上去(挂的PTD表)

     

     在通过代码打印出来

     ok,完成

    3:)多个PTE映射1个物理页

    这个其实跟上面的一样,改下物理页就好了,然后在打印一下就ok

  • 相关阅读:
    redis发布订阅
    redis学习笔记(面试题)
    redis安全 (error) NOAUTH Authentication required
    HDU3001 Travelling —— 状压DP(三进制)
    POJ3616 Milking Time —— DP
    POJ3186 Treats for the Cows —— DP
    HDU1074 Doing Homework —— 状压DP
    POJ1661 Help Jimmy —— DP
    HDU1260 Tickets —— DP
    HDU1176 免费馅饼 —— DP
  • 原文地址:https://www.cnblogs.com/pppyyyzzz/p/13835230.html
Copyright © 2020-2023  润新知