信号:
1、最初被引入作为用户态进程间通信
2、内核也使用信号通知进程系统所发生的事件
3、信号很短,发送给进程的唯一信息通常是一个数。
4、名称通常以SIG为前缀
5、信号时可消费资源,每个信号只能被传递一次 使用信号的目标:
1、让进程知道已经发送了一个特定的事件
2、强迫进程执行它自己代码中的信号处理程序。 信号分两类:
1、常规信号(regular signal):编码范围(0~31),同种类型的常规信号并不排队,一个常规信号被发送多次,只有其中一个被收到。
2、实时信号(real-time signal):编码范围(32~64),需要排队,以便多个信号都能被收到
3、Linux内核并不使用实时信号。 信号传递的两个不同阶段:
1、信号产生:内核更新目标进程的数据结构以表示一个新的信号已被发出。
2、信号传递:内核强迫目标进程通过以下方式对信号作出反应:a、改变目标进程的执行状态;b、开始执行一个特定的信号处理程序;c、两者都是。 挂起信号(pending signal):
1、已经产生还没有传递到信号;
2、任何时候一个进程仅存在给定类型的一个挂起信号;相同的其他信号不排队,简单的丢弃掉
3、如果是实时信号,同种类型的挂起信号可以有好几个,它支持排队。 信号处理程序:
1、不必是可以重入的,相同类型的信号再次出现不会中断正在进行的信号处理程序,它会被屏蔽。 进程应答信号的三种方式:
1、显式的忽略信号
2、执行与信号相关的缺省操作terminate、dump、ignore、stop、continue。
3、通过调用相应的信号处理函数捕获信号。 信号阻塞和忽略的差异:
1、信号被阻塞,它就不被传递,只有解除阻塞后才被传递
2、信号被忽略,它还是被传递,只是不被处理 SIGKILL、SIGSTOP 这两个信号不能被阻塞、忽略、捕获;接收到的进程必须执行它们对应的缺省操作。

深入理解Linux内核-信号的更多相关文章

  1. 读书笔记之Linux系统编程与深入理解Linux内核

    前言 本人再看深入理解Linux内核的时候发现比较难懂,看了Linux系统编程一说后,觉得Linux系统编程还是简单易懂些,并且两本书都是讲Linux比较底层的东西,只不过侧重点不同,本文就以Linu ...

  2. 《深入理解Linux内核》 读书笔记

    深入理解Linux内核 读书笔记 一.概论 操作系统基本概念 多用户系统 允许多个用户登录系统,不同用户之间的有私有的空间 用户和组 每个用于属于一个组,组的权限和其他人的权限,和拥有者的权限不一样. ...

  3. 【读书笔记::深入理解linux内核】内存寻址【转】

    转自:http://www.cnblogs.com/likeyiyy/p/3837272.html 我对linux高端内存的错误理解都是从这篇文章得来的,这篇文章里讲的 物理地址 = 逻辑地址 – 0 ...

  4. 【读书笔记::深入理解linux内核】内存寻址

    我对linux高端内存的错误理解都是从这篇文章得来的,这篇文章里讲的 物理地址 = 逻辑地址 – 0xC0000000:这是内核地址空间的地址转换关系. 这句话瞬间让我惊呆了,根据我的CPU的知识,开 ...

  5. 深入理解Linux内核-中断和异常

    Linux内核代码查看 http://androidxref.com/ 中断:被定义位一个事件,它能改变处理器执行指令的顺序.它对应硬件(CPU.其他硬件设备)电路产生的电信号. 同步中断:指令执行时 ...

  6. 理解Linux内核之中断控制

    乍一看下边的Linux内核代码,貌似L3389有bug,于是我就绕有兴趣地阅读了一下local_irq_save/local_irq_restore的源代码. /* linux-4.14.12/mm/ ...

  7. 通过分析exevc系统调用处理过程来理解Linux内核如何装载和启动一个可执行程序

    前言说明 本篇为网易云课堂Linux内核分析课程的第七周作业,本次作业我们将具体来分析exec*函数对应的系统调用处理过程,来分析Linux内核如何来执行一个可执行程序,由于有一个在网易云课堂共同学习 ...

  8. Linux内存管理(深入理解Linux内核)

    Linux的内存管理,实际上是借助80x86的硬件分段和分页电路,将逻辑地址转化为物理地址的. 物理内存中,有一部分是一直(Permanently)映射给内核使用的,这部分主要用于保存内核的代码,以及 ...

  9. 【深入理解Linux内核架构】第3章:内存管理

    3.1 概述 内存管理涵盖了许多领域: 内存中物理内存页的管理: 分配大块内存的伙伴系统: 分配小块内存的slab.slub.slob分配器: 分配非连续内存块的vmalloc机制: 进程的地址空间. ...

随机推荐

  1. jqPlot图表插件学习之数据节点高亮和光标提示

    一.准备工作 首先我们需要到官网下载所需的文件: 官网下载(笔者选择的是jquery.jqplot.1.0.8r1250.zip这个版本) 然后读者需要根据自己的情况新建一个项目并且按照如下的方式加载 ...

  2. mingw 构建 Geos

    简述 在做某个小程序时候用到了QT,而用的Qt是mingw版本的,所以使用mingw构建了一下geos库. 1.准备工作 首先需要先安装好mingw,这里直接使用http://www.mingw-w6 ...

  3. 【转】Jenkins怎么启动和停止服务

    笔者没有把Jenkins配置到tomcat中,每次都是用命令行来启动Jenkins.但是遇到一个问题:Jenkins一直是开着的,想关闭也关闭不了.百度了一些资料,均不靠谱(必须吐槽一下百度).于是进 ...

  4. yum安装提示错误Thread/process failed: Thread died in Berkeley DB library

    问题描述: yum 安装更新提示 rpmdb: Thread/process failed: Thread died in Berkeley DB library 问题解决: 01.删除yum临时库文 ...

  5. git for c#,文件改动内容

    private static void pushModify() { string wkDir = @"E:\DotNet2010\单位project\Git.Client\lib2Test ...

  6. asp:ObjectDataSource+asp:GridView 实现真分页

    <asp:GridView ID="GridViewCacheManager" DataSourceID="OdsCacheManager" runat= ...

  7. I/O Completion Ports学习

    表示还是自己看MSDN最直接,别人的介绍都是嚼剩下,有木有? IO完成端口为在多处理器系统处理多个异步IO请求提供一个高效的线程模型.当一个进程新建一个完成端口,操作系统新建一个目的为服务这些请求的队 ...

  8. 【Spring】SpringMVC之拦截器

    Spring的HandlerMapping处理器支持拦截器应用.当需要为某些请求提供特殊功能时,例如实现对用户进行身份认证.登录检查等功能. 拦截器必须实现HandlerInterceptor接口,实 ...

  9. Oracle VM VirtualBox CentOS7桥接设置问题解决

    我遇到的问题是不能选择桥接网络选项,处理步骤: 1.重装 VirtualBox(安装DockerToolBox带的VirtualBox). 2.下面是存在的缺少驱动问题和解决方法: 注意 :缺少桥接驱 ...

  10. is-a,has-a,like-a是什么 sql server中,N''表示什么意思? 关于SQL SERVER的N前缀的理解

    https://blog.csdn.net/ooppookid/article/details/51174122#commentBox 1.is-a,has-a,like-a是什么 在面向对象设计的领 ...