孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。
僵尸进程:一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用wait或waitpid获取子进程的状态信息,那么子进程的进程描述符仍然保存在系统中。这种进程称之为僵死进程。
孤儿进程:
孤儿进程指的是父进程先于子进程结束,而子进程还在运行的情况。当父进程结束时,子进程会被操作系统接管,并由init进程(进程ID为1的进程)作为新的父进程。孤儿进程不会造成系统资源的浪费,但它们可能会继续运行并占用系统资源,直到它们自己结束。(可能会导致init进程过度负荷,降低系统性能)
僵尸进程:
僵尸进程指的是子进程先于父进程结束,但父进程没有及时处理子进程的退出状态。当子进程结束时,它的退出状态信息会被保留在系统中,此时子进程成为僵尸进程。僵尸进程占用了系统的进程表资源,如果系统中存在大量僵尸进程,可能会导致进程表资源耗尽。通常,父进程需要调用wait()或waitpid()等系统调用来获取子进程的退出状态,以及释放僵尸进程的资源。(占用系统资源,包括进程表项和一些系统内存)