操作系统(四)操作系统的运行机制
1.4 操作系统的运行机制
目录
操作系统其实也是一种程序,程序的执行过程也就是CPU执行一行行机器指令的过程。区别于一般程序员开发的应用程序,实现操作系统的程序就是内核程序。
1.4.1 内核程序&应用程序
内核程序:实现操作系统的程序称为内核程序,许多内核程序结合在一起便组成了操作系统内核。
应用程序:普通程序员借助编程工具以及高级语言所完成的程序叫做应用程序。
1.4.2 特权指令&非特权指令
特权指令:作为系统资源的管理者,操作系统可以使用一些直接关系重大的指令(内存清零等),这些指令被称为特权指令,而且应用程序没有办法直接使用特权指令,这保证了操作系统的安全。
非特权指令:应用程序可以使用的指令,如加减乘除指令等。
CPU在设计的时候便已经划分出了特权指令以及非特权指令,因此在执行这条命令前CPU就可以先判断指令的内容。
1.4.3 内核态&用户态
CPU有两种状态:内核态(或称核心态,管态)以及用户态(目态)。当CPU处于内核态时,说明此时正在运行的是内核程序,此时可以执行特权指令;当CPU处于用户态时,说明此时正在运行的是应用程序,此时只能执行非特权指令。在CPU中有一个寄存器叫做程序状态寄存器(PSW),该寄存器的01状态来表示此时处于内核态还是用户态。
下面我们来讲解一下,用户态与内核态之间是如何相互进行变化的。
内核态-->用户态:需要执行一条特权指令(指令内容是修改PSW寄存器状态),此时内核态转变为用户态,CPU主动让出使用权。
用户态-->内核态:由“中断”引发,当CPU检测到中断时,操作系统会强制将CPU变为内核态夺回CPU使用权,再执行与中断有关的一系列操作。
下面我们用一个小栗子来解释一下这个过程:
1.4.4 操作系统的内核
当我们刚开始使用操作系统的时候,会发现一些程序并不是必需的(记事本等),这些程序称为操作系统的非内核功能,下图是将操作系统进行了更进一步的划分。
有人将内核划分为大内核以及微内核,这两种划分在不同的时期各有优势。下面用企业来类比一下操作系统:
1.4.5 小结
需要注意的是: