操作系统——中断、异常和系统调用

一. 内容总览

操作系统——中断、异常和系统调用_第1张图片

操作系统——中断、异常和系统调用_第2张图片

二. 中断和异常

1. 中断机制的诞生

操作系统——中断、异常和系统调用_第3张图片
操作系统——中断、异常和系统调用_第4张图片

2. 中断的概念和作用

操作系统——中断、异常和系统调用_第5张图片

用户态、核心态之间的切换是怎么实现的?

用户态→核心态是通过中断实现的。并且中断是唯一途径
核心态→用户态的切换是通过执行一个特权指令,将程序状态字(PSW)的标志位设置为用户态

3. 中断的分类

分类方式一:

1. 内中断(也叫异常、陷入)

信号的来源:CPU内部与当前执行的指令有关

分为:

  1. 自愿中断——指令中断

     如系统调用时使用的访管指令(又叫陷入指令、trap指令)
    
  2. 强迫中断
    原因:

    • 硬件故障

        如:缺页
      
    • 软件中断

        如:整数除0
      
2. 外中断(中断)

信号的来源:CPU外部,与当前执行的指令无关

分为:

  1. 外设请求

     如:I/O操作完成发出的中断信号
    
  2. 人工干预

     如:用户强行终止一个进程
    

分类方式二:

操作系统——中断、异常和系统调用_第6张图片

4. 外中断的处理过程

操作系统——中断、异常和系统调用_第7张图片

三. 系统调用

1. 什么是系统调用,有何作用

操作系统——中断、异常和系统调用_第8张图片
凡是与资源有关的操作,会直接影响到其他进程的操作,一定需要操作系统的介入,即需要通过系统调用来实现

2. 系统调用和库函数的区别

操作系统——中断、异常和系统调用_第9张图片

3. 系统调用背后的过程

操作系统——中断、异常和系统调用_第10张图片
以read 调用为例
操作系统——中断、异常和系统调用_第11张图片

四. 中断、异常和系统调用比较

  • 系统调用(system call)

      应用程序主动向操作系统发出的服务请求
    
  • 异常(exception)

      非法指令或者其他原因导致当前指令执行失败   (如:内存出错)后的处理请求
    
  • 中断(hardware interrupt)

      来自硬件设备的处理请求
    

操作系统——中断、异常和系统调用_第12张图片
比较:

  1. 源头

     中断:外设引起
    
     异常:应用程序意想不到的行为
    
     系统调用:应用程序请求操作系统提供服务
    
  2. 响应方式

     中断:异步
    
     异常:同步
    
      系统调用:异步或同步
    
  3. 处理机制

     中断:持续,对用户应用程序是透明的
    
     异常:杀死或者重新执行意想不到的应用程序指令
    
     系统调用:等待和持续
    

你可能感兴趣的:(操作系统)