"计算机系统第8章:异常控制流II——信号与非本地跳转"
本文主要讨论了计算机系统中的异常控制流II-信号。通过对《计算机系统:程序员视角,第三版》第8章的内容进行总结,我们了解到异常控制流在系统的各个层次中发生,包括硬件和操作系统内核程序。 文中提到了哈尔滨工业大学计算机科学与技术学院教授Bryant和O'Hallaron合著的《计算机系统:程序员视角,第三版》作为本文的参考资料。该书深入介绍了计算机系统的工作原理和编程技术,为程序员提供了深入了解系统底层的知识。 异常控制流广泛存在于计算机系统中,是指当系统发生异常情况时,控制流不再按照顺序进行,而是跳转到异常处理程序。这些异常可以来自于硬件错误,如非法指令或访问非法内存;也可以来自于操作系统的调用,如进程间通信或信号处理等。 文中着重讨论了信号作为一种常见的异常控制流方式。信号是一种进程间通信的机制,用于向进程发送异步通知。当一个进程接收到信号时,它将中断当前正在执行的操作,转而执行与该信号对应的信号处理程序。通过信号机制,进程可以实现对外部事件的响应,如用户输入、硬件中断等。 在讨论信号的处理过程中,文中提到了几个关键概念。首先是信号的产生和传递过程,包括信号的发送方和接收方。发送方通过调用系统调用kill向指定进程发送信号;接收方则通过注册信号处理函数来响应信号的到来。其次是信号的默认处理方式和自定义处理方式。对于每种信号,系统都会提供一个默认的处理方式,如终止进程或忽略信号。由于某些信号的默认处理方式可能不符合应用需求,进程可以通过注册自定义的信号处理函数来改变信号的处理方式。最后是信号处理过程的并发性问题。由于信号处理函数可以在任何时刻被中断执行,进程在实现信号处理时需要考虑并发访问共享数据的可能性,从而避免竞争条件和死锁等问题的发生。 在讨论完信号相关的内容后,文中还提到了非本地跳转作为另一种异常控制流方式。非本地跳转指的是从一个函数直接跳转到另一个函数,而不是通过常规的函数调用和返回来完成。非本地跳转有时被用于异常处理或错误恢复的场景中。它可以使程序从一层深的调用栈中直接跳到目标函数,从而避免多层次的函数调用。 总的来说,本文通过对《计算机系统:程序员视角,第三版》第8章内容的总结,介绍了异常控制流II-信号在计算机系统中的应用。通过了解异常控制流的发生原因和处理方式,我们可以更好地理解计算机系统的运行机制,并为程序的设计和开发提供指导。
![](https://csdnimg.cn/release/download_crawler_static/83468500/bg9.jpg)
![](https://csdnimg.cn/release/download_crawler_static/83468500/bga.jpg)
![](https://csdnimg.cn/release/download_crawler_static/83468500/bgb.jpg)
剩余52页未读,继续阅读
![xmind](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/4d5381c651764f30ad838b9c9f30be54_qq_50190545.jpg!1)
- 粉丝: 5
- 资源: 10
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
最新资源
- Vue实现iOS原生Picker组件:详细解析与实现思路
- Arduino蓝牙小车:参数调试与功能控制
- 百度Java面试精华:200页精选资源涵盖核心知识点
- Swift使用CoreData填坑指南:CoreData在Swift 3.0的变化
- 微距离无线充电器创新设计及其实验探索
- MTK Android平台开发全攻略:44步详解流程
- RecyclerView全面解析:替代ListView的新选择
- Android开发:自动适配中英文键盘解决方案
- Android调用WebService接口教程
- Android开发:BitmapUtil图片处理全解析与实例
- Android多线程断点续传实现详解
- PCA算法在人脸识别会议签到系统中的应用
- EventBus 3.0:Android事件总线详解与实战应用
- Android FileUtil:全面解析文件操作实用技巧与实例
- RecyclerView添加头部和尾部实战教程
- Android实现微博滑动固定顶部栏实战与优化
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)