随笔分类 - linux process
摘要:使用eventpoll+signalfd方式来处理signal android init进程signal处理采用了eventpoll+signal的方式,本文解析一下这种方式是如何实现的 eventpoll+signalfd方式signal处理流程 1. 将SIGCHLD block 调用sigpr
阅读全文
摘要:本文原创,原创不易,转载请注明出处! Linux eventpoll解析 eventpoll是什么? eventpoll是一个可以同时监听多个file发生特定event,然后将发生的特定event返回user space,在user space调用此event的回调函数的一种功能,它一个wait可以
阅读全文
摘要:linux signal misc 在user space常使用的signal相关的API 1. 在user space注册信号处理函数 sigaction()函数prototype: int sigaction(int signum, const struct sigaction *act,str
阅读全文
摘要:给一个进程发送SIGTERM信号kernel处理flow 给一个进程发送SIGTERM信号kernel处理flow 以在命令行下给一个进程发送SIGTERM信号为例说明下kernel是怎么处理这个信号的 首先会alloc一个sigqueue,这个sigqueue代表SIGTERM,然后将这个sigq
阅读全文
摘要:process mngr misc PID/TGID/PGID/SID PID:在ps cmd里显示的pid是进程id,它对应kernel task_struct里的tgid成员。task_struct里的pid_t pid成员是线程id,task_struct里的tgid是thread group
阅读全文
摘要:struct pid & pid_namespace alloc_pid() & task_struct插入pid struct tasks[] hash list fork进程/线程时,copy_process()会给此线程alloc一个struct pid结构体。当是fork进程/线程时,cop
阅读全文
摘要:linux signal framework 信号产生&处理流程 信号产生(signal generate) 信号的产生可以是user space通过kill等系统调用给某个线程(目标线程)发送某个signal,此时signal generate的流程如下: 1. 根据pid确定对应的task_st
阅读全文
摘要:user space进程退出时,进程的mmap资源将由kernel进行unmap user space进程退出时,会调用exit_mmap()将mmap都释放掉,callstack如下: do_exit exit_mm mmput __mmput exit_mmap mm/mmap.c /* Rel
阅读全文