一、运行机制
1.两种指令
什么是指令?指令和代码的区别?
答:指令就是机器语言指令,而代码时高级语言,如C语言。一条高级语言代码,翻译过来可能是多条机器语言指令。指令时CPU能识别、执行的最基本命令。
为什么分为两种指令?
答:因为有些命令是危险的如:内存清零指令,而有些指令是安全的如:加减乘除等普通运算指令。
特权指令
这种指令不允许用户程序使用。
非特权指令
指令是安全的如:加减乘除等普通运算指令。
CPU是如何判断当前是否可以执行特权指令的,这就引入了处理器的两种状态。
2.两种处理器状态
CPU如何判断当前是否可以执行特权指令?
答:将处理器的状态分为两种用户态(目态)和核心态(管态)。使用程序状态字寄存器(PSW)中的某标志位来标识当前处理器处于什么状态用0、1表示。
核心态(管态)
此时CPU可以执行特权指令和非特权指令。
用户态(目态)
此时CPU只能执行非特权指令。
用户态切换到核心态只能通过中断。 核心态切换到用户态只需执行一条特权指令,将程序状态字(PSW)的标志位设置为“用户态”。
3.两种程序
有些程序需要使用特权指令,而有的程序只需使用非特权指令。所以计算机又将程序分为内核程序和非内核程序。
内核程序
操作系统的内核程序是系统的管理者。既可以使用特权指令,也可以使用非特权指令,运行在核心态。
应用程序
为了保证系统能安全的运行,普通应用程序只能执行非特权指令,运行在用户态。
问题:操作系统那些功能是由内核程序实现?
看操作系统内核。
二、操作系统内核
操作系统还可以分为两部分:内核(操作系统最基本、最核心的部分),非内核,内核又分为大内核和微内核。
三、操作系统的体系结构
大内核
内核又细分为时钟管理、中断处理、原语(特殊的程序,如设备驱动,CPU切换等,是最接近硬件的部分,这种程序具有原子性)、进程管理、存储器管理、设备管理等。
优点:高性能。
缺点:代码庞大,结构混乱,难以维护。
微内核
内核为时钟管理、中断处理、原语。
优点:功能少,结构清晰,方便维护。
缺点:需要频繁的在核心态和用户态之间切换,性能低。