例如,在一個多線程程序中,Global,volatile,extern變量可以進入臨界區,因爲它們可以一次被多個線程訪問。 也shmget()分配共享內存。 我想知道在用戶空間和內核空間中,所有其他內存類型都可能是關鍵部分。共享內存下可以使用哪些不同類型的內存?
回答
查看這些鏈接可以很好地理解共享內存區域和critical sections在真實世界系統上的操作。
bcook.cs.georgiasouthern.edu/cs523/critical.htm
blogs.msdn.com/b/larryosterman/archive/2005/08/24/455741.aspx
當你談論不同的概念,即,兩個使用共同的數據,例如隊列進程ibm.com/developerworks/linux/library/l-linux-synchronization/index.html
像管道(unix)和全局變量是共享內存,所有其他東西可以共享內存? –
全局變量不是共享內存。它們嚴格限於一個過程。另外技術上管道也不是共享內存,而管道和共享內存是進程間通信(IPC)的兩種不同方式。 – TheCodeArtist
共享內存通常包含在關鍵部分下。共享內存的原因可以一次由多個線程訪問。爲了確保某個共享內存一次只能被一個線程訪問,使用關鍵部分。
不確定共享內存是否進一步分類。
像管道(unix)和全局變量是共享內存,所有其他東西可以共享內存? –
據我所知,任何在線程堆棧之外分配的東西都在共享內存中,實際上可以被多個線程訪問。只有線程堆棧內存對於任何線程都是私有的,所有其他內存位置將在共享內存下。 – jags
共享內存可能會有所不同,你需要「照顧「修改/添加/刪除的關鍵部分。 至於線程,除堆棧和代碼段外,所有內容都是共享的,理論上主進程到達的每段數據都是這些線程之間的共享內存。
像管道(unix)和全局變量是共享內存,所有其他東西可以共享內存? –
- 1. 內存中的哪些內存是可空類型?
- 2. 同步共享內存
- 3. 內存共享
- 4. 可以報告哪些類型的假陽性內存泄漏?
- 5. 鎖定可共享內存
- 6. 多個JVM進程可以共享公共類的內存嗎?
- 7. 檢查共享內存是否存在,以及是否存在共享內存
- 8. 是否可以將多態類存儲在共享內存中?
- 9. CUDA:在不同內核之間使用共享內存
- 10. CUDA非法內存訪問可能'不足'的共享內存
- 11. 使用類內部的類提升進程間共享內存
- 12. postgresql:共享內存不足?
- 13. 共享內存不更新
- 14. django.db.utils.DatabaseError:共享內存不足
- 15. 增加共享內存的內存
- 16. CUDA共享內存
- 17. C共享內存
- 18. 在共享內存
- 19. RDMA內存共享
- 20. 共享內存段
- 21. Linux共享內存
- 22. activerecord內存共享緩存
- 23. IPC與共享內存的共享內存有什麼區別?
- 24. 是否可以在共享內存中加載共享庫?
- 25. 誰可以在Linux共享共享內存?
- 26. 可以兩個進程共享相同的GPU內存嗎? (CUDA)
- 27. 共享內存在哪裏分配?
- 28. linux共享內存實際在哪裏?
- 29. CUDA,可以使用共享內存提高我的性能嗎?
- 30. 我可以使用帶有共享內存的MPI嗎
如果_code_,而不是數據,關鍵部分會涉及部分。 – Mat
這個問題沒有多大意義。對於什麼是關鍵部分甚至是*是如此不重要,這有點類似於問「哪種類型的蔬菜是牛?」。除了「... WTF?」以外,沒有真正的答案。 – cHao