-
中断和异常
定义
中断是指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行。
中断是为了实现多道程序并发引入的技术。
-
当中断发生时,CPU从用户态进入核心态。
发生了中断,就意味着需要操作系统介入工作。因为操作系统中的进程切换、分配I/O设备等需要使用特权指令,故CPU要从用户态转为核心态。
-
当中断发生后,当前运行的进程暂停运行,并由操作系统内核对中断进行处理。
-
对于不同的中断,不同的操作系统会进行不同的处理。
-
中断是CPU从用户态到核心态切换的唯一途径。
分类
通过判断中断信号来自CPU内部还是外部来确定是内、外中断。
内中断
-
其他名称:异常、例外、陷入。
-
自愿中断
- 指令中断
-
强迫中断
-
硬件中断
-
软件中断
-
-
内中断的林另一种中断方式
-
陷入trap、陷阱
-
故障fault
-
终止abort
-
外中断
即中断
方式
-
外部中断
-
人工干预
处理过程
-
每条指令结束后,CPU会检查是否有外部中断信号
-
若有外部中断信号,则需要保护中断进程的CPU的运行环境
-
根据中断信号类型转入相应的中断处理程序
-
恢复原进程的CPU环境并退出中断,返回进程继续往下执行
系统调用
定义
给应用程序使用的接口。应用程序通过调用请求以获得操作系统的服务。
举例:使用打印机,每个人都要使用打印机,在同时使用打印机时,都是按照循序依次打印的。
这里就用到了系统调用,用户想要访问使用打印机这种共享资源,只能通过向操作系统发出请求,操作系统会对各个请求进程协同管理。
作用
系统中的各种共享资源都由操作系统统一掌控,这样可以保证系统的稳定性和安全性,防止用户非法操作。
分类
设备管理:完成设备的请求、释放、启动等功能。
文件管理:完成文件的读、写、创建、删除等功能。
进程控制:完成进程的创建、撤销、阻塞、唤醒等。
进程通信:完成进程之间的消息传递、信号传输等功能。
内存管理:完成内存的分配、回收等功能。
系统调用与库函数的区别
-
系统调用是操作系统向上层提供的接口
-
有的库函数是对系统调用的进一步封装
-
当前编写的应用程序大多是通过高级语言提供的库函数简介进行系统调用。
系统调用背后的过程
-
传递系统调用的参数
-
执行传入的指令
系统调用发生在用户态,对系统调用的处理发生在核心态。
执行陷入指令会产生内中断,使处理器从用户态进入核心态。
-
执行系统调用相关服务程序
-
返回用户程序
-