Mysql运行在内核空间_内核空间用户空间, 怎么搞的呢?

32位的处理器因为寻址空间是 (2**32) 只有4G, 所以32位操作系统, 内存再高也么得啥用。

再说内存空间, 内存空间是一个整体的  没有办法说, 这1G给你  这3G给他。那么是怎么做的呢?

其实就是这么玩的:

CPU有自己寄存器, 进程切换 线程切换有一个状态保持, 有一种寄存器就是专门用来保存这种状态信息的。(这也只是寄存器的一种)

还有一种寄存器叫 PSW的, 有一个状态位 非0既1 两种状态。

内存其实就是一个整体, 是没有办法分开的. 无法分开 怎么做到分给内核态1G 用户态3G的呢?

就是靠这个状态位, 状态位是0的就是内核态, 状态位是1的就是用户态。

(真正有限制能力的还是CPU的指令集,

状态位是0的时候 CPU的指令集可以处理所有的硬件和软件, 4个G的内存空间你都能用。都是你的。

如果是另外一个状态位,CPU的指令集会告诉你,我的这个权限直到 用户态,

他没有控制硬件的指令, 没有指令就没有权限,没有权限就无法操作他们, 也就只能操控用户态的3个G)

所以自己的程序扔到内存去跑的时候, 状态位就是1. 他没有指令可以去操控硬件一类的东西。 所以处于用户态。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值