(二) 中断、异常和系统调用比较
(二) 中断、异常和系统调用比较
(二) 中断、异常和系统调用比较
摘要
为什么要中断、异常和系统调用
在计算机运行中,内核被信任的第三方
只有内核可以执行特权指令
方便应用程序
中断和异常希望解决的问题
当外设连接计算机时,会出现什么现象
当应用程序处理意想不到的行为时,会出现什么现象。
系统调用希望解决的问题
用户应用程序是如何得到系统服务?
系统调用和功能调用的不同之处?
一、概念
-
系统调用 (system call)
-
应用程序 主动 向操作系统发出的服务器请求
-
-
异常 (exception)
-
非法指令或其他原因导致当前 指令执行失败
-
如: 内存出错后的处理请求
-
-
-
中断(hardware interrupt)
-
来自硬件设备的处理请求
-
二、中断、异常和系统调用的比较
-
源头
-
中断:外设
-
异常:应用程序意想不到的行为
-
系统调用:应用程序请求操作提供服务
-
-
响应方式
-
中断:异步
-
异常:同步
-
系统调用:异步或同步
-
-
处理机制
-
中断:持续,对用户应用程序是透明的
-
异常:杀死或重新执行意想不到的应用程序指令
-
系统调用:等待和持续
-
-
中断处理机制
-
硬件处理
-
在CPU初始化时设置 中断使能 标志
-
依据内部或外部事件设置中断标志
-
依据 中断向量 调用相应 中断服务 例程
-
-
-
软件
-
现场保持 (编译器)
-
中断服务处理 (服务例程)
-
清除中断标记 (服务例程)
-
现场恢复 (编译器)
-
注: 都到了中断向量表,中断--中断服务例程,异常--异常服务例程,系统调用--总共占有一个中断编号,不同系统调用功能由系统调用表来表示的。由系统调用表的不同,选中不同的系统调用实现。
-
-
-
中断嵌套
-
硬件中断服务例程可以被打断
-
不同硬件 中断源可能硬件中断处理时出现
-
硬件中断服务例程中需要 临时禁止中断 请求
-
中断请求会保持到cpu做出响应
-
-
异常服务例程可被打断
-
异常服务例程执行时可能出现硬件中断
-
-
异常服务例程可嵌套
-
异常服务例程可能出现缺页
-
-