首页 > 试题广场 >

关于 linux 的进程,下面说法不正确的是:

[单选题]
关于 linux 的进程,下面说法不正确的是:
  • 僵尸进程会被 init 进程接管,不会造成资源浪费;
  • 孤儿进程的父进程在它之前退出,会被 init 进程接管,不会造成资源浪费;
  • 进程是资源管理的最小单位,而线程是程序执行的最小单位。Linux 下的线程本质上用进程实现;
  • 子进程如果对资源只是进行读操作,那么完全和父进程共享物理地址空间。
推荐
         linux提供了一种机制可以保证只要父进程想知道子进程结束时的状态信息, 就可以得到。这种机制就是: 在每个进程退出的时候,内核释放该进程所有的资源,包括打开的文件,占用的内存等。 但是仍然为其保留一定的信息(包括进程号the process ID,退出状态the termination status of the process,运行时间the amount of CPU time taken by the process等)。直到父进程通过wait / waitpid来取时才释放。

        孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。
        僵尸进程:一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用wait或waitpid获取子进程的状态信息,那么子进程的进程描述符仍然保存在系统中。这种进程称之为僵死进程。

         僵死进程并不是问题的根源,罪魁祸首是产生出大量僵死进程的那个父进程,所以,解决方法就是kill那个父进程,于是僵尸进程就可以被init进程接收,释放。
编辑于 2016-04-29 10:35:53 回复(0)
A 是错误的。孤儿进程会被init进程结果,僵尸进程会一直占用资源除非父进程对其回收
B 是正确的
C 是正确的
D 正确的
编辑于 2016-04-29 10:35:48 回复(0)
d项才没有对的那么明显。fork之后的子进程自然是和普通进程一样拥有它独立的地址空间。但是这么做效率低下,所以大部分操作系统都用到了"写时拷贝"来完成子进程创建,如果没有写操作,则不构造新的地址空间。
发表于 2016-09-04 21:20:35 回复(0)
B应该改为:孤儿进程的父进程在它之前退出,孤儿进程会被 init 进程接管,不会造成资源浪费;
发表于 2018-10-12 08:33:53 回复(0)
僵尸进程会一直占用资源,等其父进程结束了,僵尸进程变为了孤儿进程,被init进程接管。
发表于 2016-06-30 21:39:35 回复(0)
子进程已结束,其父进程还未结束并且没有回收该子进程,这个子进程就是僵尸进程,将一直占用资源,直到父进程也结束了还是没有回收该子进程,此时这个子进程将从僵尸进程转变成孤儿进程,被init进程接管,最后由init进程回收其资源
发表于 2015-08-22 20:35:07 回复(0)
 僵尸进程:一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用wait或waitpid获取子进程的状态信息,那么子进程的进程描述符仍然保存在系统中。这种进程称之为僵死进程。
发表于 2016-07-08 11:03:33 回复(0)
前面都解释的很正确,大家注意下D ,百度一下写复制 ,其实这个也经常考。
发表于 2017-08-14 12:52:03 回复(1)
A × 僵尸进程是不会被 init 进程接管的
发表于 2015-08-22 17:21:19 回复(0)
僵尸进程不会被 init 进程接管,不会造成资源浪费;
发表于 2019-10-12 15:45:56 回复(0)
D:写时复制CopyOnWrite
发表于 2018-09-06 23:07:26 回复(0)
B应该改为:孤儿进程的父进程在它之前退出,孤儿进程会被 init 进程接管,不会造成资源浪费;
发表于 2018-07-25 08:55:08 回复(0)
D选项,俩进程怎么可以共享地址空间啊。。。
发表于 2018-01-31 09:00:37 回复(0)
记得僵尸进程书上是这样讲的,僵尸顾名思义就是应该死掉但是死不掉的进程,发生的原因是父进程应该等待子进程执行完后,对资源进行回收,但是没有进程等待,这是父进程还是在执行的,当子进程执行完毕后,就会变成僵尸进程,僵尸进程是会浪费系统资源的;
反过来孤儿进程表示的是子进程执行完成之后,发现父进程已经执行完毕,这是产生的是孤儿进程,孤儿进程可以被init进程接管,这是不浪费资源的;
发表于 2017-09-30 22:16:51 回复(0)
因为之前我有做过类似的题,所以确信无疑B答案的正确性,正当我准备引经据典,据理力争的时候,猛然发现人家题目的确要的是不正确的啊,于是,整个人都不好了😓😓
发表于 2017-09-19 09:31:50 回复(0)
A × 僵尸进程是不会被 init 进程接管的
发表于 2017-04-21 19:56:38 回复(0)
进程(或子进程)不是拥有独立的地址空间么??
那D怎么是正确的呢?
编辑于 2016-09-07 21:34:10 回复(2)
  孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。
        僵尸进程:一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用wait或waitpid获取子进程的状态信息,那么子进程的进程描述符仍然保存在系统中。这种进程称之为僵死进程。

         僵死进程并不是问题的根源,罪魁祸首是产生出大量僵死进程的那个父进程,所以,解决方法就是kill那个父进程,于是僵尸进程就可以被init进程接收,释放。
发表于 2016-09-05 20:33:09 回复(0)
Linux 下的线程本质上用进程实现?这个怎么理解啊?
发表于 2016-09-03 17:15:47 回复(2)
D==不懂
发表于 2016-07-24 19:55:42 回复(0)
b项我读着怪怪的,应该要加一个孤儿进程会被init接管!
发表于 2016-05-16 20:07:13 回复(1)