linux信号基础讲解

作者 : 开心源码 本文共612个字,预计阅读时间需要2分钟 发布时间: 2022-05-12 共205人阅读

Linux以进程为单位来执行程序。我们可以将计算机看作一个大楼,内核(kernel)是大楼的管理员,进程是大楼的房客。每个进程拥有一个独立的房间(属于进程的内存空间),而每个房间都是不允许该进程之外的人进入。这样,每个进程都只专注于自己干的事情,而不考虑其余进程,同时也不让别的进程看到自己的房间内部。这对于每个进程来说是一种保护机制。(想像一下几百个进程总是要干涉对方,那会有多么混乱,或者者几百个进程相互偷窥……)

然而,在少量情况,我们需要打破封闭的房间,以便和进程交流信息。比方说,内核发现有一个进程在砸墙(硬件错误),需要让进程意识到这样继续下去会毁了整个大楼。再比方说,我们想让多个进程之间合作。这样,我们就需要肯定的通信方式。信号(signal)就是一种向进程传递信息的方式。我们可以将信号想象成大楼的管理员往房间的信箱里塞小纸条。随后进程取出小纸条,会根据纸条上的内容来采取肯定的行动,比方灯坏了,提示进程使用手电。(当然,也可以完全无视这张纸条,然而在失火这样紧急的状况下,无视信号不是个好的选择)。相对于其余的进程间通信方式(interprocess communication, 比方说pipe, shared memory)来说,信号所能传递的信息比较粗糙,只是一个整数。但正是因为传递的信息量少,信号也便于管理和使用。信号因而被经常地用于系统管理相关的任务,比方通知进程终结、停止或者者恢复等等。

linux信号基础讲解

给我一个信号

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » linux信号基础讲解

发表回复