当前位置: 首页 > news >正文

沙朗做网站公司聊城市建设工程质量监督站网站

沙朗做网站公司,聊城市建设工程质量监督站网站,辽宁自助网站建设公司,中石油技术开发公司网站#xff08;转载#xff09;http://blog.chinaunix.net/uid-23089249-id-210808.html一个进程在调用exit命令结束自己的生命的时候#xff0c;其实它并没有真正的被销毁#xff0c; 而是留下一个称为僵死进程#xff08;Zombie#xff09;的数据结构#xff08;系统调用… 转载http://blog.chinaunix.net/uid-23089249-id-210808.html 一个进程在调用exit命令结束自己的生命的时候其实它并没有真正的被销毁 而是留下一个称为僵死进程Zombie的数据结构系统调用exit它的作用是使进程退出但也仅仅限于将一个正常的进程变成一个僵死进程并不能将其完全销毁。 一、僵死进程的产生    在每个进程退出的时候内核释放该进程所有的资源包括打开的文件占用的内存等但是仍然为其保留一定的信息(包括进程号the process ID退出状态the termination status of the process运行时间the amount of CPU time taken by the process等) 直到父进程通过wait/waitpid来取时才释放。此时该进程处于僵死状态该进程成为僵死进程(Zombie Process)。 这保证了父进程可以获取到子进程结束时的状态信息。    在Linux进程的状态中僵死进程是非常特殊的一种它已经放弃了几乎所有内存空间没有任何可执行代码也不能被调度仅仅在进程列表中保留一个位置记载该进程的退出状态等信息供其他进程收集除此之外僵死进程不再占有任何内存空间。它需要它的父进程来为它收尸如果他的父进程没安装SIGCHLD信号处理函数调用wait或waitpid()等待子进程结束又没有显式忽略该信号那么它就一直保持僵死状态如果这时父进程结束了僵死的子进程成为孤儿进程过继给1号进程initinit始终会负责清理僵死进程它产生的所有僵死进程也跟着消失每个进程结束的时候系统都会扫描当前系统中所运行的所有进程 看有没有哪个进程是刚刚结束的这个进程的子进程如果是的话就由Init来接管他成为他的父进程。但是如果如果父进程是一个循环不会结束那么子进程就会一直保持僵死状态这就是为什么系统中有时会有很多的僵死进程。怎么查看僵死进程利用命令ps可以看到有标记为Z的进程就是僵死进程。 二、僵死进程的危害    如果父进程不调用wait/waitpid的话 那么保留的那段信息就不会释放其进程号会一定被占用但是系统所能使用的进程号是有限的如果产生了大量的僵死进程将因为没有可用的进程号而导致系统不能产生新的进程。  三、僵死进程的避免 1、父进程通过wait和waitpid等函数等待子进程结束这会导致父进程挂起 2、如果父进程很忙那么可以用signal函数为SIGCHLD安装信号处理函数。子进程结束后父进程会收到该信号可以在信号处理函数中调用wait回收 。3、如果父进程不关心子进程什么时候结束那么可以用signal(SIGCHLD, SIG_IGN)通知内核自己对子进程的结束不感兴趣那么子进程结束后内核会回收 并不再给父进程发送信号。或用sigaction函数为SIGCHLD设置SA_NOCLDWAIT这样子进程结束后就不会进入僵死状态 struct sigaction sa;  sa.sa_handler SIG_IGN;  sa.sa_flags SA_NOCLDWAIT;  sigemptyset(sa.sa_mask);  sigaction(SIGCHLD, sa, NULL); 4、fork两次父进程fork一个子进程然后继续工作子进程fork一个孙进程后退出那么孙进程被init接管孙进程结束后init会回收。不过子进程的回收还要父进程来做。 int nStatus; pid_t pid;pid vfork(); //生成子进程if (pid 0) //父进程{waitpid(pid, nStatus, 0); //等待子进程结束,否则子进程会成为僵死进程,一直存在,即便子进程已结束执行 }else if (0 pid) //子进程{pid vfork(); //生成孙进程if (pid 0) {exit(0); //子进程退出,孙进程过继给init进程,其退出状态也由init进程处理,与原有父进程无关}else if (0 pid) //孙进程{if (execlp(ls, ls, NULL) 0){perror(execlp);exit(-1);}}else{ perror(vfork(child)); } }else{ perror(vfork(parent)); }  转载于:https://www.cnblogs.com/Robotke1/archive/2013/05/01/3053716.html
http://www.zqtcl.cn/news/295736/

相关文章:

  • 哪些网站有搜索引擎作弊的社群营销平台有哪些
  • 建地方的网站前景苏州做视频网站广告公司
  • 制作网站的主题海口网站自助建站
  • dede二手车网站源码网络工程师
  • 吴桥网站新网站优化怎么做
  • 做网站要求什么条件0资本建设网站
  • 免费做网站排名洛阳软件开发公司有哪些
  • 网站搜索优化方法东莞seo全网营销
  • 广州微网站建设哪家好wordpress怎样将小工具放到左侧
  • 汕头网站搜索优化嘉兴网络项目建站公司
  • 怎么查询网站是什么时候做的网站app的意义
  • 曹妃甸网站建设合肥的房产网站建设
  • 怎么做网站前台二级区域网站名
  • 服务器租用相关网站一个空间怎么放两个网站吗
  • 每个城市建设规划在哪个网站南宁seo怎么做优化团队
  • 做资讯类网站ccd设计公司官网
  • 写作网站5妙不写就删除抚州建设网站
  • 沙田网站建设公司网站风格设计原则
  • 安徽省建设监理网站黑群晖可以做网站吗
  • 手机百度seo快速排名搜索引擎优化目标
  • 长春 房地产网站建设网站建设 合同
  • 电商专业培训网站建设wordpress内置播放器
  • 创意网站设计模板点击器免费版
  • 做的不错的h5高端网站网站是怎么优化的
  • 淄博做网站优化佛山 做网站公司
  • 设计网站的步骤网站开发怎么学习
  • 提供网站技术国内外电子政务网站建设差距
  • 阜新建设网站物流网站建设的小结
  • 个人可以网站备案吗建设多用户网站
  • 平面设计素材库淄博网站优化价格