当前位置: 首页 > news >正文

网站空间的权限网页设计模板百度云

网站空间的权限,网页设计模板百度云,团购网站APP怎么做,wap网站制作TLB TLB#xff08;Translation Lookaside Buffer#xff09;是 CPU 内部用于缓存线性地址与物理地址映射关系的表。 TLB结构 ATTR#xff1a;属性 在10-10-12分页模式下#xff1a;ATTR PDE属性 PTE属性在2-9-9-12分页模式下#xff1a;ATTR PDPTE属性 P…TLB TLBTranslation Lookaside Buffer是 CPU 内部用于缓存线性地址与物理地址映射关系的表。 TLB结构 ATTR属性 在10-10-12分页模式下ATTR PDE属性 PTE属性在2-9-9-12分页模式下ATTR PDPTE属性 PDE属性 PTE属性 LRU统计信息 由于TLB的大小有限因此当TLB被写满、又有新的地址即将写入时TLB就会根据统计信息来判断哪些地址是不常用的从而将不常用的记录从TLB中移除。 注意 不同的CPUTLB大小不同只要Cr3发生变化TLB立即刷新一核一套TLB由于操作系统的高2G映射基本不变因此如果Cr3改了TLB刷新的话重建高2G以上很浪费。所以PDE和PTE中有个G标志位当PDE为大页时G标志位才起作用如果G位为1刷新TLB时将不会刷新PDE/PTEG位为1的页当TLB写满时CPU根据统计信息将不常用的地址废弃保留最常用的地址 TLB种类 TLB在X86体系的CPU中的实际应用最早是从Intel的486CPU开始的在X86体系的CPU中一般都设有如下4组TLB: 第一组缓存一般页表4K字节页面的指令页表缓存Instruction-TLB第二组缓存一般页表4K字节页面的数据页表缓存Data-TLB第三组缓存大尺寸页表2M/4M字节页面的指令页表缓存Instruction-TLB第四组缓存大尺寸页表2M/4M字节页面的数据页表缓存Data-TLB 实验 体验TLB的存在 实验在 2-9-9-12 分页的环境下进行。代码如下 #include Windows.h #include stdio.h #include stdlib.hvoid *p1, *p2;unsigned int val1, val2, val3; unsigned int plt1, plt2; const unsigned int plt0 0xC0000000;__declspec(naked) void callGate() {__asm {push 0x30pop fspushadpushfd}//将 p1 对应物理页挂到 0 地址处plt1 ((unsigned int) p1 9 0x7FFFF8) | 0xC0000000;*(unsigned int *) plt0 *(unsigned int *) plt1;*(unsigned int *) (plt0 4) *(unsigned int *) (plt1 4);//读取 0 地址处内存val1 *(unsigned int *) 0;//将 p2 对应物理页挂到 0 地址处plt2 ((unsigned int) p2 9 0x7FFFF8) | 0xC0000000;*(unsigned int *) plt0 *(unsigned int *) plt2;*(unsigned int *) (plt0 4) *(unsigned int *) (plt2 4);//读取 0 地址处内存val2 *(unsigned int *) 0;//刷新 TLB__asm {mov eax, cr3mov cr3, eax}//读取 0 地址处内存val3 *(unsigned int *) 0;__asm {popadpopfdretf} }int main() {unsigned char buf[] {0, 0, 0, 0, 0x48, 0};p1 VirtualAlloc((void *) 0x600000, 0x1000, MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE);p2 VirtualAlloc((void *) 0x700000, 0x1000, MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE);printf(%X %X\n, (int) p1, (int) p2);if (p1 NULL || p2 NULL) {printf([-] VirtualAlloc failed.);return 0;}*(unsigned int *) p1 0x123;*(unsigned int *) p2 0x456;printf(callGate: %X\n, callGate);system(pause);__asm {pushadpushfdcall fword ptr bufpopfdpopadpush 0x3bpop fs}printf(val1: %X\nval2: %X\nval3: %X\n, val1, val2, val3);return 0; }运行结果 可以发现 在 val1 被赋值完成后即使 0 地址被挂上了新的物理页再对 val2 进行赋值val1 和 val2 输出的值是相同的。在 Cr3 刷新后0地址没有被挂上新的物理页对 val3 进行赋值后val3 却输出了新的值。 这是因为 Cr3 刷新前0 地址第一次被val1访问时线性地址与物理地址的对应关系被写入了 TLB 中因此在对 val2 赋值时TLB 的记录没有被刷新访问的还是原来的物理页。 体验全局页的意义 将前面的代码做如下改动 由于 p1 的 PLT 写入 0 地址对应 PLT 时将 G 位 置 1刷新 TLB 时不会更新该数据。 INVLPG指令的意义 在上一实验代码的基础上使用 INVLPG 指令刷新 0 地址对于的 TLB 数据结果在 PLT 的 G 位置 1 的情况下依然能刷新。 控制寄存器 描述 控制寄存器用于控制和确定CPU的操作模式。控制寄存器有五个分别是Cr0 Cr1 Cr2 Cr3 Cr4。其中Cr1保留Cr3为页目录表基址。 Cr0寄存器 结构图 PE位启用保护Protecction Enable标志 PE1保护模式PE0实地址模式 这个标志仅开启段级保护而没有启用分页机制 若要启用分页机制那么PE和PG标志都要置位 PG位分页机制标志 PG1开启了分页机制PG0未开启分页机制 在开启这个标志位之前必须已经或者同时开启PE标志 PG0且PE0处理器工作状态为实地址模式PG0且PE1处理器工作状态为没有开启分页机制的保护模式PG1且PE0不存在。在PE没有开启的情况下无法开启PGPG1且PE1处理器工作状态为开启了分页机制的保护模式 WP位写保护Write Proctect标志 对于Intel 80486或以上的CPUCR0的16位是写保护标志 当设置该标志时处理器会禁止超级用户程序例如特权级0的程序向用户级只读页面执行写操作 当CPL3的时候 如果 WP0 可以读写任意用户级物理页只要线性地址有效如果 WP1 可以读取任意用户级物理页但对于只读的物理页则不能写 Cr2寄存器 描述 当CPU访问某个无效页面时会产生缺页异常此时CPU会将引起异常的线性地址存放在CR2中。 结构图 当CPU访问某个无效页面时会产生缺页异常此时CPU会将引起异常的线性地址存放在CR2中。 Cr4寄存器 结构图 PAE PAE12-9-9-12分页PAE010-10-12分页 PSE大页PS1是否有效
http://www.tj-hxxt.cn/news/232339.html

