linux进程组问题。。。求大神。。。。。
书上说:某个进程组中只要有一个进程存在,则该进程组就存在,与组长进程的终止无关。。。。。
我有一点不明白:如果组长进程ID是 100, 现在组长进程终止了,那么该组的其他进程的组ID是否还是100?如果是的话,那么我又有一个疑问,由于ID为100的进程终止,那么系统会把 100这个标示符给一个新的进程,那么这个新的ID为100的进程该如何处理呢?难道它会自成为上面讨论的那个进程组的组长吗?
[解决办法]
其他进程组id还是100的。
100走了,但是这个进程号资源不会回收的,因为还在使用呢。不会在分配给其他进程。
[解决办法]
(1)进程组id不等于进程id,因此即使OS重用100进程号,也无关进程组100什么事。
(2)进程退出号,进程号资源肯定会被回收,除非产生所谓僵尸进程
(3)是否会循环重用进程号,要看OS的实现,不过大部分OS是重用的。
[解决办法]
组id就是组长进程的id
----------------------------------
是说的值相等,不是对象引用。进程退出后,进程槽是会被OS收回的,否则怎么重用?
有些OS,比如早期的一些Xenix,Sco OpenServer,是不重用进程号的,当进程号资源用尽,则会报告错误。现在的OS一者因为指令字变长,同样的int类型已经足够宽,因此,有些OS设计者认为资源足够,无须重用,有些,而且是大部分,为了避免这个问题,采用的重用机制。