回覆列表
  • 1 # 楊小麗娟姐

    共享記憶體允許兩個或多個程序共享一給定的儲存區,因為資料不需要來回複製,所以是最快的一種程序間通訊機制。共享記憶體可以透過mmap()對映普通檔案(特殊情況下還可以採用匿名對映)機制實現,也可以透過系統V共享記憶體機制實現。應用介面和原理很簡單,內部機制複雜。為了實現更安全通訊,往往還與訊號燈等同步機制共同使用。mmap的機制如:就是在磁碟上建立一個檔案,每個程序儲存器裡面,單獨開闢一個空間來進行對映。如果多程序的話,那麼不會對實際的物理儲存器(主存)消耗太大。 shm的機制:每個程序的共享記憶體都直接對映到實際物理儲存器裡面。

    1、mmap儲存到實際硬碟,實際儲存並沒有反映到主存上。優點:儲存量可以很大(多於主存);缺點:程序間讀取和寫入速度要比主存的要慢。

    2、shm儲存到物理儲存器(主存),實際的儲存量直接反映到主存上。優點,程序間訪問速度(讀寫)比磁碟要快;缺點,儲存量不能非常大(多於主存)使用上看:如果分配的儲存量不大,那麼使用shm;如果儲存量大,那麼使用mmap。

  • 2 # 使用者8209154827005

    在匯入後使用shell命令ipcs–m來顯示當前的系統IPC的狀態,可以看出輸出資訊中nattch欄位為該共享記憶體時的引用值,最後使用shmdt函式分離該共享記憶體並列印系統IPC的狀態

  • 中秋節和大豐收的關聯?
  • 媽媽得了癌症,爸爸在外地打工並且腿腳不好,媽媽勸我不要努力讀書了,想讓我讀技校,我該怎麼辦?