0
点赞
收藏
分享

微信扫一扫

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


文章目录

  • ​​一. 内容总览​​
  • ​​二. 中断和异常​​
  • ​​1. 中断机制的诞生​​
  • ​​2. 中断的概念和作用​​
  • ​​3. 中断的分类​​
  • ​​(1). 分类方式一:​​
  • ​​1. 内中断(也叫异常、陷入)​​
  • ​​2. 外中断(中断)​​
  • ​​(2). 分类方式二:​​
  • ​​4. 外中断的处理过程​​
  • ​​5. 中断机制的基本原理​​
  • ​​三. 系统调用​​
  • ​​1. 什么是系统调用,有何作用​​
  • ​​2. 系统调用和库函数的区别​​
  • ​​3. 为什么系统调用是必须的?​​
  • ​​4. 系统调用背后的过程​​
  • ​​四. 中断、异常和系统调用比较​​

一. 内容总览

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

操作系统——中断、异常和系统调用_用户态_02

二. 中断和异常

1. 中断机制的诞生

操作系统——中断、异常和系统调用_用户态_03


操作系统——中断、异常和系统调用_用户态_04

2. 中断的概念和作用

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

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

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

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

3. 中断的分类

(1). 分类方式一:

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

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

分为:

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

1. 如系统调用时使用的访管指令(又叫陷入指令、trap指令)该指令不是特权指令
2. 执行陷入指令,意味着应用程序主动的将CPU控制权还给操作系统内核。
3. 系统调用就是通过陷入指令完成的

  1. 强迫中断
    原因:
  • 硬件故障

如:缺页

  • 软件中断

如:整数除0

2. 外中断(中断)

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

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

分为:

  1. 外设请求

如:I/O操作完成发出的中断信号

  1. 时钟中断
  2. 人工干预

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

(2). 分类方式二:

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

4. 外中断的处理过程

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

5. 中断机制的基本原理

操作系统——中断、异常和系统调用_用户态_10

三. 系统调用

Linux系统调用?

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

系统调用是操作系统提供给应用程序(程序员/编程人员)使用的接口,可以理解为一种可供应用程序调用的特殊函数,应用程序可以通过系统调用来请求获得操作系统内核的服务

操作系统——中断、异常和系统调用_应用程序_11


凡是与资源有关的操作,会直接影响到其他进程的操作,一定需要操作系统的介入,即需要通过系统调用来实现

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

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

3. 为什么系统调用是必须的?

操作系统——中断、异常和系统调用_用户态_13

4. 系统调用背后的过程

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

操作系统——中断、异常和系统调用_用户态_15

以read 调用为例

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

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

  • 系统调用(system call)

应用程序主动向操作系统发出的服务请求

  • 异常(exception)

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

  • 中断(hardware interrupt)

来自硬件设备的处理请求

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


比较:

  1. 源头

中断:外设引起

异常:应用程序意想不到的行为

系统调用:应用程序请求操作系统提供服务

  1. 响应方式

中断:异步

异常:同步

系统调用:异步或同步

  1. 处理机制

中断:持续,对用户应用程序是透明的

异常:杀死或者重新执行意想不到的应用程序指令

系统调用:等待和持续


举报

相关推荐

0 条评论