在Unix中终止进程时实际发生了什么?

时间:2017-04-25 13:33:19

标签: unix process operating-system

我理解一个进程一旦被终止就完成了,但是Unix实际上是如何做到这一点的呢?当我们终止流程时,幕后发生了什么?我们只是简单地从内存中删除进程,还是比它更多呢?操作系统终止进程所采取的步骤何时有规则或例外?

1 个答案:

答案 0 :(得分:0)

你的问题非常广泛。进程终止是一个复杂的过程,涉及许多不同的页面。在很高的水平。 。 。 。

除了删除流程之外,还有很多其他内容。最大的挑战是释放流程分配的所有资源。

最重要的是记忆。必须释放所有用户空间物理内存。这涉及引用计数,因为多个进程可能在物理内存中共享相同的页面。必须释放分配给进程的所有页面文件(也称为Unix中的交换分区)空间。

最复杂的问题是如何处理I / O.清理必须处理任何挂起的I / O操作。必须关闭所有I / O端口(文件,管道,套接字)。

我只是想让你知道发生了什么。