转载请注明出处:http://blog.csdn.net/c602273091/article/details/53543145
异常控制流的形式
控制流一般是说处理器中比较平稳的程序执行过程。我们之前知道的改变控制流的方法有跳转和函数返回,但是还有很多情况我们没有考虑到。比如键盘输入、程序崩溃之类的。这些东西呢就是叫做异常控制流。
异常控制流一般有以下几种形式:
接下来就一个一个介绍他们。
异常
异常:用来响应低级的控制流的突变,把控制权转给内核以应对某些变化。
处理异常的时候需要询问异常表。根据异常表的描述进行操作。
在异常中,又分为:中断、陷阱、故障、终止。
中断是外部产生的,比如网络适配器。处理完这种中断之后,返回下一条指令。陷阱是用户请求系统调用的方法。比如用户需要执行execve,read等等。故障就是发生了错误,一般可以修复。比如缺页异常。终止:不可修复的错误。直接abort。
Tips:
1、一些常用的系统调用:
进程的上下文切换
进程就是正在执行的程序的一个实例。
在进程中有两个抽象:独立的逻辑控制流,感觉拥有了整个处理器;私有的地址空间,感觉独占了存储器系统。
CPU执行进程,感觉是在同时进行,这就是并发(Concurrency)然后每个进程都有自己拥有CPU的错觉。
在进程之间,有时候控制会传递,这就是进程的上下文切换。
进行了上下文切换,自然就是改变了原先的控制流。
PS:
1、系统调用错误的处理函数