哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

存儲器的金字塔結構

Linux閱碼場 ? 來源:未知 ? 作者:李倩 ? 2018-08-30 08:16 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

寫在前面

在開始正式的討論前,我先拋出幾個問題:

談到磁盤時,常說的HDD磁盤和SSD磁盤最大的區(qū)別是什么?這些差異會影響我們的系統(tǒng)設計嗎?

單線程寫文件有點慢,那多開幾個線程一起寫是不是可以加速呢?

write(2)函數成功返回了,數據就已經成功寫入磁盤了嗎?此時設備斷電會有影響嗎?會丟失數據嗎?

write(2)調用是原子的嗎?多線程寫文件是否要對文件加鎖?有沒有例外,比如O_APPEND方式?

坊間傳聞,mmap(2)的方式讀文件比傳統(tǒng)的方式要快,因為少一次拷貝。真是這樣嗎?為什么少一次拷貝?

如果你覺得這些問題都很簡單,都能很明確的回答上來。那么很遺憾這篇文章不是為你準備的,你可以關掉網頁去做其他更有意義的事情了。如果你覺得無法明確的回答這些問題,那么就耐心地讀完這篇文章,相信不會浪費你的時間。受限于個人時間和文章篇幅,部分議題如果我不能給出更好的解釋或者已有專業(yè)和嚴謹的資料,就只會給出相關的參考文獻的鏈接,請讀者自行參閱。

言歸正傳,我們的討論從存儲器的層次結構開始。

存儲器的金字塔結構

受限于存儲介質的存取速率和成本,現(xiàn)代計算機的存儲結構呈現(xiàn)為金字塔型[1]。越往塔頂,存取效率越高、但成本也越高,所以容量也就越小。得益于程序訪問的局部性原理[2],這種節(jié)省成本的做法也能取得不俗的運行效率。從存儲器的層次結構以及計算機對數據的處理方式來看,上層一般作為下層的Cache層來使用(廣義上的Cache)。比如寄存器緩存CPU Cache的數據,CPU Cache L1~L3層視具體實現(xiàn)彼此緩存或直接緩存內存的數據,而內存往往緩存來自本地磁盤的數據。

本文主要討論磁盤IO操作,故只聚焦于Local Disk的訪問特性和其與DRAM之間的數據交互。

無處不在的緩存

如圖,當程序調用各類文件操作函數后,用戶數據(User Data)到達磁盤(Disk)的流程如圖所示[3]。圖中描述了Linux下文件操作函數的層級關系和內存緩存層的存在位置。中間的黑色實線是用戶態(tài)和內核態(tài)的分界線。

從上往下分析這張圖,首先是C語言stdio庫定義的相關文件操作函數,這些都是用戶態(tài)實現(xiàn)的跨平臺封裝函數。stdio中實現(xiàn)的文件操作函數有自己的stdio buffer,這是在用戶態(tài)實現(xiàn)的緩存。此處使用緩存的原因很簡單——系統(tǒng)調用總是昂貴的。如果用戶代碼以較小的size不斷的讀或寫文件的話,stdio庫將多次的讀或者寫操作通過buffer進行聚合是可以提高程序運行效率的。stdio庫同時也支持fflush(3)函數來主動的刷新buffer,主動的調用底層的系統(tǒng)調用立即更新buffer里的數據。特別地,setbuf(3)函數可以對stdio庫的用戶態(tài)buffer進行設置,甚至取消buffer的使用。

系統(tǒng)調用的read(2)/write(2)和真實的磁盤讀寫之間也存在一層buffer,這里用術語Kernel buffer cache來指代這一層緩存。在Linux下,文件的緩存習慣性的稱之為Page Cache,而更低一級的設備的緩存稱之為Buffer Cache. 這兩個概念很容易混淆,這里簡單的介紹下概念上的區(qū)別:Page Cache用于緩存文件的內容,和文件系統(tǒng)比較相關。文件的內容需要映射到實際的物理磁盤,這種映射關系由文件系統(tǒng)來完成;Buffer Cache用于緩存存儲設備塊(比如磁盤扇區(qū))的數據,而不關心是否有文件系統(tǒng)的存在(文件系統(tǒng)的元數據緩存在Buffer Cache中)。

綜上,既然討論Linux下的IO操作,自然是跳過stdio庫的用戶態(tài)這一堆東西,直接討論系統(tǒng)調用層面的概念了。對stdio庫的IO層有興趣的同學可以自行去了解。從上文的描述中也介紹了文件的內核級緩存是保存在文件系統(tǒng)的Page Cache中的。所以下篇的討論基本上是討論IO相關的系統(tǒng)調用和文件系統(tǒng)Page Cache的一些機制。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 存儲器
    +關注

    關注

    39

    文章

    7753

    瀏覽量

    172145
  • Linux
    +關注

    關注

    88

    文章

    11806

    瀏覽量

    219490

原文標題:淺墨: 聊聊Linux IO(上)

