主题:【原创】工业控制的人机界面设计(上) -- 晨枫
现代的多任务操作系统内核,包括NT(Windows XP和Windows 2000都用NT内核),在每个应用程序进程结束后,都会回收该进程所使用的资源,如memory,socket,file handle,etc。
所谓内存泄露,是某个应用程序进程allocated a chunk of memory and lost track of it。对于操作系统内核来说,该块内存依然是在该进程的地址空间内,由该进程所使用。
换句话说,如果某个应用程序进程终止,所有该进程从操作系统那里得到的内存,包括泄露的,都会被操作系统收回,以供其他进程或者操作系统自己使用。
如果在终止应用程序任务后,依然不能reclaim内存,有可能是该应用程序还有faceless后台进程(Windows的术语好像叫Services)在运行,并且内存泄露是发生在后台进程里。
由于内存泄露很难完全避免,所以某些操作系统,比如Linux,有所谓的out of memory killer,在物理内存可能耗尽之前,会根据某些heuristics来找出是哪些进程在制造麻烦,并强制终止这些进程以避免物理内存耗尽。
- 相关回复 上下关系8
压缩 7 层
🙂Windows的可靠性能满足自控的要求么? 2 请尽量 字96 2007-05-23 17:18:13
🙂谢晨枫兄下面的回答 润树 字0 2007-05-24 21:59:25
🙂Windows用于自控都是NT或W2K,没有听说用XP的 2 晨枫 字295 2007-05-23 18:53:54
🙂这个似乎有点问题
🙂守护进程 1 我爱我家fh 字63 2012-05-24 09:22:40
🙂我对这里面的七七八八也不太清楚 晨枫 字46 2007-05-24 07:29:46
🙂你可以试试检查services所用的内存 2 请尽量 字539 2007-05-24 11:03:13
🙂因为软件的来源不是一家 1 晨枫 字67 2007-05-24 17:15:08