中断异常和系统调用

简介: 中断异常和系统调用

思维导图

1687184523598-2b5c39df-202b-42ed-abb9-f1b661a5afc9.png


中断的作用



CPU上会有两种程序


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


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


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


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


中断的类型



1687183996936-a020343a-51bf-4223-b65d-cbd38446491b.png


内中断(异常)


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


1.陷阱、 陷入(trap )


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


2.故障 ( fault )


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


3.终止 ( abort )


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


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


外中断


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


中断机制的基本原理



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


1687184477546-42fd0581-0ba0-4edf-a215-1401123d343f.png


什么是系统调用



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


系统调用 和 库函数的区别



1687184854726-f8757271-f9ca-49fa-932b-4782aeb6a4e5.png


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



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


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



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

1687185331421-6ea5ef82-fddd-439a-8097-bbeaa56f5e52.png



系统调用的过程



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


6.10


目录
相关文章
|
4月前
|
6月前
|
存储 程序员
操作系统的运行机制、中断和异常、系统调用
操作系统的运行机制、中断和异常、系统调用
99 1
|
6月前
|
算法 Unix Linux
Linux进程与信号:正常与异常的退出机制探索
Linux进程与信号:正常与异常的退出机制探索
491 1
|
6月前
|
资源调度 调度 UED
CPU执行系统调用时发生中断,操作系统还能切回中断前的系统调用继续执行吗?
系统调用服务例程在执行过程中,通常不会被中断。系统调用服务例程的执行是一个原子操作,即在执行期间不会被中断。这是为了确保在系统调用服务例程执行期间对内核数据结构的一致性和完整性。
|
6月前
|
编译器 C语言 芯片
内核里的中断
内核里的中断
60 0
|
存储 程序员 调度
中断和异常
中断和异常
|
安全 Java Unix
四、操作系统的启动,中断,异常和系统调用
四、操作系统的启动,中断,异常和系统调用
四、操作系统的启动,中断,异常和系统调用
|
存储 芯片 开发者
E906的异常和中断|学习笔记
快速学习 E906的异常和中断
842 0
E906的异常和中断|学习笔记
C中得到4号错误(中断),怎么办
C中得到4号错误(中断),怎么办
86 0
|
存储 Linux 程序员
1.1.5操作系统(中断和异常,系统调用)
中断 1.中断的作用 2.中断的分类 3.外中断的处理过程 系统调用 1.什么是系统调用,有何作用? 2.系统调用与库函数的区别 3.系统调用过程
1.1.5操作系统(中断和异常,系统调用)