有沒有辦法告訴(在UNIX上)進程的哪些內存頁在RAM中,哪些已被換出?告訴頁面是否在內存中?
3
A
回答
1
沒有便攜的方式。您可以阻止頁與mlock
或mlockall
(但這需要足夠的權限)互換,或者您可以使用不可移植的方法。在Linux上,/proc
中的kpageflags
文件以及/proc
下的進程目錄中的pagemap
文件應該足以爲您提供信息。它們記錄在Linux源代碼的Documentation
樹中。
2
不是以便攜的方式。
即使有可能,它也是無用的。你已經檢查過的一個頁面被換入,在你準備好使用它的那一刻就可以被換出。
+0
有一種無競爭的方式來處理這種情況:如果頁面被報告爲內存中,請求助手線程在頁面上調用'mlock'(以便不阻塞)並使用「try」或「定時」型同步原語來檢查有限時間的成功。之後,您可以確定訪問該頁面不會導致IO和可能無界的阻塞。當你完成後,你可以''munlock'頁面將責任交給內核。 –
相關問題
- 1. C#ASP.NET頁面內代碼不告訴我'響應'不存在
- 2. 是否可以告訴您是否被重定向到aspx頁面?
- 3. (Android)Apps是否共享內存頁面?
- 4. 告訴搜索引擎該頁面不存在
- 5. 是否可以告訴頁面正在等待的$ _GET變量的名稱?
- 6. 是否可以告訴Safari在打印頁面上重複表格標題?
- 7. phpdoc總是告訴我我的頁面級別的docblock不存在
- 8. 單詞 - 你能否告訴用戶是否取消保存
- 9. 有沒有辦法告訴Drupal不要緩存特定頁面?
- 10. 告訴我是否有人從我的網站「喜歡」我的Facebook頁面
- 11. 告訴Google Adsense不要使用特殊頁面內容來生成廣告
- 12. grails - 告訴我是否有髒東西?
- 13. 告訴HTTP客戶端是否斷開
- 14. Java paintComponent告訴是否再次調用
- 15. 從可變inlcude頁面是否存在
- 16. 檢查iFrame頁面是否存在
- 17. 檢查腳本是否存在頁面
- 18. Jquery - 檢查頁面是否存在
- 19. 如何檢查頁面是否存在?
- 20. 檢查一個內存頁面是否被加載到內存中
- 21. 是否有可能告訴iphone 4在網頁中使用@ 2x圖形
- 22. 內存警告消失是否正常?
- 23. 如何報告控件是否在網頁中多次存在?
- 24. 可以告訴AIR是否已插入USB存儲設備
- 25. 告訴JVM多少本機內存是如何使用的
- 26. 告訴用戶輸入的號碼是否已經存儲在陣列中
- 27. 檢查ASP.NET頁面是否存在預編譯頁面
- 28. 視頻告訴是否加載與否在Javascript
- 29. 無論如何要告訴項目是否在Silverlight 3中?
- 30. 有沒有辦法告訴GUICtrlCreateInput是否在其中有文字?
這可能是有用的,/ proc總是在主內存上? –
'/ proc'實際上並不存在於磁盤或內存中;它是在運行時從進程讀取時生成的*。即使文件顯示爲普通文件,它們在這方面的表現更像管道。唯一的問題是,在'/'下解析名稱'/ proc'可能需要訪問'/',但是在實時系統上,這可能是通過製作一個小的虛擬硬盤來實現的,大部分實際的文件系統內容'/ usr'等。 –