文章出處:【微信號:LinuxDev,微信公眾號:Linux閱碼場】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    反射式金字塔波前傳感的仿真

    摘要 與傳統(tǒng)的夏克-哈特曼傳感相比,使用金字塔形棱鏡或反射的波前傳感(PyWFS,用于金字塔波前傳感
    發(fā)表于 01-07 08:54

    VirtualLab Fusion案例:反射式金字塔波前傳感的仿真

    摘要 與傳統(tǒng)的夏克-哈特曼傳感相比,使用金字塔形棱鏡或反射的波前傳感(PyWFS,用于金字塔波前傳感
    發(fā)表于 01-17 09:51

    VirtualLab 應用:反射式金字塔波前傳感的仿真

    摘要 與傳統(tǒng)的夏克-哈特曼傳感相比,使用金字塔形棱鏡或反射的波前傳感(PyWFS,用于金字塔波前傳感
    發(fā)表于 04-26 10:39

    CADENAS 在 2025 年金字塔公司聯(lián)系博覽會上取得圓滿成功

    4 月 29 日,CADENAS GmbH 又一次參加了在奧格斯堡舉辦的金字塔企業(yè)聯(lián)絡展。我們與約 270 家公司一起,在奧格斯堡展廳向 3500 多名參觀者展示了自己。 CADENAS 現(xiàn)場直播
    發(fā)表于 06-04 14:32

    PCB工程師金字塔分級標準

    PCB工程師金字塔分級標準
    發(fā)表于 08-06 13:21

    自制for循環(huán)打印金字塔

    自制for循環(huán)打印金字塔
    發(fā)表于 09-18 08:46

    基于金字塔模型的地形網格裂縫消除算法

    本文針對基于多分辨金字塔模型繪制海量地形時的網格裂縫問題,提出了一種網格裂縫消除算法。該算法利用分裂標記表,結合金字塔模型本身分塊與多分辨率的特性,從整體上
    發(fā)表于 12-30 12:02 ?8次下載

    繪制金字塔程序實現(xiàn)

    用c語言編程繪制金字塔
    發(fā)表于 11-27 16:24 ?1079次閱讀

    可控特性的金字塔變換

    本文設計了一種具有平移不變性、方向和尺度聯(lián)合可控特性的金字塔變換,稱為幾何變形可控金字塔變換(DPT)。此DPT從一種數值形式表示的方向可控金字塔變換(SPT)發(fā)展而來。我們以SPT的每一個方向可控
    發(fā)表于 12-14 16:41 ?4次下載
    可控特性的<b class='flag-5'>金字塔</b>變換

    一種金字塔注意力網絡,用于處理圖像語義分割問題

    基于以上觀察,我們提出了特征金字塔注意力模塊 (FPA),該模塊能夠融合來自 U 型網絡 (如特征金字塔網絡 FPN) 所提取的三種不同尺度的金字塔特征。為了更好地提取不同尺度下金字塔
    的頭像 發(fā)表于 06-05 09:21 ?1.3w次閱讀
    一種<b class='flag-5'>金字塔</b>注意力網絡,用于處理圖像語義分割問題

    中國集成電路封裝行業(yè)市場現(xiàn)狀——金字塔的尖頂與基座

    中國集成電路封裝行業(yè)技術演變路程漫漫集成電路封裝在電子學金字塔中的位置既是金字塔的尖頂又是金字塔的基座。
    的頭像 發(fā)表于 07-11 14:51 ?4092次閱讀

    晶片表面刻蝕工藝對碳硅太陽能電池特性的影響

    引言 為了分析不同尺寸的金字塔結構對太陽能電池特性的影響,我們通過各種刻蝕工藝在硅片上形成了金字塔結構。在此使用一步蝕刻工藝(堿性溶液蝕刻、反應離子蝕刻(RIE)和金屬輔助化學蝕刻)以及兩步蝕刻
    發(fā)表于 01-11 14:05 ?2328次閱讀
    晶片表面刻蝕工藝對碳硅太陽能電池特性的影響

    DIY自制基于51單片機的LED金字塔

    電子發(fā)燒友網站提供《DIY自制基于51單片機的LED金字塔.pdf》資料免費下載
    發(fā)表于 10-25 10:27 ?0次下載
    DIY自制基于51單片機的LED<b class='flag-5'>金字塔</b>

    談談PCB工程師金字塔分級標準

    印刷電路板(PCB)工程師是電子行業(yè)中至關重要的角色,他們的工作直接關系到電子產品的質量和性能。為了明確不同PCB工程師的技能水平和職責范圍,行業(yè)內形成了金字塔分級標準。下面將談談這個金字塔的分級標準。
    的頭像 發(fā)表于 12-25 10:02 ?2258次閱讀

    浙江大學最新NC:效率高達33.15%,金字塔結構打造高效鈣鈦礦/硅疊層電池

    鈣鈦礦/硅疊層太陽能電池因其高效率與低成本潛力受到廣泛關注。然而,使用具有微米級金字塔結構(>2μm)的工業(yè)織構硅(ITS)基底時,空穴選擇層與鈣鈦礦層的均勻覆蓋成為關鍵挑戰(zhàn),導致界面復合損失
    的頭像 發(fā)表于 08-22 09:03 ?1545次閱讀
    浙江大學最新NC:效率高達33.15%,<b class='flag-5'>金字塔結構</b>打造高效鈣鈦礦/硅疊層電池
    巴东县| 象山县| 洛隆县| 武威市| 泾阳县| 开江县| 新泰市| 晋江市| 秦皇岛市| 手游| 黔东| 云阳县| 邵东县| 金门县| 体育| 嵩明县| 靖江市| 昂仁县| 明光市| 富宁县| 文成县| 勐海县| 辽中县| 巴中市| 石景山区| 安顺市| 庄河市| 惠东县| 门源| 奉新县| 洛扎县| 运城市| 济宁市| 琼中| 石狮市| 浦北县| 乌鲁木齐县| 资中县| 荃湾区| 高邑县| 应城市|