消息隊列的讀取和寫入的過程倔叼,都會有發(fā)生用戶態(tài)與內(nèi)核態(tài)之間的消息拷貝過程汗唱。那共享內(nèi)存的方式,就很好的解決了這一問題丈攒。
現(xiàn)代操作系統(tǒng)哩罪,對于內(nèi)存管理,采用的是虛擬內(nèi)存技術(shù)巡验,也就是每個進程都有自己獨立的虛擬內(nèi)存空間际插,不同進程的虛擬內(nèi)存映射到不同的物理內(nèi)存中。所以显设,即使進程 A 和 進程 B 的虛擬地址是一樣的框弛,其實訪問的是不同的物理內(nèi)存地址,對于數(shù)據(jù)的增刪查改互不影響捕捂。
共享內(nèi)存的機制瑟枫,就是拿出一塊虛擬地址空間來斗搞,映射到相同的物理內(nèi)存中。這樣這個進程寫入的東西慷妙,另外一個進程馬上就能看到了榜旦,都不需要拷貝來拷貝去,傳來傳去景殷,大大提高了進程間通信的速度。