无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

阿里二面:什么是mmap?

2022-11-23 16:28 作者:杰尼龜1100  | 我要投稿

勵(lì)志當(dāng)最強(qiáng)課代表的我來給大家總結(jié)總結(jié)??????

什么是mmap?


視頻內(nèi)容:

1??零拷貝??

2??DNA 拷貝??

3??mmap ???

4??set file 替代 read 加 write??


視頻內(nèi)容:

1??零拷貝??

首先需要對傳統(tǒng)的 lo 方式有一個(gè)概念,基于傳統(tǒng)的 lo 方式底層實(shí)際上是通過調(diào)用 read 和 write 的函數(shù)來實(shí)現(xiàn),通過 read 把數(shù)據(jù)從硬盤讀取到內(nèi)核緩沖區(qū),再復(fù)制到用戶緩沖區(qū),然后再通過 right 寫入到 socket 緩存區(qū),最后寫入網(wǎng)卡設(shè)備。

用戶態(tài)和內(nèi)核態(tài)的上下文切換和4次拷貝。

首先第一步,用戶進(jìn)程通過 rate 方法向操作系統(tǒng)發(fā)起調(diào)用,只是上下文從用戶態(tài)轉(zhuǎn)向內(nèi)核態(tài)。

第二步, DMI 控制器把數(shù)據(jù)從硬盤中拷貝到讀緩沖區(qū)。

第三步, CPU 把讀緩沖區(qū)數(shù)據(jù)拷貝到應(yīng)用緩沖區(qū),上下文從內(nèi)核態(tài)轉(zhuǎn)為用戶態(tài), RAID 返回。

第四步,用戶進(jìn)程通過 RAID 方法發(fā)起調(diào)用,上下文從用戶態(tài)切換為內(nèi)核態(tài)。

第五步, CPU 將應(yīng)用緩沖區(qū)中的數(shù)據(jù)拷貝到 socket 緩沖區(qū)。

第六步, DMA 控制器把數(shù)據(jù)從 socket 緩沖區(qū)拷貝到網(wǎng)卡,上下文從內(nèi)核態(tài)切換回用戶態(tài), write 返回。

?
00:05
?



2??DNA 拷貝??

本質(zhì)上來說它就是一塊主板上獨(dú)立的芯片,通過它來進(jìn)行內(nèi)存和 IO 設(shè)備的數(shù)據(jù)傳輸,從而減少了 CPU 的等待時(shí)間

?
01:19
?



3??mmap ???

mmap 主要實(shí)現(xiàn)方式是將讀緩沖區(qū)中的地址和用戶緩沖區(qū)中的地址進(jìn)行映射,內(nèi)核緩沖區(qū)和應(yīng)用緩沖區(qū)共享,從而減少了從讀緩沖區(qū)到用戶緩沖區(qū)的一次 CPU 拷貝。

第一步,用戶進(jìn)程通過 mmap 方法向操作系統(tǒng)發(fā)起調(diào)用上下文,從用戶態(tài)轉(zhuǎn)向內(nèi)核態(tài)。

第二步, DMI 控制器把數(shù)據(jù)從硬盤中拷貝到讀緩中區(qū)。

第三步,上下文從內(nèi)核態(tài)轉(zhuǎn)為用戶態(tài), MF 調(diào)用返回。

第四步,用戶進(jìn)程通過 write 方法發(fā)起調(diào)用上下文,從用戶態(tài)轉(zhuǎn)為內(nèi)核態(tài)。

第五步, debug 將讀緩沖區(qū)中的數(shù)據(jù)拷貝到 socket 緩沖區(qū)。

第六步, DMI 控制器把數(shù)據(jù)從 socket 緩沖區(qū)拷貝到網(wǎng)卡上下文,從內(nèi)核態(tài)切換回用戶態(tài), write 返回。

?
02:07
?



4?? set file 替代 read 加 write??

由于 set file 替代 read 加 write 從而節(jié)省了一次系統(tǒng)調(diào)用,也就是兩次上下文的切換。

第一步,用戶進(jìn)程通過現(xiàn)在發(fā)現(xiàn)方法向操作系統(tǒng)發(fā)起調(diào)用,上下文從用戶態(tài)轉(zhuǎn)向內(nèi)核態(tài)。

第二步, DMA 控制器把數(shù)據(jù)從硬盤中拷貝到讀緩沖區(qū)。

第三步, CPU 將讀緩沖區(qū)的數(shù)據(jù)拷貝到 socket 緩沖區(qū)。

第四步, DMI 控制器把數(shù)據(jù)從 socket 緩存區(qū)拷貝到網(wǎng)卡,上下文從內(nèi)核態(tài)切換回用戶態(tài) send file 調(diào)用返回 send file 方法 IO 數(shù)據(jù)對用戶空間

?
02:39
?



阿里二面:什么是mmap?的評論 (共 條)

分享到微博請遵守國家法律
苍溪县| 瑞金市| 秦皇岛市| 南昌县| 拜城县| 泽州县| 牙克石市| 海晏县| 泸西县| 东兰县| 隆回县| 青阳县| 锡林浩特市| 浦北县| 将乐县| 抚宁县| 那曲县| 周口市| 且末县| 怀集县| 青浦区| 台东县| 大石桥市| 独山县| 屯留县| 九寨沟县| 宿松县| 五莲县| 湛江市| 安泽县| 渝中区| 襄汾县| 扎囊县| 九江市| 黄陵县| 鄂尔多斯市| 甘洛县| 汉沽区| 汶上县| 阳信县| 武隆县|