相关文章:

  • 免费商城系统网站建设莱芜大众网
  • 有了域名怎么建网站联系方式承德网站建设价格
  • 夏津网站建设wordpress 代码演示
  • 网站右侧浮动网站建设需要的设备和软件
  • thinkphp制作网站开发那些网站做任务领q币
  • 网站链接分析单位内网网站建设 开设栏目
  • 网站建设教程ppt网络舆情监测存在的问题
  • 九度网站建设wordpress 去google
  • 查询建设公司业绩网站做电子商务网站的总结
  • 厦门网站制作计划wordpress高级版
  • wordpress可以做电影网站吗策略网页游戏排行榜
  • 微信订阅号关键网站自助建站系统搭建网站
  • 网站logoico怎么做面包类网站设计
  • 平面设计师的网站凡科网小程序
  • wordpress主题demo导入东莞seo计费管理
  • 上海公司网站制作价格穿着西裤做的网站
  • 手机做任务的网站有哪些长春建设
  • 扬州网站建设外包东莞网络营销推广公司
  • 网站建设流程及费用网站建设的流程图示
  • asp.net 微网站开发教程网站的排版问题
  • 黔东南州两学一做教育网站百度优化培训
  • 从化区建设局网站做网站都需要哪些费用
  • 网站设计制作合同范本最好的wordpress 网站
  • 小型教育网站的开发与建设论文中国深圳航空公司官方网站
  • 珠海建站程序网店运营公司
  • 学校网站建设总结报告国家企业信息认证系统
  • 自动发卡网站怎么做app开发者需要更新
  • 网站设计动画广告推广免费发布
  • 建设银行积分商城网站做微信推送的网站
  • 做网站服务器硬盘多大网站开发的调研内容