亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Linux Shell > 正文

Linux共享內存實現機制的詳解

2020-07-27 18:53:13
字體:
來源:轉載
供稿:網友

Linux共享內存實現機制的詳解

內存共享: 兩個不同進程A、B共享內存的意思是,同一塊物理內存被映射到進程A、B各自的進程地址空間。進程A可以即時看到進程B對共享內存中數據的更新,反之亦然。由于多個進程共享同一塊內存區域,必然需要某種同步機制,互斥鎖和信號量都可以。

這里寫圖片描述

效率: 采用共享內存通信的一個顯而易見的好處是效率高,因為進程可以直接讀寫內存,而不需要任何數據的拷貝。對于像管道和消息隊列等通信方式,則需要在內核和用戶空間進行四次的數據拷貝,而共享內存則只拷貝兩次數據[1]: 一次從輸入文件到共享內存區,另一次從共享內存區到輸出文件。實際上,進程之間在共享內存時,并不總是讀寫少量數據后就解除映射,有新的通信時,再重新建 立共享內存區域。而是保持共享區域,直到通信完畢為止,這樣,數據內容一直保存在共享內存中,并沒有寫回文件。共享內存中的內容往往是在解除映射時才寫回 文件的。因此,采用共享內存的通信方式效率是非常高的。

共享內存實現機制

共享內存是通過把同一塊內存分別映射到不同的進程空間中實現進程間通信。而共享內存本身不帶任何互斥與同步機制,但當多個進程同時對同一內存進行讀寫操作時會破壞該內存的內容,所以,在實際中,同步與互斥機制需要用戶來完成。
來看幾個系統調用函數:

(1)創建共享內存


這里寫圖片描述
參數:key為輸出型參數
size:size的大小應為1024整數倍(4k對齊)
shmflg:權限標志

(2)將共享內存映射到自己的內存空間:shmat

shmat是空間映射,通過創建的共享內存,在它能被進程訪問之前,需要把該段內存映射到用戶進程空間。shmaddr是用來指定共享內存映射到當前進程中的地址位置,要想改設置有用,shmflag必須設置為SHM_RND標志。大多情況下,應設置為空指針(void*)0,讓系統自動選擇地址,從而減小程序對硬件的依賴性。shmflag除了上面的設置外,還可以設置為SHM_RDONLY,使得映射過來的地址只讀。
返回值:調用成功則返回映射地址的第一個字節,失敗返回-1。
(3)解除映射:shmdt


這里寫圖片描述
參數為要解除的地址空間。

(4)控制共享內存
這里寫圖片描述
先來看第三個參數的結構體:
這里寫圖片描述
這里寫圖片描述
第二個參數cmd的選項:IPC_STAT:得到共享內存的狀態,把共享內存的shmid_ds結構體復制到buf里

IPC_SET:改變共享內存的狀態,把buf所指的結構體中的uid,gid,mode,復制到共享內存的shmid_ds結構體內
IPC_RMID:刪除這塊共享內存
BUF:共此內存管理結構體

代碼實現:
這里寫圖片描述

這里寫圖片描述

這里寫圖片描述

共享內存的特點:

(1)共享內存就是允許兩個不想關的進程訪問同一個內存
(2)共享內存是兩個正在運行的進程之間共享和傳遞數據的最有效的方式
(3)不同進程之間共享的內存通常安排為同一段物理內存
(4)共享內存不提供任何互斥和同步機制,一般用信號量對臨界資源進行保護。
(5)接口簡單

所有進程間通信的特點:

(1)管道

管道分為命名管道和匿名管道。匿名管道只能單向通信,且只能在有親緣關系的進程間使用,常用于父子進程,當一個進程創建了一個管道,并調用fork創建子進程后,父進程關閉讀端,子進程關閉寫端,實現單向通信。管道是面向字節流,自帶互斥與同步機制,生命周期隨進程。
命名管道與匿名管道:命名管道允許毫不相干的兩個進程之間

(2)信號量

信號量是一個計數器,可以用來控制多個線程對共享資源的訪問,它不是用于交換大批數據,而用于多線程之間的同步,常作為一種鎖機制,防止某進程在訪問資源時其他進程也來訪問,因此,主要作為進程間以及同一進程的不同線程間的同步手段。

(3)消息隊列

消息隊列是消息的鏈表,存放在內核中并由消息隊列標識符標識,消息隊列克服了信號傳遞信息少,管道只能承載無格式字節流以及緩沖區受限等特點。消息隊列是UNIX下不同進程之間可以實現資源共享的 一種機制,UNIX允許不同進程將格式化的數據流以消息隊列形式發送給任意進程,對消息隊列具有操作權限的進程都可以使用msgget完成對消息隊列的操作控制,通過使用消息類型,進程可以按順序讀信息,或為消息安排優先級順序。

(4)共享內存

