信号:
信号机制是类UNIX系统中的一种重要的进程间通信手段之一。我们经常使用信号来向一个进程发送一个简短的消息。例如:假设我们启动一个进程通过socket读取远程主机发送过来的网络数据包,此时由于网络因素当前主机还没有收到相应的数据,当前进程被设置为可中断等待状态(TASK_INTERRUPTIBLE),此时我们已经失去耐心,想提前结束这个进程,于是可以通过kill命令想这个进程发送KILL信...
分类:
系统相关 时间:
2016-05-22 12:16:32
阅读次数:
616
在Linux:信号上博文中我们写了一个mysleep,但是实际上这个函数在多线程环境下是会出现错误的,也就是我们这个mysleep函数并不是可重入函数,现在重新审视“mysleep”程序,设想这样的时序:1.注册SIGALRM信号的处理函数。2.调用alarm(nsecs)设定闹钟。3.内核调度优先级更高的进..
分类:
系统相关 时间:
2016-05-09 07:21:41
阅读次数:
315
从我的博客之前的文章中,一直都在强调操作系统是由多进程协同工作而实现整个操作系统的逻辑目的,达到一个人为操纵的系统:之前的博文一直都在描述进程控制,进程之间的通信,还有线程控制与操作,但是却一直没有描述多个进程之间的相互是怎么通知整个系统的。对于多个不同进..
分类:
系统相关 时间:
2016-05-08 01:24:59
阅读次数:
341
一、信号信号用来通知进程发生了异步事件。内核也可以因为内部事件而给进程发送信号,通知进程发生了某个事件。注意,信号只是用来通知某进程发生了什么事件,并不给该进程传递任何数据。**用kill-l命令查看系统定义的信号列表二、信号的产生方式①通过键盘组合键向前台发送信..
分类:
系统相关 时间:
2016-05-07 01:15:36
阅读次数:
436
每个信号都有一个编号和宏定义,在signal.h中可以找到1-31为普通信号,34-64为实时信号可通过kill-l命令查看所有信号信号的产生通过终端按键产生用户通过键盘按键,如ctrl+c给前台进程发送2号信号SIGINT,该信号的默认动作为终止进程,当进程收到此信号时,执行默认动作终止该..
分类:
系统相关 时间:
2016-05-06 19:52:25
阅读次数:
527
一、产生信号的三种方式:1.由键盘(终端按键)产生,比如在shell下启动一个前台进程(控制台下的进程),按Ctrl^C(只能发给前台进程)会产生一个硬件中断,若CPU正在执行此进程代码,则该进程用户空间代码暂停执行,CPU从用户态切换到内核态处理中断,如果不是自定义信号处理..
分类:
系统相关 时间:
2016-05-05 22:49:17
阅读次数:
284
Linux信号一、信号:在计算机中存在了一组由整数构成的一组数,这组数大多用于软件中断作用。用kill-l可以查看系统中所定义的信号。其中1到31号信号为普通信号,34到64号为实时信号。这里主要讨论普通信号。这些信号的默认动作基本上是中断/忽略,或者为中断/core。core:它是程..
分类:
系统相关 时间:
2016-05-01 17:51:44
阅读次数:
256
信号—signal一、信号的基本概念为了理解信号,先从我们最熟悉的场景说起:1.用户输入命令,在Shell下启动一个前台进程。2.用户按下Ctrl-C,这个键盘输入产生一个硬件中断。3.如果CPU当前正在执行这个进程的代码,则该进程的用户空间代码暂停执行,CPU从用户态切换到内核态处理硬件中..
分类:
系统相关 时间:
2016-04-29 20:21:24
阅读次数:
367
Linux信号机制Linux信号机制
一管理层次及结构
1 数据结构
11 中断向量表的模拟
12 中断请求寄存器的模拟
二 信号的安装
1 概述
2 代码分析
3 其它函数
三信号发送
1 kill函数和sigqueue
2 代码分析
四响应信号
一、管理层次及结构1.1 数据结构信号机制是在软件层次上堆中断机制的一种模拟,也就是说信号是一种代码异步执行的方式。故而信号也有类似于中断管理的相关软件...
分类:
系统相关 时间:
2016-04-22 19:33:29
阅读次数:
195
Linux信号(signal) 机制分析 【摘要】本文分析了Linux内核对于信号的实现机制和应用层的相关处理。首先介绍了软中断信号的本质及信号的两种不同分类方法尤其是不可靠信号的原理。接着分析了内核对于信号的处理流程包括信号的触发/注册/执行及注销等。最后介绍了应用层的相关处理,主要包括信号处理函 ...
分类:
系统相关 时间:
2016-04-22 16:07:50
阅读次数:
283