1. 程式人生 > >54.Linux/Unix 系統程式設計手冊(下) -- POSIX 共享記憶體

54.Linux/Unix 系統程式設計手冊(下) -- POSIX 共享記憶體

1.概述
	前面介紹了2種允許無關程序共享記憶體區域以便執行 IPC 的技術:System V 共享記憶體和共享檔案對映。這2種技術都有一些不足:
	1.System V 共享記憶體模型使用的是鍵和識別符號,這與標準的 Unix IO 模型使用檔名和描述符的做法不一致。這種差異意味著,
	  使用 System V 共享記憶體段需要一整套全新的系統呼叫和命令
	2.使用一個共享檔案對映來進行 IPC 要求建立一個磁碟檔案,即使無需對共享區域進行持久儲存也需要這樣做。除了因需要建立檔案所帶來
	  的不便之外,這種技術還帶來一些檔案IO開銷。

	  Posix 共享記憶體能夠讓無關程序共享一個對映區域而無需建立一個相應的對映檔案。一些Unix實現將共享物件名建立為標準檔案系統上的一個特殊
	位置處的檔案。Linux 使用掛載於 /dev/shm 目錄下的專用 tmpfs 檔案系統。這個檔案系統具有核心永續性。


2.共享記憶體 API 比較
	到現在為止,已經考慮了幾種不同的在無關程序之間共享記憶體區域的技術:
	1.System V 共享記憶體
	2.共享檔案對映
	3.Posix 共享記憶體物件
	

shm_open();
ftruncate();
mmap();
shm_unlink();