在Windows中有系統維護的對象 - 事件,文件訪問句柄,窗口,定時器等,這些對象不是無限的,因此係統中的所有程序都可以創建不超過50k的對象(我不是確切的數字,但它不是非常關鍵的這個問題)。所以如果一些程序運行了很長時間並且創建了很多對象並且沒有釋放它們(就像內存泄漏一樣,但是這裏泄漏了系統對象),系統最終用完了對象和其他程序嘗試做某些事情需要創建任何新的系統對象,從系統功能開始獲取錯誤指示。例如,程序A運行並泄漏系統可用的所有對象,然後程序B嘗試打開文件並失敗,僅僅因爲系統沒有資源來處理該請求。此時唯一的解決方案是重新啓動程序A,以便泄漏的資源被系統回收。Unix/Linux系統是否容易泄漏全局內核對象?
在Unix/Linux系統上是否存在同樣的問題,或者它們在某種程度上受到保護?
我不確定'泄漏'是否正確。也許'精疲力盡'會更準確。內核盡最大努力確保沒有資源泄漏 - 就像完全丟失資源一樣。對於那些消耗大量資源的惡意程序,它不能做太多的事情 - 除非確保在程序終止時清理亂七八糟的東西。而且,在Linux上,在內存濫用的情況下,它會啓動OOM殺手。 – 2011-03-05 14:22:43