[svc]共享內存

ipc是什麼?

進程間通訊(IPC,Inter-Process Communication),指至少兩個進程或線程間傳送數據或信號的一些技術或方法。線程

進程間爲什麼不能直接共享數據? 如何解決ipc問題?

每一個進程的虛擬內存只嚴格對應本身的那片物理內存空間,也就是說虛擬空間的虛擬地址,只和本身的那片物理內存的物理地址創建映射關係,和其餘的進程物理內存空間沒有任何交集. 所以進程空間是徹底獨立的.code

能夠經過共享內存來讓2個進程同時映射到同一片內存, 從而實現數據共享.對象

ipcs命令

  1. ipcs命令

若ipcs命令不帶參數,則默認會列出共享內存、信號量,隊列信息,而
-m列出共享內存,
-s列出共享信號量,
-q列出共享隊列。
  1. ipcrm使用方法
經過指定ID刪除刪除IPC資源,同時將與IPC對象關聯的數據一併刪除,只有超級用戶或IPC資源建立者可以刪除

ipcrm -M shmkey #移除用shmkey建立的共享內存段
ipcrm -m shmid  #移除用shmid標識的共享內存段

ipcrm -S semkey #移除用semkey建立的信號量
ipcrm -s semid  #移除用semid標識的信號量
ipcrm -Q msgkey #移除用msgkey建立的消息隊列
ipcrm -q msgid  #移除用msgid標識的消息隊列
相關文章
相關標籤/搜索