韌館-LearnHouse

Archive for 7 6 月, 2017

[轉]linux ipc——shared memory

來源:http://www.rosoo.net/a/201307/16703.html

1、概念
共用記憶體:共用記憶體是進程間通信中最簡單的方式之一。共用記憶體允許兩個或更多進程訪問同一塊記憶體,就如同 malloc() 函數向不同進程返回了指向同一個實體記憶體區域的指標。當一個進程改變了這塊位址中的內容的時候,其它進程都會察覺到這個更改。

2、用途
. 共用記憶體允許兩個或多個進程共用一給定的存儲區,因為資料不需要來回複製,所以是最快的一種進程間通信機制。共用記憶體可以通過mmap()映射普通檔 (特殊情況下還可以採用匿名映射)機制實現,也可以通過系統V共用記憶體機制實現。應用介面和原理很簡單,內部機制複雜。為了實現更安全通信,往往還與信號 燈等同步機制共同使用

共用記憶體涉及到了存儲管理以及檔案系統等方面的知識,深入理解其內部機制有一定的難度,關鍵還要緊緊抓住內核使用的重要資料結構。系統V共用內 存是以檔的形式組織在特殊檔案系統shm中的。通過shmget可以創建或獲得共用記憶體的識別碼。取得共用記憶體識別碼後,要通過shmat將這個記憶體區 映射到本進程的虛擬位址空間
Read more...

2017年6 月 posted by admin in 程式&軟體 and have No Comments