浅谈操作系统的用户态和内核态,


浅谈操作系统的用户态和内核态

我们经常会听到程序的用户态和内核态,一个程序从用户态进入了内核态。。。

什么是用户态和内核态

内核态和用户态到底指的是什么呢?我们这就解开其神秘面纱

所谓的用户态、内核态,实际上是处理器(cpu)的一种状态,在 cpu 状态字里面用 1bit 表示

什么是用户态

也叫普通态,cpu 访问资源有限

用户态的几个特点

什么是内核态

也叫特权态,cpu 可以访问计算机的任何资源

内核态的特点?

为什么需要有用户态和内核态

那么,经过上面的解释,应该都了解了什么是用户态和内核态。

BUT!有没有想过,操作系统为什么要搞出用户态和内核态?

如果都处于一个态下,有什么问题吗?

想象一下,如果一个国家的所有人都能获得国家的机密资料、控制国家资源,那这个国家也就离崩溃不远了。

操作系统也是如此,所以我们要限制不用的程序访问资源的权限。

操作系统是如何控制不同态的权限的

要控制权限,必须要对程序发出的每一条指令进行检查。而这种检查被称为 地址翻译,这里不详细展开。内核态程序通过绕过地址翻译执行特权指令,从而访问所有资源。

程序应该运行在用户态还是内核态?

  • 用户态

    • 能运行在用户态就运行在用户态
    • 涉及用户数据和应用的操作
  • 内核态

    • 牵扯到计算机本体的操作
    • 对时序要求比较高的操作

用户态和内核态是如何切换的?

通过 软中断

参考资料

https://blog.csdn.net/ddna/article/details/4941373 用户态和内核态是如何切换,比较底层

https://blog.csdn.net/shanghx_123/article/details/83151064 用户态和内核态是如何切换

https://www.cnblogs.com/Sargreis/p/6874866.html 用户态和内核态是如何切换,讲的比较通俗

《操作系统之哲学原理第2版》- 邹恒明

相关内容

    暂无相关文章