今天学习信号以及进程的控制实验
2011-04-16 13:18
701 查看
僵尸进程?按照我的理解是在主进程在没有在fork之前设置忽略SID_IGN,且也没有在fork之后主进程进城wait回收的话就有可能会出现僵尸进城。defunct标志。
避免僵尸进程的产生可以破坏上述的两个条件之一
1、主进程中设置忽略SIGCHLD信号获取在主进程后面wait进行子进程尸体的回收
2、在子进程当中再次fork创建孙子进程,然后子集成退出孙子进城保留,由于孙子进城没有了直接主进城,那么其结束之后尸体由init进程回收。
信号处理函数给我们带了许多便利,但是却也隐藏着许多的问题,使得有时候bug的出现莫名奇妙。主要是我们调用的底层函数的是否可重入决定的(是否可以重入函数按我自己的个人理解是这个函数执行过程没有使用全局获取静态的变量或者涉及这些的函数那么就是可重入的)。具体的深入了解还需要多多练习。
如果要解决这个问题可以使用信号量处理(P-V),使得对一个不可重入的函数实现并发的互斥性操作。
信号的处理在多进程都线程中应用的时候要多注意哦!
避免僵尸进程的产生可以破坏上述的两个条件之一
1、主进程中设置忽略SIGCHLD信号获取在主进程后面wait进行子进程尸体的回收
2、在子进程当中再次fork创建孙子进程,然后子集成退出孙子进城保留,由于孙子进城没有了直接主进城,那么其结束之后尸体由init进程回收。
信号处理函数给我们带了许多便利,但是却也隐藏着许多的问题,使得有时候bug的出现莫名奇妙。主要是我们调用的底层函数的是否可重入决定的(是否可以重入函数按我自己的个人理解是这个函数执行过程没有使用全局获取静态的变量或者涉及这些的函数那么就是可重入的)。具体的深入了解还需要多多练习。
如果要解决这个问题可以使用信号量处理(P-V),使得对一个不可重入的函数实现并发的互斥性操作。
信号的处理在多进程都线程中应用的时候要多注意哦!
相关文章推荐
- PHP扩展pcntl(进程控制以及信号处理)中文文档
- PHP扩展pcntl(进程控制以及信号处理)中文文档
- Nginx学习——Nginx启动、停止、重启和信号控制以及平滑升级
- PHP扩展pcntl(进程控制以及信号处理)中文文档
- Nginx学习——Nginx启动、停止、重启和信号控制以及平滑升级
- PHP扩展pcntl(进程控制以及信号处理)中文文档
- 学习进程控制与进程通信_用命名管道来实现两个进程间的通信
- 学习笔记:linuxc第七章—进程控制 下篇
- linux 进程通信-信号学习总结(1)
- MongoDB学习之旅十七:进程控制
- Shell脚本学习笔记(八)--进程管理和工作控制
- UNIX环境高级编程学习之第八章进程控制-用父子进程实现打开kate,返回kate关闭状态
- 【学习笔记】启动Nginx、查看nginx进程、查看nginx服务主进程的方式、Nginx服务可接受的信号、nginx帮助命令、Nginx平滑重启、Nginx服务器的升级
- 今天做路由实验学习体会---配置OSPF路由协议
- fork - 利用信号在父子进程间传递指针的实验
- LINUX编程学习笔记(十五) 进程控制 文件锁 信号处理与屏蔽
- 今日学习心得:SiteMap设置以及在SiteMap中使用roles控制权限
- 进程控制学习笔记一
- Nignx基本操作(启动、停止、重启)以及信号控制
- Linux——进程的控制 信号