如果2個文件描述符被複制到相同的文件(即506
和STDOUT
),將調用close(506)
清理兩者關聯的對象,並且渲染STDOUT
不可用?還是內核實現文件的引用計數?Linux內核引用計數內核對象嗎?
5
A
回答
8
內核實現了引用計數,因此內核對象在所有指向它的文件句柄都關閉之前不會關閉。
3
引用計數器在內核中被廣泛使用以避免由於資源的併發分配和釋放引起的競爭條件。引用計數器只是與特定資源(如內存頁,模塊或文件)關聯的atomic_t計數器。當內核控制路徑開始使用資源時,計數器會自動增加,當內核控制路徑完成使用資源時,計數器會減少。當引用計數器變爲零時,資源沒有被使用,並且如果需要可以釋放它。
如果您想查看this以瞭解Linux內核引用計數實施的概述,那麼您可能會關注此事。
+0
非常有用的紙張。謝謝! – 2011-09-04 18:31:02
相關問題
- 1. 爲Linux內核編寫內置對象?
- 2. Linux內核編程:「無法處理內核NULL指針引用」
- 3. Linux內核add_timer
- 4. Linux內核多核問題
- 5. Linux內核和我的內核模塊
- 6. 線程是內核對象嗎?
- 7. Linux內核sendpage函數
- 8. 讀取Linux內核參數
- 9. linux內核函數page_address()
- 10. 暫停Linux內核函數
- 11. Linux內核ip_options_build()函數
- 12. Linux內核內存障礙
- 13. Linux內核 - 中斷
- 14. Linux內核實現
- 15. linux內核開發
- 16. Linux內核調試
- 17. 配置Linux內核
- 18. Linux內核安裝
- 19. linux內核的config.h
- 20. 扭捏linux內核
- 21. LInux內核日誌
- 22. 編譯linux內核
- 23. glib和linux內核
- 24. Linux內核錯誤
- 25. 編譯Linux內核
- 26. Linux內核樹RB
- 27. 在Linux內核中
- 28. setscheduler()在Linux內核
- 29. asm__volatile()在Linux內核
- 30. Linux網絡內核
我相信你,我投票給你。你能爲後代提供一個文檔來源嗎?這似乎是可能再次訪問的問題的類型。 – 2010-02-26 21:10:05
@San Jacinto:'dup(2)'和'close(2)'的引用一起意味着引用計數;特別是*「如果fd是特定文件描述符的最後一個副本,則與其關聯的資源將被釋放」*:http://linux.die.net/man/2/dup http://linux.die.net/男人/ 2 /關閉 – 2010-02-26 22:39:22
真棒:)謝謝。 – 2010-02-26 23:23:31