[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.父进程与子进程之间有相同的但是独立的地址空间(有相同的用户栈,本地变量,全局变量等,但是改变是独立的,会反映在各自的存储器中)。


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 一年级学生的理解能力差怎么办 一年级学生学习太差怎么办 宝宝屁眼破皮怎么办啊 九个月婴儿不爱喝奶怎么办 十一个月婴儿发烧怎么办 四个月宝宝睡不踏实怎么办 5个月宝宝瘦了怎么办 宝宝只吃迷糊奶怎么办 宝宝五个月了不吃奶粉怎么办 1岁婴儿入睡困难怎么办 怀孕五个月胎儿肾积水怎么办 15个月宝宝总喊怎么办 学业水平考试有d怎么办 买了水果碰见领导怎么办 高一孩子不愿意上学怎么办 专家解答 孩子不愿意上学怎么办 冬天脚冷怎么办膝盖疼 拉拉裤大了怎么办小妙招 孕37周翻身困难怎么办 晚上睡不好白天犯困怎么办 抑郁症又不想起床了怎么办 儿童憋尿功能太差怎么办 一个月的宝宝睡眠不好怎么办 被商场要求撤场怎么办 上班没法接孩子放学怎么办 幼儿下午放学与上班错开怎么办 宝宝早上醒的早怎么办 晚卜睡不着尿多怎么办 要求正常休息公司不准怎么办 我早起被室友说怎么办? 小孩晚上睡的晚怎么办 初中一年级学不扎实怎么办 一年级学生上课爱说话怎么办 孩子不按时完成作业怎么办 高三理科基础不好怎么办 字写快了就难看怎么办 高一文科280分怎么办 高三了学不进去怎么办 副职兼任法人不够条件怎么办 正职和上级不和副职怎么办 中层正职和上级不和副职怎么办