[CSAPP] 异常控制流(一)
来源:互联网 发布:购买域名 编辑:程序博客网 时间:2024/06/04 17:55
1.应用程序通过使用一个叫做陷阱或者系统调用的ECF(Exceptional Control Flow)形式,向操作系统请求服务,比如向磁盘写数据,从网络读取数据,创建一个新进程,以及终止当前进程,都是通过程序调用来实现的。
2.当处理器状态发生一个重要变化的时候,处理器正在执行某个当前指令Icuur,在处理器中,状态被编码为不同的位和信号,状态变化成为事件,当处理器检测到有事件发生时,他就会通过一张叫异常表的跳转表,进行一个间接过程调用(异常)到一个专门设计用来处理这类事件的操作系统子程序(异常处理程序)
3.系统为每种可能的异常分配了一个唯一的非负整数的异常号,当系统启动时,操作系统初始化异常表,当检测到事件并且确定了异常号K时,通过异常表的条目K转到相应的处理程序,异常表起始地址放在异常表基址寄存器中。
4.异常的分类
陷阱是有意的异常,最重要的用途是在用户程序和内核之间提供像过程一样的接口,叫做系统调用,调用内核,如(read, fork, execue, exit)
5.并发流:一个逻辑流的执行在时间上与另一个流的重叠,称为并发流,这两个流被称为并发运行(如流X与Y并发,当且仅当,X在Y开始后,结束前开始运行,或者Y在X开始后,结束前开始运行)多个进程轮流执行的概念叫做多任务。
并行流:如果多个流并发地运行在不同的处理器核或计算机上,就称为并行流。
6.内核使用上下文切换(概念前几章提过)这个较高层形式的异常控制流来实现多任务,这种机制是建立在较低层机制之上的。
实现方式:1)保存当前进程的上下文 2)恢复某个先前被抢占的进程被保存的上下文 3)将控制传递给这个新恢复的进程
7.父进程与子进程之间有相同的但是独立的地址空间(有相同的用户栈,本地变量,全局变量等,但是改变是独立的,会反映在各自的存储器中)。
- [CSAPP] 异常控制流(一)
- CSAPP第八章-异常控制流(一)
- 《CSAPP》异常控制流
- CSAPP第八章-异常控制流(二)
- CSAPP第八章-异常控制流(三)信号
- CSAPP 第八章:异常控制流 小结
- CSAPP学习笔记(异常控制流1)
- CSAPP阅读—第八章 异常控制流
- CSAPP阅读—第八章 异常控制流
- CSAPP读书笔记(一)
- CSAPP(一)
- [CSAPP] 链接(一)
- [CSAPP笔记][第八章异常控制流][呕心沥血千行笔记]
- [CSAPP] 计算机世界漫游(一)
- [CSAPP] 虚拟存储器(一)
- [CSAPP] 优化程序性能(一)
- [CSAPP] 存储器层次结构(一)
- CSAPP实验一datalab
- 微信公众号开发1搭建php服务器
- Pureftpd编译安装实录
- Linux下 Tomcat启动与关闭
- angularJS 简述
- SQL Server 数值四舍五入,小数点后保留2位
- [CSAPP] 异常控制流(一)
- Elasticsearch5.0 安装 以及 问题集锦
- AndroidMainfest.xml详解——<uses-permission-sdk-23>
- Java.util.comparator、Java.util.comparable接口使用例子
- oc-Foundation_01_NSRange_CGPint_CGSize
- java web项目获取window/linux真实路径
- Zookeeper系列(一)
- 微信企业号获取永久素材/删除永久素材/修改永久图文素材
- Maven 4.Maven项目基础