分类:linux2013-01-14 22:111867人阅读评论(0)收藏举报linux进程和信号 僵尸进程unixUNIXUnix僵尸进程的产生:当一个进程创建了一个子进程时,他们的运行时异步的。即父进程无法预知子进程会在什么时候结束,那么如果父进程很繁忙来不及wait 子进程时,那么当子进程结...
分类:
系统相关 时间:
2015-05-15 07:53:35
阅读次数:
306
Python 2.6新增的multiprocessing,即多进程,给子进程代码调试有点困难,比如python自带的pdb如果直接在子进程代码里面启动会抛出一堆异常,原因是子进程的stdin/out/err等文件都已关闭,pdb无法调用。据闻winpdb、Wing IDE的调试器能够支持这样的远程调...
分类:
编程语言 时间:
2015-05-15 07:50:21
阅读次数:
315
httpd是Apache超文本传输协议(HTTP)服务器的主程序。被设计为一个独立运行的后台进程,它会建立一个处理请求的子进程或线程的池。要了解httpd就需要先了解下各种协议。http:HyperTextTransferProtocol,超文本传输协议html:HyperTextMarkLanguage,超文本标记语言CGI:CommonG..
分类:
Web程序 时间:
2015-05-15 01:23:04
阅读次数:
306
python的os module中有fork()函数用于生成子进程,生成的子进程是父进程的镜像,但是它们有各自的地址空间,子进程复制一份父进程内存给自己,两个进程之间的执行是相互独立的,其执行顺序可以是不确定的、随机的、不可预测的,这点与多线程的执行顺序相似。import osdef child()...
分类:
编程语言 时间:
2015-05-14 23:30:25
阅读次数:
173
什么是僵尸进程?首先内核会释放终止进程(调用了exit系统调用)所使用的所有存储区,关闭所有打开的文件等,但内核为每一个终止子进程保存了一定量的信息。这些 信息至少包括进程ID,进程的终止状态,以及该进程使用的CPU时间,所以当终止子进程的父进程调用wait或waitpid时就可以得到这些信息。而僵...
分类:
系统相关 时间:
2015-05-14 18:27:56
阅读次数:
160
#include #include int main(void) { int i=0; printf("i son/pa ppid pid fpid\n"); //ppid指当前进程的父进程pid //pid指当前进程的pid, //fpid指fo...
分类:
系统相关 时间:
2015-05-14 16:08:17
阅读次数:
375
如果多个进程当父进程产生一个子进程时,会把父进程的代码段、数据段等拷贝给子进程,这里边有一个写时拷贝原则,这个动作并不是马上执行的,要等到子进程去修改内存里面的变量时候,才会进行拷贝,拷贝的机制并不是想象的那么简单,拷贝的时候只是拷贝子进程所需要的页,每个进程os都会进行分页管理,虚拟的内存空间2^32远远大于物理内存空间,然后把物理内存分成一页一页的形式,如果这个变量放在第一页,就只会进行第一页...
分类:
系统相关 时间:
2015-05-13 10:38:31
阅读次数:
157
孤儿进程和僵尸进程:
如果父进程先退出,子进程还没退出那么子进程的父进程将变成init进程(任何一个进程都有一个父进程)
如果子进程先退出,父进程还没有退出,那么子进程必须要等到父进程捕获到了子进程的退出状态才真正结束,否则这个时候子进程就成为僵尸进程。
如果父进程先结束,子进程会托孤给1号进程
怎样避免僵尸进程呢?是由于父进程没有给子进程收尸,怎么解决这个...
分类:
系统相关 时间:
2015-05-13 10:36:13
阅读次数:
174
1、调用fork函数,创建一个子进程。2、先让父进程自然结束。3、在子进程中调用setpgrp(),把子进程的进程组ID设为子进程的进程ID。4、在子进程中调用setsid(),创建一个新的Session(会话),这样子进程就与当前的控制终端脱离,也接受不到当前终端的(ctrl + c)消息。 1 ...
分类:
系统相关 时间:
2015-05-11 21:40:29
阅读次数:
213
写时复制技术最初产生于Unix系统,用于实现一种傻瓜式的进程创建:当发出fork()系统调用时,内核原样复制父进程的整个地址空间并把复制的那一份分配给子进程。这种行为是非常耗时的,因为它需要:·为子进程的页表分配页面·为子进程的页分配页面·初始化子进程的页表·把父进程的页复制到子进程相应的页中创建一...
分类:
系统相关 时间:
2015-05-11 21:35:40
阅读次数:
227