你会看到这个提示,那是因为你的系统无法识别某栏目的模型信息,或者你新建模型后,没为这个模型设计单独的模板。不同模型的文档浏览页的模板为:article_模型名字标识.htm
如“article_article.htm”,更多的信息你可以在频道模型管理的地方查看。
题型:1单选,2多选,3填空,4问答,5排序 内容:
模板调用标记:
|
4 |
答案 内容:
模板调用标记:
|
-
孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么这些子进程将成为孤儿进程,将被init 进程(进程号为1)所收养,并由init 进程对这些子进程完成状态收集工作;
-
僵尸进程:一个进程使用fork 创建子进程,如果子进程退出,而父进程并未调用wait 或waitpid 来获取子进程的状态信息,子进程的进程描述符仍然保存在系统中,那么这种子进程将成为僵尸进程。
僵尸进程的危害:在子进程退出的时候,内核释放该子进程所有的资源,但仍保留进程号、退出状态、运行时间等信息,直到父进程通过wait 或waitpid 对其进行释放;但如果父进程不对保留信息进行释放,进程号会一直被占用,然而系统所能使用的进程号是有限的,如果产生大量的僵尸进程,系统将因没有可用的进程号而导致系统不能产生新的进程。
解决僵尸进程的方法:
-
父进程通过
wait 和waitpid 等函数等待子进程结束,但这样会导致父进程挂起;
-
如果父进程很忙,那么可用
signal 函数为SIGCHLD 安装handler ,这样当子进程结束后,父进程会收到信号,在handler 中调用wait 回收;
-
如果父进程不关心子进程何时结束,那么可以用
signal(SIGCHLD, SIG_IGN) 通知内核,这样当子进程结束后,内核会对其进行回收;
-
fork 两次,父进程fork 一个子进程后继续工作,子进程fork 一个孙进程后退出,那么孙进程将被init 接管,这样当子进程结束后,内核会对其进行回收。
|
难度:1入门级,2初级,3中级,4高级 内容:
模板调用标记:
|
1 |
(责任编辑:zengmumu) |