zoukankan      html  css  js  c++  java
  • 内核空间用户空间, 怎么搞的呢?

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

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


    其实就是这么玩的:
    CPU有自己寄存器, 进程切换 线程切换有一个状态保持, 有一种寄存器就是专门用来保存这种状态信息的。(这也只是寄存器的一种)
    还有一种寄存器叫 PSW的, 有一个状态位 非0既1 两种状态。

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


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

    如果是另外一个状态位,CPU的指令集会告诉你,我的这个权限直到 用户态,
    他没有控制硬件的指令, 没有指令就没有权限,没有权限就无法操作他们, 也就只能操控用户态的3个G)

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

  • 相关阅读:
    英语apyrite红碧玺apyrite单词
    英语SouthRedAgate南红玛瑙
    英语kutnahorite金田黄kutnahorite单词
    英语chalchite蓝绿松石chalchite单词
    单词demantoite翠榴石demantoite英语
    英语fieldyellowstone田黄石fieldyellowstone单词
    Http通讯Util
    redis分布式锁工具类
    永不重复的id生成器
    二维码生成工具类
  • 原文地址:https://www.cnblogs.com/chengege/p/11510492.html
Copyright © 2011-2022 走看看