用户态vs内核态

1.概念辨析

用户态(User Mode)

  • 权限较低:运行普通应用程序的环境,无法直接访问硬件和内核数据。

  • 隔离性:不同进程之间互相隔离,保护彼此的数据和状态。

  • 系统调用:当需要访问系统资源(如文件、网络、内存管理)时,必须通过系统调用进入内核态。

内核态(Kernel Mode)

  • 权限较高:内核和系统服务在此模式下运行,可以直接操作硬件、管理内存和调度进程。

  • 系统资源管理:负责管理所有硬件资源、内存以及进程间通信,确保系统稳定运行。

  • 受保护的环境:内核态代码受严格保护,防止用户程序直接访问或篡改,保证系统安全性。

  • 模式切换:从用户态进入内核态通常由系统调用、异常或中断触发,切换过程中需要保存和恢复执行上下文。

2.用户态内核态切换

在Linux,Windows,macOS这些操作系统中当用户态与内核态进行切换时,往往要进行进程上下文的切换,(如将寄存器,程序计数器(PC)的值存入内核栈中)然后切换到内核栈

那么问题来了,为什么要将进程上下文保存到内核栈中?而不是直接存储到用户栈

因为内核栈需要进入内核态才能够进行修改,安全性比较高。而用户栈很容易被篡改,如果切换到被篡改的进程上下文内容,那将会很恐怖。

3.优劣

直接看总结表吧

属性用户态(User Mode)内核态(Kernel Mode)
权限
安全性高,受限访问低,影响整个系统
访问硬件不能直接访问,需系统调用可以直接访问
效率低,系统调用开销大高,无需额外切换
稳定性进程崩溃不会影响系统错误可能导致系统崩溃
错误影响范围只影响当前进程可能影响整个系统
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值