女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

存儲器的金字塔結構

Linux閱碼場 ? 來源:未知 ? 作者:李倩 ? 2018-08-30 08:16 ? 次閱讀

寫在前面

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

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

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

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

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

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

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

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

存儲器的金字塔結構

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

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

無處不在的緩存

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

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

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

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

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

    關注

    38

    文章

    7633

    瀏覽量

    166386
  • Linux
    +關注

    關注

    87

    文章

    11457

    瀏覽量

    212762

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

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

收藏 人收藏

    評論

    相關推薦
    熱點推薦

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

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

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

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

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

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

    PCB工程師金字塔分級標準

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

    自制for循環打印金字塔

    自制for循環打印金字塔
    發表于 09-18 08:46

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

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

    基于壓縮金字塔核稀疏表示的人臉識別_周凱

    基于壓縮金字塔核稀疏表示的人臉識別_周凱
    發表于 01-08 11:13 ?0次下載

    新型太陽能電池板之光伏金字塔結構反射紅外線

    很好的解決方案。因為一方面主動冷卻方式會消耗能源,成本較高,另一方面還會干擾太陽能電池板有效吸收光線。 為了解決這個問題,近日斯坦福大學的科學家們發明了一種新型太陽能電池板,能夠通過表面的微型三角金字塔結構
    發表于 10-24 10:47 ?5次下載
    新型太陽能電池板之光伏<b class='flag-5'>金字塔結構</b>反射紅外線

    繪制金字塔程序實現

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

    可控特性的金字塔變換

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

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

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

    中國集成電路封裝行業市場現狀——金字塔的尖頂與基座

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

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

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

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

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

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

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