1. 用户态与核心态的区别
1.1 定义上的区别
用户态与核心态是操作系统的两种运行级别,它用于区分不同的权力
核心态: 拥有或者访问计算机系统更多的资源的状态,也称为特权态,可以运行CPU任何指令
用户态:相比核心态来说,拥有或者访问计算机系统的资源较少,也称为非特权态,只能运行CPU非特权指令
例如当一个程序要访问操作系统的内核数据,如进程表,则需要在特权模式下才可以访问,用户态就不能访问
1.2 用户态和内核态的切换
内核态->用户态:当CPU处于内核态时,可以随意进入用户态
用户态–>内核态:当CPU处于用户态时,只有发生了系统调用和中断两种情况,才会从用户态切换到内核态
1.3 用户态和核心态各有优势
用户态和核心态各有优势:
核心态可以访问更多的系统资源,但可靠性、安全性要求高,维护管理复杂
用户态资源受限,但可靠性、安全性要求低,维护方便
1.4 哪些功能需要用核心态
- CPU管理和内存管理
- 诊断和测试:诊断和测试需要访问计算机所有资源
- 输入和输出管理:要访问各种设备和底层数据结构
- 文件系统管理:放在用户态容易破坏文件系统