1.什么是指令
- C语言代码-----翻译------->机器语言指令(一条高级语言的代码翻译过来可能会对应多条指令)
- 指令:CPU能识别、执行的最基本命令,例如:加法指令就是让CPU进行加法运算
2.两种指令、两种处理器状态、两种程序
-
新的问题:
- 有的指令“人畜无害”,例如:加减乘除这些普通的运算指令。
- 有的指令有很高的权限。例如:内存清零指令。如果用户程序可以使用这个指令,就意味着一个用户可以将其他用户的内存数据随意清零,这样做显然是很危险的。
-
两种指令
- 特权指令:如内存清零指令,不允许用户程序使用
- 非特权指令:如普通的运算指令
-
CPU如何判断当前是否可以执行特权指令?
-
两种处理器状态:用程序状态寄存器PSW中的某个标志位来标识当前处理器处于什么状态。如0为用户态,1为内核态
- 用户态,此时CPU只能执行非特权指令
- 内核态,此时CPU特权指令、非特权指令都可以执行
-
两种处理器状态:用程序状态寄存器PSW中的某个标志位来标识当前处理器处于什么状态。如0为用户态,1为内核态
-
两种程序
- 内核程序:操作系统的内核程序是系统的管理者,既可以执行特权指令,也可以执行非特权指令,运行在内核态。
- 应用程序:为了保证系统能安全运行,普通应用程序只能执行非特权指令,运行在用户态。
3.操作系统的内核
-
操作系统中的哪些功能应该由内核程序实现呢?
-
原子性:程序要么不执行,要么一直被执行到结束。其运行只能一气呵成,中间不能被中断。
操作系统的内核.png -
内核是计算机上配置的底层软件,是操作系统最基本、最核心的部分。
-
实现操作系统内核功能的那些程序就是内核程序。
操作系统内核功能.png -
大内核与微内核
-
大内核:将操作系统的主要功能模块都作为系统内核,运行在内核态
- 优点:高性能
- 缺点:内核代码庞大、结构混乱、难以维护
-
微内核:只把最基本的功能保留在内核
- 优点:内核功能少、结构清晰、方便维护
- 缺点:需要频繁地在用户态和内核态之间切换,性能低
-
大内核:将操作系统的主要功能模块都作为系统内核,运行在内核态
网友评论