思维导图

img

中断的作用

CPU上会有两种程序

  • 操作系统内核程序
  • 应用程序

中断是让操作系统内核夺回CPU使用权的唯一途径

内核态 —-> 用户态: 执行一条特权指令,—修改PSW的标志位为”用户态“, 这个动作意味着操作系统主动让出CPU使用权

用户态 —-> 内核态: 由中断引发, 硬件自动完成变态的过程 ,触发中断信号意味着操作系统将强行夺回CPU的使用权。


中断的类型

img

内中断(异常)

与当前执行的指令有关, 中断信号来源于CPU内部

  1. 陷阱、 陷入(trap )

由陷入指令引发的, 是应用程序故意引起的

  1. 故障 ( fault )

由错误条件引起的 , 可能被内核程序修改 ,内核程序修复后会把cpu的使用权交给应用程序, 让他继续执行。

  1. 终止 ( abort )

由致命错误引起的 , 内核程序无法修复的错误。 所以内核就不会将cpu使用权交给应用程序 。

如: 非法的使用特权指令。

外中断

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

中断机制的基本原理

不同的中断信号 ,需要用不同的中断处理程序来处理, 当cpu检测到中断信号后, 会根据中断信号的类型去查询”中断向量表“ , 以此来找到相应的中断处理程序在内存中的存放位置。

img

什么是系统调用

操作系统作为用户 和 计算机硬件之间的接口, 需要向上提供一些 简单易用的服务接口。 主要包括 命令接口和程序接口, 其中程序接口 由一组系统调用组成。

系统调用 和 库函数的区别

img

例子 ,为什么系统调用是必须的 ?

需要通过系统调用来达到对共享资源的一种调度的作用。

什么功能要用系统调用实现 ?

应用程序通过系统调用请求操作系统的服务, 而系统中的各个共享资源都由操作系统内核统一进行掌管, 因此 ,凡是与共享资源有关的操作 (如: 内存分配, IO操作,文件管理等) ,都必须通过系统调用的方式像操作系统内核提出服务请求, 由操作系统内核代为完成 。 这样可以保证系统的稳定性和安全性。 防止用户进行非法操作。

img

系统调用的过程

重听, 相对来说是重点1.3_3_系统调用

6.10