进程崩溃后,(POSIX)操作系统是否恢复资源?

时间:2011-07-17 10:53:35

标签: operating-system posix resource-management

假设我们有一个进程,它分配一个侦听特定端口的套接字,对它执行某些操作然后异常终止。现在,第二个进程启动,并希望分配一个套接字,该套接字侦听先前由crahsed进程保存的同一端口。这个套接字是否可用于重新分配?

  • 操作系统如何恢复未正确发布的资源?操作系统是否跟踪每个已分配资源的进程ID?

  • 我可以期待每个POSIX兼容系统做清理工作吗?

2 个答案:

答案 0 :(得分:2)

这取决于操作系统,但通常操作系统维护一个过程控制结构,以便管理其资源。当进程从系统分配资源(例如打开文件或分配内存)时,分配的详细信息将放在该结构中。当流程终止时,其中的任何内容都会被清理干净 - 但最好在您去的时候明确清理。

答案 1 :(得分:1)

具体细节取决于操作系统,但一般而言,用户代码在虚拟地址空间/沙箱中运行,在该地址空间/沙箱中没有任何直接访问硬件资源的权限。用户进程要访问/分配的任何内容都必须通过调用操作系统并向其询问所需资源来提供。

因此,OS有一种简单的方法可以知道谁分配了哪些资源,只要它跟踪这些信息,在崩溃过程中清理资源就像获取分配的资源列表一样简单到那个过程,并将它们全部标记为可用。