本文主要是介绍(两百七十二)学习用户态和内核态,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
学习
https://zhuanlan.zhihu.com/p/69554144
用户态:应用程序运行的空间
内核态:内核运行的空间,管理控制计算机的硬件资源,例如协调CPU资源,分配内存资源,并且提供稳定的环境供应用程序运行。
用户态和内核态体系架构上以系统调用为分界线进行区分,另外该体系也划分出了优先级,用户态的优先级相比内核态低,以此来对资源进行有效利用。
从用户态到内核态切换可以通过三种方式:
- 系统调用,这个上面已经讲解过了,在我公众号之前的文章也有讲解过。其实系统调用本身就是中断,但是软件中断,跟硬中断不同。
- 异常:如果当前进程运行在用户态,如果这个时候发生了异常事件,就会触发切换。例如:缺页异常。
- 外设中断:当外设完成用户的请求时,会向CPU发送中断信号。
学习
https://blog.csdn.net/JH_Zhai/article/details/79861169
说明了内核本质上是控制硬件资源的软件。
用户态的应用程序可以通过三种方式来访问内核态的资源:
1)系统调用
2)库函数
3)Shell脚本
中断是指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行。
这篇关于(两百七十二)学习用户态和内核态的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!