Chinaunix首页 | 论坛 | 博客
  • 博客访问: 325020
  • 博文数量: 78
  • 博客积分: 1322
  • 博客等级: 中尉
  • 技术积分: 680
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-14 13:24
文章分类
文章存档

2012年(20)

2011年(55)

2010年(3)

分类: LINUX

2011-08-17 23:33:10

一  信号介绍
v      
    信号机制是在软件层次上对中断机制的模拟。从概念上讲,一个进程接受到一个信号与一个处理器接受到一个中断请求是一样的。一个进程所接收到的信号可以来自其他进程,可以来自外部事件,也可以来自进程自身。
 
v    信号和中断都是异步的。处理器在执行一段程序时并不需要停下来等待中断的发生,也不知道中断会何时发生。信号也一样,一个进程并不需要通过一个什么样的操作来等待信号的到达,也不知道信号会什么时候到达。
 
二  信号处理的时机
     
    当进程处理完中断、异常或者系统调用从内核态返回到用户态之前,首先关中断。然后,检查调度标志need_resched 是否已设置,若是已设置,说明需要进行调度,则调schedule()函数进行进程调度。
 
    同样,如果当前进程的task_struct结构中的sigpending标志为非0,就表示该进程有信号等待处理,要先处理完这些信号后才从中断返回,处理完信号,恢复中断现场,彻底从中断返回。
阅读(1301) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~