一、操作系统的运行机制
知识框图:
(一)程序
内核程序:内核程序是操作系统的核心部分,需要在内核模式下运行,负责管理计算机的硬件资源,如处理器、内存、存储设备和输入输出设备。内核程序还负责调度和管理进程,确保系统的稳定性和安全性。
内核程序运行在最高的权限级别,因为它们需要直接与硬件交互,管理内存和调度进程等。内核程序的错误可能会导致整个系统的崩溃。
应用程序:应用程序是用户直接使用的软件,它们提供各种服务和功能,如文本处理、图像编辑、游戏、网页浏览等。应用程序通常运行在用户的账户下,为用户提供友好的界面和操作方式。
为了保护系统的稳定性和用户的安全,应用程序通常运行在较低的权限级别。它们不能直接访问硬件资源或执行可能会影响系统稳定性的操作。
(二)处理器状态
内核态:也称核心态,在这一状态时用户运行内核程序,只能执行特权指令。
用户态:在这一状态时用户运行应用程序,只能执行非特权指令。
(三)指令
指令:CPU能识别、执行的最基本指令
程序的运行实质上就是CPU执行一条一条机器指令的过程。
特权指令:操作系统内核为管理员,需要CPU执行如内存清零等影响重大的指令,只允许操作系统内核来实现。
非特权指令:用户在使用应用程序过程中执行的指令
(四)用户态、内核态转换
1.用户态下的文档编辑:
用户在文字处理软件中编辑文档,如输入文字、调整格式等。这些操作都在用户态下进行,因为它们不涉及直接的硬件操作,也不需要操作系统的特殊权限。
2.发起打印请求:
当用户选择打印文档时,文字处理软件会尝试执行一个系统调用,这是一个特殊的指令,用于请求操作系统内核提供的服务。
3.触发中断并转换至内核态:
当系统调用被执行时,CPU会识别这一指令并触发一个中断。这个中断会导致CPU停止当前用户态下的执行流程,并将控制权转交给操作系统内核。此时,CPU的运行状态从用户态转换到内核态。
4.内核态下的打印任务处理(状态转换的单独步骤):
在内核态下,操作系统执行以下操作:
- 验证用户权限,确保用户有权执行打印操作。
- 调用打印机驱动程序,将文档内容发送到打印机。
- 管理打印机硬件,确保数据正确传输并完成打印任务。
5.状态转换回用户态:
打印任务完成后,操作系统将CPU的运行状态从内核态切换回用户态,允许用户继续在文字处理软件中进行其他操作。
二、中断与异常
(一)中断概念
中断:指在程序执行过程中遇到急需处理的事件时,暂时中止现行程序在CPU上的运行,转而执行相应的事件处理程序,待处理完成后再返回断点或调度其他程序执行的过程
中断让操作系统内核夺回CPU使用权
中断让CPU从用户态转变为内核态
(二)中断源分类
外中断
又称中断或异步中断,来自处理器之外的中断信号,包括时钟中断、键盘中断、它机中断和外部设备中断(与指令无关)
内中断
又称异常或同步中断,来自处理器内部的中断信号,通常实在由于在程序执行过程中,发现与当前指令关联的、不正常的或错误的事件。(与指令有关)
可细分为:
-
访管中断:通常发生在用户态程序尝试执行特权指令时。
当用户态程序需要执行特权指令时,它会通过一个特殊的系统调用指令来请求操作系统内核代为执行。操作系统内核会响应这个请求,暂时挂起当前运行的用户程序,然后以内核态执行相应的操作。 -
硬件故障中断:指由于硬件组件发生故障而导致的中断。
当CPU检测到内存错误、硬盘故障或其他硬件问题时,它会触发一个中断信号,通知操作系统有一个硬件故障发生。 -
程序性异常:通常是由程序执行过程中的错误或异常情况引起的。
包括算术溢出、非法指令、内存访问违规等。当这些异常发生时,CPU会暂停当前的程序执行,并通过一个中断信号将控制权转交给操作系统。
三、系统调用
系统调用是操作系统提供给用户程序的一种接口,它允许用户程序请求操作系统内核提供的服务。
这些服务包括文件操作、网络通信、进程管理等,通常是用户程序无法直接执行的底层操作。
系统调用充当了用户程序与操作系统内核之间的桥梁,确保了系统的安全性和资源的有效管理。
(一)系统调用分类
(二)系统调用过程
过程解读:
- 一个程序运行在用户态,CPU执行指令
- 需要进行系统调用时,CPU接受到传参指令(可能有多条),CPU在寄存器中存储传过来的参数,根据传递参数选择进行哪种类型的系统调用。
- 在用户态下,应用程序执行陷阱指令,CPU产生内中断(系统调用入口)。
- 进入内核态,处理系统调用的内核程序。
- 执行完成后,返回用户态执行后续指令。