百科问答小站 logo
百科问答小站 font logo



x86 global页在新的page directory里不存在会发生什么? 第1页

  

user avatar   bei-ji-85 网友的相关建议: 
      

一直没明白题主的问题,我原来的回答可能对不上题目。

题主问的是TLB的状态,不是内存的状态,如果一个Page-Table的P位是0,G位是1,那么切换的时候应该是被刷掉的:

The processor is always free to invalidate additional entries in the TLBs and paging-structure caches.

---------------------------------

原回答:

1. 页内容没什么变化,load cr3不会改变内存里的内容;

2. 如果这个内存没有被访问,那么代码还会继续工作;

3. 如果这个页正好是当前的代码页,正在被执行,并且没有任务切换(包括中断),那么可能会继续正常执行,直到运行到当前页之外,因为页的物理地址可能是被缓存的,只要你的代码没跳出当前页,MMU可能会缓存当前的物理地址。不同CPU可能不一样,不一定真的跑到页表边界才出问题。

4. 如果这个页是代码页并且正在被执行,一旦发生中断或者任务切换,再就没办法正常切回来了,有时候,访问某些硬件寄存器也会导致一系列的动作发生(比如某些虚拟化指令等等),无法正常执行。

4. 如果是stack segment之类的,只要你执行一下push pop操作,马上就crash;

5. 普通的数据段访问,暂时不好确定,结果应该也是crash。




  

相关话题

  雷军写代码水平如何? 
  x86 win32下的汇编指令集可认为是 cpu提供的指令集 + win32提供的指令集 吗? 
  Windows 内核和 Linux 内核谁更复杂? 
  如果龙芯当初选择ARM架构,现在会怎样? 
  可以预先将 X86 平台机器码译码到 micro operations 来解决 X86 译码效率低吗? 
  为什么英特尔x86等多数中央处理器不支持源操作数和目标操作数同时为内存的指令? 
  寄存器会比用库开发,程序运行更快吗? 
  假如用汇编语言重制某游戏或者软件能否降低 CPU 性能损耗? 
  可以预先将 X86 平台机器码译码到 micro operations 来解决 X86 译码效率低吗? 
  x86 global页在新的page directory里不存在会发生什么? 

前一个讨论
请问这是四核还是双核四线程?
下一个讨论
嵌入式硬实时OS方面,国产技术能力怎么样?





© 2024-09-19 - tinynew.org. All Rights Reserved.
© 2024-09-19 - tinynew.org. 保留所有权利