中断
- 中断是指计算机运行过程中,出现某些意外情况需要主机干预时,及其能自动停止,正在运行的程序并转入处理新情况的程序,处理完毕后又返回原来被暂停的程序继续运行
中断处理
- 中断处理是内核最基本的功能。是整个操作系统赖以活动的基础,OS中许多重要的活动,如各种类型的系统调用,键盘命令的输入,进程调度,设备驱动等,无不依赖于中断。通常,为减少处理机中断的时间,提高程序执行的并发性,内核在对中断进行有限处理后,便转入相关的进程,由这些进程继续完成后续的处理工作。
临界资源临界区
-
一次只允许一个进程访问的资源称为临界资源
-
进程访问临界资源的那段代码称为临界区
同步机制应遵循的规则
- 空闲让进
- 忙则等待
- 有限等待
- 对要求访问临界资源的进程,应保证在有限时间内能进去自己的临界区,以免陷入死等状态
- 让权等待
硬件同步机制
-
利用软件的方法解决进程互斥进去临界区的问题,但是有一定难度,并且存在很大的局限性,因而现在很少使用。
-
关中断
-
关中断是实现互斥最简单的方法之一,在进入锁测试之前关闭中断,知道完成锁测试并上锁之后才能打开中断。
-
缺点
- 滥用关中断权力可能导致严重后果
- 关中断时间过长会影响系统效率限制处理器交叉执行程序的能力
- 关中断不适合在多CPU系统,因为在一个处理器上关中断并不能放在进程在其他处理器上执行相同的临界区代码。
-
利用Test-and-Set指令实现互斥
-
利用Swap指令实现进程互斥