unix 环境编程学习笔记------对于信号的一点认识

信号的理解:


1.信号的本质是什么???
:::
: 信号的本质时一个整数,unix用一个整数来标示一个事件





2.信号与内核是什么关系???


请分析下面一段话:摘自《操作系统原理 技术 与编程》

从用户的角度看,只要调用了系统调用kill()就可以发送信号,此调用号只需要目标进程PID和一个信号SIG共两个参数就可以了。

而系统调用kill()是通过调用内核函数,sys_kill()来完成信号的发送的
不管信号来自哪里,内核最后总是通过直接或间接调用内核函数,来完成发送信号的任务。

举个例子: A进程向B进程发送一个信号。
   A进程通过系统调用,把待发送的信号,和目的进程的pid传递给内核,内核收到之后,就调用内核函数把自己得到的信号
发送给进程号为目标进程的进程B.






要点:  信号的发送和接收实际上是同一个过程,它的实质是发送进程(或内核)通过相关的系统调用更新目标进程进程结构体中接收到信号的队列。

即:所谓的发送:就是要将要发送的信号的编号写入目标进程的进程结构体的signal域中。


3.信号与进程是什么关系???? 信号是怎样和进程联系在一起的????


要点: 1。在进程控制块中,所包含的下列成员用来跟踪发送给进程的信号。
  2.进程结构体中与信号有关的成员:
struct signal_struct *sig;
sigset_t   signal,blocked;
struct signal_queue  *sigqueue,**sigqueue_tail;
int sigpending;

其中:
sig是一个指向signal_struct 结构体的指针,该结构体中存放处理该信号的各种数据结构以及指向信号处理函数的指针。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值