信号
Joseph_1118
这个作者很懒,什么都没留下…
展开
-
linux信号处理流程前篇---内核态与用户态的切换
由于linux中信号的处理时机在内核态返回用户态时,所以本文首先讲一下用户态与内核态的切换。 首先,我们来看用户态到内核态的切换。用户态切换到内核态有两种途径,第一种是中断,这个是被动的。第二种是系统调用,这个是主动的。 1、中断 对于一个正在运行的task来说,其运行在用户态时,内核栈是空的。中断到来时,会将当时的寄存器(用户态寄存器)信息按照pt_regs的结构压入到内原创 2013-07-03 23:13:54 · 2571 阅读 · 0 评论 -
linux多线程环境下的抢尸行为(system返回-1:No child processes)
故事背景: 我们这边开发了一个动态库给客户用,动态库里面会调用system来做insmod/rmmod模块的事情。这些模块都是我们这边提供给客户的。拿到客户那边去测试,会随机性的出现system返回-1的问题,也就是system出错了!但是奇怪的是我们发现实际上insmod/rmmod是成功了的。把当时的errno和对应的出错信息打出来发现errno是10,对应的信息是No child p原创 2014-01-01 21:27:53 · 5383 阅读 · 1 评论