_nosay 发表于 2016-06-22 14:04

回复 10# amarant

感谢版主的鼓励,我还是新手,问的多,回答的少。

amarant 发表于 2016-06-22 16:00

回复 11# _nosay

年轻人好好学,振兴cu就靠你们拉。

forxy 发表于 2016-06-23 21:10

谢谢!回复 9# _nosay


   

forxy 发表于 2016-06-23 21:11

版主亲自回复,多谢!回复 8# amarant


   

forxy 发表于 2017-02-25 13:30

captivated 发表于 2016-06-20 18:20
其实是集成在CPU里面的MMU发现的?O(∩_∩)O~

谢谢回答,如果进程访问的是另外一个进程的某个地址,他们的特权等级是一样的,mmu只是做地址计算,他如何发现异常,难道计算过程还有进程id之类的元素参与计算吗?可是cpu在那么低的层次,应该看不到进程id吧。

forxy 发表于 2017-02-25 13:31

amarant 发表于 2016-06-18 21:32
是cpu发现的

谢谢回答,如果进程访问的是另外一个进程的某个地址,他们的特权等级是一样的,mmu只是做地址计算,他如何发现异常,难道计算过程还有进程id之类的元素参与计算吗?可是cpu在那么低的层次,应该看不到进程id吧。

forxy 发表于 2017-02-25 13:32

amarant 发表于 2016-06-22 09:28
nosay同学说的挺有意思。
lz问的问题都是体系架构的基础知识。cpu在执行指令的时候,有取值,解码,执行, ...

谢谢回答,如果进程访问的是另外一个进程的某个地址,他们的特权等级是一样的,mmu只是做地址计算,他如何发现异常,难道计算过程还有进程id之类的元素参与计算吗?可是cpu在那么低的层次,应该看不到进程id吧。

_nosay 发表于 2017-02-25 14:01

回复 17# forxy


1. 硬件工程师通过电路的知识,为硬件设计了一条规则,“段寄存器rpl值为3时,好多事就不准做了”
2. 软件刚执行时,段寄存器rpl值为0,想干啥就干啥,包括把段寄存器rpl值设置为3(自宫{:qq1:})

因为1,软件才有基础划分出内核和应用;
由于2,硬件要考虑,软件权限降级后,如何恢复(把内核和所有正在执行的应用想象成一个软件),所以设计了各种门

硬件相对于软件,内核相对于应用,都可以理解为“框架”,设计框架时,不用知道将来有人会向框架里填些什么,但框架的设计却是根据上层的需求来的。

for_truth 发表于 2017-02-25 17:31

应该是内核的内存管理机制会对入栈的实参做判断的吧,具体的要看一下memset的怎么实现了吧

for_truth 发表于 2017-02-25 17:35

当然归根结底还是CPU啊
页: 1 [2] 3
查看完整版本: 内存异常是cpu发现的吗?