中断、异常、系统调用
2015-06-02 13:08
295 查看
1、计算机体系结构概述:
2、计算机启动流程
BIOS启动固件:基本输入输出程序、系统设置信息、开机后自检程序、自启动程序等
BIOS:以中断调用的方式提供基本的I/O功能,字符显示、磁盘扇区读写、检测内存大小、键盘输入
3、中断、异常和系统调用
在计算机运行中,内核是被信任的只有内核可以执行特权指令。
内核的进入与退出
系统调用system call:应用程序主动向操作系统发出的服务请求。
异常exception:非法指令或者其他原因导致当前指令失败后的处理请求。
中断hardware interrupt:来自硬件设备的处理请求。
系统调用:编程接口,由高级语言编写,程序访问通过高层次的API接口而不是直接进行系统调用,应用程序编程接口(API),Win32 API,POSIX API,Java API;
系统调用:INT和IRET指令用于系统调用,有堆栈切换和特权级的切换。函数调用:CALL,RET用于常规调用,没有堆栈切换。
2、计算机启动流程
BIOS启动固件:基本输入输出程序、系统设置信息、开机后自检程序、自启动程序等
BIOS:以中断调用的方式提供基本的I/O功能,字符显示、磁盘扇区读写、检测内存大小、键盘输入
3、中断、异常和系统调用
在计算机运行中,内核是被信任的只有内核可以执行特权指令。
内核的进入与退出
系统调用system call:应用程序主动向操作系统发出的服务请求。
异常exception:非法指令或者其他原因导致当前指令失败后的处理请求。
中断hardware interrupt:来自硬件设备的处理请求。
类型 | 源头 | 响应方式 | 处理机制 |
中断 | 外设 | 异步 | 持续、对用户应用程序透明 |
异常 | 应用程序意想不到的行为 | 同步 | 处理当前出现的问题 |
系统调用 | 应用程序请求操作 | 异步或者同步 | 等待和持续 |
系统调用:INT和IRET指令用于系统调用,有堆栈切换和特权级的切换。函数调用:CALL,RET用于常规调用,没有堆栈切换。
相关文章推荐
- 三种重要哈希介绍
- php异常处理—多个异常
- 批处理命令入门
- 第3条:用私有构造器或者枚举类型强化Singleton属性
- cpio命令用法
- MVC中HtmlHelper用法大全参考
- C语言再学习——常量和变量
- 【菜鸟看框架】——EF如何自动生成实体
- 如何编写一个shellcode
- 一个monitor脚本
- Stackless 框架 About
- Java多线程系列--“JUC原子类”02之 AtomicLong原子类
- Git—学习笔记1
- Linux系统与windows系统文件同步
- jsp throw new RuntimeException()问题
- java通过反射 寻找配置文件 调用方法
- oracle学习笔记--之--时间timestamp小结
- 黑马程序员——java语言基础常量、变量、运算符
- OpenLayers学习笔记1——实现WMTS的逐级无缝缩放
- C语言再学习——C语言中进制之间的转换