• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      Linux中多種內(nèi)存共享機(jī)制及其應(yīng)用探究

      2023-06-22 14:08:35汪敏
      無(wú)線互聯(lián)科技 2023年4期

      汪敏

      摘要:Linux操作系統(tǒng)廣泛運(yùn)用在服務(wù)器運(yùn)維、嵌入式軟件設(shè)計(jì)和移動(dòng)端應(yīng)用開(kāi)發(fā)中,而對(duì)于Linux進(jìn)程間通信機(jī)制的理解和研究又決定了軟件之間數(shù)據(jù)通信的效率。Linux有多種方式實(shí)現(xiàn)進(jìn)程之間的通信,包括管道、消息隊(duì)列、信號(hào)量、socket、內(nèi)存共享等,其中內(nèi)存共享是效率最高的一種方式,實(shí)現(xiàn)了不同進(jìn)程對(duì)同一塊物理內(nèi)存的訪問(wèn),不需要陷入內(nèi)核態(tài)中進(jìn)行內(nèi)核空間和用戶空間的數(shù)據(jù)拷貝,大大提高了通信效率。文章介紹了在Linux操作系統(tǒng)中內(nèi)存共享的4種不同實(shí)現(xiàn)方式,同時(shí)介紹了不同實(shí)現(xiàn)方式在原理和應(yīng)用場(chǎng)景上的區(qū)別。

      關(guān)鍵詞:Linux操作系統(tǒng):內(nèi)存共享:進(jìn)程間通信:dmabuf框架

      中圖分類號(hào):TP31

      文獻(xiàn)標(biāo)志碼:A

      0 引言

      Linux是一種開(kāi)源的操作系統(tǒng),可以自由裁剪系統(tǒng)功能、性能高效安全,具有強(qiáng)大的技術(shù)社區(qū)的運(yùn)維,在嵌入式軟件設(shè)計(jì)、服務(wù)器運(yùn)維、移動(dòng)端應(yīng)用開(kāi)發(fā)等場(chǎng)景中有著廣泛的運(yùn)用。內(nèi)存共享作為一種高效的進(jìn)程間通信機(jī)制[1-5],決定著Linux應(yīng)用開(kāi)發(fā)的效率。目前,內(nèi)存共享機(jī)制主要有4種,它們?cè)诩夹g(shù)實(shí)現(xiàn)和應(yīng)用場(chǎng)景上面有很多的不同,特別是Linux3.3版本中加入的DMABUF框架不僅解決了進(jìn)程之間大量數(shù)據(jù)的通信問(wèn)題,還支持多設(shè)備之間的數(shù)據(jù)高效共享,從而避免了內(nèi)存拷貝問(wèn)題的存在,在圖形開(kāi)發(fā)、多媒體領(lǐng)域有著越來(lái)越多的運(yùn)用。

      1 內(nèi)存共享簡(jiǎn)介

      內(nèi)存共享機(jī)制是將不同進(jìn)程的虛擬地址空間映射到同一片物理內(nèi)存上,多個(gè)進(jìn)程可以共享同一片物理內(nèi)存。Linux操作系統(tǒng)存在多種進(jìn)程間通信的方式,包括管道、消息隊(duì)列、信號(hào)等。不同于管道、消息隊(duì)列需要在內(nèi)核空間和用戶空間進(jìn)行多次數(shù)據(jù)拷貝,內(nèi)存共享僅需要兩次數(shù)據(jù)拷貝,大大提高了進(jìn)程之間通信的效率,適合通信數(shù)據(jù)量比較大的場(chǎng)景。

      在Linux操作系統(tǒng)中,提供了內(nèi)存共享機(jī)制的多種實(shí)現(xiàn)方式。存在內(nèi)存共享機(jī)制多種實(shí)現(xiàn)方式的原因是多方面的,既有多種歷史版本不同實(shí)現(xiàn)方式的原因,又有針對(duì)多媒體、圖形領(lǐng)域等特定場(chǎng)景不同實(shí)現(xiàn)方式的原因。內(nèi)存共享作為最高效的進(jìn)程間通信和計(jì)算機(jī)硬件組件間數(shù)據(jù)通信的一種方式,值得研究人員深入研究。目前,Linux操作系統(tǒng)中主要存在4種內(nèi)存共享的實(shí)現(xiàn)方式,有System V內(nèi)存共享、POSIX內(nèi)存共享、通過(guò)memfd_create()實(shí)現(xiàn)的內(nèi)存共享和基于DMABUF框架實(shí)現(xiàn)的內(nèi)存共享。下面分別介紹這4種實(shí)現(xiàn)方式的區(qū)別以及具體的應(yīng)用場(chǎng)景。

      2 Linux的內(nèi)存管理

      Linux操作系統(tǒng)采用的是虛擬內(nèi)存管理技術(shù),該技術(shù)使Linux中進(jìn)程的所有操作都是基于虛擬地址展開(kāi)的。只有在需要訪問(wèn)內(nèi)存資源的時(shí)候,才會(huì)進(jìn)行虛擬地址和物理地址的映射,通過(guò)slab分配器和伙伴系統(tǒng)申請(qǐng)實(shí)際的物理內(nèi)存。虛擬內(nèi)存管理技術(shù)有很多好處,首先,擴(kuò)展了Linux中進(jìn)程的地址空間,每個(gè)進(jìn)程都有了4G的虛擬地址空間:其次,進(jìn)程不直接訪問(wèn)物理內(nèi)存,提高了操作系統(tǒng)的安全性和穩(wěn)定性;最后,每個(gè)進(jìn)程擁有了獨(dú)立的地址空間,易于用戶程序的開(kāi)發(fā)。Linux中進(jìn)程在執(zhí)行的時(shí)候,先加載部分程序,將剩余部分留在外部磁盤中;當(dāng)執(zhí)行過(guò)程中需要的部分在外部磁盤的時(shí)候,發(fā)生中斷:內(nèi)核將需要的部分加載到內(nèi)存中。對(duì)Linux內(nèi)存管理機(jī)制的深入理解有助于編寫更加高效的內(nèi)存共享程序,特別是能夠理解mmap()函數(shù)的工作方式,對(duì)于文件或者其他對(duì)象映射進(jìn)入調(diào)用進(jìn)程的虛擬地址空間將會(huì)有更加透徹的認(rèn)識(shí)。

      3 System V內(nèi)存共享

      System V內(nèi)存共享可以設(shè)置多個(gè)進(jìn)程共享物理內(nèi)存的同一塊區(qū)域,這一共享的內(nèi)存區(qū)域?qū)⒊蔀檫M(jìn)程用戶空間的一個(gè)部分。“寫進(jìn)程”將數(shù)據(jù)復(fù)制到共享內(nèi)存區(qū)域,“讀進(jìn)程”將從共享內(nèi)存區(qū)域中讀出數(shù)據(jù)。不同于消息隊(duì)列,在消息隊(duì)列中要求“寫進(jìn)程”將數(shù)據(jù)從用戶空間的緩沖區(qū)復(fù)制到內(nèi)核空間中,也要求“讀進(jìn)程”將數(shù)據(jù)從內(nèi)核空間復(fù)制到用戶空間的緩沖區(qū)中。也不同于管道,“寫進(jìn)程”的寫入數(shù)據(jù)緩存在內(nèi)核中,“讀進(jìn)程”從內(nèi)核緩存中讀取數(shù)據(jù),同時(shí)數(shù)據(jù)交互的過(guò)程遵循先進(jìn)先出的原則。System V內(nèi)存共享機(jī)制數(shù)據(jù)拷貝不經(jīng)過(guò)內(nèi)核空間,意味著更高的通信效率。由于存在多個(gè)進(jìn)程對(duì)同一片內(nèi)存區(qū)域數(shù)據(jù)的讀寫,在實(shí)際使用中通常使用信號(hào)量來(lái)完成System V內(nèi)存共享機(jī)制的數(shù)據(jù)同步過(guò)程。

      System V內(nèi)存共享機(jī)制的一般過(guò)程如下:首先,調(diào)用shmget()創(chuàng)建新的共享內(nèi)存段,返回共享內(nèi)存標(biāo)識(shí)符;然后,使用shmat()附著共享內(nèi)存段,將該內(nèi)存段成為調(diào)用進(jìn)程的虛擬內(nèi)存的一部分,shmat()返回的addr值可以供程序使用.a(chǎn)ddr值是該共享內(nèi)存段起始點(diǎn)的指針,共享內(nèi)存段使用完畢后,調(diào)用shmdt()分離共享內(nèi)存,調(diào)用該函數(shù)后,該共享內(nèi)存段將無(wú)法被繼續(xù)引用;最后,調(diào)用shmctl()刪除共享內(nèi)存段。如圖1所示,用free和ipcs命令查看當(dāng)前內(nèi)存運(yùn)行情況和進(jìn)程間通信的狀態(tài)。

      4 POSIX內(nèi)存共享

      Svstem V內(nèi)存共享是基于標(biāo)識(shí)符實(shí)現(xiàn)的,不同于通用的Linux l/0模型使用文件描述符的方式,這意味著Svstem V內(nèi)存共享需要一整套單獨(dú)的系統(tǒng)調(diào)用,導(dǎo)致了System V內(nèi)存共享在易用性方面的劣勢(shì),正因?yàn)檫@樣.POSIX.1b設(shè)置了新的內(nèi)存共享方式。Linux在實(shí)現(xiàn)POSIX內(nèi)存共享機(jī)制時(shí),使用文件系統(tǒng)來(lái)標(biāo)識(shí)共享內(nèi)存對(duì)象,將共享對(duì)象創(chuàng)建為/dev/shm目錄下面的一個(gè)文件,/dev/shm目錄下使用tmpfs專用文件系統(tǒng),該文件系統(tǒng)下的內(nèi)存對(duì)象具有持久性,共享內(nèi)存對(duì)象將一直存活,直到系統(tǒng)關(guān)閉之后才會(huì)丟失。

      mmap()函數(shù)經(jīng)常將文件映射為進(jìn)程虛擬地址空間的一部分[6-10].完成映射之后,可以通過(guò)操作內(nèi)存地址完成文件內(nèi)容的修改。如果操作的內(nèi)容不在內(nèi)存頁(yè)上面,則會(huì)從相應(yīng)的外部磁盤中來(lái)加載該頁(yè)完成文件的最終修改過(guò)程。mmap()函數(shù)經(jīng)常被使用在POSIX內(nèi)存共享機(jī)制中.POSIX內(nèi)存共享機(jī)制一般過(guò)程如下:先調(diào)用shm_open()創(chuàng)建且打開(kāi)一個(gè)命名的共享內(nèi)存對(duì)象,shm_open()函數(shù)將返回一個(gè)引用共享內(nèi)存對(duì)象的文件描述符,共享內(nèi)存對(duì)象初始長(zhǎng)度為0。調(diào)用mmap()函數(shù)傳人文件描述符參數(shù),同時(shí)指定flags為MAP—SHARED.mmap()函數(shù)將該內(nèi)存對(duì)象映射為進(jìn)程的虛擬地址空間??梢允褂眉扔械腖inux系統(tǒng)調(diào)用(例如fchmod(),fstat())進(jìn)行共享內(nèi)存對(duì)象的操作和查看。在使用完共享內(nèi)存對(duì)象后,可以使用shm_unlink()函數(shù)刪除共享內(nèi)存對(duì)象。刪除單個(gè)的共享內(nèi)存對(duì)象不會(huì)影響現(xiàn)有的共享內(nèi)存對(duì)象的映射關(guān)系,但是后續(xù)shm_open()打開(kāi)這個(gè)共享內(nèi)存對(duì)象會(huì)失敗。當(dāng)所有的進(jìn)程都刪除共享對(duì)象后,對(duì)象將最終被刪除。

      Svstem V和POSIX內(nèi)存共享機(jī)制在使用上有著很多差異。首先是在持久化上的區(qū)別,POSIX內(nèi)存共享對(duì)象與文件相映射意味著共享內(nèi)存中的數(shù)據(jù)能夠持久化地保存:其次是在標(biāo)識(shí)內(nèi)存共享對(duì)象上的差異,由于使用了獨(dú)立的標(biāo)識(shí)符模型.Svstem V需要單獨(dú)的系統(tǒng)調(diào)用實(shí)現(xiàn)內(nèi)存共享機(jī)制,而POSIX內(nèi)存共享機(jī)制可以使用標(biāo)準(zhǔn)的Linux I/O模型實(shí)現(xiàn)內(nèi)存共享操作;再次是共享內(nèi)存大小的創(chuàng)建時(shí)間,System V在使用shmget()的時(shí)候就確定了共享內(nèi)存的大小,而POSIX內(nèi)存共享可以通過(guò)ftruncate()獨(dú)立調(diào)整對(duì)象的大小,然后重新建立新的映射,在靈活性方面.POSIX內(nèi)存共享機(jī)制要更加高效:最后是支持程度方面,由于發(fā)展歷史的原因.System V的支持廠商更多一些,但是目前來(lái)看.Linux通用的發(fā)行版本都已經(jīng)支持POSIX內(nèi)存共享機(jī)制。從以上System V和POSIX內(nèi)存共享機(jī)制的區(qū)別可以看出,大部分情況下.POSIX內(nèi)存共享機(jī)制應(yīng)該作為使用進(jìn)程間通信機(jī)制的首選。

      5 通過(guò)memfd_create()實(shí)現(xiàn)的內(nèi)存共享

      在進(jìn)行進(jìn)程間通信的編程過(guò)程中,經(jīng)常會(huì)出現(xiàn)這樣的場(chǎng)景,就是A進(jìn)程想要訪問(wèn)B進(jìn)程的文件描述符,要訪問(wèn)B進(jìn)程文件描述符的原因是因?yàn)樵撐募枋龇赶蛐枰L問(wèn)的內(nèi)存,這樣A進(jìn)程就可以通過(guò)B進(jìn)程的文件描述符訪問(wèn)B進(jìn)程的內(nèi)存。下一步就是需要完成文件描述在A、B進(jìn)程之間的共享,文件描述符是進(jìn)程級(jí)別的概念,不同的進(jìn)程有不同的文件描述符列表。文件描述符不能作為一個(gè)變量直接傳輸給A進(jìn)程,原因是open()函數(shù)返回的數(shù)字僅代表了在B進(jìn)程中文件描述符的引用,即使是傳輸給A進(jìn)程,A進(jìn)程也不能通過(guò)該數(shù)字訪問(wèn)B進(jìn)程的內(nèi)存。這時(shí)候就需要通過(guò)cmsg在socket上傳輸控制信息,完成文件描述的傳遞過(guò)程。

      memfd_create()函數(shù)主要的功能是創(chuàng)建一個(gè)匿名文件,然后返回這個(gè)匿名文件的文件描述符,這樣就可以通過(guò)這個(gè)函數(shù)直接返回一個(gè)匿名內(nèi)存文件的文件描述符。同時(shí)使用SCM_RIGHTS,進(jìn)程就可以透過(guò)socket將文件描述符傳遞給另外一個(gè)進(jìn)程,進(jìn)而可以實(shí)現(xiàn)以fd為中間媒介,溝通兩個(gè)不相關(guān)的進(jìn)程共享同一片內(nèi)存區(qū)域。

      通過(guò)memfd_creace()函數(shù)實(shí)現(xiàn)進(jìn)程之間的內(nèi)存共享,最大的好處是這種編程模型比較清晰、簡(jiǎn)單和通用。進(jìn)程之間共享內(nèi)存的大小、數(shù)量、目的地都簡(jiǎn)單可控,只要使用socket來(lái)傳遞需要的文件描述符即可。例如在網(wǎng)絡(luò)視頻播放領(lǐng)域,可以將收到的視頻畫(huà)面多創(chuàng)建幾個(gè)緩存,然后單獨(dú)將緩存的fd遞交給另外的進(jìn)程進(jìn)行解碼,即可實(shí)現(xiàn)視頻畫(huà)面高效的處理。

      6 基于DMABUF框架的內(nèi)存共享

      DMABUF框架主要解決的是多個(gè)不同設(shè)備之間的緩存共享問(wèn)題,而緩存共享問(wèn)題的本質(zhì)是避免內(nèi)存拷貝。作為一個(gè)通用的框架,在2012年2月匯入Linux3.3版本,解決了長(zhǎng)期困擾Linux驅(qū)動(dòng)開(kāi)發(fā)人員的“緩存共享”問(wèn)題。

      DMABUF框架的一般應(yīng)用如圖2所示,緩存使用者1通過(guò)訪問(wèn)緩存分配者獲得緩存的文件描述符,獲取文件描述符之后,通過(guò)socket將文件描述符發(fā)送給緩存使用者2。緩存使用者2在收到文件描述符之后,將文件描述符信息導(dǎo)入緩存使用者3(內(nèi)核空間)中,此時(shí)緩存使用者3就獲得了緩存的共享訪問(wèn)能力。

      通過(guò)DMABUF框架實(shí)現(xiàn)緩存共享有很多好處,例如,在網(wǎng)絡(luò)流媒體場(chǎng)景中,要實(shí)現(xiàn)內(nèi)存零拷貝,需要先將幀緩存里面的內(nèi)容通過(guò)多媒體組件來(lái)轉(zhuǎn)變?yōu)橐曨l碼流,在轉(zhuǎn)變?yōu)橐曨l碼流之后,再?gòu)V播到網(wǎng)絡(luò)上。這一系列的過(guò)程中,需要避免出現(xiàn)內(nèi)存拷貝的過(guò)程,這樣才能夠保障流媒體傳輸?shù)男?。在類似的?chǎng)景中.DMABUF框架有著很多的運(yùn)用,特別是多進(jìn)程、多組件之間協(xié)同處理數(shù)據(jù)的時(shí)候,更加需要考慮數(shù)據(jù)處理的效率問(wèn)題。

      從設(shè)計(jì)思想上來(lái)看,內(nèi)核一般只提供機(jī)制而不提供具體的策略,具體的策略應(yīng)該由用戶空間來(lái)構(gòu)建,上面DMABUF框架的一般使用流程正是遵循的這樣的原則。基于DMABUF框架的內(nèi)存共享方式以文件描述符為句柄,實(shí)現(xiàn)了設(shè)備間、進(jìn)程間的緩存共享訪問(wèn),從而避免了內(nèi)存拷貝問(wèn)題。

      7 內(nèi)存共享的應(yīng)用場(chǎng)景

      7.1 生產(chǎn)者和消費(fèi)者內(nèi)存共享場(chǎng)景

      生產(chǎn)者、消費(fèi)者模型作為經(jīng)典的模型,經(jīng)常被用在各種進(jìn)程間通信的案例中來(lái)介紹,這里主要介紹的是大數(shù)據(jù)量的生產(chǎn)者和消費(fèi)者模型的構(gòu)建過(guò)程。生產(chǎn)者主要負(fù)責(zé)數(shù)據(jù)的產(chǎn)出,消費(fèi)者主要負(fù)責(zé)數(shù)據(jù)的處理過(guò)程。在大數(shù)據(jù)量的生產(chǎn)者、消費(fèi)者模型中使用共享內(nèi)存有很多好處。首先,具有內(nèi)存共享的生產(chǎn)者消費(fèi)者模型支持?jǐn)?shù)據(jù)的異步傳輸。在使用共享內(nèi)存前,生產(chǎn)者只能一直等待消費(fèi)者處理完成數(shù)據(jù)之后,才能生產(chǎn)數(shù)據(jù);在使用了內(nèi)存共享機(jī)制后,生產(chǎn)者可以將消費(fèi)者來(lái)不及處理的數(shù)據(jù)放置到共享內(nèi)存中,實(shí)現(xiàn)了生產(chǎn)者和消費(fèi)者異步處理數(shù)據(jù)的過(guò)程。其次,內(nèi)存共享支持了生產(chǎn)者和消費(fèi)者之間的交互解耦。生產(chǎn)者和消費(fèi)者之間不需要直接交互,避免了依賴關(guān)系的生成。最后,支持?jǐn)?shù)據(jù)處理流量控制的實(shí)現(xiàn)。當(dāng)出現(xiàn)消費(fèi)者處理數(shù)據(jù)過(guò)快或者過(guò)慢的時(shí)候,可以增加或者減少生產(chǎn)者線程同時(shí)配合信號(hào)量,完成消費(fèi)者和生產(chǎn)者之間數(shù)據(jù)的處理節(jié)奏。

      7.2 無(wú)關(guān)進(jìn)程間內(nèi)存共享場(chǎng)景

      無(wú)關(guān)進(jìn)程之間經(jīng)常需要進(jìn)行只讀文件的共享過(guò)程,例如配置文件、圖像幀緩存等只讀數(shù)據(jù)。例如,有一個(gè)500 k大小的配置文件,本地機(jī)器有80個(gè)進(jìn)程需要進(jìn)行配置文件的讀取過(guò)程,那么一共就需要分配4M的內(nèi)存空間進(jìn)行數(shù)據(jù)的讀取過(guò)程,這對(duì)于計(jì)算機(jī)來(lái)說(shuō),是巨大的內(nèi)存資源的浪費(fèi)。如果使用了內(nèi)存共享技術(shù),就可以由一個(gè)進(jìn)程完成在共享內(nèi)存中加載配置文件的過(guò)程,同時(shí)將這份共享的配置文件同步給其他進(jìn)程,就實(shí)現(xiàn)了多個(gè)進(jìn)程使用同一份只讀配置文件的過(guò)程。無(wú)關(guān)進(jìn)程間的內(nèi)存共享更多的應(yīng)用在多媒體領(lǐng)域中,多媒體領(lǐng)域經(jīng)常會(huì)存在多個(gè)畫(huà)面的緩存。為了實(shí)現(xiàn)內(nèi)存的零拷貝,會(huì)更多地使用內(nèi)存共享技術(shù)。

      7.3 父子進(jìn)程間內(nèi)存共享場(chǎng)景

      管道是父子進(jìn)程間經(jīng)常使用的一種通信方式,但是使用管道作為父子進(jìn)程間的通信方式有兩方面的弊端。第一,通信的數(shù)據(jù)量比較小,管道經(jīng)常作為shell中兩個(gè)命令間數(shù)據(jù)溝通快捷的方式而存在,同時(shí)交互的數(shù)據(jù)量比較小,不像共享內(nèi)存那樣可以按照需求來(lái)分配通信數(shù)據(jù)量的大?。坏诙?,管道寫入的數(shù)據(jù)都是緩存在內(nèi)核中,嚴(yán)格遵守先進(jìn)先出的原則,需要在內(nèi)核空間和用戶空間來(lái)回切換,才能完成數(shù)據(jù)的拷貝過(guò)程,因此通信的效率不高?;谶@兩個(gè)原因,在對(duì)通信數(shù)據(jù)量大小有要求的情況下,建議使用共享內(nèi)存的方式來(lái)完成父子進(jìn)程間的數(shù)據(jù)通信過(guò)程。

      8 結(jié)語(yǔ)

      本文主要討論了System V內(nèi)存共享、POSIX內(nèi)存共享、基于memfd_create()內(nèi)存共享和基于DMABUF框架內(nèi)存共享4種進(jìn)程間通信方式的優(yōu)缺點(diǎn)以及應(yīng)用場(chǎng)景,前3種更加強(qiáng)調(diào)進(jìn)程之間的內(nèi)存共享功能,而基于DMABUF框架則更加突出設(shè)備間的緩存共享功能,雖然基于DMABUF框架也支持多進(jìn)程之間的內(nèi)存共享。目前廣泛應(yīng)用于圖形編程領(lǐng)域的內(nèi)存共享方式,已經(jīng)從進(jìn)程虛擬地址空間映射方式轉(zhuǎn)變?yōu)橐晕募枋龇麨榫浔蚕韮?nèi)存的方式,這種趨勢(shì)的轉(zhuǎn)變,也讓decoder.GPU等可以跨越不同的進(jìn)程來(lái)訪問(wèn)內(nèi)存。

      參考文獻(xiàn)

      [1]黃茹.淺析Linux環(huán)境下的進(jìn)程間通信機(jī)制[J].科技信息,2014( 14):96-97.

      [2]姚珉.理解Linux環(huán)境下SYSTEM V進(jìn)程間通信[J].電腦開(kāi)發(fā)與應(yīng)用,2005( 10):50-52.

      [3]陳浩.Linux下用戶態(tài)和內(nèi)核態(tài)內(nèi)存共享的實(shí)現(xiàn)[J].電腦編程技巧與維護(hù),2011(4):25-27.

      [4]張華,孫傳偉,李靖誼.基于Linux的同步共享內(nèi)存的研究與實(shí)現(xiàn)[J].湖南工業(yè)職業(yè)技術(shù)學(xué)院學(xué)報(bào),2004(4):19-21.39.

      [5]劉斌,朱程榮.Linux內(nèi)核與用戶空間通信機(jī)制研究[J].電腦知識(shí)與技術(shù),2012( 16):3816-3817.3849.

      [6]楊宇音,李志淮.Linux中用戶空間與內(nèi)核空間的通信實(shí)現(xiàn)[J].微機(jī)發(fā)展,2005(5):75-76,130.

      [7]李妍.消息隊(duì)列在Linux線程或進(jìn)程間通信中的應(yīng)用[J].電子世界,2019 (17):146-147.

      [8]許豪,陳可.Linux下進(jìn)程間通信機(jī)制的探討[J].科技與創(chuàng)新,2016(3):83.

      [9]黃向平,彭明田,楊永凱.基于內(nèi)存映射文件的高性能庫(kù)存緩存系統(tǒng)[J].電子技術(shù)應(yīng)用,2020(7):113-117. 126.

      [10]黃向平,彭明田,楊永凱.基于內(nèi)存映射文件的復(fù)雜對(duì)象快速讀取方法[J].計(jì)算機(jī)技術(shù)與發(fā)展,2020(3):82-87.

      (編輯沈強(qiáng))

      商都县| 达拉特旗| 盈江县| 明溪县| 应城市| 贵港市| 阳西县| 赫章县| 教育| 邮箱| 大同县| 绵阳市| 南投市| 永川市| 大竹县| 西青区| 平泉县| 广平县| 河池市| 滕州市| 喀喇沁旗| 株洲市| 农安县| 巴林左旗| 平潭县| 临泽县| 东乡县| 巴马| 邵武市| 阜新| 婺源县| 神农架林区| 贵州省| 博罗县| 喜德县| 启东市| 正定县| 望江县| 德惠市| 华阴市| 平原县|