“指令”就是处理器(CPU)能识别、执行的最基本的命令也可以叫做机器指令
两种指令、两种处理器状态、两种程序
两种指令
- 特权指令
如内存清零指令,不允许用户程序使用 - 非特权指令
如普通的运算指令
既然有两种指令,且特权指令不允许用户程序使用,那么cpu怎么判断当前的指令是否能被执行呢?
两种处理器状态
- 用户态(目态)
- 核心态(管态)
两种状态是用程序状态字寄存器(PSW)中的某标志位来标识当前处理器处于什么状态
两种程序
- 内核程序
需要使用特权指令的程序称之为内核程序 - 应用程序
另外普通的程序称之为应用程序
操作系统的内核
- 内核
内核是计算机上配置的底层软件,是操作系统最基本、最核心的部分
实现操作系统内核功能的哪些程序就是内核程序
有些操作系统并不将进程管理、存储器管理、设备管理等功能放进内核中
因此,算上进程管理这些的是大内核,不算的是微内核
操作系统的体系结构
大内核和微内核的优缺点:
节后思维导图总结
中断
中断的概念和作用
有了中断才能让程序并发的执行
1.中断发生时,cpu立即进入核心态
2.当中断发生后,当前运行的进程暂停运行,并由操作系统内核对中断进行处理
3.对于不同的中断信号,操作系统会做不同的处理(如果是时间片用完,那么就是轮到其他的进程执行程序,如果是io请求,那么就去让io设备工作,并且cpu先去其他进程工作,等io处理完之后再让操作系统回复原先进程的执行直至时间片使用完)
用户态 =》 核心态是通过中断实现的,并且中断是唯一途径
核心态 =》 用户态是通过执行一个特权指令,将程序状态字(PSW)的标志位设置为“用户态”
中断的分类
- 内中断(也称异常、例外、陷入)
信号的来源:CPU内部,与当前执行的指令有关- 自愿中断–指令中断
- 强迫中断
- 硬件故障(缺页)
- 软件中断(整数除0)
- 外中断(中断)
信号的来源:CPU外部,与当前指令无关- 外设请求(I/O操作完成发出的中断信号)
- 人工干预(用户强行终止一个进程)
另一种分类方式,本质上还是看信号来源是否是CPU
外中断的处理过程
中断的节后思维导图
什么是系统调用
系统调用与库函数的区别
一些库函数涉及文件的处理等需要特权指令,需要系统代理操作的,就需要使用到系统调用,不涉及系统调用的库函数则不需要中断切换处理机状态
系统调用背后的过程
这里的int是告诉操作系统将要执行哪个处理函数(并且是内中断)
节后思维总结