共享內存就是映射一段能被其他進程所訪問的內存,這段共享內存由一個進程創建,但多個進程都可以訪問,共享內存是最快的IPC方式,它是針對其他IPC方式運行效率低而專門設計的,它往往與其他機制,如信號量,配合使用,來實現進程間的同步。

    以上就是Linux共享內存實現機制的內容詳細介紹,大家可以參考下,如果有疑問的可以到本站留言,進行討論。感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美影院成年免费版| 91成人免费观看网站| 国产在线999| 最近2019免费中文字幕视频三| 欧美激情2020午夜免费观看| 国产日韩av在线播放| 亚洲欧洲在线看| 国产精品日韩精品| 成人黄在线观看| 中文欧美日本在线资源| 国产一区二区三区精品久久久| 亚洲人成电影网站色…| 日韩小视频在线观看| 欧美色视频日本高清在线观看| 亚洲精美色品网站| 亚洲国产精品免费| 一区二区欧美激情| 91国语精品自产拍在线观看性色| 91精品国产777在线观看| 欧美性资源免费| 欧美午夜无遮挡| 美女啪啪无遮挡免费久久网站| 亚洲摸下面视频| 91在线精品播放| 欧美激情在线播放| 国产精品网址在线| 亚洲欧美三级伦理| 日韩一中文字幕| 欧美综合在线第二页| 久久国产色av| 亚洲欧洲午夜一线一品| 欧美小视频在线观看| 欧美日韩高清区| 成人黄色av网| 激情av一区二区| 国产精品尤物福利片在线观看| 国产亚洲日本欧美韩国| 成人免费xxxxx在线观看| 欧美高跟鞋交xxxxxhd| 秋霞av国产精品一区| 国产精品久久77777| 国产一区二区三区欧美| 精品久久久久久久久国产字幕| 国产精品成人国产乱一区| 久久成人人人人精品欧| 韩国一区二区电影| 欧美大成色www永久网站婷| 久久久久久尹人网香蕉| 亚洲国产97在线精品一区| 国产做受69高潮| 欧美一区深夜视频| 亚洲福利在线播放| 亚洲一区二区福利| 日韩精品在线观看一区二区| 久久精品国产欧美激情| 日韩欧美有码在线| 欧美精品日韩www.p站| 国产一区二区动漫| 成人在线国产精品| 欧美午夜视频在线观看| 狠狠躁夜夜躁人人爽天天天天97| 精品一区二区电影| 一区二区三区视频免费| 黄色一区二区在线观看| 亚洲精品免费av| 久久天天躁狠狠躁夜夜躁2014| 欧美日韩美女在线观看| 国产精品视频一区二区三区四| 2021久久精品国产99国产精品| 精品国产欧美一区二区五十路| 高潮白浆女日韩av免费看| 隔壁老王国产在线精品| 日韩激情视频在线| 狠狠久久亚洲欧美专区| 精品久久久av| 久久久久久一区二区三区| 黄色精品一区二区| 97精品国产97久久久久久免费| 精品一区二区三区四区| 中文字幕在线国产精品| 日韩电影中文字幕在线| 日韩中文字幕不卡视频| 久久久久久成人精品| 日韩中文字幕在线看| 久久久精品国产| 亚洲精品videossex少妇| 久久久欧美一区二区| 国产亚洲精品久久久久久牛牛| 久久视频国产精品免费视频在线| 国产精品扒开腿做爽爽爽视频| 丝袜情趣国产精品| 一本色道久久88综合亚洲精品ⅰ| 欧美午夜片欧美片在线观看| 亚洲美女精品成人在线视频| 国产精品美乳一区二区免费| 亚洲一区二区三区四区视频| 91九色蝌蚪国产| 成人免费高清完整版在线观看| 欧美精品videos另类日本| 成人在线国产精品| 日本亚洲精品在线观看| 色悠久久久久综合先锋影音下载| 国产精品高潮呻吟久久av无限| 日韩网站在线观看| 亚洲精品在线看| 久久国产精品久久国产精品| 高清欧美性猛交xxxx| 日本不卡高字幕在线2019| 91沈先生作品| 国产精品第一第二| 亚洲桃花岛网站| 亚洲精品videossex少妇| 亚洲欧美在线x视频| 国产精品高清在线观看| 亚洲视频在线观看免费| 欧美日韩福利在线观看| 国产日韩专区在线| 在线观看免费高清视频97| 久久久久久国产精品三级玉女聊斋| 少妇高潮 亚洲精品| 日韩av快播网址| 亚洲午夜精品视频| xxxx欧美18另类的高清| 国产91在线播放精品91| 亚洲人午夜精品| 欧美成人久久久| 久久99热精品| 国产精品情侣自拍| 538国产精品视频一区二区| 亚洲国产精品久久久久久| 久久青草精品视频免费观看| 亚洲国产又黄又爽女人高潮的| 国产精品美女久久久久av超清| 国产主播喷水一区二区| 国产精品久久久| 国产91精品久久久久久久| 色综合亚洲精品激情狠狠| 久久影视电视剧免费网站清宫辞电视| 2019国产精品自在线拍国产不卡| 91成人在线播放| 91在线看www| 91高清在线免费观看| 免费91麻豆精品国产自产在线观看| 中文字幕日韩欧美| 日韩av电影手机在线观看| 国产视频在线观看一区二区| 在线看国产精品| 久久中文字幕视频| 欧美裸体男粗大视频在线观看| 久久亚洲一区二区三区四区五区高| 日韩av在线高清| 久久精品色欧美aⅴ一区二区| 亚洲一区二区久久久久久久| 亚洲色图第一页| 91亚洲国产成人精品性色| 国产一区二区激情| 亚洲欧洲日产国产网站| 日韩网站免费观看| 91久久久久久久久| 亚洲成色www8888| 色综合伊人色综合网| 国产精品网红直播| 91综合免费在线| 欧美在线影院在线视频|