中断 中断是系统对于异步事件的响应, 进程执行代码的过程中可以随时被打断,然后去执行异常处理程序; 计算机系统的中断场景:中断源发出中断信号 -> CPU判断中断是否屏蔽屏蔽以及保护现场 -> CPU(查询中断向量表, 找到中断服务程序的入口地址)执行中断处理程序 ->(处理完中断之后) ->恢复现场,继续执行原来的任务 中断分类 硬件中断(外部中断) 外部中断是指由外部设备通过硬件请求的方式产生的中断,也称为硬件中断 软件中断(内部中断) 内部中断是由CPU运行程序错误或执行内部…
Sigaction #include <signal.h> int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact); 功能: sigaction函数用于改变进程接收到特定信号后的行为. 参数 第一个参数为信号的值,可以为除SIGKILL及SIGSTOP外的任何一个特定有效的信号(为这两个信号定义自己的处理函数,将导致信号安装错误) 第二个参数是指向结构sigaction的指针,在结构 si…
进程 VS. 程序 什么是程序? 程序是完成特定任务的一系列指令集合. 什么是进程? [1]从用户的角度来看:进程是程序的一次执行过程 [2]从操作系统的核心来看:进程是操作系统分配的内存.CPU时间片等资源的基本单位. [3]进程是资源分配的最小单位 [4]每一个进程都有自己独立的地址空间与执行状态. [5]像UNIX这样的多任务操作系统能够让许多程序同时运行,每一个运行着的程序就构成了一个进程 进程数据结构 进程由三部分组成:PCB.程序段和数据段. 进程控制块PCB:用于描述进程情况及控制…
信号分类 不可靠信号 Linux信号机制基本上是从UNIX系统中继承过来的.早期UNIX系统中的信号机制比较简单和原始,后来在实践中暴露出一些问题,它的主要问题是: 1.进程每次处理信号后,就将对信号的响应设置为默认动作.在某些情况下,将导致对信号的错误处理:因此,用户如果不希望这样的操作,那么就要在信号处理函数结尾再一次调用signal(),重新安装该信号. 2.因此导致, 早期UNIX下的不可靠信号主要指的是进程可能对信号做出错误的反应以及信号可能丢失. Linux支持不可靠信号,但是对不可…
作 者:道哥,10+年嵌入式开发老兵,专注于:C/C++.嵌入式.Linux. 关注下方公众号,回复[书籍],获取 Linux.嵌入式领域经典书籍:回复[PDF],获取所有原创文章( PDF 格式). 目录 目录 驱动程序 示例代码全貌 Makefile 文件 编译.测试 应用程序 示例代码全貌 编译.测试 别人的经验,我们的阶梯! 大家好,我是道哥,今天我为大伙儿解说的技术知识点是:[中断程序如何发送信号给应用层]. 最近分享的几篇文章都比较基础,关于字符类设备的驱动程序,以及中断处理程序.…
信号在内核中的表示 执行信号的处理动作称为信号递达(Delivery),信号从产生到递达之间的状态,称为信号未决(Pending).进程可以选择阻塞(Block)某个信号.被阻塞的信号产生时将保持在未决状态,直到进程解除对此信号的阻塞,才执行递达的动作. 注意,阻塞和忽略是不同,只要信号被阻塞就不会递达,而忽略是在递达之后可选的一种处理动作.信号在内核中的表示可以看作是这样的: 图-信号的发送过程 解释说明: 1)PCB进程控制块(task_struct)中函数有信号屏蔽状态字(block)和信…
1. kill(pid_t pid, int sig); //给指定的进程发送sig信号   raise(int sig); //给当前进程发送sig信号2. 处理指定的信号    typedef void (*sighandler_t)(int);   sighandler_t   signal(int  signum,  sighandler_t       handler);   //使用新的处理函数handler来处理signum信号, 并返回原来的处理函数地址查看信号: man 7 s…
信号(或软中断)是在软件层次上对中断的一个模拟,其运行在“用户空间”,一个进程对另外一个或几个进程通过发送信号来实现异步通信.当接收进程接收到信号后,其可以注册一下处理函数来说对这些信号进行处理(也可以选择忽略该信号或者采用系统默认的处理方式). 我看可以通过“kill -l”命令来查看系统支持的信号,比如SIGKILL它表示需要终止一个进程,它有一个系统特定的信号值9.这些值都定义在signal.h中 在signal.h中有个叫做_NSIG(一般为64)的宏其表示该系统支持的最多信号数,而SI…
版权声明:本文为本文为博主原创文章,转载请注明出处.如有错误,欢迎指正.博客地址:https://www.cnblogs.com/wsg1100/ 目录 1. Linux信号 1.1注册信号处理函数 1.2 信号的发送 1.3 信号的处理 2 linux 多线程信号 1. Linux信号 涉及硬件底层,本文以X86平台讲解. 信号是事件发生时对进程的通知机制,是操作系统提供的一种软件中断.信号提供了一种异步处理事件的方法,信号与硬件中断的相似之处在于打断了程序执行的正常流程,例如,中断用户键入中…
该脚本主要的目的是练习在Linux bash脚本中捕获信号,顺便练习一下函数的使用,还有就是终止一个正在运行的程序后,该程序打开的文件的后续处理问题等等!脚本功能:  ping一个网段内的IP,检测哪些IP在线,哪些IP不在线练习的命令:1.mktemp   用法:#mktemp 1117.www.qixoo.qixoo.com/Path/To/SomeFile.XXX 其中XXX可以为多个,是由系统随机生成的一段字符串          -d  创建为目录2.ping 测试网络是否通畅  用法…