操作系统学习笔记(2)——中断和异常

来源:互联网 发布:模拟人生4捏脸美女数据 编辑:程序博客网 时间:2024/06/18 05:12

一、中断的引入

  • 当CPU启动通道(或设备)进行输入输出后,通道可以独立工作,CPU即转去做其他任务;
  • 通道(或设备)输入输出完成后,通道通过向CPU发中断告诉CPU此次输入输出结束,让CPU继续执行原任务输入输出后的程序
        中断引入的目的:就是为了I/O和CPU可以并行,从而实现多道程序设计。

二、异常(陷入)的引入
        当下述情况发生,CPU中断当前的执行流程,转到相应的错误处理程序或陷入处理程序:
  • CPU执行指令时本身出现算术异常、零做除数、访存指令越界、虚存缺页等;
  • 正常异常,即执行了一条trap指令,用于实现系统调用
三、中断和异常的区分

1、中断:通道(或设备)完成输入输出后,通道会“通知”CPU此次输入输出结束,这个“通知”就是中断
可以看到,中断与CPU正在执行的指令并没有关系。

2、异常:而异常则是正在执行的指令本身出现了错误(如算术溢出、地址越界)等。

3、但中断和异常的结果都是使得“CPU暂停正在执行的程序”:

   CPU接受“中断”后停止当前的任务,去继续上一个任务或继续当时在执行的任务(如何选择则是与调度有关)。

   CPU接受“异常”后停止当前任务,去处理这些错误。 处理完成后CPU返回暂停点继续工作。

4、中断:与正在执行的指令无关,可以屏蔽

   异常:与正在执行的指令有关,不可屏蔽


四、中断/异常的分类
         

五、中断的分级与屏蔽
中断触发器:寄存中断事件的全部触发器,一般一个触发器表示一个中断
中断位:每个触发器称为一个中断位,当发生中断时相应位就被置上(0置到1)
中断序号:给中断一个顺序编号
中断响应:由硬件在执行每一条指令的最后时刻判断是否有中断,有则转入操作系统的中断处理程序(中断响应必须是由硬件支持的)  
         

六、中断优先级
1、高级中断>中级中断>低级中断
         

2、中断优先级设置的原则
  • 从提高资源利用率角度:高速设备(如磁盘)优先级高,慢速设备(如鼠标键盘)优先级低
  • 交互式系统中:可以考虑用户响应满意优先原则
  • 实时系统中:实时设备优先
3、处理机优先级:指处理机正在运行的程序的可响应中断的级别。
      在中断处理程序运行之前前,去设置这个处理机优先级。
      即当处理机处理某一个优先级中断时,只允许处理机去响应比该优先级高的中断,低于或等于该优先级的中断则屏蔽掉。
      屏蔽掉的中断由硬件暂时保存,屏蔽解除时再处理。(此屏蔽称为软屏蔽)
如图举例:
     A、若此时处理机优先级处于0,那么此时对于中断优先级为1的中断,它响应(1>0)
     B、若此时处理机优先级处于2,那么此时对于中断优先级为1的中断,它不响应(1<2)
                                                              那么此时对于中断优先级为2的中断,它不响应(2=2)
                                                              那么此时对于中断优先级为3的中断,它响应(3>2) 
               
         处理机优先级的0级:就是处理机在运行核心态和用户态程序的时候
         当处理机处理某级别的中断时,处理机的响应的放在哪个级别上,并按照上述过程选择响应更高级中断屏蔽低级/同级中断

4、中断屏蔽:禁止处理机响应中断(一般采用这种)或禁止中断出现
       中断屏蔽的实现:
  • 硬件支持:屏蔽寄存器
  • 软件实现:

       屏蔽寄存器怎么设置?

       


七、中断/异常的响应

中断响应:CPU能够在每条机器指令执行周期内的最后时刻扫描中断寄存器,查看是否有中断信号。若无则CPU继续执行程序的后续指令;若有则转入操作系统内的中断处理程序

异常响应:异常是在执行指令的时候,由指令本身的原因发生的,CPU中指令的执行逻辑发现了异常则转入操作系统的异常处理程序


八、几个概念

PC寄存器:程序计数器,指向马上要执行的那一条指令

断点:检测到中断时,处理机刚执行完的那条执行恢复地址

恢复点:断点的逻辑后续指令地址,PC的值

                  

现场信息:指中断那一刻确保被中断程序能继续运行的有关信息,如PC、通用寄存器、其他特殊寄存器等

核心态(系统态、监督方式、管态):允许特权指令执行的状态;此状态运行访问系统空间和用户空间

用户态(用户态、用户方式、目态):一般程序所运行的状态;只可以访问用户空间

PS(PSW)寄存器:程序状态字(处理机状态字),寄存了处理机的运行状态,包括:

  • 当前处理机运行态(核心态or用户态)
  • 当前处理机优先级
  • 各种控制位(如外中断赋能位)
中断向量:存放程序状态字和中断处理程序入口地址的内存单元;
                    中断向量由操作系统初始化程序进行设置,硬件按照中断号及异常类型的不同,来通过中断向量表散转到相应的处理程序上

九、中断/异常响应和处理的过程
  • 硬件保存PC、PSW
  • 软件继续保存现场(保存现场以“栈”的方式)
  • 分析原因并转中断/异常处理程序
  • (进程调度)恢复现场
        
        
       
       

1 0