Linux--进程等待

1.什么是进程等待

        1.通过系统调用wait/waitid,来对子进程进行进行检测和回收的功能。

2.为什么有进程等待

        1.对于每个进程来说,如果子进程终止,父进程没有停止,就会形成僵尸进程,导致内存泄露,为了防止僵尸进程的形成,父进程需要等待子进程,进而解决内存泄漏的问题。这是必须要解决的

        2.我们通过进程等待,进而了解子进程的退出情况,知道子进程在干什么,了解子进程完成的怎么样了。

比如:

Linux--进程等待_第1张图片

3.进程等待怎么办

父进程通过调用wait/waitpid进行僵尸进程的回收问题。

原理:

Linux--进程等待_第2张图片

子进程退出,一共有三种状态:

1.代码运行完毕,结果正确

2.代码运行完毕,结果错误

3.代码异常终止

父进程等待,期望获得子进程哪些信息呢?

1.子进程是否异常

2.子进程运行结果对吗,不对的原因是什么?

不同的退出码,表示不同的原因。

父进程要拿子进程的数据信息,为什么要用wait/waitpid等系统调用借口呢?

因为进程的独立性,每个进程相互之间没有影响。

4.父进程在等待子进程过程中做什么呢?

父进程可以什么都不做,处于阻塞状态,直到子进程运行结束,父进程开始回收子进程。

也可以处于非阻塞状态中,处理自己的事情。这是非阻塞轮询+做自己的事情。

你可能感兴趣的:(linux,运维,服务器)