【发布时间】:2017-09-22 13:22:36
【问题描述】:
我知道一个进程一旦被终止就完成了,但是 Unix 实际上是如何做到这一点的呢?当我们终止一个进程时,幕后发生了什么?我们只是简单地从内存中删除进程,还是有更多的意义?当操作系统终止进程所采取的步骤不同时,是否有规则或例外?
【问题讨论】:
标签: unix process operating-system
我知道一个进程一旦被终止就完成了,但是 Unix 实际上是如何做到这一点的呢?当我们终止一个进程时,幕后发生了什么?我们只是简单地从内存中删除进程,还是有更多的意义?当操作系统终止进程所采取的步骤不同时,是否有规则或例外?
【问题讨论】:
标签: unix process operating-system
您的问题过于宽泛。进程终止是一个复杂的过程,涉及许多不同的页面。处于高水平。 . . .
除了删除进程之外,还有很多其他内容。最大的挑战是释放进程分配的所有资源。
最重要的是内存。必须释放所有用户空间物理内存。这涉及到引用计数,因为多个进程可以共享物理内存中的相同页面。必须释放分配给进程的所有页面文件(在 Unix 中也称为交换分区)空间。
最复杂的问题是如何处理 I/O。清理必须处理任何挂起的 I/O 操作。必须关闭所有 I/O 端口(文件、管道、套接字)。
我只是为了让你了解她的表面,让你了解发生了什么。
【讨论】: