在共享內存系統中,當兩個進程共享一個共享內存系統時,一個進程死後,另一個正在運行的進程如何被共享內存系統通知死亡進程?IPC:共享內存死亡進程notfication
1
A
回答
1
共享內存,顧名思義,是一個被動對象內存。您需要使用互斥鎖來跟蹤其他應用程序的活動。每個應用程序創建自己的互斥鎖並等待另一個進程的互斥鎖。如果應用程序終止,互斥狀態將變爲放棄。
1
一種方法是讓父母/控制進程將所有其他進程作爲子進程啓動。當任何孩子死亡時,父母將收到SIGCHLD
,並且可以以理智的方式處理共享內存/資源的清理。
PostgreSQL遵循此設計模式與其postmaster和工作進程。
請注意,在大多數Unix系統中,進程死亡期間操作系統不會更改/解鎖互斥鎖。信號量提供UNDO功能,但它們肯定比互斥體重得多。因人而異。
+0
非常感謝CoreyStup。 http://www.kernel.org/doc/man-pages/online/pages/man7/signal.7.html以供參考:SIGCHLD 20,17,18 Ign孩子停止或終止 – 2012-02-08 19:47:24
相關問題
- 1. 父進程和子進程共享一個IPC共享內存
- 2. 通過共享內存進程之間共享指針IPC
- 3. 共享內存IPC如何適應進程的內存佈局?
- 4. 共享內存和IPC
- 5. Perl IPC ::在父母死亡時運行,殺死進程
- 6. IPC與共享內存的共享內存有什麼區別?
- 7. 共享POSIX對象在進程結束/死亡時清除
- 8. 共享內存和處理Sempahores(IPC)
- 9. 使用共享內存的IPC
- 10. C - 獲取IPC共享內存信息
- 11. Yaws進程死亡
- 12. Hadoop:Datanode進程死亡
- 13. C#進程死亡
- 14. 我怎樣才能共享內存之間的父母 - 子進程自動釋放內存時,他們死亡
- 15. IPC ::共享的共享
- 16. 通過共享內存使用Thrift進行IPC通信
- 17. 線程分配內存,主進程死亡,會發生什麼?
- 18. CSR共享內存,線程,進程
- 19. IPC共享內存是否從堆中獲取內存?
- 20. 獲取node.js進程死亡?
- 21. 進程已經死亡
- 22. 進程死亡本身
- 23. Java進程如何死亡?
- 24. Apache/WSGI進程死亡
- 25. sqlite vs共享內存應用程序vs ipc vs?
- 26. perl:當主進程死亡時線程不會死亡
- 27. Java進程在耗盡系統內存後死亡。爲什麼?
- 28. pthread進程共享互斥死鎖
- 29. 多進程python與共享內存
- 30. boost ::進程間共享內存
非常感謝Eugene Mayevski的EldoS。 http://www.kernel.org/doc/man-pages/online/pages/man7/signal.7.html以供參考:SIGCHLD 20,17,18 Ign孩子停止或終止 – 2012-02-08 19:44:39
@ mav_2k如果你在談論linux或Unix,你可能需要通過爲你的問題設置適當的標籤來反映這一點。 – 2012-02-09 06:05:55