【发布时间】:2011-10-07 02:14:06
【问题描述】:
假设我们有一个进程分配一个监听特定端口的套接字,用它做一些事情然后异常终止。现在第二个进程启动并希望分配一个套接字,该套接字侦听先前由崩溃进程持有的同一端口。这个socket可以重新分配吗?
操作系统如何恢复未正确释放的资源?操作系统是否跟踪进程 ID 以及每个分配的资源?
我可以期望每个 POSIX 兼容系统都进行这种清理吗?
【问题讨论】:
-
@Jeff:“我可以期待每个 POSIX 兼容系统都进行这种清理工作吗?”为什么像这样的问题是题外话?对于程序员来说,了解我们需要在多大程度上确保正确释放资源是非常重要的。我目前正面临一个困难的 IPC 问题,所以这个问题并不是出于普遍的好奇。 (我会相应地编辑)。
-
我不认为清理与 POSIX 有任何关系。您可以期望这种自动清理会发生在每个值得实际使用的操作系统上。如果操作系统不这样做,应用程序的每次异常终止都会从系统中删除资源,并且由于资源永久(直到下次重新启动)消失,它会变得不可用。
-
@mah 你知道win98,不是吗? :-) 但你是对的,我当然也希望如此。
-
@Johannes Rudolph -- 我重申我的限定词“每个操作系统都值得真正使用”;)遗憾的是,我恐怕也记得 Windows ME...
标签: operating-system posix resource-management