欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Linux中怎么實(shí)現(xiàn)零拷貝技術(shù)

Linux中怎么實(shí)現(xiàn)零拷貝技術(shù),相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

成都創(chuàng)新互聯(lián)是一家專(zhuān)注于成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)與策劃設(shè)計(jì),玉州網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專(zhuān)注于網(wǎng)站建設(shè)十多年,網(wǎng)設(shè)計(jì)領(lǐng)域的專(zhuān)業(yè)建站公司;建站業(yè)務(wù)涵蓋:玉州等地區(qū)。玉州做網(wǎng)站價(jià)格咨詢(xún):18980820575

1.常規(guī)的文件讀寫(xiě)[文件--內(nèi)核空間--用戶(hù)空間]

Linux中怎么實(shí)現(xiàn)零拷貝技術(shù)

2.使用mmap,讓數(shù)據(jù)傳輸不需要經(jīng)過(guò)user space

主要是 硬盤(pán)上文件 的位置與 邏輯地址空間[用戶(hù)態(tài)空間] 中一塊大小相同的區(qū)域之間的一一對(duì)應(yīng)。實(shí)現(xiàn)這樣的映射關(guān)系后,進(jìn)程就可以采用指針的方式直接讀寫(xiě)操作這一段內(nèi)存,而系統(tǒng)會(huì)自動(dòng)回寫(xiě)臟頁(yè)面到對(duì)應(yīng)的文件磁盤(pán)上,即完成了對(duì)文件的操作而不必再調(diào)用read,write等系統(tǒng)調(diào)用函數(shù)。

Linux中怎么實(shí)現(xiàn)零拷貝技術(shù)

3.使用sendfile,進(jìn)一步減少內(nèi)核直接的數(shù)據(jù)copy

目前為止,我們已經(jīng)減少了數(shù)據(jù)拷貝的次數(shù)了,但是仍然存在一次拷貝,就是頁(yè)緩存到socket緩存的拷貝。那么能不能把這個(gè)拷貝也省略呢?

借助于硬件上的幫助【支持scatter-gather特性】,我們是可以辦到的。之前我們是把頁(yè)緩存的數(shù)據(jù)拷貝到socket緩存中,實(shí)際上,我們僅僅需要把緩沖區(qū)描述符傳到socket緩沖區(qū),再把數(shù)據(jù)長(zhǎng)度傳過(guò)去,這樣DMA控制器直接將頁(yè)緩存中的數(shù)據(jù)打包發(fā)送到網(wǎng)絡(luò)中就可以了。

總結(jié)一下,sendfile系統(tǒng)調(diào)用利用DMA引擎將文件內(nèi)容拷貝到內(nèi)核緩沖區(qū)去,然后將帶有文件位置和長(zhǎng)度信息的緩沖區(qū)描述符添加socket緩沖區(qū)去,這一步不會(huì)將內(nèi)核中的數(shù)據(jù)拷貝到socket緩沖區(qū)中,DMA引擎會(huì)將內(nèi)核緩沖區(qū)的數(shù)據(jù)拷貝到協(xié)議引擎中去,避免了最后一次拷貝。

Linux中怎么實(shí)現(xiàn)零拷貝技術(shù)

看完上述內(nèi)容,你們掌握Linux中怎么實(shí)現(xiàn)零拷貝技術(shù)的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

網(wǎng)站標(biāo)題:Linux中怎么實(shí)現(xiàn)零拷貝技術(shù)
地址分享:http://www.chinadenli.net/article14/gpdgde.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站軟件開(kāi)發(fā)標(biāo)簽優(yōu)化做網(wǎng)站服務(wù)器托管營(yíng)銷(xiāo)型網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

營(yíng)銷(xiāo)型網(wǎng)站建設(shè)